Overview
Six unique agent workflow skills cherry-picked from addyosmani/agent-skills that do not overlap with existing 1ai-skills. Each skill defines a structured methodology for AI agents to follow during specific development workflows.
Skill 1: interview-me
Description: One-question-at-a-time interview that extracts what the user actually wants, not what they initially say they want.
When to use: Starting any non-trivial feature or project. When requirements are vague. When the user says "just build X" without clear specifications.
Key Principles:
- Ask one question at a time — never batch questions
- Mirror back what you heard before asking the next question
- Dig into the "why" behind each request
- Surface implicit constraints the user hasn't mentioned
- Stop interviewing when you can state the requirement back and the user confirms
Process:
- Restate the user's initial request in your own words
- Ask: "What problem does this solve for you?"
- Ask about constraints: timeline, tech stack, existing code, audience
- Ask about success criteria: how will you know this is done?
- Summarize the extracted requirements and ask for confirmation
- Only then begin planning or implementation
Skill 2: idea-refine
Description: Divergent then convergent thinking to turn vague ideas into concrete, actionable proposals.
When to use: Brainstorming sessions. When the user has a rough concept but no clear path. When multiple approaches are possible.
Key Principles:
- Divergent phase: generate many options without judgment
- Convergent phase: evaluate, filter, and combine into a single proposal
- Never skip divergent thinking — jumping to solutions misses better alternatives
- Score options on feasibility, impact, and effort
Process:
- Divergent: Generate 5-10 possible interpretations of the idea
- Expand: For each interpretation, list pros, cons, and dependencies
- Cluster: Group related interpretations together
- Score: Rate each cluster on feasibility (1-5), impact (1-5), effort (1-5)
- Convergent: Select top 1-3 candidates, combine best elements
- Propose: Present a concrete proposal with clear next steps
Skill 3: doubt-driven-development
Description: Adversarial fresh-context review of in-flight decisions. Actively tries to find flaws in the current approach.
When to use: After making a significant architectural decision. Before committing to an implementation path. When things feel "too easy."
Key Principles:
- Assume the current approach has a flaw — find it
- Fresh context: pretend you just joined the project and know nothing
- Steel-man the alternatives, don't straw-man them
- If you can't find a flaw after honest effort, the decision is probably sound
- Document what you checked and why it passed
Process:
- State the decision or approach under review
- List the assumptions it depends on
- For each assumption: what if this is wrong?
- Research alternative approaches with fresh eyes
- Write the strongest case against the current approach
- If the case is strong: pivot or hedge. If weak: document and proceed.
Skill 4: source-driven-development
Description: Ground every decision in official documentation and cite sources. No vibes-based coding.
When to use: Working with any SDK, framework, or API. When behavior is unclear. When you're about to write code that depends on library internals.
Key Principles:
- Official docs > blog posts > Stack Overflow > assumptions
- Always cite the source URL when referencing behavior
- If you can't find a source, explicitly flag the assumption
- Docs go stale — prefer latest version-specific documentation
- When docs conflict with observed behavior, note the discrepancy
Process:
- Before implementing, search official documentation for the relevant API/feature
- Copy the key snippets and cite the URL
- If docs are ambiguous, check GitHub issues for clarification
- Implement based on documented behavior, not assumptions
- Add inline comments citing sources for non-obvious decisions
- If you discover docs are wrong, document the discrepancy
Skill 5: context-engineering
Description: Feed agents the right information at the right time. Context is not about having more — it's about having the right pieces.
When to use: Setting up agent workflows. When agents produce generic output. When context windows are a bottleneck. When building CLAUDE.md, AGENTS.md, or system prompts.
Key Principles:
- More context is not always better — irrelevant context degrades output
- Structure context in layers: critical (always loaded), important (loaded on demand), reference (available but not loaded)
- Context includes: codebase patterns, conventions, constraints, examples, anti-patterns
- Update context as the project evolves — stale context is worse than no context
Process:
- Audit: What does the agent currently know? What is it missing?
- Classify: Critical (must know) vs important (should know) vs reference (nice to know)
- Structure: Place critical context in always-loaded files (CLAUDE.md), important in category files (AGENTS.md), reference in browsable locations
- Test: Does the agent produce better output with the new context?
- Iterate: Remove context that doesn't improve output, add what's missing
- Maintain: Review and update context files regularly
Skill 6: deprecation-and-migration
Description: Code-as-liability mindset. Systematically identify zombie code, deprecated dependencies, and dead features for removal.
When to use: Pre-release cleanup. When technical debt is accumulating. When dependencies have known vulnerabilities or deprecations. When code coverage reports show unused paths.
Key Principles:
- Every line of code is a liability — it must be maintained, tested, and understood
- Dead code creates confusion about what's actually used
- Deprecation without a migration path is just abandonment
- Remove before you add — cleanup creates capacity for new work
Process:
- Audit: Scan for unused imports, dead functions, unreachable code paths
- Dependencies: Check for deprecated packages, outdated versions, known vulnerabilities
- Features: Identify features with zero usage or zero tests
- Prioritize: Risk (high/medium/low) x effort (high/medium/low)
- Plan: Create migration plan with rollback capability
- Execute: Remove or migrate one category at a time, test after each
- Document: Record what was removed and why, in case it's needed later
When to Use
Trigger phrases:
"cherry picked agent skills"
"Requirements gathering: interview-me"
"Turning vague ideas into specs: idea-refine"
"Validating architectural decisions: doubt-driven-development"
Requirements gathering: interview-me
Turning vague ideas into specs: idea-refine
Validating architectural decisions: doubt-driven-development
Working with SDKs and APIs: source-driven-development
Optimizing agent context files: context-engineering
Technical debt cleanup: deprecation-and-migration
How to Use
- Understand the requirement and existing codebase patterns
- Design the solution with error handling and testability in mind
- Implement incrementally with tests for each change
- Verify against expected outcomes (manual and automated)
- Document usage, edge cases, and integration points
- Review with team before merging to shared branches
When NOT to Use
- Task is about deployment, not development (use deploy skills)
- Task is about code review, not writing (use review skills)
- You need to understand existing code first (use research skills)
- Task is about testing only (use test skills)
- Requirements are unclear (clarify first)
- Task is trivially simple (single line fix)
Red Flags
- Skipping tests to ship faster: Untested code breaks in production when you least expect it
- No error handling in production code: Unhandled errors crash services and lose user data
- Hardcoded configuration values: Hardcoded values prevent environment switching and leak secrets
- Ignoring security implications: Missing input validation, auth bypasses, and injection vulnerabilities
- Over-engineering simple solutions: Premature abstraction adds complexity without proportional benefit
Verification
Process
# Example: TDD workflow
def test_user_creation():
user = create_user(name="Alice", email="alice@example.com")
assert user.name == "Alice"
assert user.email == "alice@example.com"
assert user.created_at is not None
def test_user_creation_invalid_email():
with pytest.raises(ValidationError):
create_user(name="Alice", email="invalid")
- Analyze the task requirements
- Apply domain expertise
- Verify output quality
Anti-Rationalization Table
| Rationalization |
Reality |
| "Tests slow me down" |
Bugs slow you down 10x more. Tests are speed, not overhead. |
| "I will refactor later" |
Technical debt compounds. Refactor as you go. |
| "It works on my machine" |
If it is not in CI, it does not work. Ship proof, not claims. |
1---2name: cherry-picked-agent-skills3description: Use when 6 unique agent skills cherry-picked from Addy Osmani's agent-skills — interview extraction, idea refinement, adversarial review, source-driven development, context engineering, and deprecation workflows. Use when requirements gathering, idea refinement, adversarial review, documentation-driven dev, context optimization, code deprecation.4license: Apache-2.05---6789## Overview1011Six unique agent workflow skills cherry-picked from [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) that do not overlap with existing 1ai-skills. Each skill defines a structured methodology for AI agents to follow during specific development workflows.1213## Skill 1: interview-me1415**Description**: One-question-at-a-time interview that extracts what the user actually wants, not what they initially say they want.1617**When to use**: Starting any non-trivial feature or project. When requirements are vague. When the user says "just build X" without clear specifications.1819**Key Principles**:20- Ask one question at a time — never batch questions21- Mirror back what you heard before asking the next question22- Dig into the "why" behind each request23- Surface implicit constraints the user hasn't mentioned24- Stop interviewing when you can state the requirement back and the user confirms2526**Process**:271. Restate the user's initial request in your own words282. Ask: "What problem does this solve for you?"293. Ask about constraints: timeline, tech stack, existing code, audience304. Ask about success criteria: how will you know this is done?315. Summarize the extracted requirements and ask for confirmation326. Only then begin planning or implementation3334## Skill 2: idea-refine3536**Description**: Divergent then convergent thinking to turn vague ideas into concrete, actionable proposals.3738**When to use**: Brainstorming sessions. When the user has a rough concept but no clear path. When multiple approaches are possible.3940**Key Principles**:41- Divergent phase: generate many options without judgment42- Convergent phase: evaluate, filter, and combine into a single proposal43- Never skip divergent thinking — jumping to solutions misses better alternatives44- Score options on feasibility, impact, and effort4546**Process**:471. **Divergent**: Generate 5-10 possible interpretations of the idea482. **Expand**: For each interpretation, list pros, cons, and dependencies493. **Cluster**: Group related interpretations together504. **Score**: Rate each cluster on feasibility (1-5), impact (1-5), effort (1-5)515. **Convergent**: Select top 1-3 candidates, combine best elements526. **Propose**: Present a concrete proposal with clear next steps5354## Skill 3: doubt-driven-development5556**Description**: Adversarial fresh-context review of in-flight decisions. Actively tries to find flaws in the current approach.5758**When to use**: After making a significant architectural decision. Before committing to an implementation path. When things feel "too easy."5960**Key Principles**:61- Assume the current approach has a flaw — find it62- Fresh context: pretend you just joined the project and know nothing63- Steel-man the alternatives, don't straw-man them64- If you can't find a flaw after honest effort, the decision is probably sound65- Document what you checked and why it passed6667**Process**:681. State the decision or approach under review692. List the assumptions it depends on703. For each assumption: what if this is wrong?714. Research alternative approaches with fresh eyes725. Write the strongest case against the current approach736. If the case is strong: pivot or hedge. If weak: document and proceed.7475## Skill 4: source-driven-development7677**Description**: Ground every decision in official documentation and cite sources. No vibes-based coding.7879**When to use**: Working with any SDK, framework, or API. When behavior is unclear. When you're about to write code that depends on library internals.8081**Key Principles**:82- Official docs > blog posts > Stack Overflow > assumptions83- Always cite the source URL when referencing behavior84- If you can't find a source, explicitly flag the assumption85- Docs go stale — prefer latest version-specific documentation86- When docs conflict with observed behavior, note the discrepancy8788**Process**:891. Before implementing, search official documentation for the relevant API/feature902. Copy the key snippets and cite the URL913. If docs are ambiguous, check GitHub issues for clarification924. Implement based on documented behavior, not assumptions935. Add inline comments citing sources for non-obvious decisions946. If you discover docs are wrong, document the discrepancy9596## Skill 5: context-engineering9798**Description**: Feed agents the right information at the right time. Context is not about having more — it's about having the right pieces.99100**When to use**: Setting up agent workflows. When agents produce generic output. When context windows are a bottleneck. When building CLAUDE.md, AGENTS.md, or system prompts.101102**Key Principles**:103- More context is not always better — irrelevant context degrades output104- Structure context in layers: critical (always loaded), important (loaded on demand), reference (available but not loaded)105- Context includes: codebase patterns, conventions, constraints, examples, anti-patterns106- Update context as the project evolves — stale context is worse than no context107108**Process**:1091. **Audit**: What does the agent currently know? What is it missing?1102. **Classify**: Critical (must know) vs important (should know) vs reference (nice to know)1113. **Structure**: Place critical context in always-loaded files (CLAUDE.md), important in category files (AGENTS.md), reference in browsable locations1124. **Test**: Does the agent produce better output with the new context?1135. **Iterate**: Remove context that doesn't improve output, add what's missing1146. **Maintain**: Review and update context files regularly115116## Skill 6: deprecation-and-migration117118**Description**: Code-as-liability mindset. Systematically identify zombie code, deprecated dependencies, and dead features for removal.119120**When to use**: Pre-release cleanup. When technical debt is accumulating. When dependencies have known vulnerabilities or deprecations. When code coverage reports show unused paths.121122**Key Principles**:123- Every line of code is a liability — it must be maintained, tested, and understood124- Dead code creates confusion about what's actually used125- Deprecation without a migration path is just abandonment126- Remove before you add — cleanup creates capacity for new work127128**Process**:1291. **Audit**: Scan for unused imports, dead functions, unreachable code paths1302. **Dependencies**: Check for deprecated packages, outdated versions, known vulnerabilities1313. **Features**: Identify features with zero usage or zero tests1324. **Prioritize**: Risk (high/medium/low) x effort (high/medium/low)1335. **Plan**: Create migration plan with rollback capability1346. **Execute**: Remove or migrate one category at a time, test after each1357. **Document**: Record what was removed and why, in case it's needed later136137## When to Use138139**Trigger phrases:**140- "cherry picked agent skills"141- "Requirements gathering: **interview-me**"142- "Turning vague ideas into specs: **idea-refine**"143- "Validating architectural decisions: **doubt-driven-development**"144145146- Requirements gathering: **interview-me**147- Turning vague ideas into specs: **idea-refine**148- Validating architectural decisions: **doubt-driven-development**149- Working with SDKs and APIs: **source-driven-development**150- Optimizing agent context files: **context-engineering**151- Technical debt cleanup: **deprecation-and-migration**152153## How to Use1541551. Understand the requirement and existing codebase patterns1562. Design the solution with error handling and testability in mind1573. Implement incrementally with tests for each change1584. Verify against expected outcomes (manual and automated)1595. Document usage, edge cases, and integration points1606. Review with team before merging to shared branches161162## When NOT to Use163164- Task is about deployment, not development (use deploy skills)165- Task is about code review, not writing (use review skills)166- You need to understand existing code first (use research skills)167- Task is about testing only (use test skills)168- Requirements are unclear (clarify first)169- Task is trivially simple (single line fix)170171172## Red Flags173174- **Skipping tests to ship faster**: Untested code breaks in production when you least expect it175- **No error handling in production code**: Unhandled errors crash services and lose user data176- **Hardcoded configuration values**: Hardcoded values prevent environment switching and leak secrets177- **Ignoring security implications**: Missing input validation, auth bypasses, and injection vulnerabilities178- **Over-engineering simple solutions**: Premature abstraction adds complexity without proportional benefit179180## Verification181182- [ ] Skill output matches expected behavior183184## Process185186```python187# Example: TDD workflow188def test_user_creation():189 user = create_user(name="Alice", email="alice@example.com")190 assert user.name == "Alice"191 assert user.email == "alice@example.com"192 assert user.created_at is not None193194def test_user_creation_invalid_email():195 with pytest.raises(ValidationError):196 create_user(name="Alice", email="invalid")197```1981991. Analyze the task requirements2002. Apply domain expertise2013. Verify output quality202203## Anti-Rationalization Table204205| Rationalization | Reality |206|---|---|207| "Tests slow me down" | Bugs slow you down 10x more. Tests are speed, not overhead. |208| "I will refactor later" | Technical debt compounds. Refactor as you go. |209| "It works on my machine" | If it is not in CI, it does not work. Ship proof, not claims. |