spec-driven-modify
You are helping the user modify an existing spec-driven change artifact.
This Skill's Commands
If you cannot remember the exact command used by this skill, look it up here before running anything. Do not guess.
modify: node {{SKILL_DIR}}/scripts/spec-driven.js modify
verify: node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>
Prerequisites
The .spec-driven/ directory must exist at the project root. Before proceeding, verify:
ls .spec-driven/
If this fails, the project is not initialized. Run /spec-driven-init first.
Steps
-
Select the change — run
node {{SKILL_DIR}}/scripts/spec-driven.js modifyto list active changes. Ask the user which change they want to modify. If they already specified one, use it. -
Understand the requested change — ask the user what changes they want to make if not already specified. Focus on the content of the change, not which files to edit.
-
Determine affected artifacts — based on the change request, decide which files need modification. A single change may affect multiple artifacts:
proposal.md— scope, goals, or requirements changesspecs/— delta specs describing observable behavior changes, mirroring.spec-driven/specs/by file pathdesign.md— implementation approach or architecture decisionstasks.md— task breakdown, additions, or removalsquestions.md— new questions or resolved answers
Read all relevant artifact files before making changes.
- If the request affects
specs/, also read.spec-driven/config.yaml,.spec-driven/specs/INDEX.md, and each relevant main spec file before editing.
-
Apply modifications:
-
For
proposal.mdanddesign.md: edit freely -
For
specs/: preserve the delta spec format. Keep the matching file path underchanges/<name>/specs/, use## ADDED Requirements,## MODIFIED Requirements, and## REMOVED Requirementssection markers as needed, and keep### Requirement:headings intact. Write observable behavior only — do not turn specs into implementation notes, architecture details, or API design docs. Mirror the main spec path exactly. For example,.spec-driven/specs/skills/planning.mdmaps to.spec-driven/changes/<name>/specs/skills/planning.md.Use this canonical sample as the format target:
--- mapping: implementation: - path/to/implementation.ts tests: - test/path/to/test.ts --- ## ADDED Requirements ### Requirement: new-capability The system MUST provide <observable behavior>. #### Scenario: success - GIVEN <precondition> - WHEN <action> - THEN <result> ## MODIFIED Requirements ### Requirement: existing-capability Previously: The system MUST <old behavior>. The system MUST <new behavior>. ## REMOVED Requirements ### Requirement: old-capability Reason: This behavior is removed because <reason>.Omit sections that do not apply instead of leaving empty placeholders. If the change has no observable spec impact, leave
changes/<name>/specs/empty rather than creating a prose-only delta file. Do not invent mapping paths when the related implementation or test files are unclear. -
For
tasks.md: preserve all- [x]completed task state — only add, remove, or reword- [ ]incomplete tasks unless the user explicitly asks to change completed ones. When adding or editing## Testingtasks, follow this canonical structure:## Testing - [ ] Run `npm run lint` — lint or validation task - [ ] Run `npm test` — unit test taskThe
## Testingsection MUST satisfy these verification keyword requirements:- At least one task MUST contain a lint/validation keyword:
lint,validate,validation,typecheck,type-check, orbuild - At least one task MUST contain a unit test keyword:
unit testorunit tests - Both tasks MUST name an explicit runnable command in backticks or use a known runner (npm, pnpm, yarn, bun, node, bash, sh, pytest, jest, vitest, go, cargo, make, uv, poetry)
- Paraphrasing these keywords (e.g. "run tests" instead of "run unit tests") will
cause
verifyto fail
- At least one task MUST contain a lint/validation keyword:
-
For
questions.md: add new questions under## Open, or move questions to## Resolvedwith anA:answer line when the human provides answers
-
-
Show a summary — briefly describe what changed across all modified files and confirm with the user.
-
Validate after editing — run:
node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>- Fix any safe format issues immediately and rerun
verify - If
verifyreports only non-format workflow blockers such as open questions inquestions.md, surface those separately instead of misreporting them as spec-format failures - If unresolved format or structure errors remain, report them clearly to the user
- Do not finish without this check
- Fix any safe format issues immediately and rerun
Rules
- Never uncheck a completed task (
- [x]) unless the user explicitly asks - Don't restructure a file wholesale when a targeted edit is sufficient
- Keep the same heading structure unless changing structure is the explicit goal
- One change request may span multiple files — edit all relevant artifacts together
- When editing
specs/, follow.spec-driven/config.yamlrules and keep each delta file aligned with the corresponding main spec file
More from kw12121212/auto-spec-driven
spec-driven-auto
Run the full spec-driven workflow automatically. Proposes, implements, verifies, reviews, and archives a change without mandatory confirmation — only stops for user input when open questions need resolution.
36spec-driven-review
Review the code quality of a spec-driven change. Checks readability, security, performance, and best practices before archiving.
36spec-driven-init
Initialize a .spec-driven/ directory in a project. Creates config.yaml, roadmap/, and specs/ scaffold, then guides the user to fill in project context.
35spec-driven-archive
Archive a completed spec-driven change. Requires completed tasks, merges delta specs into main specs, then moves the change to archive/ with a date prefix.
35spec-driven-brainstorm
Discuss and brainstorm a spec-driven change from a rough idea, then propose a change name and, after explicit confirmation, generate the same five proposal artifacts as spec-driven-propose.
35spec-driven-propose
Propose a new spec-driven change. Scaffolds proposal.md, specs/ delta files, design.md, tasks.md, and questions.md for a named change, populated with project context.
35