mcpField
S
spec-driven-auto

spec-driven-auto

github.com/kw12121212Agent workflows137 installsUpdated 26w ago
Repository

About spec-driven-auto

spec-driven-auto runs a complete spec-driven workflow for one change, from proposal through implementation, verification, review, and archiving. It is for developers or coding agents handling a clearly scoped change within a repository, and pauses when questions need user resolution.

Key features

  1. 01Assesses change complexity
  2. 02Creates proposal and change artifacts
  3. 03Implements tasks in order
  4. 04Verifies specs and implementation
  5. 05Reviews and archives changes

Use cases

  1. 01Executing a scoped repository change
  2. 02Creating and applying a change proposal
  3. 03Verifying and archiving completed work

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/kw12121212/auto-spec-driven --skill spec-driven-auto

After installing, type/spec-driven-autoin Claude Code to confirm it loaded.

Details

From the project README

You are running the full spec-driven workflow end-to-end for a single change.

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.

propose: node {{SKILL_DIR}}/scripts/spec-driven.js propose <name>
apply: node {{SKILL_DIR}}/scripts/spec-driven.js apply <name>
verify: node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>
audit-unmapped-spec-evidence: node {{SKILL_DIR}}/scripts/spec-driven.js audit-unmapped-spec-evidence [--implementation <repo-path> ...] [--tests <repo-path> ...]
verify-spec-mappings: node {{SKILL_DIR}}/scripts/spec-driven.js verify-spec-mappings
archive: node {{SKILL_DIR}}/scripts/spec-driven.js archive <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

  1. Load context — rebuild working context from the current files before doing anything:

    • You MUST treat all prior conversational context as stale, unreliable, and non-authoritative.
    • You MUST NOT use prior chat context as a source of truth for requirements, task state, implementation details, or completion status.
    • You MUST rebuild working context from the current change artifacts, relevant base specs, and the current repository state before taking any workflow action.
    • If prior chat context differs from the files or repository state in any way, you MUST discard the prior chat context and follow the files and repository state only.
    • Do not use prior chat context unless it has been explicitly re-validated against the current files and repository state.
  2. Assess complexity — before doing anything else, evaluate the change using a two-tier model:

    • Read .spec-driven/config.yaml for project context
    • Read .spec-driven/specs/INDEX.md and relevant spec files to understand the current system
    • Read the codebase files that the change will likely touch — estimate the number of files, modules, and cross-cutting concerns involved
    • Classify the change into one of two tiers:
      • Green (proceed): clear scope and a concrete definition of done within a single repository, including changes that touch up to 15 modules or packages, modify up to 50 files, involve schema migrations with data transformation, modify existing auth/authz/payment logic, or make cross-cutting changes across multiple subsystems — proceed automatically
      • Red (suggest brainstorm): requires coordinating across multiple services or repositories, scope is vague or open-ended (e.g. "refactor the codebase", "improve performance"), or has no clear definition of done — explain why and suggest running /spec-driven-brainstorm first to converge the idea, then entering /spec-driven-auto to execute the resulting proposal
    • If Red, stop and suggest brainstorm
    • If Green, proceed
  3. Propose — run /spec-driven-propose:

    • Run node {{SKILL_DIR}}/scripts/spec-driven.js propose <name>
    • Fill all artifacts: proposal.md (with Unchanged Behavior), specs/ delta files, design.md, tasks.md (with ## Testing), questions.md (open questions)
    • Show the user a summary: scope, key decisions, task count, unchanged behaviors, and any open questions
    • If questions.md has open questions, list them and stop for user resolution before proceeding — do not continue until every open question is explicitly resolved
    • If there are no open questions, proceed directly to Step 4 without waiting for confirmation
  4. Apply — implement all tasks:

    • Run node {{SKILL_DIR}}/scripts/spec-driven.js apply <name> to show task summary
    • Check questions.md for open - [ ] Q: entries — if any, present each unresolved question using:
      • Question
      • Explanation
      • Impact
      • Recommendation
    • Explanation must clarify why the question is still unresolved after reading the current change artifacts, relevant main specs, and repository state
    • Impact must describe what implementation choice, task, behavior, or unchanged-behavior guarantee depends on the answer
    • Recommendation may suggest a preferred answer, but only as a suggestion
    • After presenting those blocks, ask the user to answer or confirm the decision needed, and stop until the user explicitly resolves every open question
    • You MAY recommend a preferred answer, but only as a suggestion; you MUST NOT treat your own recommendation as a resolved answer or continue implementation until the user explicitly confirms it
    • Work through each - [ ] task in order: read code, implement, verify Unchanged Behavior, mark - [x]
    • For ## Testing tasks: actually run the tests and confirm they pass
    • Run node {{SKILL_DIR}}/scripts/spec-driven.js apply <name> to confirm remaining === 0
  5. Verify — check completeness:

    • Run node {{SKILL_DIR}}/scripts/spec-driven.js verify <name>
    • Then perform the rest of the /spec-driven-verify checks: task completion, open questions, implementation evidence, and spec alignment
    • If the change-local evidence set includes implementation files or directly verifying test files, run node {{SKILL_DIR}}/scripts/spec-driven.js audit-unmapped-spec-evidence [--implementation <repo-path> ...] [--tests <repo-path> ...] as part of this verify pass and treat its current-change blocking findings the same way /spec-driven-verify would
    • Treat script errors plus any CRITICAL findings from those checks as blockers
    • If there are blockers you can safely fix, fix them automatically, then rerun both node {{SKILL_DIR}}/scripts/spec-driven.js verify <name> and the verification pass
    • If any blocker cannot be auto-fixed: stop and ask the user
    • Re-read delta spec files and update them to match what was actually implemented
    • Ensure delta spec mapping frontmatter reflects the implementation and test files actually changed or relied on
  6. Review — check code quality:

    • Read every file changed by this change
    • Review findings must be author-agnostic: do not trust or excuse code just because it was generated or edited earlier in this same auto run
    • Check: readability, security, error handling, performance, best practices, test quality
    • Reuse the verify-phase node {{SKILL_DIR}}/scripts/spec-driven.js audit-unmapped-spec-evidence [--implementation <repo-path> ...] [--tests <repo-path> ...] result unless review fixes changed the relevant implementation or direct test files; only rerun that same command when the reviewed evidence set materially changed
    • MUST FIX issues: fix them automatically, then re-review
    • If MUST FIX issues cannot be auto-fixed: stop and ask the user
    • SHOULD FIX and NITS: fix if straightforward, otherwise note in the final report
  7. Archive — close out the change:

    • Confirm there are no incomplete tasks before archiving
    • List all delta files in specs/ and merge each into the corresponding main spec file
    • If changes/<name>/specs/ is empty, proceed without confirmation — changes without spec impact are valid
    • Update .spec-driven/specs/INDEX.md if new spec files were created
    • Run node {{SKILL_DIR}}/scripts/spec-driven.js verify-spec-mappings after merging mapping frontmatter into main specs
    • Run node {{SKILL_DIR}}/scripts/spec-driven.js archive <name>
    • If .spec-driven/roadmap/ exists, treat any milestone declared status or roadmap index updates performed by the archive command as part of archive closeout
    • Report the final result: what was built, files changed, tests passing, archive location, and any roadmap status changes caused by archive
    • If the user wants to commit and push the completed archived change, offer /spec-driven-ship <name> as the next explicit handoff. Keep that handoff advisory only: do not stage files, inspect push eligibility, enter that workflow, commit, or push unless the user explicitly chooses it.

Rules

  • The context reset in Step 1 is mandatory — never skip it
  • The complexity check in Step 2 is mandatory — never skip it
  • The workflow runs fully automatically — do not pause for confirmation except when open questions in questions.md need user resolution
  • Additional confirmations are required whenever the workflow is blocked by unresolved questions
  • All other steps run automatically unless blocked by an unresolvable issue
  • Follow all config.yaml rules (specs, change, code, test) throughout
  • If anything goes wrong mid-flow, stop and explain — do not silently continue
  • Mark tasks complete one at a time, not in bulk
  • Recommended answers do not count as question resolution without explicit user confirmation
  • Keep implementation and test mappings in frontmatter, not in requirement prose
  • Do not commit or push automatically. Shipping is handled only by the explicit /spec-driven-ship <name> workflow after successful archive closeout.

Comments

Markdown supported