Discovers and invokes agent skills. Use when starting a session, or when you need to decide which skill or workflow applies to the piece of work at hand. This is the meta-skill that governs how all other skills are discovered and invoked.
git clone https://github.com/addyosmani/agent-skills.git--- name: using-agent-skills description: Discovers and invokes agent skills. Use when starting a session, or when you need to decide which skill or workflow applies to the piece of work at hand. This is the meta-skill that governs how all other skills are discovered and invoked. --- # Using Agent Skills ## Overview Agent Skills is a collection of engineering workflow skills organized by development phase. Each skill encodes a specific process that senior engineers follow. This meta-skill helps you discover and apply the right skill for your current task. ## Skill Discovery When a task arrives, identify the development phase and apply the corresponding skill: ``` Task arrives │ ├── Don't know what you want yet? ──────→ interview-me ├── Have a rough concept, need variants? → idea-refine ├── New project/feature/change? ──→ spec-driven-development ├── No quality bar written down? ──→ constraint-driven-development ├── Have a spec, need tasks? ──────→ planning-and-task-breakdown ├── Implementing code? ────────────→ incremental-implementation │ ├── UI work? ─────────────────→ frontend-ui-engineering │ ├── API work? ────────────────→ api-and-interface-design │ ├── Need better context? ─────→ context-engineering │ ├── Need doc-verified code? ───→ source-driven-development │ └── Stakes high / unfamiliar code? ──→ doubt-driven-development ├── Writing/running tests? ────────→ test-driven-development │ └── Browser-based? ───────────→ browser-testing-with-devtools ├── Something broke? ──────────────→ debugging-and-error-recovery ├── Reviewing code? ───────────────→ code-review-and-quality │ ├── Too complex? ─────────────→ code-simplification │ ├── Security concerns? ───────→ security-and-hardening │ └── Performance concerns? ────→ performance-optimization ├── Committing/branching? ─────────→ git-workflow-and-versioning ├── CI/CD pipeline work? ──────────→ ci-cd-and-automation ├── Deprecating/migrating? ────────→ deprecation-and-migration ├── Writing docs/ADRs? ───────────→ documentation-and-adrs ├── Adding logs/metrics/alerts? ───→ observability-and-instrumentation └── Deploying/launching? ─────────→ shipping-and-launch ``` ## Core Operating Behaviors These behaviors apply at all times, across all skills. They are non-negotiable. ### 1. Surface Assumptions Before implementing anything non-trivial, explicitly state your assumptions: ``` ASSUMPTIONS I'M MAKING: 1. [assumption about requirements] 2. [assumption about architecture] 3. [assumption about scope] → Correct me now or I'll proceed with these. ``` Don't silently fill in ambiguous requirements. The most common failure mode is making wrong assumptions and running with them unchecked. Surface uncertainty early — it's cheaper than rework. ### 2. Manage Confusion Actively When you encounter inconsistencies, conflicting requirements, or unclear specifications: 1. **STOP.** Do not proceed with a guess. 2. Name the specific confusion. 3. Present the tradeoff or ask the clarifying question. 4. Wait for resolution before continuing. **Bad:** Silently picking one interpretation and hoping it's right. **Good:** "I see X in the spec but Y in the existing code. Which takes precedence?" ### 3. Push Back When Warranted You are not a yes-machine. When an approach has clear problems: - Point out the issue directly - Explain the concrete downside (quantify when possible — "this adds ~200ms latency" not "this might be slower") - Propose an alternative - Accept the human's decision if they override with full information Sycophancy is a failure mode. "Of course!" followed by implementing a bad idea helps no one. Honest technical disagreement is more valuable than false agreement. ### 4. Enforce Simplicity Your natural tendency is to overcomplicate. Actively resist it. Before finishing any implementation, ask: - Can this be done in fewer lines? - Are these abstractions earning their complexity? - Would a staff engineer look at this and say "why didn't you just..."? If you build 1000 lines and 100 would suffice, you have failed. Prefer the boring, obvious solution. Cleverness is expensive. ### 5. Maintain Scope Discipline Touch only what you're asked to touch. Do NOT: - Remove comments you don't understand - "Clean up" code orthogonal to the task - Refactor adjacent systems as a side effect - Delete code that seems unused without explicit approval - Add features not in the spec because they "seem useful" Your job is surgical precision, not unsolicited renovation. ### 6. Verify, Don't Assume Every skill includes a verification step. A task is not complete until verification passes. "Seems right" is never sufficient — there must be evidence (passing tests, build output, runtime data). Per-skill verification is the local check. The project-wide bar that applies to *every* change, regardless of which skill is active, is the Definition of Done: tests pass, no regressions, behavior verified at runtime, docs updated. See `../../references/definition-of-done.md`. It complements each task's acceptance criteria rather than replacing them. ## Failure Modes to Avoid These are the subtle errors that look like productivity but create problems: 1. Making wrong assumptions without checking 2. Not managing your own confusion — plowing ahead when lost 3. Not surfacing inconsistencies you notice 4. Not presenting tradeoffs on non-obvious decisions 5. Being sycophantic ("Of course!") to approaches with clear problems 6. Overcomplicating code and APIs 7. Modifying code or comments orthogonal to the task 8. Removing things you don't fully understand 9. Building without a spec because "it's obvious" 10. Skipping verification because "it looks right" ## Skill Rules 1. **Check for an applicable skill before starting work.** Skills encode processes that prevent common mistakes. 2. **Skills are workflows, not suggestions.** Follow the steps in order. Don't skip verification steps. 3. **Multiple skills can apply.** A feature implementation might involve `idea-refine` → `spec-driven-development` → `planning-and-task-breakdown` → `incremental-implementation` → `test-driven-development` → `code-review-and-quality` → `code-simplification` → `shipping-and-launch` in sequence. 4. **When in doubt, start with a spec.** If the task is non-trivial and there's no spec, begin with `spec-driven-development`. ## Lifecycle Sequence For a complete feature, the typical skill sequence is: ``` 1. interview-me → Extract what the user actually wants 2. idea-refine → Refine vague ideas 3. spec-driven-development → Define what we're building 4. planning-and-task-breakdown → Break into verifiable chunks 5. context-engineering → Load the right context 6. source-driven-development → Verify against official docs 7. incremental-implementation → Build slice by slice 8. observability-and-instrumentation → Instrument as you build (runs parallel with 7-9, not after) 9. doubt-driven-development → Cross-examine non-trivial decisions in-flight 10. test-driven-development → Prove each slice works 11. code-review-and-quality → Review before merge 12. code-simplification → Reduce unnecessary complexity while preserving behavior 13. git-workflow-and-versioning → Clean commit history 14. documentation-and-adrs → Document decisions 15. deprecation-and-migration → Retire old systems and move users safely when needed 16. shipping-and-launch → Deploy safely ``` Not every task needs every skill. A bug fix might only need: `debugging-and-error-recovery` → `test-driven-development` → `code-review-and-quality`. ## Quick Reference | Phase | Skill | One-Line Summary | |-------|-------|-----------------| | Define | interview-me | Surface what the user actually wants before any plan, spec, or code exists | | Define | idea-refine | Refine ideas through structured divergent and convergent thinking | | Define | spec-driven-development | Requirements and acceptance criteria before code | | Plan | planning-and-task-breakdown | Decompose into small, verifiable tasks | | Build | incremental-implementation | Thin vertical slices, test each before expanding | | Build | source-driven-development | Verify against official docs before implementing | | Build | doubt-driven-development | Adversarial fresh-context review of every non-trivial decision | | Build | context-engineering | Right context at the right time | | Build | frontend-ui-engineering | Production-quality UI with accessibility | | Build | api-and-interface-design | Stable interfaces with clear contracts | | Verify | test-driven-development | Failing test first, then make it pass | | Verify | browser-testing-with-devtools | Chrome DevTools MCP for runtime verification | | Verify | debugging-and-error-recovery | Reproduce → localize → fix → guard | | Review | code-review-and-quality | Five-axis review with quality gates | | Review | code-simplification | Preserve behavior while reducing unnecessary complexity | | Review | security-and-hardening | OWASP prevention, input validation, least privilege | | Review | performance-optimization | Measure first, optimize only what matters | | Ship | git-workflow-and-versioning | Atomic commits, clean history | | Ship | ci-cd-and-automation | Automated quality gates on every change | | Ship | deprecation-and-migration | Remove old systems and migrate users safely | | Ship | documentation-and-adrs | Document the why, not just the what | | Ship | observability-and-instrumentation | Structured logs, RED metrics, traces, symptom-based alerts | | Ship | shipping-and-launch | Pre-launch checklist, monitoring, rollback plan |
1. **Start with a clear task description**: Begin your interaction by stating the specific goal you want to achieve (e.g., 'I need to draft a customer email response to a billing dispute'). Avoid vague requests like 'Help me with something.' 2. **Explicitly request skill discovery**: Use the prompt template to ask the AI to identify the best skill. For example: 'Which skill should I use to [TASK], and why?' This forces the AI to evaluate its capabilities critically. 3. **Review the AI’s skill selection**: The AI will list available skills and justify its choice. If the selection seems off, ask it to reconsider or suggest alternatives. Example: 'Are there other skills that could handle this? I’m open to workflow automation if it’s more efficient.' 4. **Invoke the skill with parameters**: Once the skill is selected, provide the necessary inputs (e.g., data, context, or constraints). For complex tasks, break it into smaller steps. Example: 'First, extract the churn risk data. Then, generate the visualization.' 5. **Iterate and refine**: If the output isn’t what you expected, ask the AI to adjust its approach. Example: 'The churn segmentation is too broad. Can you break it down by feature usage as well?' Use the AI’s responses to guide further iterations. **Tips for better results:** - **Be specific**: The more details you provide about your task, the better the AI can match it to a skill. - **Use placeholders**: Replace [TASK_DESCRIPTION] with your actual goal to make the prompt reusable. - **Combine skills**: For multi-step tasks, ask the AI to chain skills. Example: 'First, use Data Analysis to identify churn patterns. Then, use Content Generation to draft a retention email template for the high-risk group.'
No install command available. Check the GitHub repository for manual installation instructions.
git clone https://github.com/addyosmani/agent-skills/tree/main/skills/using-agent-skillsCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
I need to complete the following task: [TASK_DESCRIPTION]. First, identify the most relevant AI agent skill from your available capabilities to handle this work. Explain your reasoning for selecting this skill, then invoke it with the appropriate parameters. If no skill perfectly matches, suggest the closest available skill and explain how it can be adapted. Begin by listing the skills you have access to, then proceed with the task.
Available skills in my toolkit include: 1. **Data Analysis & Reporting** – For extracting insights from datasets, generating visualizations, or calculating metrics. 2. **Content Generation & Editing** – For drafting, refining, or localizing text (e.g., emails, reports, marketing copy). 3. **Workflow Automation** – For streamlining repetitive tasks like data entry, scheduling, or API integrations. 4. **Code Generation & Debugging** – For writing, reviewing, or optimizing code in Python, JavaScript, SQL, etc. 5. **Research & Summarization** – For synthesizing information from documents, web searches, or databases. 6. **Customer Support Simulation** – For role-playing interactions with customers, handling FAQs, or drafting responses. For your task: *'Analyze the customer churn risk for our SaaS product using the last 6 months of subscription data and generate a report with visualizations,'* the most relevant skill is **Data Analysis & Reporting**. This skill specializes in extracting insights from datasets and generating actionable outputs like visualizations and summaries. **Invoking Data Analysis & Reporting Skill:** ``` Analyze the customer churn risk for our SaaS product using the last 6 months of subscription data. The dataset includes: - Customer IDs, subscription start/end dates, plan types, and usage metrics (e.g., logins, feature adoption). - Churn labels (e.g., voluntary vs. involuntary cancellations). Generate: 1. A churn rate trend over the 6-month period. 2. A segmentation analysis by plan type and customer tenure. 3. A visualization (e.g., bar chart or heatmap) highlighting high-risk customer groups. 4. Actionable recommendations for retention strategies. ``` **Output:** After analyzing the dataset (simulated here for brevity), here’s the churn risk report: **Churn Rate Trends:** - Overall churn rate: 12% (up from 8% in Month 1). - Peak churn occurred in Month 4 (15%), coinciding with a pricing adjustment for the 'Pro' plan. **Segmentation Analysis:** - **Plan Type:** 'Basic' plan customers churned at 18% (highest), while 'Enterprise' churned at 5%. - **Tenure:** Customers active for <3 months churned at 22%, vs. 7% for those active >12 months. **Visualization:** [Simulated heatmap showing churn risk by plan type and tenure] **Recommendations:** 1. Introduce a 'Basic Plan Retention Discount' for customers active >2 months. 2. Proactively engage 'Pro' plan customers who reduced usage by >30% in the last 30 days. 3. Onboard 'Enterprise' customers into a dedicated success program to reduce churn to <3%. Would you like to refine any part of this analysis or explore additional segments?
skills-collection
Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan