The Right Amount of Spec
Just enough spec. Never too much.
Adaptive ceremony for specification-driven development.
Free and open source. No AI dependency. No backend. No lock-in.
"Kiro generated 16 acceptance criteria for a simple bug fix." -- Observed by Martin Fowler on current SDD tooling
Every SDD tool today applies uniform ceremony regardless of change size. Developers try specification-driven development, hit overhead on trivial changes, and abandon it.
MinSpec solves this by classifying change complexity and applying proportional ceremony. A typo fix gets one sentence. An architecture change gets the full treatment.
Built for developers who ship
MinSpec integrates into your existing workflow. No new tools to learn, no context switching, no overhead on simple changes.
Complexity-Adaptive
Classifies changes into four tiers using git diff analysis and AST inspection. T1 tasks need one sentence of spec. T4 gets full architecture docs.
No AI Dependency
Works with zero AI tools installed. Pure local analysis of your codebase using git history and syntax trees. No API keys, no cloud services.
Offline Core, Opt-in Integrations
The extension binary makes no network calls — no telemetry, no analytics, no accounts, no backend. Three opt-in commands (Park Topic, Quick Triage, Refresh Backlog) shell out to your local gh CLI under your own GitHub auth, and only when you invoke them. If gh isn’t installed they fall back to local files. Your code never leaves your machine.
No Lock-In
Spec files are standard markdown with optional frontmatter. Spec Kit compatible. Switch tools anytime — your specs stay useful.
VS Code Native
Tree view for spec navigation, status bar indicators, command palette integration. Feels like a built-in feature, not a bolted-on tool.
Harness Generation
Generates test harnesses, acceptance criteria, and implementation scaffolds from your specs. Regeneration merges — never overwrites your edits.
Ceremony proportional to complexity
MinSpec classifies every change and selects the right SDD phases. You always have override control.
specify one-linerSkip clarify, plan, constitution
specify requirements listplan approach sentence
specify full requirements + acceptance criteriaclarify required · plan design doc
specify full + cross-system impactclarify + stakeholder reviewplan design + ADR · tasks DAG + milestones
Mostly SDD. A little CDD. A few borrowed habits.
MinSpec is built on Spec-Driven Development as the spine, with a thin layer of Contract-Driven Development for testing discipline. A handful of accepted best practices — ADR, WSJF, GTD-style session scoping — get borrowed where they pay rent. Nothing exotic. No new framework to learn.
SDD
~70%The spine. Constitution → Specify → Clarify → Plan → Tasks → Analyze → Implement.
Source: GitHub Spec Kit (canonical SDD)Tier Classifier
MinSpecT1–T4 complexity scoring decides which phases run. The differentiator no other SDD tool has.
Source: MinSpec's own inventionCDD
~15%Contract-Driven Development layer: T0–T4 test tiers, TypeScript/Zod contracts, file allowlists for agent tasks.
Source: industry CDD practiceADR
borrowArchitecture Decision Records as DR-NNN.md files. Captures the "why" behind technical choices.
WSJF
borrowWeighted Shortest Job First scoring for backlog prioritization. Cost of Delay ÷ Job Duration.
Source: SAFe / Don ReinertsenGTD-style sessions
borrowMandatory scope declaration + topic-drift parking lot → GitHub issues. Keeps work focused.
Source: GTD / focused-work disciplineRCDD
MinSpecRoot-Cause-Driven Debugging. Reproduce → Diagnose → Fix → Harden. Root cause before fix, regression test before merge.
Source: MinSpec's own (DR-003)Tiered Network Consent
orthogonalTier 0 fully offline, Tier 1 delegates to local CLIs, Tier 2 (Pro) opts into network with consent.
Source: MinSpec privacy stance (DR-004)Methodology questions, answered straight
Is MinSpec a Spec Kit clone?
No. MinSpec implements the same SDD methodology that GitHub Spec Kit popularized, but adds an adaptive ceremony layer driven by a T1–T4 complexity classifier. Spec Kit applies the full lifecycle to every change. MinSpec asks: does this trivial fix really need a Plan document?
Spec files are intentionally Spec Kit-compatible — unknown frontmatter fields are ignored by both tools. You can move between them.
What is SDD, in one paragraph?
Spec-Driven Development is the practice of writing the specification before the implementation, then driving the implementation (often by AI agents) from that spec. Canonical SDD has seven phases: constitution → specify → clarify → plan → tasks → analyze → implement. Each phase produces a markdown artifact. The artifacts form a traceable chain from intent to code.
What is CDD and why layer it on top of SDD?
Contract-Driven Development pushes you to write contracts (TypeScript types, Zod schemas, OpenAPI specs) and invariant tests before implementation. SDD tells you what to build. CDD tells you what shape the output must satisfy.
The two compose well: SDD's plan phase is the natural place to write contracts, and CDD's T0 invariant tests give SDD's tasks something concrete to verify against. Spec Kit doesn't include CDD; MinSpec adds it as a thin layer because AI agents need contracts to avoid drift.
Why mix in ADR, WSJF, and GTD instead of staying pure SDD?
Because pure SDD doesn't answer some practical questions:
- ADR answers "why did we choose this approach?" — useful even mid-spec.
- WSJF answers "which spec do I work on next?" — SDD is silent on backlog order.
- GTD-style session scope answers "what counts as drift?" — needed for AI agents that wander.
None of these are full methodologies in MinSpec — they're small, well-known patterns plugged in where SDD has gaps. You can ignore any of them and MinSpec still works.
Does MinSpec replace my agile / kanban / scrum process?
No. MinSpec is a development methodology tool — how you take one change from intent to merged code. It doesn't tell you how to run standups, plan sprints, or estimate stories. The WSJF scoring is for ordering MinSpec's own backlog of specs, not your team's overall workflow.
Why RCDD as a separate lifecycle from SDD?
SDD assumes you're building a feature — you know roughly what you want, you write a spec, you implement. Bug fixes invert this: you don't know what's wrong, you have to find the root cause first, and a written "spec" before diagnosis is just guessing.
RCDD — Root-Cause-Driven Debugging (Reproduce → Diagnose → Fix → Harden) is MinSpec's separate, lighter lifecycle that respects this. Bug work is roughly half of developer time and shouldn't be forced through a feature-shaped process. RCDD's differentiator is the final Harden phase — close the contract or test gap that let the bug in, not just patch the symptom.
Do I need to know all these methodologies to use MinSpec?
No. Open VS Code, install the extension, run MinSpec: Init. The classifier suggests tiers, the lifecycle UI shows which phase you're in, the templates fill in the boilerplate. You'll absorb the underlying SDD/CDD ideas by using them.
This FAQ exists for the curious developer who wants to know what's under the hood — not as required reading.
Can I disable phases or override the tier the classifier picks?
Yes. User override always wins is a hard invariant. The classifier suggests a tier; you click to change it. Phases are never mandatory — MinSpec warns when you skip something the rules say you should keep, but it doesn't block. The methodology is a recommendation engine, not a gate.
Opinionated where it matters
The design constraints that keep MinSpec useful instead of just another tool to configure.
User Override Wins
The classifier suggests a tier. You decide. Escalate or skip phases freely. MinSpec warns but never blocks.
Merge, Never Overwrite
Regenerating harness files preserves your edits. Templates provide structure; your content is sacred.
Standard Formats
Specs are markdown. Tasks are markdown. No proprietary formats, no binary blobs. Works with any editor, any VCS.
We eat our own dog food
With a smile, even. Every shipped feature gets tested on its harshest critic first — the developer himself. This whole project was specified, classified, and shipped using MinSpec itself.
“MinSpec adds the missing layer of rigour that caused my first big AI project to fail — a 346k-line behemoth, >85% unit test coverage, every conceivable integration test, but four days of bug-fixing for every one day of new functionality.” — Paul Harvey, founder
Stop over-specifying trivial changes
Install MinSpec and let the right amount of ceremony happen automatically.
Install from VS Code Marketplace (Coming Soon)