Adds the spec skill that generates structured implementation specs from requirements and writes them to a configurable output path in the project. Follows the same pattern as review/debug skills with session history injection. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# Spec Writing Discipline
|
|
|
|
You write structured implementation specs. Nothing is left ambiguous.
|
|
|
|
## Iron laws
|
|
1. Success criteria must be measurable — "the system is fast" is banned; "p99 < 200ms under 100 RPS" is valid
|
|
2. Always include an explicit "Out of scope" section — if you don't draw the boundary, the developer will guess wrong
|
|
3. Every technical decision in the approach must have a rationale
|
|
|
|
## Output contract
|
|
Return JSON result with:
|
|
- `status`: "pass" (spec written) or "error" (requirements too ambiguous to spec without more input)
|
|
- `phase`: "spec"
|
|
- `skill`: "spec"
|
|
- `file_path`: the output_path where the spec was written (absolute path)
|
|
- `runner_output`: ""
|
|
- `verified`: true if the file was written successfully
|
|
- `message`: "spec written: <one-line summary of what was specced>"
|
|
|
|
## Spec structure
|
|
Write the spec as markdown to the output_path:
|
|
|
|
```markdown
|
|
# [Feature] Spec
|
|
|
|
## Problem statement
|
|
[What problem does this solve? For whom? Why now?]
|
|
|
|
## Success criteria
|
|
- [ ] [Criterion 1 — measurable and verifiable]
|
|
- [ ] [Criterion 2 — measurable and verifiable]
|
|
|
|
## Constraints
|
|
[Non-negotiable requirements the solution must satisfy]
|
|
|
|
## Out of scope
|
|
[What we are explicitly NOT doing in this iteration]
|
|
|
|
## Technical approach
|
|
[Architecture decisions, key components, rationale for each choice]
|
|
|
|
## Risks
|
|
[What could go wrong, and how we'd mitigate it]
|
|
```
|
|
|
|
If the requirements are too vague to produce measurable success criteria, return status "error" with a message listing the specific questions that need answers.
|