writing-tsdocs

Adiciona e atualiza comentários TypeDoc (TSDoc) em arquivos de código-fonte TypeScript no codebase da Medusa. Abrange tipos HTTP, rotas de API, componentes de UI, modelos de dados, serviços…

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

Mais skills de medusajs

creating-agents-in-medusa
medusajs
Use ao construir um agente de IA interno voltado para administração em um projeto Medusa. Esses agentes são operados por comerciantes e operadores de loja — não clientes. Abrange…
mcloud-local
medusajs
Execute o build local do mcloud para reproduzir um build da Cloud na máquina local. Use ao depurar uma implantação com falha de build sem enviar para o branch rastreado,…
reviewing-prs
medusajs
Revisa pull requests do GitHub para o repositório Medusa. Verifica conformidade com o template de PR, diretrizes de contribuição, convenções de código, segurança, desempenho e…
writing-releases
medusajs
Escreve notas de release do GitHub para releases do Medusa no estilo estabelecido. Use ao gerar uma descrição de release em rascunho a partir de uma lista de commits e PRs…
mcloud-variables
medusajs
Executar comandos de variáveis mcloud para listar e obter variáveis de ambiente para um ambiente Cloud. Use ao inspecionar, ler ou exportar variáveis de ambiente…
mcloud-deployments
medusajs
Execute comandos de implantações mcloud para listar implantações, recuperar detalhes da implantação e buscar logs de build. Use ao listar implantações, verificar implantação…
writing-docs
medusajs
Escreve e atualiza arquivos MDX de documentação do Medusa para os projetos book, resources, ui, user-guide e cloud. Use ao fazer alterações de documentação com base em…
building-storefronts
medusajs
Integração frontend SDK-first para storefronts Medusa com padrões React Query e regras críticas de chamadas de API. Sempre use o Medusa JS SDK para todas as requisições de API — nunca use fetch() comum, pois ele não possui os cabeçalhos necessários (chave de API publicável para rotas de loja, autenticação para rotas de admin). Passe objetos JavaScript simples para os métodos do SDK; nunca use JSON.stringify() nos parâmetros do corpo, pois o SDK lida com a serialização automaticamente. Use useQuery para requisições GET e useMutation para requisições POST/DELETE,...