Agent skill · writing content · addyosmani

spec-driven-development

Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when drafting a PRD or requirements document with objectives and scope, or when requirements are unclear, ambiguous, or only exist as a vague idea. Use when a single requirement spans several independently testable capabilities and needs decomposing into a capability map of modules before specifying.

Why this skill is useful

Provides a structured specification template and detailed phases that guide the AI in creating project specs, which it wouldn't reliably generate on its own.

What it needs

About 7k tokens when loaded. Last updated 2026-08-06. 83,053 stars on the source repository.

What this skill does

Spec-Driven Development Overview Write a structured specification before writing any code. The spec is the shared source of truth between you and the human engineer — it defines what we're building, why, and how we'll know it's done. Code without a spec is guessing. When to Use Starting a new project or feature Requirements are ambiguous or incomplete The change touches multiple files or modules You're about to make an architectural decision The task would take more than 30 minutes to implement When NOT to use: Single-line fixes, typo corrections, or changes where requirements are unambiguous and self-contained. The Gated Workflow Spec-driven development has four phases, preceded by a scope check (Phase 0) that activates only when one request bundles several independently testable capabilities. Do not advance to the next phase until the current one is validated. Phase 0: Scope Check Most requests describe one capability. If this one does, skip this phase and go straight to Specify — Phase 0 exists for the exception, not the rule, and it puts no hierarchy on single-capability features. Detection. Decompose before specifying when a single requirement bundles several independently testable capabilities: The requirement names distinct capabilities with their own consumers or data (e.g. identity, billing, notifications, reporting) Acceptance criteria cluster into groups that could ship and be verified separately One capability could be cut or replaced without rewriting the others' requirements Propose a capability map before writing any spec. Small and reviewable — a module table plus a build order, not a project plan: Stable module ids. Kebab-case, chosen once, never renamed mid-initiative. Specs, plans, and downstream commands select work by these ids instead of guessing which spec is active. Dependency direction, no cycles. Arrows point one way. If two modules each need the other, they are one module. Interfaces live at the boundary. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills addyosmani/spec-driven-development

View the source on GitHub

Browse the @skills marketplace