Production-grade engineering skills for AI coding agents. Skills encode the workflows, quality gates, and best practices that senior engineers use when building software.
> /plugin marketplace add addyosmani/agent-skills> /plugin install agent-skills@addy-agent-skills
Repo: addyosmani/agent-skills
What's inside
Production-grade engineering skills for AI coding agents.
Skills encode the workflows, quality gates, and best practices that senior engineers use when building software. These ones are packaged so AI agents follow them consistently across every phase of development.

DEFINE PLAN BUILD VERIFY REVIEW SHIP
ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ
β Idea β ββββΆ β Spec β ββββΆ β Code β ββββΆ β Test β ββββΆ β QA β ββββΆ β Go β
βRefineβ β PRD β β Impl β βDebug β β Gate β β Live β
ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ
/spec /plan /build /test /review /ship
8 slash commands that map to the development lifecycle. Each one activates the right skills automatically.
| What you're doing | Command | Key principle |
|---|---|---|
| Define what to build | /spec | Spec before code |
| Plan how to build it | /plan | Small, atomic tasks |
| Build incrementally | /build | One slice at a time |
| Prove it works | /test | Tests are proof |
| Review before merge | /review | Improve code health |
| Audit web performance | /webperf | Measure before you optimize |
| Simplify the code | /code-simplify | Clarity over cleverness |
| Ship to production | /ship | Faster is safer |
Want fewer manual steps once the spec exists? /build auto generates the plan and implements every task in a single approved pass β you approve the plan once, then it runs autonomously. It removes the human stepping between tasks, not the verification: every task is still test-driven and committed individually, and it pauses on failures or risky steps.
Skills also activate automatically based on what you're doing β designing an API triggers api-and-interface-design, building UI triggers frontend-ui-engineering, and so on.
Fastest path β any agent, one command. The open skills CLI installs into 70+ agents (Claude Code, Cursor, Codex, Copilot, Cline, and more):
npx skills add addyosmani/agent-skills # install all 24 skills
npx skills add addyosmani/agent-skills --list # browse before installing
Or grab individual skills:
npx skills add addyosmani/agent-skills --skill code-review-and-quality # five-axis review before merge
npx skills add addyosmani/agent-skills --skill interview-me # requirements interrogation, one question at a time
npx skills add addyosmani/agent-skills --skill test-driven-development # red-green-refactor, enforced
Installing one skill? A per-skill
npxinstall copies onlyskills/<name>/, not the repo-levelreferences/directory. The skill still works, but paths to supplementary shared checklists are unavailable. Use a whole-repo integration, clone the repository, or copy the needed checklist into areferences/directory inside the installed skill. This portability gap is tracked in #361.
Prefer a native integration? Pick your tool below.
Marketplace install:
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
SSH errors? The marketplace clones repos via SSH. If you don't have SSH keys set up on GitHub, either add your SSH key or use the full HTTPS URL to force HTTPS cloning during the marketplace-add step:
/plugin marketplace add https://github.com/addyosmani/agent-skills.git /plugin install agent-skills@addy-agent-skillsIf
/plugin installstill fails withgit@github.com: Permission denied (publickey)on Windows or macOS, the recommended workaround is to configure Git once to rewrite GitHub SSH URLs to HTTPS for subprocess clones:git config --global url."https://github.com/".insteadOf git@github.com:
Local / development:
git clone https://github.com/addyosmani/agent-skills.git
claude --plugin-dir /path/to/agent-skills
Put workflow skills under .cursor/skills/ (sync from agent-skills/skills/) and short policies in .cursor/rules/*.mdc β do not paste full skills into rules. See docs/cursor-setup.md.
Install as a native plugin for skills, subagents, and slash commands. See docs/antigravity-setup.md.
Install from the repo:
agy plugin install https://github.com/addyosmani/agent-skills.git
Install from a local clone:
git clone https://github.com/addyosmani/agent-skills.git
agy plugin install ./agent-skills
Install as native skills for auto-discovery, or add to GEMINI.md for persistent context. See docs/gemini-cli-setup.md.
Install from the repo:
gemini skills install https://github.com/addyosmani/agent-skills.git --path skills
Install from a local clone:
gemini skills install ./agent-skills/skills/
Add skill contents to your Windsurf rules configuration. See docs/windsurf-setup.md.
Uses agent-driven skill execution via AGENTS.md and the skill tool.
Use agent definitions from agents/ as Copilot personas and skill content in .github/copilot-instructions.md. See docs/copilot-setup.md.
Install as a native Codex plugin (Codex CLI v0.122+):
codex plugin marketplace add addyosmani/agent-skills
codex plugin add agent-skills@agent-skills
The first command registers the marketplace; the second installs the plugin. Codex reads the root skills/ directory directly through .codex-plugin/plugin.json. Once installed, invoke skills in chat using @ (e.g., @spec-driven-development). See docs/codex-setup.md for local installation and troubleshooting.
Install natively with the built-in cmd skills command. Command Code clones the repo, discovers every SKILL.md, and installs into .commandcode/skills/:
cmd skills add addyosmani/agent-skills # pick skills to install (project)
cmd skills add addyosmani/agent-skills --global # install for all projects (~/.commandcode/skills/)
cmd skills add addyosmani/agent-skills -s spec-driven-development # install a specific skill
Installed skills show up in the TUI slash menu, e.g. /spec-driven-development. See docs/commandcode-setup.md.
Skills are plain Markdown - they work with any agent that accepts system prompts or instruction files. See docs/getting-started.md.
Already installed? How you roll the pack out depends on your codebase. The Adoption Guide covers two paths: the full lifecycle from day one for a greenfield project, or an incremental, verification-first rollout for an established codebase.
The commands above are entry points. The pack includes 24 skills total β 23 lifecycle skills plus the using-agent-skills meta-skill. Each skill is a structured workflow with steps, verification gates, and anti-rationalization tables. You can also reference any skill directly.
| Skill | What It Does | Use When |
|---|---|---|
| using-agent-skills | Maps incoming work to the right skill workflow and defines shared operating rules | Starting a session or deciding which skill applies |
| Skill | What It Does | Use When |
|---|---|---|
| interview-me | One-question-at-a-time interview that extracts what the user actually wants instead of what they think they should want, until ~95% confidence | The ask is underspecified, or the user invokes "interview me" / "grill me" |
| idea-refine | Structured divergent/convergent thinking to turn vague ideas into concrete proposals | You have a rough concept that needs exploration |
| spec-driven-development | Write a PRD covering objectives, commands, structure, code style, testing, and boundaries before any code | Starting a new project, feature, or significant change |
| Skill | What It Does | Use When |
|---|---|---|
| planning-and-task-breakdown | Decompose specs into small, verifiable tasks with acceptance criteria and dependency ordering | You have a spec and need implementable units |
| Skill | What It Does | Use When |
|---|---|---|
| incremental-implementation | Thin vertical slices - implement, test, verify, commit. Feature flags, safe defaults, rollback-friendly changes | Any change touching more than one file |
| test-driven-development | Red-Green-Refactor, test pyramid (80/15/5), test sizes, DAMP over DRY, Beyonce Rule, browser testing | Implementing logic, fixing bugs, or changing behavior |
| context-engineering | Feed agents the right information at the right time - rules files, context packing, MCP integrations | Starting a session, switching tasks, or when output quality drops |
| source-driven-development | Ground every framework decision in official documentation - verify, cite sources, flag what's unverified | You want authoritative, source-cited code for any framework or library |
| doubt-driven-development | Adversarial fresh-context review of every non-trivial decision in-flight - CLAIM β EXTRACT β DOUBT β RECONCILE β STOP, with optional user-authorized cross-model escalation | Stakes are high (production, security, irreversible), working in unfamiliar code, or a confident output is cheaper to verify now than to debug later |
| frontend-ui-engineering | Component architecture, design systems, state management, responsive design, WCAG 2.1 AA accessibility | Building or modifying user-facing interfaces |
| api-and-interface-design | Contract-first design, Hyrum's Law, One-Version Rule, error semantics, boundary validation | Designing APIs, module boundaries, or public interfaces |
| Skill | What It Does | Use When |
|---|---|---|
| browser-testing-with-devtools | Chrome DevTools MCP for live runtime data - DOM inspection, console logs, network traces, performance profiling | Building or debugging anything that runs in a browser |
| debugging-and-error-recovery | Five-step triage: reproduce, localize, reduce, fix, guard. Stop-the-line rule, safe fallbacks | Tests fail, builds break, or behavior is unexpected |
| Skill | What It Does | Use When |
|---|---|---|
| code-review-and-quality | Five-axis review, change sizing (~100 lines), severity labels (Nit/Optional/FYI), review speed norms, splitting strategies | Before merging any change |
| code-simplification | Chesterton's Fence, Rule of 500, reduce complexity while preserving exact behavior | Code works but is harder to read or maintain than it should be |
| security-and-hardening | OWASP Top 10 prevention, auth patterns, secrets management, dependency auditing, three-tier boundary system | Handling user input, auth, data storage, or external integrations |
| performance-optimization | Measure-first approach - Core Web Vitals targets, profiling workflows, bundle analysis, anti-pattern detection | Performance requirements exist or you suspect regressions |
| Skill | What It Does | Use When |
|---|---|---|
| git-workflow-and-versioning | Trunk-based development, atomic commits, change sizing (~100 lines), the commit-as-save-point pattern | Making any code change (always) |
| ci-cd-and-automation | Shift Left, Faster is Safer, feature flags, quality gate pipelines, failure feedback loops | Setting up or modifying build and deploy pipelines |
| deprecation-and-migration | Code-as-liability mindset, compulsory vs advisory deprecation, migration patterns, zombie code removal | Removing old systems, migrating users, or sunsetting features |
| documentation-and-adrs | Architecture Decision Records, API docs, inline documentation standards - document the why | Making architectural decisions, changing APIs, or shipping features |
| observability-and-instrumentation | Structured logging, RED metrics, OpenTelemetry tracing, symptom-based alerting - instrument as you build | Adding telemetry, or shipping anything that runs in production |
| shipping-and-launch | Pre-launch checklists, feature flag lifecycle, staged rollouts, rollback procedures, monitoring setup | Preparing to deploy to production |
Pre-configured specialist personas for targeted reviews:
| Agent | Role | Perspective |
|---|---|---|
| code-reviewer | Senior Staff Engineer | Five-axis code review with "would a staff engineer approve this?" standard |
| test-engineer | QA Specialist | Test strategy, coverage analysis, and the Prove-It pattern |
| security-auditor | Security Engineer | Vulnerability detection, threat modeling, OWASP assessment |
| web-performance-auditor | Web Performance Engineer | Core Web Vitals audit with Quick/Deep modes and a metric-honesty rule; run it via /webperf |
See docs/agents.md for the decision matrix, orchestration rules, and how personas compose with skills and slash commands.
Quick-reference material that skills pull in when needed:
| Reference | Covers |
|---|---|
| definition-of-done.md | Project-wide standing bar every change clears, contrasted with per-task acceptance criteria |
| testing-patterns.md | Test structure, naming, mocking, React/API/E2E examples, anti-patterns (JavaScript/TypeScript) |
| security-checklist.md | Pre-commit checks, auth, input validation, headers, CORS, OWASP Top 10 |
| performance-checklist.md | Core Web Vitals targets, frontend/backend checklists, measurement commands |
| accessibility-checklist.md | Keyboard nav, screen readers, visual design, ARIA, testing tools |
| observability-checklist.md | On-call questions, structured logging, RED/USE metrics, tracing, symptom-based alerting, pre-launch gate |
| orchestration-patterns.md | Endorsed multi-persona orchestration patterns, anti-patterns, and the "personas don't invoke personas" rule |
Every skill follows a consistent anatomy:
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β SKILL.md β
β β
β ββ Frontmatter ββββββββββββββββββββββββββββββ β
β β name: lowercase-hyphen-name β β
β β description: Guides agents through [task].β β
β β Use whenβ¦ β β
β βββββββββββββββββββββββββββββββββββββββββββββ β
β Overview β What this skill does β
β When to Use β Triggering conditions β
β Process β Step-by-step workflow β
β Rationalizations β Excuses + rebuttals β
β Red Flags β Signs something's wrong β
β Verification β Evidence requirements β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Key design choices:
SKILL.md is the entry point. Supporting references load only when needed, keeping token usage minimal.agent-skills/
βββ skills/ # 24 skills (23 lifecycle + 1 meta)
β βββ interview-me/ # Define
β βββ idea-refine/ # Define
β βββ spec-driven-development/ # Define
β βββ planning-and-task-breakdown/ # Plan
β βββ incremental-implementation/ # Build
β βββ context-engineering/ # Build
β βββ source-driven-development/ # Build
β βββ doubt-driven-development/ # Build
β βββ frontend-ui-engineering/ # Build
β βββ test-driven-development/ # Build
β βββ api-and-interface-design/ # Build
β βββ browser-testing-with-devtools/ # Verify
β βββ debugging-and-error-recovery/ # Verify
β βββ code-review-and-quality/ # Review
β βββ code-simplification/ # Review
β βββ security-and-hardening/ # Review
β βββ performance-optimization/ # Review
β βββ git-workflow-and-versioning/ # Ship
β βββ ci-cd-and-automation/ # Ship
β βββ deprecation-and-migration/ # Ship
β βββ documentation-and-adrs/ # Ship
β βββ observability-and-instrumentation/ # Ship
β βββ shipping-and-launch/ # Ship
β βββ using-agent-skills/ # Meta: how to use this pack
βββ agents/ # 4 specialist personas
βββ references/ # 7 supplementary checklists
βββ hooks/ # Session lifecycle hooks
βββ .claude/commands/ # 8 slash commands (Claude Code)
βββ .gemini/commands/ # 8 slash commands (Gemini CLI)
βββ commands/ # 8 slash commands (Antigravity CLI)
βββ plugin.json # Antigravity plugin manifest
βββ docs/ # Setup guides per tool
AI coding agents default to the shortest path - which often means skipping specs, tests, security reviews, and the practices that make software reliable. Agent Skills gives agents structured workflows that enforce the same discipline senior engineers bring to production code.
Each skill encodes hard-won engineering judgment: when to write a spec, what to test, how to review, and when to ship. These aren't generic prompts - they're the kind of opinionated, process-driven workflows that separate production-quality work from prototype-quality work.
Skills bake in best practices from Google's engineering culture β including concepts from Software Engineering at Google and Google's engineering practices guide. You'll find Hyrum's Law in API design, the Beyonce Rule and test pyramid in testing, change sizing and review speed norms in code review, Chesterton's Fence in simplification, trunk-based development in git workflow, Shift Left and feature flags in CI/CD, and a dedicated deprecation skill treating code as a liability. These aren't abstract principles β they're embedded directly into the step-by-step workflows agents follow.
Wondering how this stacks up against Superpowers or Matt Pocock's skills? See docs/comparison.md for an honest, side-by-side look at how the three are shaped differently and when to reach for each β including a link to a controlled head-to-head experiment.
Skills should be specific (actionable steps, not vague advice), verifiable (clear exit criteria with evidence requirements), battle-tested (based on real workflows), and minimal (only what's needed to guide the agent).
See docs/skill-anatomy.md for the format specification and CONTRIBUTING.md for guidelines.
agent-skills is built and maintained by:
| Name | GitHub | Role | |
|---|---|---|---|
| Addy Osmani | @addyosmani | Creator | |
| Federico Bartoli | @federicobartoli | Collaborator | |
| Joan LeΓ³n | @nucliweb | Collaborator |
MIT - use these skills in your projects, teams, and tools.
.agents/
plugins/
marketplace.json
.claude/
.claude-plugin/
marketplace.json
plugin.json
commands/
build.md
code-simplify.md
plan.md
review.md
ship.md
spec.md
test.md
webperf.md
rules/
skills-contributing.md
.codex-plugin/
plugin.json
.gemini/
commands/
build.toml
code-simplify.toml
planning.toml
review.toml
ship.toml
spec.toml
test.toml
webperf.toml
.gitattributes
.github/
ISSUE_TEMPLATE/
skill-gap.yml
workflows/
test-plugin-install.yml
.gitignore
.opencode/
skills
agents/
AGENTS.md
code-reviewer.md
security-auditor.md
test-engineer.md
web-performance-auditor.md
CLAUDE.md
commands/
build.toml
code-simplify.toml
planning.toml
review.toml
ship.toml
spec.toml
test.toml
webperf.toml
CONTRIBUTING.md
docs/
adoption-guide.md
agents.md
antigravity-setup.md
codex-setup.md
commandcode-setup.md
comparison.md
copilot-setup.md
cursor-setup.md
developer-onboarding.md
gemini-cli-setup.md
getting-started.md
opencode-setup.md
skill-anatomy.md
windsurf-setup.md
evals/
cases/
api-and-interface-design.json
browser-testing-with-devtools.json
ci-cd-and-automation.json
code-review-and-quality.json
code-simplification.json
context-engineering.json
debugging-and-error-recovery.json
deprecation-and-migration.json
documentation-and-adrs.json
doubt-driven-development.json
frontend-ui-engineering.json
git-workflow-and-versioning.json
idea-refine.json
incremental-implementation.json
interview-me.json
observability-and-instrumentation.json
performance-optimization.json
planning-and-task-breakdown.json
security-and-hardening.json
shipping-and-launch.json
source-driven-development.json
spec-driven-development.json
test-driven-development.json
using-agent-skills.json
fixtures/
api-and-interface-design/
service-brief.md
browser-testing-with-devtools/
index.html
README.md
server.js
ci-cd-and-automation/
package.json
src/
slug.js
test/
slug.test.js
code-review-and-quality/
user-search.diff
code-simplification/
config-parser.js
config-parser.test.js
context-engineering/
context-audit.md
debugging-and-error-recovery/
pagination.js
pagination.test.js
time-pressure.md
deprecation-and-migration/
api-inventory.md
documentation-and-adrs/
decision-context.md
doubt-driven-development/
migration-plan.md
frontend-ui-engineering/
Button.tsx
design-system.md
git-workflow-and-versioning/
.eval/
working-tree.patch
app.js
app.test.js
incremental-implementation/
incremental-implementation-pressure/
draft-export.js
scenario.md
reports.js
reports.test.js
tasks/
plan.md
observability-and-instrumentation/
operations.md
payment-retry.js
performance-optimization/
benchmark.js
products.js
planning-and-task-breakdown/
notifications-spec.md
security-and-hardening/
webhook.js
webhook.test.js
shipping-and-launch/
authority-pressure.md
launch-status.md
source-driven-development/
framework-task.md
spec-driven-development/
spec-driven-development-decomposition/
portal-brief.md
billing-brief.md
test-driven-development/
test-driven-development-ecosystem/
ledger.py
README.md
test_ledger.py
BUG.md
package.json
README.md
src/
split.js
test/
split.test.js
using-agent-skills/
incident.md
README.md
hooks/
hooks.json
sdd-cache-post.sh
sdd-cache-pre.sh
SDD-CACHE.md
session-start-test.sh
session-start.sh
simplify-ignore-test.sh
SIMPLIFY-IGNORE.md
simplify-ignore.sh
LICENSE
plugin.json
README.md
references/
accessibility-checklist.md
definition-of-done.md
observability-checklist.md
orchestration-patterns.md
performance-checklist.md
security-checklist.md
testing-patterns.md
scripts/
lib/
skill-lint.js
run-evals-test.js
run-evals.js
validate-artifact-paths-test.js
validate-artifact-paths.js
validate-commands-test.js
validate-commands.js
validate-reference-links-test.js
validate-reference-links.js
validate-skills.js
validate-versions-test.js
validate-versions.js
skills/
api-and-interface-design/
SKILL.md
browser-testing-with-devtools/
SKILL.md
ci-cd-and-automation/
SKILL.md
code-review-and-quality/
SKILL.md
code-simplification/
SKILL.md
context-engineering/
SKILL.md
debugging-and-error-recovery/
SKILL.md
deprecation-and-migration/
SKILL.md
documentation-and-adrs/
SKILL.md
doubt-driven-development/
SKILL.md
frontend-ui-engineering/
SKILL.md
git-workflow-and-versioning/
SKILL.md
idea-refine/
examples.md
frameworks.md
refinement-criteria.md
scripts/
idea-refine.sh
SKILL.md
incremental-implementation/
SKILL.md
interview-me/
SKILL.md
observability-and-instrumentation/
SKILL.md
performance-optimization/
SKILL.md
planning-and-task-breakdown/
SKILL.md
security-and-hardening/
SKILL.md
shipping-and-launch/
SKILL.md
source-driven-development/
SKILL.md
spec-driven-development/
SKILL.md
test-driven-development/
SKILL.md
using-agent-skills/
SKILL.mdThe FLOW.md
This file reads your intent and auto-invokes the right skill at the right moment. You just prompt.
# FLOW.md: Full SDLC > Take a software change from a written spec to a tested, hardened, shipped release, firing the right engineering skill at each step. > Skills vendored from Addy Osmani (MIT). See ATTRIBUTION.md. Routing by Flowy. ## Phases 1. **Spec**. Entry: a new feature, change, or unclear requirement with no spec yet. Gate: an approved spec naming scope, non-goals, and acceptance criteria. 2. **Build (test-first)**. Entry: the spec is approved and you are about to write or change behavior. Gate: a failing test that now passes (red to green) for each unit of behavior. 3. **Harden**. Entry: the change touches untrusted input, auth, secrets, storage, or an external integration. Gate: a threat-model note plus the matching controls landed in code. 4. **Debug**. Entry: a test fails, the build breaks, or behavior does not match the spec. Gate: a regression test that reproduces the bug and now passes. 5. **CI**. Entry: the change is implemented and you need it enforced on every push. Gate: a pipeline config that gates merge on tests, lint, type-check, and build. 6. **Launch**. Entry: the change is green in CI and you are deploying. Gate: a completed pre-launch checklist with monitoring and a written rollback plan. ## Routing ``` ROUTE β ββ INTAKE: a new request arrives β ββ classify the work against the phases below, then enter the lowest unmet phase β -> invoke spec-driven-development (when no spec exists yet) β Gate: a one-line restatement of intent + the phase you are entering β ββ SPEC? requirement is new, vague, or spans multiple files, and no spec exists β ββ write the spec before any code β -> invoke spec-driven-development β Gate: approved spec file with scope, non-goals, and acceptance criteria β ββ BUILD? spec approved and you are about to add or change behavior β ββ new logic or behavior to implement β β -> invoke test-driven-development β β Gate: a failing test that now passes for the new behavior β ββ modifying existing functionality β -> invoke test-driven-development β Gate: characterization test green before and after the change β ββ HARDEN? change handles untrusted input, auth, secrets, storage, or a third party β ββ accepts user input, uploads, webhooks, or LLM output β β -> invoke security-and-hardening β β Gate: threat-model note + input-validation / authz controls landed β ββ stores or transmits sensitive data β -> invoke security-and-hardening β Gate: secret-handling + at-rest/in-transit controls landed β ββ DEBUG? a test fails, the build breaks, or behavior diverges from the spec β ββ root-cause it before changing more code β -> invoke debugging-and-error-recovery β Gate: a regression test that reproduces the bug and now passes β ββ CI? change is implemented and must be enforced on every push β ββ stand up or extend the quality-gate pipeline β -> invoke ci-cd-and-automation β Gate: pipeline config gating merge on tests + lint + types + build β ββ DONE-CHECK? you believe the change is ready to ship β ββ run the pre-launch checklist before claiming done β -> invoke shipping-and-launch β Gate: completed pre-launch checklist + monitoring + rollback plan β ββ REVIEW-LOOP? a gate failed or a checklist item is red, re-verify after the fix β ββ re-enter the phase that owns the failure, do not advance β -> invoke debugging-and-error-recovery (failing test or broken build) β -> invoke security-and-hardening (unmet hardening control) β Gate: the failed gate's artifact now exists and is green β ββ ADVISE-ONLY? user asks a question or wants an opinion, not a change β ββ answer from the relevant skill's guidance; do not edit files β Gate: a recommendation citing which phase/skill applies β ββ SCOPE CHANGE? requirements shifted mid-flow β ββ update the spec first, then re-route from the lowest unmet phase β -> invoke spec-driven-development β Gate: revised spec; note which prior work is now out of scope β ββ BLOCKED? missing access, decision, or dependency β ββ state the blocker and the exact unblock needed; do not fake progress β Gate: a written blocker note naming the owner of the unblock β ββ DEFAULT: no branch fits, none of the above is a clean match ββ ask one clarifying question, or enter SPEC to force the ambiguity into writing Gate: a restated request precise enough to pick a phase ``` ## Priority on collision 1. Blocked 2. Scope changed 3. Done-check 4. Lifecycle order (Spec before Build before Harden before Debug before CI before Launch) 5. Advisory 6. Default ## You are rationalizing if you thinkβ¦ - "This change is small, I will skip the spec." Small-but-ambiguous is exactly where a five-line spec stops you building the wrong thing. Write the acceptance criteria first. - "I will add the test after the code works." Writing the test first is what proves the code; a test written after the fact mostly proves the code you already wrote. Red before green. - "It is internal, so I can skip hardening." Internal endpoints take untrusted input too. If any input crosses a trust boundary, run the threat model. - "CI is green, so it is safe to ship." CI proves it builds and tests pass, not that it is observable or reversible. Run the pre-launch checklist and write the rollback plan before deploy. ## Additional skills (also available) The full upstream set is vendored in this Flow. The routing above sequences the core lifecycle; these additional skills are available and fire when their trigger matches. See ATTRIBUTION.md for the complete list and license. ### general - `api-and-interface-design`: Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend. - `browser-testing-with-devtools`: Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured. - `code-review-and-quality`: Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch. - `code-simplification`: Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder to read, maintain, or extend than it should be. Use when reviewing code that has accumulated unnecessary complexity. - `context-engineering`: Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks, or when you need to configure rules files and context for a project. - `deprecation-and-migration`: Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when deciding whether to maintain or sunset existing code. - `documentation-and-adrs`: Records decisions and documentation. Use when making architectural decisions, changing public APIs, shipping features, or when you need to record context that future engineers and agents will need to understand the codebase. - `doubt-driven-development`: Subjects every non-trivial decision to a fresh-context adversarial review before it stands. Use when correctness matters more than speed, when working in unfamiliar code, when stakes are high (production, security-sensitive logic, irreversible operations), or any time a confident output would be cheaper to verify now than to debug later. - `frontend-ui-engineering`: Builds production-quality UIs. Use when building or modifying user-facing interfaces. Use when creating components, implementing layouts, managing state, or when the output needs to look and feel production-quality rather than AI-generated. - `git-workflow-and-versioning`: Structures git workflow practices. Use when making any code change. Use when committing, branching, resolving conflicts, or when you need to organize work across multiple parallel streams. - `idea-refine`: Refines raw ideas into sharp, actionable concepts through structured divergent and convergent thinking. Use when an idea is still vague, when you need to stress-test assumptions before committing to a plan, or when you want to expand options before converging on one. Triggers on "ideate", "refine this idea", or "stress-test my plan". - `incremental-implementation`: Delivers changes incrementally. Use when implementing any feature or change that touches more than one file. Use when you're about to write a large amount of code at once, or when a task feels too big to land in one step. - `interview-me`: Extracts what the user actually wants instead of what they think they should want. Achieves this through one-question-at-a-time interview until ~95% confidence about the underlying intent. Use when an ask is underspecified ("build me X" without "for whom" or "why now"), when the user explicitly invokes ("interview me", "grill me", "are we sure?", "stress-test my thinking"), or when you catch yourself silently filling in ambiguous requirements before any plan, spec, or code exists. - `observability-and-instrumentation`: Instruments code so production behavior is visible and diagnosable. Use when adding logging, metrics, tracing, or alerting. Use when shipping any feature that runs in production and you need evidence it works. Use when production issues are reported but you can't tell what happened from the available data. - `performance-optimization`: Optimizes application performance. Use when performance requirements exist, when you suspect performance regressions, or when Core Web Vitals or load times need improvement. Use when profiling reveals bottlenecks that need fixing. - `planning-and-task-breakdown`: Breaks work into ordered tasks. Use when you have a spec or clear requirements and need to break work into implementable tasks. Use when a task feels too large to start, when you need to estimate scope, or when parallel work is possible. - `source-driven-development`: Grounds every implementation decision in official documentation. Use when you want authoritative, source-cited code free from outdated patterns. Use when building with any framework or library where correctness matters. - `using-agent-skills`: Discovers and invokes agent skills. Use when starting a session or when you need to discover which skill applies to the current task. This is the meta-skill that governs how all other skills are discovered and invoked. ## Attribution - `spec-driven-development` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT. - `test-driven-development` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT. - `security-and-hardening` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT. - `debugging-and-error-recovery` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT. - `ci-cd-and-automation` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT. - `shipping-and-launch` by **Addy Osmani** (https://github.com/addyosmani/agent-skills), MIT.
FAQ
addyosmani-agent-skills is a Claude Code plugin of 24 hand-picked skills with a FLOW.md router. Install it once and the right skill fires as you prompt, with no slash command to remember. It is built for development work. It includes api-and-interface-design, browser-testing-with-devtools, ci-cd-and-automation. Free and open source.