spec-starter

April 30, 2026 · View on GitHub

A Claude Code plugin that implements a spec-driven development workflow. It transforms free-form project descriptions — including those captured via voice/speech-to-text — into structured specification files, context records, and decision logs that Claude Code can reliably parse throughout a project's lifetime.

What it does

The plugin provides three slash commands and one skill that together enforce a clean separation between:

  • Technical specification (spec/) — what to build and how
  • Context (context/) — the user's preferences, constraints, and domain knowledge
  • Decisions (decisions/) — records of significant architectural choices
  • History (iterations/, archive/) — previous spec versions and the original raw prompt

Commands

CommandDescription
/build-repoProcess prompt.md and scaffold spec, context, and archive structure
/refine-specIntegrate new requirements into the existing spec without a full rebuild
/validate-setupVerify all required files and folders are present and populated

Skill

spec-driven-dev — teaches Claude to automatically read from spec/, context/, and CLAUDE.md at the start of each session, respecting versioned specs and context chunking.

Installation

claude plugins install spec-starter@danielrosehill

Usage

Starting a new project

  1. Create prompt.md in your repository root and describe your project — goals, technical requirements, preferences, constraints. Voice-to-text input works well here.
  2. Open Claude Code and run:
    /build-repo
    
  3. Claude processes prompt.md, creates spec/starter.md and context/index.md, updates CLAUDE.md, and archives the original prompt.
  4. Run /validate-setup to confirm everything is in place.
  5. Begin development.

Iterating on the spec

/refine-spec

Provide additional requirements in the conversation. Claude updates the spec in place, or creates a versioned file (spec/v2.md) for substantial changes.

Voice input

All commands handle speech-to-text transcription artefacts gracefully — homophones, misheard technical terms, missing punctuation. When input is ambiguous, Claude asks for clarification rather than guessing.

Repository structure created by this plugin

project-root/
├── .claude/
│   └── commands/       # Your project-specific slash commands
├── spec/
│   └── starter.md      # Generated technical specification
├── context/
│   └── index.md        # User preferences and domain context
├── decisions/          # Architectural decision records
├── iterations/         # Spec version snapshots
├── archive/
│   └── prompt.md       # Original prompt after processing
└── CLAUDE.md           # Project summary (auto-updated by /build-repo)

License

MIT. Copyright (c) 2026 Daniel Rosehill.

Ongoing context maintenance (adding/editing chunks after setup) is intentionally out of scope here — see the claude-rudder plugin for that.