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
A practitioner methodology for AI-native software engineering where specifications — not code — are the primary artifact.
Most AI coding workflows are variations on the same theme: prompt, hope, patch, repeat. When it works, it feels like magic. When it doesn't, you're debugging code you didn't write, can't verify against requirements that were never written down, and burning hours on error recovery instead of building.
Spec-Driven Development (SDD) inverts this. You spend your cognitive budget on specifications — structured documents that capture intent, define scope, and include mandatory verification checks. The agent spends compute on execution. The specification is the artifact. Code is a side effect.
This skill teaches AI coding agents the full SDD methodology: a two-loop workflow with nine steps, an explicit decision gate between planning and execution, four types of structured context, provenance tracking, and a library of practitioner-discovered principles and anti-patterns. It was developed through months of real production use — building an entire book about the methodology using the methodology itself.
This isn't theory. Every principle in this skill was learned by hitting the problem it prevents.
Author: Kevin Ryan — DevOps and Platform Engineering specialist with 30 years of experience delivering for enterprise clients. Currently writing Specification Driven Development: AI Native Software Engineering.
Links:
spec-driven-development/
├── SKILL.md # Core methodology (234 lines)
├── tile.json # Tessl package manifest
├── LICENSE # CC-BY-4.0
└── references/
├── principles.md # 18 practitioner-discovered principles
└── anti-patterns.md # 6 spec failure modes with fixes| File | What it teaches the agent |
|---|---|
| SKILL.md | The two-loop workflow, step 6 decision gate, spec format, four context types, provenance, and when NOT to use SDD |
| references/principles.md | Deep explanations of every principle — "the spec is cheap, execution is expensive", "the bug is always in the spec", "mandatory means mandatory", and 15 more |
| references/anti-patterns.md | How to diagnose and fix broken specs — the novel spec, the implicit spec, the mega-spec, the unverifiable spec, the deferred debt spec, the prompt-dependent spec |
The skill uses progressive disclosure as recommended by the Agent Skills Specification. The name and description frontmatter is loaded at startup for skill discovery (~100 tokens). The full SKILL.md body is loaded when activated (<500 lines). Reference files are loaded only when the agent needs deeper context.
npm install -g @tessl/clitessl loginFrom your project's root directory:
tessl initThis creates a .tessl/ directory and configures your agent. You will be prompted to select your agent platform (Claude Code, Cursor, etc.). Accept the defaults unless you have specific requirements.
From the Tessl Registry:
tessl install kevin-ryan-io/spec-driven-developmentFrom GitHub:
tessl install github:DevOpsKev/spec-driven-development-skillAlternatively, install a specific version from the registry:
tessl install kevin-ryan-io/spec-driven-development@1.1.0The skill is now available to your agent. You can verify by checking:
ls .tessl/tiles/You should see the skill's directory with SKILL.md and the references/ folder.
When new versions are published, update with:
tessl install kevin-ryan-io/spec-driven-developmentThis fetches the latest version automatically.
Once installed, the skill activates automatically when your agent detects relevant context — starting a new feature, structuring a development workflow, or when you explicitly reference spec-driven development.
Include "use spec-driven development" in your prompt:
I need to add user authentication to this project. Use spec-driven development.The agent will follow the SDD workflow:
The most important moment in any SDD execution is step 6 — reviewing the plan. When the agent presents a plan, ask yourself:
If the plan reveals a spec problem, tell the agent to update the spec and regenerate the plan. Do not patch the plan directly. The spec is the artifact.
SDD works best for:
Not everything benefits from specification. Skip SDD when:
If you want to publish your own version of this skill (or fork and customise it), follow these steps.
npm install -g @tessl/clitessl logintessl workspace createFollow the prompts to name your workspace. This becomes your publisher prefix (e.g. kevin-ryan-io/spec-driven-development).
Edit tile.json and replace the workspace placeholder with your workspace name:
{
"name": "kevin-ryan-io/spec-driven-development",
"version": "1.0.0",
"summary": "A practitioner methodology for AI-native software engineering where specifications are the primary artifact and code is a generated side effect.",
"private": false,
"skills": {
"spec-driven-development": {
"path": "SKILL.md"
}
}
}Lint checks the skill's structure and frontmatter against the Agent Skills specification:
tessl skill lint .Fix any errors before proceeding.
The review command scores your skill against Anthropic's best practices for agent consumption:
tessl skill review .This checks description quality, content actionability, progressive disclosure, and conciseness. Address any warnings or suggestions — higher scores mean better discoverability in the Tessl Registry.
Evaluation scenarios test whether the skill actually changes agent behaviour. Generate them automatically:
tessl skill eval generate .This creates an evals/ directory with scenario files. Review and edit these — you are the authority on what success looks like for your skill. Each scenario contains:
task.md — a task the agent should performcriteria.json — what success looks likecapability.txt — which skill capability is being testedtessl skill eval run .This runs agents with and without the skill on your scenarios and scores the results. You will receive a URL to monitor progress and view results in the Tessl web UI.
Publish as private first to test with your own team:
tessl skill publish .By default, skills are published as private — only members of your workspace can install them.
Install your published skill in a test project:
tessl install kevin-ryan-io/spec-driven-developmentRun a real task using SDD to confirm the skill activates correctly and the agent follows the methodology.
Once you are satisfied with the skill's quality:
Tessl will review and contact you about the status. Once approved, republish:
tessl skill publish . --publicWhen you update the skill:
SKILL.md or the reference filestile.json following semantic versioning:
tessl skill lint .tessl skill publish .Users update to the latest version with:
tessl install kevin-ryan-io/spec-driven-developmentThis skill is a companion to Specification Driven Development: AI Native Software Engineering by Kevin Ryan.
The book covers the full methodology in depth — the history, the theory, the practice, case studies, and the emerging ecosystem of spec-driven tools. The skill is the machine-readable distillation; the book is the human-readable explanation.
The book itself was built using SDD. The repository that produces it demonstrates the methodology through visible infrastructure: specifications, provenance files, MCP servers, and a CI/CD pipeline that generates multiple formats from the same source. The commit hash on the repository matches the commit hash on the book's copyright page. Full provenance from source to artifact, verifiable by anyone.
This work is licensed under Creative Commons Attribution 4.0 International (CC-BY-4.0).
You are free to share and adapt this material for any purpose, including commercially, as long as you give appropriate attribution.
Install with Tessl CLI
npx tessl i kevin-ryan-io/spec-driven-development