2026-07-03 23:18:31 -04:00
---
name: write-spec
2026-07-11 18:10:34 -04:00
description: 'Render a groomed design into the box-box Ready-spec template and write it into a GitHub issue body, then set Effort and Priority. Called by /groom after a grill session, or run standalone as "/write-spec <issue-number>" to (re)write an issue''s spec from agreed decisions. Does not change Stage.'
2026-07-03 23:18:31 -04:00
argument-hint: <issue-number>
---
# /write-spec — write the Ready spec into an issue
Target issue: * * $ARGUMENTS** (box-box, Project #2 ).
## Steps
1. `source .agents/lib/gh.sh`
2. Gather the agreed design decisions: from the current grooming conversation if one
is in progress; otherwise ask the user for the key points, or read the issue and
explore the code to draft them and confirm.
3. Read `.agents/prompts/ready-spec.md` and fill every placeholder:
- Concrete, **behavioural ** acceptance criteria (checkboxes).
- Technical approach grounded in **real files/paths ** and the chosen data source.
- Test plan mapped to the actual suites (`go test` · `vitest` · hermetic Playwright).
- Explicit out-of-scope.
- Keep the Definition of Done checklist verbatim.
- Stamp the footer: date (from the current-date context), Effort (S/M/L),
Priority (P0– P2).
4. Write it into the issue body: save the filled template to a temp file under the
scratchpad and `set_issue_body <n> <file>` . The spec is the single source of truth —
only preserve prior body text that captures decisions the spec doesn't.
5. Set fields: `set_effort <n> <S|M|L>` and `set_priority <n> <P0|P1|P2>` .
6. Print the issue URL and a one-line summary of what was written.
Do **not ** change Stage — `/groom` owns state transitions.