to-prd
This skill takes the current conversation context and codebase understanding and produces a PRD. Do NOT interview the user — just synthesize what you already know. If context is too thin to synthesize, halt and tell the user to run /grill-me first; don't fabricate scope.
Process
-
Read the codebase. Explore the repo to understand current state if you haven't already. Use the project's domain glossary throughout the PRD.
-
Scan
docs/adr/for accepted ADRs touching the area. List relevant ones in aSourcesline and respect their locked decisions. If the PRD's scope would violate an ADR, surface the conflict to the user before writing. -
Pick the Glossary source (in priority order):
- Glossary block emitted by a prior
/grill-mesession in the conversation. - Domain terms already used in the codebase — search for prominent nouns/verbs in module names, types, and route names.
- Terms surfaced in the conversation context.
- Glossary block emitted by a prior
-
Sketch the major modules to build or modify. Actively look for opportunities to extract deep modules — ones that encapsulate substantial functionality behind a simple, testable, slow-to-change interface (Ousterhout). Do not interview; synthesize from context. If module shape is unclear, halt and route back to
/grill-me. -
Write the PRD following PRD-TEMPLATE.md, to two destinations:
- Disk: get the target path from
bash scripts/next-prd-index.sh <slug>(prints the zero-padded next-index path, createsdocs/prds/if missing), then write the filled template there. This is whatheistandmaestroconsume. - Tracker:
bash scripts/publish-prd.sh <prd-file> "<title>"— opens a GitHub issue with theneeds-triagelabel, auto-falling back (drop the label, or skip the tracker entirely) and warning to stderr when the label is missing,ghis unconfigured/unauthed, or the repo isn't on GitHub.
- Disk: get the target path from