Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/mrtblount/spec-to-ship/spec-driven-devnpx skills add mrtblount/Spec-to-Ship --skill spec-driven-devgit clone --depth 1 https://github.com/mrtblount/Spec-to-ShipWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mrtblount/spec-to-ship/spec-driven-dev)<a href="https://agentmods.dev/skills/mrtblount/spec-to-ship/spec-driven-dev"><img src="https://agentmods.dev/badge/skills/mrtblount/spec-to-ship/spec-driven-dev.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00237 | $0.06538 |
| Opus 5 | $0.00118 | $0.03269 |
| Sonnet 5 | $0.00047 | $0.01308 |
| Haiku 4.5 | $0.00024 | $0.00654 |
Grade A, and why
spec-driven-dev scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 665 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Core Philosophy: Code is a lossy projection of specifications. Intent, constraints, invariants, and architectural decisions must be captured in the spec BEFORE any code is written. The spec is the product; the code is a byproduct.
Sub-Skills
| Component | Purpose |
|---|---|
| retrofit | Pre-Phase 1: Scan existing project, build BASELINE.md for context |
| specifier | Phase 1: Gather requirements, business logic, user journeys → SPEC.md |
| architect | Phase 2: Technical architecture, data models, API contracts → PLAN.md |
| decomposer | Phase 3: Break plan into atomic, implementable tasks → TASKS.md |
| toolchain | Post-spec: Discover, install, and configure required tools/MCPs |
| sync | Post-spec: Push tasks to GitHub Projects, SPEC.md to Linear, configure sync |
Dependency Chain:
- Greenfield: specifier → architect → decomposer → toolchain → sync → implement
- Existing project: retrofit → specifier → architect → decomposer → toolchain → sync → implement
The Solution: Front-load ALL thinking into structured specification documents. When the spec is comprehensive and LLM-optimized, implementation becomes mechanical execution — one-shot or close to it.
When FULL SDD is Required:
- New projects (any greenfield work)
- Major features (touching 5+ files or introducing new architectural patterns)
- Significant refactors (changing data models, API contracts, or system boundaries)
- Any work the user explicitly wants to one-shot
When LIGHT SDD Suffices:
- Medium features (3-5 files, clear scope, known patterns)
- Features within an existing well-spec'd project
When NO SDD is Needed:
- Bug fixes (unless systemic)
- Small features (1-3 files, clear scope)
- Documentation, configuration, or styling changes
Maturity Levels (for user awareness, not skill configuration):
- Spec-first: Spec written, used to guide implementation, then archived
- Spec-anchored: Spec kept alive for ongoing evolution and maintenance
- Spec-as-source: Spec is the only human-edited artifact; code is fully generated
STEP 1: Detect project state
CHECK for existing project indicators:
- package.json, requirements.txt, Cargo.toml, go.mod (package manifest)
- .git directory with history
- src/ or app/ directory with code
- CLAUDE.md or build log
- specs/BASELINE.md (already retrofitted)
IF existing project detected AND specs/BASELINE.md does NOT exist:
project_state = EXISTING_NO_BASELINE
ELIF existing project detected AND specs/BASELINE.md EXISTS:
project_state = EXISTING_WITH_BASELINE
ELSE:
project_state = GREENFIELD
STEP 2: Determine scope
IF request matches ANY:
- Keywords: "new project", "build me", "create an app/site/tool/platform"
- Keywords: "I want to build", "let's build", "start a new"
- Keywords: "new feature", "add a feature", "build a feature", "implement"
- Keywords: "I want to add", "add X to", "build X for", "create X in"
- Keywords: "spec this", "write a spec", "one-shot this"
- Keywords: "deploy SDD", "add spec-driven", "retrofit", "baseline this"
- Estimated scope: > 5 files or > 500 lines of new code
- Introduces new data models, APIs, or architectural patterns
- User explicitly requests SDD
- User describes a feature that sounds non-trivial (multiple components,
database changes, new API endpoints, new pages/routes)
THEN:
scope = FULL_SDD
ELIF request is medium scope (3-5 files, clear patterns):
scope = LIGHT_SDD
RESPOND:
"This is medium-sized. I'll do a lightweight spec — just enough to
one-shot it cleanly."
Execute abbreviated flow:
- Ask 3-5 clarifying questions about scope, constraints, edge cases
- Produce mini-spec inline (not a separate file)
- Proceed to implementation
EXIT
ELSE:
scope = NO_SDD
Proceed with normal implementation
EXIT
STEP 3: Route based on project state + scope
IF scope == FULL_SDD AND project_state == EXISTING_NO_BASELINE:
RESPOND:
"This is an existing project without a baseline. Before we spec new work,
I need to understand what's already built.
**I'll run the retrofit process first:**
- Scan your codebase, build log, git history, and config
- Create a BASELINE.md capturing your current architecture and state
- Then we'll flow into the normal spec process for your new feature
Let me start scanning."
GOTO Phase 0.5 (Retrofit)
ELIF scope == FULL_SDD AND project_state == EXISTING_WITH_BASELINE:
RESPOND:
"I see this project already has a baseline. I'll reference it for context
as we spec your new work.
**4 Phases:**
1. **Specify** — What are we building and why?
2. **Plan** — How will it be built technically?
3. **Tasks** — What are the atomic units of work?
4. **Implement** — Execute against the spec.
Let's start with Phase 1."
READ specs/BASELINE.md into context
GOTO Phase 1
ELIF scope == FULL_SDD AND project_state == GREENFIELD:
RESPOND:
"This needs a spec before we build. I'm going to walk you through
spec-driven development — this is where the real work happens.
Once the spec is solid, implementation should be close to one-shot.
**4 Phases:**
1. **Specify** — What are we building and why?
2. **Plan** — How will it be built technically?
3. **Tasks** — What are the atomic units of work?
4. **Implement** — Execute against the spec.
Let's start with Phase 1."
GOTO Phase 1
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- README.md 4.4 KB
- references/plan-template.md 5.5 KB
- references/spec-template.md 3.7 KB
- references/tasks-template.md 4.3 KB
- references/validation-checklist.md 5.6 KB
- sub-skills/architect/SKILL.md 8.8 KB
- sub-skills/decomposer/SKILL.md 6.3 KB
- sub-skills/retrofit/SKILL.md 11 KB
- sub-skills/specifier/SKILL.md 7.1 KB
- sub-skills/sync/SKILL.md 7.1 KB
- sub-skills/toolchain/SKILL.md 9.7 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 665 lines · 237 tokens per session scan A 60d625b14426
spec-driven-dev is a skill published in the GitHub repository mrtblount/Spec-to-Ship (2 stars, last pushed 1mo ago), licensed MIT. It adds 237 tokens to every session and 6,538 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.
chat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…