SuperAPI AI Directory

using-agent-skills

Agents & models

View repository

Updated 10-16 09:56

About this skill

Using Agent Skills

Overview

Agent Skills is a set of engineering workflow skills organized by development phase. Each skill encodes a specific process that a senior engineer would follow. This meta-skill helps you discover and apply the correct skill for the 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 always apply, across all skills. They are non-negotiable.

1. Explicitly State Assumptions

Before implementing anything non-trivial, clearly 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.

Do not silently fill in ambiguous requirements. The most common failure mode is making a wrong assumption and then proceeding without confirmation. Expose uncertainty early; it is far cheaper than rework.

2. Actively Manage Confusion

When you encounter inconsistencies, conflicting requirements, or unclear specifications:

  1. STOP. Do not proceed on guesswork.
  2. State clearly where the specific confusion is.
  3. Present trade-offs, or ask clarifying questions.
  4. Wait for the issue to be resolved before continuing.

Bad example: Silently pick one interpretation and hope it is correct. Good example: "I see the spec says X, but the existing code says Y. Which takes precedence?"

3. Push Back When Necessary

You are not a yes-machine. When an approach has a clear problem:

  • Point out the problem directly
  • Explain the specific downside (quantify it when you can, e.g. "this adds about 200ms of latency" rather than "this might be slower")
  • Propose an alternative
  • If the human, after being fully informed, still decides to override your recommendation, accept that decision

Sycophancy is a failure mode. Implementing a bad idea after saying "Of course!" helps no one. Honest technical disagreement is more valuable than false agreement.

4. Enforce Simplicity

Your natural tendency is to make things complicated. Actively resist it.

Before completing any implementation, ask yourself:

  • Could this be done with less code?
  • Are these abstractions worth the complexity they introduce?
  • Would a staff engineer look at this and say "why not just..."?

If you wrote 1000 lines and 100 lines would suffice, that is a failure. Prefer the boring, obvious solution. Clever tricks are expensive.

5. Maintain Scope Discipline

Only touch what you were asked to touch.

Do not:

  • Delete comments you do not understand
  • "Clean up" code unrelated to the task
  • Refactor adjacent systems along the way
  • Delete seemingly unused code without explicit approval
  • Add features beyond the spec because they "seem useful"

Your job is surgical precision, not proactive renovation.

6. Verify, Do Not Assume

Every skill includes verification steps. A task is not complete until verification passes. "It looks fine" is never enough; there must be evidence (passing tests, build output, runtime data).

Verification within each skill is a local check. But applicable toeverychange's project-level criteria, regardless of which skill is currently active, are the Definition of Done: tests pass, no regressions, behavior verified at runtime, documentation updated. See ../../references/definition-of-done.md. It supplements each task's acceptance criteria, rather than replacing them.

Failure modes to avoid

These subtle mistakes look like improving efficiency, but create problems:

  1. Making wrong assumptions without checking
  2. Not managing your own confusion, pushing ahead when lost
  3. Not surfacing inconsistencies you notice
  4. Not presenting tradeoffs for non-obvious decisions
  5. Sycophancy toward clearly problematic proposals ("Of course!")
  6. Overcomplicating code and APIs
  7. Modifying code or comments unrelated to the task
  8. Deleting 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. Before starting work, check whether an applicable skill exists. Skills encode processes that avoid common mistakes.

  2. Skills are workflows, not suggestions. Follow the steps in order. Don't skip verification steps.

  3. Multiple skills can apply at the same time. A feature implementation may sequentially involve idea-refine → spec-driven-development → planning-and-task-breakdown → incremental-implementation → test-driven-development → code-review-and-quality → code-simplification → shipping-and-launch。

  4. When in doubt, start from the spec. If the task is non-trivial and there's no spec, start from spec-driven-development start.

Lifecycle order

For a complete feature, the typical skill order 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 may only need:debugging-and-error-recovery → test-driven-development → code-review-and-quality。

Quick reference

Phase Skill One-sentence summary
Define interview-me Before any plan, spec, or code exists, figure out what the user really wants
Define idea-refine Refine ideas through structured divergent and convergent thinking
Define spec-driven-development Clarify requirements and acceptance criteria before writing code
Plan planning-and-task-breakdown Break down into small, verifiable tasks
Build incremental-implementation Thin vertical slices, test before each extension
Build source-driven-development Verify against official documentation before implementing
Build doubt-driven-development Adversarially review every non-trivial decision with fresh context
Build context-engineering Load the right context at the right time
Build frontend-ui-engineering Production-grade UI with accessibility
Build api-and-interface-design Stable interfaces with clear contracts
Verify test-driven-development Write a failing test first, then make it pass
Verify browser-testing-with-devtools Use Chrome DevTools MCP for runtime verification
Verify debugging-and-error-recovery Reproduce → locate → fix → add protection
Review code-review-and-quality Review based on five dimensions and quality gates
Review code-simplification Reduce unnecessary complexity while keeping behavior unchanged
Review security-and-hardening OWASP protections, input validation, least privilege
Review performance-optimization Measure first, optimize only what matters
Release git-workflow-and-versioning Atomic commits, clean history
Release ci-cd-and-automation Run automated quality gates on every change
Release deprecation-and-migration Remove legacy systems and migrate users safely
Release documentation-and-adrs Record why, not just what was done
Release observability-and-instrumentation Structured logs, RED metrics, traces, symptom-based alerting
Release shipping-and-launch Pre-release checklist, monitoring, rollback plan