writing-docs

Writes and updates Medusa documentation MDX files for the book, resources, ui, user-guide, and cloud projects. Use when making documentation changes based on…

npx skills add https://github.com/medusajs/medusa --skill writing-docs

Writing Medusa Documentation

Skill for writing and updating MDX documentation across the book, resources, ui, user-guide, and cloud projects under www/apps/.

Constraints

CRITICAL: Violating these will corrupt the documentation or break CI.

  • Never document @ignore-tagged items — any option, method, or parameter with @ignore in its TSDoc must be skipped entirely
  • Never touch www/apps/resources/references/ — auto-generated, will be overwritten
  • Never touch www/apps/ui/specs/components/ — auto-generated, will be overwritten
  • Never touch www/apps/api-reference/ — managed by a separate process
  • Never run yarn prep or yarn lint:content — these run automatically after your session
  • Never invent Cloudinary screenshot URLs in user-guide — leave <!-- TODO: add screenshot --> instead

Load Reference Files When Needed

Load at least one reference file before writing any content.

TaskLoad
Deciding if a change needs docsreference/when-to-document.md
Writing any MDX contentreference/mdx-patterns.md
Writing for the book projectreference/book-style.md
Writing for the resources projectreference/resources-style.md
Writing for the user-guide projectreference/user-guide-style.md
Writing for the cloud projectreference/cloud-style.md
Checking prose qualityreference/vale-rules.md

Quick Reference

Project paths and writable directories

ProjectContent pathSidebar file
bookwww/apps/book/app/www/apps/book/sidebar.mjs
resourceswww/apps/resources/app/www/apps/resources/sidebars/*.mjs
uiwww/apps/ui/app/, www/apps/ui/specs/examples/www/apps/ui/sidebar.mjs
user-guidewww/apps/user-guide/app/www/apps/user-guide/sidebar.mjs
cloudwww/apps/cloud/app/www/apps/cloud/sidebar.mjs

MDX file minimum structure

export const metadata = {
  title: `Page Title`,
}

# {metadata.title}

Content here.

For book pages that use chapter numbering, the title uses ${pageNumber}:

export const metadata = {
  title: `${pageNumber} Chapter Title`,
}

Cross-project links

[text](!docs!/learn/path)        → book
[text](!resources!/path)         → resources
[text](!user-guide!/path)        → user-guide

Common Mistakes

  • Adding a new option, method, or parameter without a version note
  • Documenting any option, method, or parameter tagged with @ignore in its TSDoc — skip these entirely
  • Touching references/ or specs/components/ directories
  • Using we, us, let's, our in prose (use "you" or imperative)
  • Using "Medusa API" to mean the backend — use "Medusa backend" instead
  • Writing "Medusa Cloud" — use "Medusa" (noun form) or "Cloud" (location/service)
  • Using e.g., — write for example instead
  • Using em dashes () — rewrite sentence to avoid them
  • Using passive voice ("is created", "can be configured") — write active ("you can configure", "call X to create")
  • Writing code lines longer than 64 characters
  • Forgetting to add a new page to the sidebar file
  • Removing ${pageNumber} from book page titles
  • Using <img> or bare HTML instead of MDX components
  • Documenting internal implementation details (only public APIs)

Reference Files

reference/when-to-document.md   - Decision tree: does this change need docs?
reference/mdx-patterns.md       - MDX syntax, code blocks, components
reference/book-style.md         - book-specific structure and conventions
reference/resources-style.md    - resources-specific structure and conventions
reference/user-guide-style.md   - user-guide writing style and conventions
reference/cloud-style.md        - cloud-specific structure and conventions
reference/vale-rules.md         - Vale + lint rules to follow in prose

More skills from medusajs

mcloud-variables
medusajs
Execute mcloud variables commands to list and get environment variables for a Cloud environment. Use when inspecting, reading, or exporting environment…
official
building-storefronts
medusajs
SDK-first frontend integration for Medusa storefronts with React Query patterns and critical API calling rules. Always use the Medusa JS SDK for all API requests—never use regular fetch(), as it lacks required headers (publishable API key for store routes, auth for admin routes) Pass plain JavaScript objects to SDK methods; never use JSON.stringify() on body parameters, as the SDK handles serialization automatically Use useQuery for GET requests and useMutation for POST/DELETE requests,...
official
building-admin-dashboard-customizations
medusajs
Custom UI extensions for Medusa Admin dashboard using the Admin SDK and Medusa UI components. Load this skill FIRST for any admin UI work (planning, implementation, exploration); MCP servers provide API reference only, not design patterns or data loading strategies CRITICAL: Always use Medusa JS SDK for all API requests (never regular fetch); separate display queries from modal queries and invalidate display data after mutations Implement widgets on existing pages or create custom UI routes;...
official
learning-medusa
medusajs
Interactive step-by-step Medusa development bootcamp where you build a brands feature while learning architecture patterns. Three progressive lessons (2–3 hours total) covering modules, workflows, API routes, module links, workflow hooks, and admin UI customization Checkpoint verification after each major component tests conceptual understanding, code quality, and functionality before proceeding Treats errors as teaching opportunities; debugs together with diagnostic questions and root-cause...
official
db-migrate
medusajs
Execute pending Medusa database migrations and report results. Runs npx medusa db:migrate via Bash to apply all pending migrations to your Medusa database Reports migration outcomes including count of applied migrations, any errors encountered, and success confirmation Designed for Medusa projects with standard npm/npx setup
official
mcloud-environments
medusajs
Execute mcloud environments commands to list, get, create, delete, redeploy, or trigger builds for Cloud environments. Use when managing environment lifecycle,…
official
db-generate
medusajs
Generate database migrations for Medusa modules with a single command. Wraps the npx medusa db:generate CLI command to create migration files for specified Medusa modules Accepts module name as an argument and reports migration file location, errors, and next steps Automatically suggests running npx medusa db:migrate after generation to apply migrations
official
mcloud-deployments
medusajs
Execute mcloud deployments commands to list deployments, retrieve deployment details, and fetch build logs. Use when listing deployments, checking deployment…
official