writing-tsdocs

Adds and updates TypeDoc (TSDoc) comments to TypeScript source files in the Medusa codebase. Covers HTTP types, API routes, UI components, data models, service…

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

Writing Medusa TSDocs

Adds TypeDoc (TSDoc) comments to Medusa TypeScript source files. Follows TypeDoc conventions and uses custom tags defined in www/utils/packages/typedoc-config/tsdoc.json.

Constraints

CRITICAL: Violating these produces incorrect or broken documentation.

  • Never document unexported items — only exported interfaces, types, functions, classes
  • Never add TSDocs to test files — skip *.spec.ts, *.test.ts, __tests__/
  • Never fabricate @since version numbers — only use the version passed in the prompt
  • Never remove or modify existing TSDocs — only add where missing
  • Never modify logic — only add/edit comment blocks
  • For Medusa-specific custom tags, only use those defined in tsdoc.json: @expandable, @featureFlag, @since, @apiIgnore, @schema, @tags, @version, @keep, @customNamespace, @namespaceMember

Load Reference Files When Needed

Load the reference file for the file type you're documenting before writing any TSDocs.

Path patternLoad
packages/core/types/src/http/reference/http-types.md
packages/medusa/src/api/admin/ or /store/reference/api-routes.md
packages/design-system/ui/src/components/reference/ui-components.md
packages/modules/*/src/models/reference/data-models.md
packages/core/types/src/ (non-http)reference/service-interfaces.md
packages/core/js-sdk/src/reference/service-interfaces.md
packages/core/utils/src/ (abstract providers)reference/service-interfaces.md
packages/core/workflows-sdk/src/utils/composer/reference/service-interfaces.md
packages/core/core-flows/src/ (workflows)reference/workflows-steps.md
packages/core/core-flows/src/ (steps)reference/workflows-steps.md
packages/core/utils/src/core-flows/events.tsreference/events.md

Quick Reference

TSDoc block format

/**
 * Brief description.
 */
export interface Foo {
  /**
   * The foo's ID.
   */
  id: string
}

Per-type depth guide

File typeWhat to documentKey Medusa tags
HTTP typesEvery exported interface/type + all properties@expandable on nested objects
API routesExported handlers only (minimal)@featureFlag, @since
UI componentsComponent + all propsPlain descriptions
Data modelsModel + each property@since on new items
Service interfacesEvery method in full@param, @returns, @example
JS SDKEvery public method@param, @returns, @example, @tags
ProvidersClass + every abstract method@param, @returns, @example
Workflow SDKEvery exported function@param, @returns, @example
core-flows workflowsWorkflow export + hooks@summary, @featureFlag, @since
core-flows stepsStep export + input type@featureFlag, @since, @example
EventsEvery event constant@eventPayload, @featureFlag, @since

Medusa custom tags (from www/utils/packages/typedoc-config/tsdoc.json)

TagKindUse when
@featureFlag <name>blockExport requires a feature flag to be enabled
@expandablemodifierNested object expandable in API queries
@since <version>blockExport was added in this version (prompt-provided only)
@apiIgnoremodifierExclude from API docs output
@tags <name>blockSDK categorization
@schemablockCustom schema documentation
@keepmodifierPreserve during doc generation
@customNamespaceblockAssign to custom doc namespace

Standard TypeDoc/JSDoc tags (@param, @returns, @example, @deprecated, @remarks, etc.) are always allowed.

Common Mistakes

  • Documenting unexported or private items
  • Using @since without a version being provided in the prompt
  • Writing property descriptions longer than 2 sentences
  • Adding @param/@returns to non-method exports (interfaces, types)
  • Documenting an id field without specifying what resource it belongs to

Reference Files

reference/http-types.md          - HTTP type interfaces: properties, @expandable
reference/api-routes.md          - API routes: @featureFlag, @since, minimal docs
reference/ui-components.md       - UI components: component + inline prop pattern
reference/data-models.md         - DML models: @since, property descriptions
reference/service-interfaces.md  - Methods, SDK, providers, workflow SDK: full JSDoc
reference/workflows-steps.md     - core-flows workflows and steps: @summary, hooks, @example
reference/events.md              - Event constants: @eventPayload, @featureFlag, @since

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