A practitioner methodology for AI-native software engineering where specifications are the primary artifact and code is a generated side effect.
93
Quality
93%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Specifications are the primary artifact. Code is a generated side effect.
This skill teaches agents the full SDD workflow: how to write specifications, how to execute them through a two-loop process with explicit decision gates, and how to capture provenance of every execution.
The specification carries the intent. The prompt is just the trigger. If your prompt needs to explain the work, your spec is deficient.
The human spends cognitive budget on specifications. The agent spends compute on execution. Cognitive budget replaces developer-hours as the primary constraint.
SDD has two loops with nine steps. The first loop is creative work — this is where cognitive budget is spent. The second loop is mechanical — it should be boring.
The plan reveals problems that would cost a full re-execution to fix if caught later.
When the plan reveals a spec deficiency:
When the plan has a bug but the spec is clear:
The whole execution should be three prompts: "create a plan," a brief correction after plan review, and "execute." If it takes more, your spec has holes or your plan review is not catching enough.
A specification must be executable by a fresh agent with no prior conversation context. Test this: can someone who has never seen your project execute from the spec alone?
specs/provenance/<category>/<spec-name>.provenance.md. Overwrite
semantics — each execution replaces the previous record. Use
git log --follow to recover history.State conventions explicitly. Never assume an agent knows a convention. If provenance files should be overwritten not appended, say so. If tools must return error strings not raise exceptions, say so.
Single source of truth — always. If you know two sources of truth is wrong, fix it now. Do not defer unification to a "future spec."
Keep specs focused. If a spec has more than roughly ten changes, it probably wants to be two specs.
See the principles reference for the full set of practitioner-discovered principles with explanations.
Every piece of context an agent loads falls into one of four categories. When the executor is an AI agent, you cannot rely on tribal knowledge — you must make all four types explicit, structured, and machine-readable.
| Type | Definition | Contains |
|---|---|---|
| Intent | What needs to happen | Specifications, briefs, task definitions |
| Method | How to do it well | Skills, guides, frameworks, best practices |
| Brand | What it must look and sound like | Voice, design tokens, style constraints |
| State | What has already happened | Glossaries, continuity tracking, decision logs |
This maps to how anyone approaches work: what am I doing, how should I do it, what are the guardrails, and what has already been done.
The agent is the orchestrator. All four context sources are peers — passive resource providers. No context source calls another. The agent reads the spec, sees "load the X skill," and the agent fetches it. The spec is instructions. The context sources are the filing cabinets. The agent is the person walking between them.
Every spec execution produces a provenance record. Provenance is a side effect of the process, not extra work.
A provenance file documents:
Provenance files are overwritten on re-execution, not appended.
git log --follow on the provenance file gives the full evolution — spec
changes, execution changes, failures and fixes — a narrative arc built into
version control.
Deviations are not failures. Hidden deviations are. If the agent goes off-spec, the provenance file is the place to be honest. Log deviations, do not hide them.
Not everything is a spec. If the human is the entire loop — intent, creation, and validation — a spec adds ceremony, not value.
Ask: "Is there work here that benefits from specification?" If yes, spec it. If the human is the entire creative loop, just do the work. No spec, no provenance. Do not cargo-cult the methodology.
Your entire solution does not need to be SDD. Apply it to the slice that benefits from specification rigour — build pipelines, infrastructure, data contracts, repeatable generation tasks. Ship the rest normally.
See the anti-patterns reference for detailed descriptions. In summary, watch for:
When adopting SDD on an existing codebase:
Velocity compounds. The first spec takes the longest. The third is dramatically faster. Each layer of specification, skill, and structured context reduces the cognitive load for every subsequent task.
See the principles reference for the full set with explanations. The most important:
Install with Tessl CLI
npx tessl i kevin-ryan-io/spec-driven-development