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
| Command | Description |
|---|---|
/build-repo | Process prompt.md and scaffold spec, context, and archive structure |
/refine-spec | Integrate new requirements into the existing spec without a full rebuild |
/validate-setup | Verify 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
- Create
prompt.mdin your repository root and describe your project — goals, technical requirements, preferences, constraints. Voice-to-text input works well here. - Open Claude Code and run:
/build-repo - Claude processes
prompt.md, createsspec/starter.mdandcontext/index.md, updatesCLAUDE.md, and archives the original prompt. - Run
/validate-setupto confirm everything is in place. - 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.