spec-driven-propose
Original:🇺🇸 English
Not Translated
1 scriptsChecked / no sensitive code detected
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.
2installs
Added on
NPX Install
npx skill4agent add kw12121212/auto-spec-driven spec-driven-proposeSKILL.md Content
You are helping the user create a new spec-driven change proposal.
Do not ask follow-up questions or require confirmation during the proposal stage.
Derive the strongest proposal you can from the user request, project context, and
existing specs. Record any remaining ambiguity in for
to surface before implementation begins.
questions.md/spec-driven-applyPrerequisites
The directory must exist at the project root. Before proceeding, verify:
.spec-driven/ls .spec-driven/If this fails, the project is not initialized. Run first.
/spec-driven-initSteps
-
Determine the change name — use the user-provided kebab-case name when one is already available. Otherwise, derive a short kebab-case name from the request and the proposal scope yourself instead of stopping to ask for one.
-
Read project context and existing specs — read the following before generating anything:
- — use
.spec-driven/config.yamlto inform content; treatcontextas binding constraints; note anyrulesentries that apply to files this change will touchfileMatch - — identifies all existing spec files and their scope
.spec-driven/specs/INDEX.md - Every spec file referenced in INDEX.md that this change is likely to touch — read the full content to understand existing requirements before writing MODIFIED or ADDED entries
-
Scaffold the change — run:
node {{SKILL_DIR}}/scripts/spec-driven.js propose <name>This createswith seeded artifact templates..spec-driven/changes/<name>/ -
Fill proposal.md — write a clear, concise proposal covering:
- What: What the change does (observable behavior, not implementation)
- Why: Motivation and context
- Scope: What is in scope, what is explicitly out of scope
- Unchanged Behavior: List existing behaviors that must not break — things adjacent to or potentially affected by this change. Leave blank if truly nothing is at risk.
-
Fill design.md — write the technical approach:
- Approach: How you'll implement it at a high level
- Key Decisions: Significant choices and their rationale
- Alternatives Considered: What was ruled out and why
-
Populate specs/ delta files — look at the project'sdirectory structure. For each spec file that this change touches, create a corresponding file under
.spec-driven/specs/mirroring the same relative path (e.g..spec-driven/changes/<name>/specs/→specs/auth/login.md). If the change introduces a new spec area, create the new relative path that should exist underchanges/<name>/specs/auth/login.mdafter archive..spec-driven/specs/Each delta file uses ADDED/MODIFIED/REMOVED sections with the standard format:- YAML frontmatter with and
mapping.implementationwhen related files are knowable from repository contextmapping.tests - headings and RFC 2119 keywords (MUST/SHOULD/MAY)
### Requirement: <name> - blocks (GIVEN/WHEN/THEN) where helpful
#### Scenario: - ADDED: new requirements; MODIFIED: changed requirements (include note); REMOVED: removed requirements (include reason)
Previously: - Omit sections that don't apply — do not leave empty sections
- If this change has no observable spec impact, leave empty — do not create a prose-only file that breaks the delta spec format
changes/<name>/specs/ - Do not invent mapping paths when the related implementation or test files
are not clear; leave mapping completion to
/spec-driven-apply
- YAML frontmatter with
-
Fill tasks.md — write a concrete implementation checklist:
- Use checkboxes for every task
- [ ] - Tasks should be independently completable
- Group under three sections: ,
## Implementation,## Testing## Verification - MUST include at least one lint or validation task and one unit test task appropriate to the project's tech stack
## Testing - Each required testing task MUST name an explicit runnable command such as ,
npm run lint, ornpm run buildnpm test - If the relevant command cannot be determined confidently from repository context, add an open question to instead of guessing
questions.md - Do NOT add an "Update specs" task — the specs/ directory contains the spec artifacts
- Use
-
Fill questions.md — document any open questions or ambiguities:
- For every unclear point (motivation, scope boundaries, technical approach, etc.), add an entry under :
## Open- [ ] Q: <specific question> Context: <why this matters / what depends on the answer> - If everything is clear, leave empty with a note:
## Open<!-- No open questions --> - Do NOT use inline markers in any artifact — questions.md is the single place for all open questions
[NEEDS CLARIFICATION]
- For every unclear point (motivation, scope boundaries, technical approach, etc.), add an entry under
-
Validate artifact format — run:
node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>Treat this as a final structure and format check before presenting the proposal.- If it reports missing artifacts, malformed delta spec sections/headings, or unfilled placeholders you can safely fix, fix them immediately and rerun
verify - If still reports a format or structure problem you cannot confidently repair, stop and report the issue to the user
verify - If the only remaining error is open questions in , treat that as expected at proposal time and surface those questions clearly to the user
questions.md
- If it reports missing artifacts, malformed delta spec sections/headings, or unfilled placeholders you can safely fix, fix them immediately and rerun
-
Hand off — show the user the five files and summarize the scope, key decisions, and any open questions. Do not require a confirmation checkpoint after writing the proposal. Ifhas open questions, make clear that
questions.mdwill surface them as an implementation blocker and require explicit user resolution before coding starts, and mention/spec-driven-applyonly as an optional revision path./spec-driven-modify
Rules
- Do not implement anything — this is planning only
- Keep tasks atomic and verifiable
- Do not ask follow-up questions or require a proposal-stage confirmation checkpoint
- proposal.md describes what and why; design.md describes how; tasks.md is the checklist; questions.md is for open questions
- Document ambiguities in questions.md — never guess at unclear requirements, and never use inline markers
[NEEDS CLARIFICATION] - Do not add a post-proposal confirmation gate once the artifacts are written
- Open questions are allowed at proposal handoff time; leave them in for
questions.mdto surface and block on/spec-driven-apply - Before finishing, rerun until all repairable format issues are fixed; if any non-question error remains, report it to the user
verify - Keep spec-code mappings in frontmatter, not in requirement prose