Spec Writer Skill
Intent
Use this skill to turn a rough repo change, feature idea, cleanup effort, or migration into a numbered spec folder with practical planning documents. The goal is to create a working spec package that another engineer can pick up and execute without guessing what the work means.
Use When
- The user wants a new spec for a repo change, feature, refactor, migration, or workflow
- A project needs structured
requirements.md, plan.md, and tasks.md documents
- The repo already uses numbered spec folders and new work should follow that pattern
- The request is large enough that ad hoc notes would be too loose
Do Not Use When
- The change is tiny and does not need formal planning
- The repo has no spec workflow and the user only wants direct implementation
- The user wants a README, assessment, or changelog instead of an execution spec
- The available context is too thin to produce honest requirements and next steps
Workflow
- Read the repo context first.
- Confirm where specs live and how numbering works.
- Pick the next available spec number unless the user provided one.
- Create a short kebab case spec folder name tied to the actual work.
- Write the core documents:
requirements.md
plan.md
tasks.md
- Keep each file practical:
- requirements explain the problem, scope, constraints, and success criteria
- plan explains the implementation approach, touched areas, risks, and validation path
- tasks break the work into ordered, checkable execution steps
- Make assumptions explicit. Do not pretend unknown details are settled facts.
- Recheck that the spec matches the live repo, existing conventions, and the user's real goal.
Spec Status
Give every spec a visible state so a folder listing tells the truth about the work. Put a status line at the top of requirements.md:
Status: draft | in progress | done | abandoned
Last updated: YYYY-MM-DD
When asked to update or review specs, update the status line as part of the change. When creating a new spec, check whether an existing spec already covers the work and is merely stale; updating its status beats creating a duplicate.
Template Variants
Shape the documents to the work type instead of using one generic skeleton:
feature: requirements emphasize user-facing behavior and acceptance criteria; plan covers integration points and new surface area
refactor: requirements define behavior that must not change and how that is verified; plan emphasizes sequencing and safe checkpoints; tasks alternate change and verify steps
migration: requirements define the end state and cutover criteria; plan covers dual-running, rollback, and data integrity; tasks include a rehearsal step before the real cutover
Name the variant in requirements.md so the reader knows which lens the spec uses.
Requirements Guidance
- State the problem in plain language
- Define in scope and out of scope
- List constraints from the repo, tooling, platform, or user instructions
- Include acceptance criteria that can actually be verified
- Keep wording concrete enough that implementation decisions can be judged against it
Plan Guidance
- Name the files, modules, folders, scripts, or systems likely to change
- Explain the intended implementation shape without drifting into code
- Call out dependencies, sequencing, migration concerns, and rollback or safety issues where relevant
- Include a validation section with realistic checks such as tests, linting, manual flows, or document review
Task Guidance
- Break work into an execution order that another engineer can follow
- Prefer tasks that map to real deliverables, not vague activity labels
- Separate implementation, validation, and documentation work when that helps execution
- Keep tasks small enough to complete and review, but not so small that the list becomes noise
- Give each task a rough size of
S (under an hour), M (half a day), or L (a day or more) so the spec communicates effort, not just steps; an L task is usually a sign it should be split
Constraints
- Match the repo's existing spec layout if one already exists
- Prefer editing existing planning structure over inventing a new one
- Use direct language and skip filler
- Do not pad specs with generic boilerplate
- Do not hide major assumptions or risks
- If numbering or naming is ambiguous, choose the clearest consistent option
References
shared/skill-standard.md
- Existing
specs/ folders in the target repo
- Any repo handoff docs such as
assessment.md, project-analysis.md, or roadmap files if they exist
Help And Examples
Use this skill when the user wants a real execution spec instead of loose notes.
Minimum useful input:
- the repo or project context
- what needs to be built, changed, or cleaned up
- any scope limits or constraints
Example prompts:
Use spec-writer to create the next numbered spec for moving this repo from ad hoc scripts to a module layout with tests and CI.
Create a spec folder for adding OAuth refresh handling and export retry logic to this CLI project.
Write a numbered repo spec with requirements, plan, and tasks for a README audit plus stale doc cleanup.
Validation Checklist
- The spec folder name and number fit the repo's existing pattern
requirements.md, plan.md, and tasks.md are all present
- The requirements are specific enough to judge success
- The plan matches the actual repo context
- The tasks are ordered, practical, and executable
1---2name: spec-writer3description: Generate numbered repo spec folders with clear requirements, implementation plans, and task lists for non-trivial project work.4---56# Spec Writer Skill78## Intent910Use this skill to turn a rough repo change, feature idea, cleanup effort, or migration into a numbered spec folder with practical planning documents. The goal is to create a working spec package that another engineer can pick up and execute without guessing what the work means.1112## Use When1314- The user wants a new spec for a repo change, feature, refactor, migration, or workflow15- A project needs structured `requirements.md`, `plan.md`, and `tasks.md` documents16- The repo already uses numbered spec folders and new work should follow that pattern17- The request is large enough that ad hoc notes would be too loose1819## Do Not Use When2021- The change is tiny and does not need formal planning22- The repo has no spec workflow and the user only wants direct implementation23- The user wants a README, assessment, or changelog instead of an execution spec24- The available context is too thin to produce honest requirements and next steps2526## Workflow27281. Read the repo context first.292. Confirm where specs live and how numbering works.303. Pick the next available spec number unless the user provided one.314. Create a short kebab case spec folder name tied to the actual work.325. Write the core documents:33 - `requirements.md`34 - `plan.md`35 - `tasks.md`366. Keep each file practical:37 - requirements explain the problem, scope, constraints, and success criteria38 - plan explains the implementation approach, touched areas, risks, and validation path39 - tasks break the work into ordered, checkable execution steps407. Make assumptions explicit. Do not pretend unknown details are settled facts.418. Recheck that the spec matches the live repo, existing conventions, and the user's real goal.4243## Spec Status4445Give every spec a visible state so a folder listing tells the truth about the work. Put a status line at the top of `requirements.md`:4647```text48Status: draft | in progress | done | abandoned49Last updated: YYYY-MM-DD50```5152When asked to update or review specs, update the status line as part of the change. When creating a new spec, check whether an existing spec already covers the work and is merely stale; updating its status beats creating a duplicate.5354## Template Variants5556Shape the documents to the work type instead of using one generic skeleton:5758- `feature`: requirements emphasize user-facing behavior and acceptance criteria; plan covers integration points and new surface area59- `refactor`: requirements define behavior that must not change and how that is verified; plan emphasizes sequencing and safe checkpoints; tasks alternate change and verify steps60- `migration`: requirements define the end state and cutover criteria; plan covers dual-running, rollback, and data integrity; tasks include a rehearsal step before the real cutover6162Name the variant in `requirements.md` so the reader knows which lens the spec uses.6364## Requirements Guidance6566- State the problem in plain language67- Define in scope and out of scope68- List constraints from the repo, tooling, platform, or user instructions69- Include acceptance criteria that can actually be verified70- Keep wording concrete enough that implementation decisions can be judged against it7172## Plan Guidance7374- Name the files, modules, folders, scripts, or systems likely to change75- Explain the intended implementation shape without drifting into code76- Call out dependencies, sequencing, migration concerns, and rollback or safety issues where relevant77- Include a validation section with realistic checks such as tests, linting, manual flows, or document review7879## Task Guidance8081- Break work into an execution order that another engineer can follow82- Prefer tasks that map to real deliverables, not vague activity labels83- Separate implementation, validation, and documentation work when that helps execution84- Keep tasks small enough to complete and review, but not so small that the list becomes noise85- Give each task a rough size of `S` (under an hour), `M` (half a day), or `L` (a day or more) so the spec communicates effort, not just steps; an `L` task is usually a sign it should be split8687## Constraints8889- Match the repo's existing spec layout if one already exists90- Prefer editing existing planning structure over inventing a new one91- Use direct language and skip filler92- Do not pad specs with generic boilerplate93- Do not hide major assumptions or risks94- If numbering or naming is ambiguous, choose the clearest consistent option9596## References9798- `shared/skill-standard.md`99- Existing `specs/` folders in the target repo100- Any repo handoff docs such as `assessment.md`, `project-analysis.md`, or roadmap files if they exist101102## Help And Examples103104Use this skill when the user wants a real execution spec instead of loose notes.105106Minimum useful input:107108- the repo or project context109- what needs to be built, changed, or cleaned up110- any scope limits or constraints111112Example prompts:113114```text115Use spec-writer to create the next numbered spec for moving this repo from ad hoc scripts to a module layout with tests and CI.116```117118```text119Create a spec folder for adding OAuth refresh handling and export retry logic to this CLI project.120```121122```text123Write a numbered repo spec with requirements, plan, and tasks for a README audit plus stale doc cleanup.124```125126## Validation Checklist127128- The spec folder name and number fit the repo's existing pattern129- `requirements.md`, `plan.md`, and `tasks.md` are all present130- The requirements are specific enough to judge success131- The plan matches the actual repo context132- The tasks are ordered, practical, and executable