Creates specs before coding to clarify requirements and ensure successful project execution.
Create detailed user stories, acceptance criteria, and feature specs
Example: Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example: Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example: Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example: Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Submit your Claude Code skill and start earning
epx add addyosmani/agent-skills --skill spec-driven-developmentCompatible with
Supported agents
| name | spec-driven-development |
| description | Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when requirements are unclear, ambiguous, or only exist as a vague idea. |
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 NOT to use: Single-line fixes, typo corrections, or changes where requirements are unambiguous and self-contained.
Spec-driven development has four phases. Do not advance to the next phase until the current one is validated.
SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT
│ │ │ │
▼ ▼ ▼ ▼
Human Human Human Human
reviews reviews reviews reviews
Start with a high-level vision. Ask the human clarifying questions until requirements are concrete.
Surface assumptions immediately. Before writing any spec content, list what you're assuming:
ASSUMPTIONS I'M MAKING:
1. This is a web application (not native mobile)
2. Authentication uses session-based cookies (not JWT)
3. The database is PostgreSQL (based on existing Prisma schema)
4. We're targeting modern browsers only (no IE11)
→ Correct me now or I'll proceed with these.
Don't silently fill in ambiguous requirements. The spec's entire purpose is to surface misunderstandings before code gets written — assumptions are the most dangerous form of misunderstanding.
Write a spec document covering these six core areas:
Objective — What are we building and why? Who is the user? What does success look like?
Commands — Full executable commands with flags, not just tool names.
Build: npm run build
Test: npm test -- --coverage
Lint: npm run lint --fix
Dev: npm run dev
Project Structure — Where source code lives, where tests go, where docs belong.
src/ → Application source code
src/components → React components
src/lib → Shared utilities
tests/ → Unit and integration tests
e2e/ → End-to-end tests
docs/ → Documentation
Code Style — One real code snippet showing your style beats three paragraphs describing it. Include naming conventions, formatting rules, and examples of good output.
Testing Strategy — What framework, where tests live, coverage expectations, which test levels for which concerns.
Boundaries — Three-tier system:
Spec template:
# Spec: [Project/Feature Name]
## Objective
[What we're building and why. User stories or acceptance criteria.]
## Tech Stack
[Framework, language, key dependencies with versions]
## Commands
[Build, test, lint, dev — full commands]
## Project Structure
[Directory layout with descriptions]
## Code Style
[Example snippet + key conventions]
## Testing Strategy
[Framework, test locations, coverage requirements, test levels]
## Boundaries
- Always: [...]
- Ask first: [...]
- Never: [...]
## Success Criteria
[How we'll know this is done — specific, testable conditions]
## Open Questions
[Anything unresolved that needs human input]
Reframe instructions as success criteria. When receiving vague requirements, translate them into concrete conditions:
REQUIREMENT: "Make the dashboard faster"
REFRAMED SUCCESS CRITERIA:
- Dashboard LCP < 2.5s on 4G connection
- Initial data load completes in < 500ms
- No layout shift during load (CLS < 0.1)
→ Are these the right targets?
This lets you loop, retry, and problem-solve toward a clear goal rather than guessing what "faster" means.
With the validated spec, generate a technical implementation plan:
The plan should be reviewable: the human should be able to read it and say "yes, that's the right approach" or "no, change X."
Break the plan into discrete, implementable tasks:
Task template:
- [ ] Task: [Description]
- Acceptance: [What must be true when done]
- Verify: [How to confirm — test command, build, manual check]
- Files: [Which files will be touched]
Execute tasks one at a time following incremental-implementation and test-driven-development skills. Use context-engineering to load the right spec sections and source files at each step rather than flooding the agent with the entire spec.
The spec is a living document, not a one-time artifact:
| Rationalization | Reality |
|---|---|
| "This is simple, I don't need a spec" | Simple tasks don't need long specs, but they still need acceptance criteria. A two-line spec is fine. |
| "I'll write the spec after I code it" | That's documentation, not specification. The spec's value is in forcing clarity before code. |
| "The spec will slow us down" | A 15-minute spec prevents hours of rework. Waterfall in 15 minutes beats debugging in 15 hours. |
| "Requirements will change anyway" | That's why the spec is a living document. An outdated spec is still better than no spec. |
| "The user knows what they want" | Even clear requests have implicit assumptions. The spec surfaces those assumptions. |
Before proceeding to implementation, confirm:
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionspec-driven-developmentExecute the skills CLI command in your project's root directory to begin installation:
epx add addyosmani/agent-skills --skill spec-driven-developmentFetches spec-driven-development from OWNER/REPO and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/spec-driven-development
Restart Cursor to activate spec-driven-development. Access via /spec-driven-developmentin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Time estimate: 30-60 minutes to see productivity improvements
Prerequisites
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
screenshot
OWNER/REPO · productivity · same repo
frontend-ui-engineering
OWNER/REPO · design · same repo
macos-development
rshankras/claude-code-apple-skills · Productivity · tag: development
pwa-development
jwynia/agent-skills · Productivity · tag: development
tauri-development
mindrally/skills · Productivity · tag: development
rabbitmq-development
mindrally/skills · Productivity · tag: development
Keeps context tight: spec-driven-development is the kind of skill you can hand to a new teammate without a long onboarding doc.
I recommend spec-driven-development for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Registry listing for spec-driven-development matched our evaluation — installs cleanly and behaves as described in the markdown.
spec-driven-development reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in spec-driven-development — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
spec-driven-development has been reliable in day-to-day use. Documentation quality is above average for community skills.
Solid pick for teams standardizing on skills: spec-driven-development is focused, and the summary matches what you get after install.
spec-driven-development is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
spec-driven-development has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: spec-driven-development is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 28