User Alignment and Agent-Ready PRDs
tryproduck/produck-skills
Turns a vague feature request into a written spec with scope, phases, acceptance criteria and do-not-do limits that a coding agent can follow without guessing.
Writes a structured specification before any code, moving through gated specify, plan, tasks and implement phases, with an optional capability map for multi-part requests.
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install addyosmani/agent-skills spec-driven-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spec-driven-development .claude/skills/spec-driven-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .claude/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install addyosmani/agent-skills spec-driven-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spec-driven-development .agents/skills/spec-driven-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .agents/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install addyosmani/agent-skills spec-driven-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spec-driven-development .cursor/skills/spec-driven-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .cursor/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/addyosmani/agent-skills.git --path skills/spec-driven-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install addyosmani/agent-skills spec-driven-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spec-driven-development .gemini/skills/spec-driven-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .gemini/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install addyosmani/agent-skills spec-driven-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spec-driven-development .github/skills/spec-driven-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .github/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add addyosmani/agent-skills --skill spec-driven-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install addyosmani/agent-skills spec-driven-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/addyosmani/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spec-driven-development .opencode/skills/spec-driven-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "spec-driven-development" agent skill from https://github.com/addyosmani/agent-skills/tree/main/skills/spec-driven-development into .opencode/skills/spec-driven-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
spec-driven-developmentWrites a structured specification before any code, moving through gated specify, plan, tasks and implement phases, with an optional capability map for multi-part requests.
This skill holds that code without a spec is guessing: the specification is the shared source of truth between the agent and the engineer, covering what is being built, why, and how completion will be judged. It applies to new projects or features, ambiguous requirements, changes across several files or modules, architectural decisions and any task that would take more than 30 minutes, and it skips single-line fixes, typo corrections and changes with unambiguous requirements.
Work moves through four gated phases, specify, plan, tasks and implement, and no phase starts until the previous one is validated. A Phase 0 scope check runs only when one request bundles several independently testable capabilities, such as identity, billing and notifications. In that case the agent first proposes a small capability map: a table of modules with their responsibility and dependencies plus a build order, using stable kebab-case module ids, one-way dependencies with no cycles, and interfaces defined in the provider module's spec.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1401c8b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Spec-Driven Development loads about 3.2k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 1,450 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from addyosmani/agent-skills at commit 1401c8b, republished under its MIT licence (© addyosmani). 1,450 words, ~3,249 tokens.
.claude/skills/spec-driven-development/SKILL.md (or your agent's skills folder).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, 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.
SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT
│ │ │ │
▼ ▼ ▼ ▼
Human Human Human Human
reviews reviews reviews reviewsMost 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:
Propose a capability map before writing any spec. Small and reviewable — a module table plus a build order, not a project plan:
# Capability Map: [Initiative Name]
| Module id | Responsibility | Depends on |
|---|---|---|
| identity | Accounts, sessions, SSO | — |
| billing | Plans, invoices, payments | identity |
| notifications | Email and webhook fan-out | identity |
| reporting | Usage dashboards | billing, notifications |
Build order: identity → billing, notifications → reportingbilling depends on identity; the contract between them belongs in the provider module's spec (see api-and-interface-design for designing it).The map is gated like every phase. The human reviews module boundaries, dependency direction, and build order before any module spec is written. Getting the map wrong is expensive; reviewing ten lines is not.
Then recurse per module. Run Specify → Plan → Tasks → Implement for each module in dependency order. Each module gets its own spec, scoped to that module's objective, boundaries, and success criteria. Save the approved map at the project root and each module's spec alongside it, named by module id (SPEC-identity.md, SPEC-billing.md) — the map, not filename guessing, is the index of what exists.
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 devProject 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/ → DocumentationCode 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]External spec tools: This workflow is format-agnostic. If the project
already uses OpenSpec or another specification system, keep that system's
artifact format and storage conventions instead of creating a duplicate
SPEC.md. This skill owns the clarification, content, and approval gates; the
external tool owns how the approved spec is represented.
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.
Stop after writing the spec (CRITICAL). Once the spec is saved:
planning-and-task-breakdown, or write code in this turn. Planning starts only after the human approves the spec in a later turn.With the validated spec, generate a technical implementation plan:
Follow
planning-and-task-breakdownfor the dependency-graph mapping and vertical-slicing mechanics behind these steps; it is the canonical source. The bullets above are a lightweight summary; if they ever diverge,planning-and-task-breakdowntakes precedence.Output convention: Save the plan to
tasks/plan.mdand record the task list in the task list target defined byplanning-and-task-breakdown(defaulttasks/todo.md; projects may designate an external tracker instead). Createtasks/if it does not exist. Downstream commands (/build, etc.) expect these defaults.
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:
Follow
planning-and-task-breakdownfor the full task-sizing and dependency-ordering mechanics; it is the canonical source. The template below is a lightweight inline form; if they ever diverge,planning-and-task-breakdowntakes precedence.
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 skills/incremental-implementation/SKILL.md (incremental-implementation) and skills/test-driven-development/SKILL.md (test-driven-development). Use skills/context-engineering/SKILL.md (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. |
| "It's one big feature; splitting it is overhead" | If acceptance criteria cluster into independently testable groups, a monolithic spec forces every downstream task to reason over the whole contract. A ten-line capability map is the cheap alternative. |
| "I'll decompose during planning" | Planning slices tasks within a spec. By then the oversized artifact already exists — module boundaries and dependency direction must be decided before the spec is written, not after. |
Before proceeding to implementation, confirm:
© addyosmani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/spec-driven-development of addyosmani/agent-skills.
Open the folder on GitHubat commit 1401c8b
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in addyosmani/agent-skills, which our catalogue first saw on October 7, 2026.
Spec-Driven Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Spec-Driven Development this skilladdyosmani/agent-skills | 102k | 1 repos | ~3.2k | Automated safety check: Pass | MIT | |
| User Alignment and Agent-Ready PRDstryproduck/produck-skills | 511 | — | ~5.3k | Automated safety check: Pass | Apache-2.0 | |
| Product Requirements Documentowainlewis/blueprint | 412 | — | ~766 | Automated safety check: Pass | MIT | |
| MoAI SPEC Workflowmodu-ai/moai-adk | 1.2k | — | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Ss SpecSerial-Studio/Serial-Studio | 7.2k | — | ~766 | Automated safety check: Pass | Custom licence |
tryproduck/produck-skills
Turns a vague feature request into a written spec with scope, phases, acceptance criteria and do-not-do limits that a coding agent can follow without guessing.
owainlewis/blueprint
Creates or updates a long-running REQUIREMENTS.md that defines a system's users, outcomes, capabilities, business rules, scope and acceptance conditions.
modu-ai/moai-adk
Manages SPEC documents for MoAI-ADK development, with GEARS or EARS requirement notation, acceptance criteria and a link into the Plan-Run-Sync workflow.
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Serial-Studio/Serial-Studio
Phase 1 of Serial Studio's spec-driven workflow: capture WHAT a feature must do and WHY, with no implementation detail.
alirezarezvani/claude-skills
Reverse-engineers a frontend, backend or fullstack codebase into a product requirements document with per-page docs, an enum dictionary and an API inventory.
addyosmani/agent-skills
Guides a conversation that takes a vague idea through divergent and convergent thinking and ends in a markdown one-pager covering scope and assumptions.
addyosmani/agent-skills
Asks one question at a time, each with a best guess attached, until the agent is about 95 percent sure what you really want, before any plan, spec or code.
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
addyosmani/agent-skills
Connects an agent to a real Chrome instance through the Chrome DevTools MCP server, so it can inspect the DOM, read console errors and profile performance directly.
addyosmani/agent-skills
Records a project's quality bar in CONSTRAINTS.md and watches diffs for signs an agent quietly weakened it, such as suppressions, skipped tests or lowered thresholds.
addyosmani/agent-skills
Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.
Categories
Writes a structured specification before any code, moving through gated specify, plan, tasks and implement phases, with an optional capability map for multi-part requests. This skill holds that code without a spec is guessing: the specification is the shared source of truth between the agent and the engineer, covering what is being built, why, and how completion will be judged. It applies to new projects or features, ambiguous requirements, changes across several files or modules, architectural decisions and any task that would take more than 30 minutes, and it skips single-line fixes, typo corrections and changes with unambiguous requirements.
Spec-Driven Development fits situations like: starting a new feature when no specification exists; turning a vague idea into a PRD or requirements document; splitting a request that spans several capabilities into a module map.
Run `npx skills add addyosmani/agent-skills --skill spec-driven-development -a claude-code`. Or copy the skill folder (skills/spec-driven-development in addyosmani/agent-skills) into .claude/skills/spec-driven-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add addyosmani/agent-skills --skill spec-driven-development -a codex`. Or copy the skill folder (skills/spec-driven-development in addyosmani/agent-skills) into .agents/skills/spec-driven-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add addyosmani/agent-skills --skill spec-driven-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-driven-development, .gemini/skills/spec-driven-development, .github/skills/spec-driven-development and .opencode/skills/spec-driven-development in your project.
SKILL.md names no scripts, command-line tools or credentials: Spec-Driven Development is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Spec-Driven Development is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Spec-Driven Development: User Alignment and Agent-Ready PRDs (tryproduck/produck-skills, 511 stars), Product Requirements Document (owainlewis/blueprint, 412 stars), MoAI SPEC Workflow (modu-ai/moai-adk, 1.2k stars) and CCPM Project Management (automazeio/ccpm, 8.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
addyosmani (a GitHub user) maintains it in addyosmani/agent-skills, which has 102,135 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 3, 2026.
Source: addyosmani/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.