agentleFS
rizqinrrrizqinrr/viserys-agent/skills/using-agent-skills/SKILL.md

using-agent-skills

Skill560 starsChanged 50 days agoApache-2.0View on GitHub

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.

We split this skill into the rules it gives an agent

18 rules. 16 are common, 0 are distinctive, and 2 are very specific to this project.

  • 16

    Common

    Most of the 44 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Common:

    When a task arrives, identify the development phase and apply the corresponding skill:

    line 14
  2. Common:

    Before implementing anything non-trivial, explicitly state your assumptions:

    line 48
  3. Common:

    Don't silently fill in ambiguous requirements.

    line 58
  4. Common:

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

    line 62
  5. Common:

    STOP: Do not proceed with a guess.

    line 64
  6. Common:

    Wait for resolution before continuing.

    line 67
  7. Common:

    Before finishing any implementation, ask:

    line 87
  8. Common:

    If you build 1000 lines and 100 would suffice, you have failed.

    line 92
  9. Common:

    Remove comments you don't understand

    line 99
  10. Common:

    Delete code that seems unused without explicit approval

    line 102
  11. Common:

    Add features not in the spec because they "seem useful"

    line 103
  12. Common:

    Every skill includes a verification step.

    line 109
  13. Common:

    Not managing your own confusion — plowing ahead when lost

    line 118
  14. Common:

    Not surfacing inconsistencies you notice

    line 119
  15. Common:

    Not presenting tradeoffs on non-obvious decisions

    line 120
  16. Common:

    Skills are workflows, not suggestions: Follow the steps in order.

    line 132
  17. Very specific:

    When in doubt, start with a PRD: If the task is non-trivial and there's no requirements document, begin with get-prd.

    line 136
  18. Very specific:

    Not every task needs every skill.

    line 158

“Common” is measured: kept by at least 6 in 10 of the 44 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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
    │
    ├── New app/system/feature, no requirements doc? → get-prd
    ├── Have a rough concept, need variants? → idea-refine
    ├── No quality bar written down? ──→ constraint-driven-development
    ├── Approved PRD, need a data model? → get-schema
    ├── Approved PRD, need executable tasks? → get-tasks
    ├── Implementing code? ────────────→ incremental-implementation
    │   ├── UI visual direction unresolved? → get-design
    │   ├── Established UI implementation? ─→ frontend-ui-engineering
    │   └── API work? ────────────────→ api-and-interface-design
    ├── Writing/running tests? ────────→ test-driven-development
    ├── 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 get-prd → get-schema → get-tasks → incremental-implementation → test-driven-development → code-review-and-quality → code-simplification → shipping-and-launch in sequence.
  4. When in doubt, start with a PRD. If the task is non-trivial and there's no requirements document, begin with get-prd.

Lifecycle Sequence

For a complete feature, the typical skill sequence is:

1.  get-prd                     → Extract intent and produce an approved PRD
2.  idea-refine                 → Refine vague ideas
3.  constraint-driven-development → Set the written quality bar
4.  get-schema                  → Design the data model
5.  get-tasks                   → Break the PRD into verifiable task files
6.  incremental-implementation  → Build slice by slice
7.  test-driven-development     → Prove each slice works
8.  code-review-and-quality     → Review before merge
9.  code-simplification         → Reduce unnecessary complexity while preserving behavior
10. git-workflow-and-versioning → Clean commit history
11. documentation-and-adrs      → Document decisions
12. deprecation-and-migration   → Retire old systems and move users safely when needed
13. 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

PhaseSkillOne-Line Summary
Defineget-prdDeep interview plus PRD authoring in one pass
Defineidea-refineRefine ideas through structured divergent and convergent thinking
Defineconstraint-driven-developmentWritten quality bar with enforced thresholds
Planget-schemaData model with tables, columns, relations, indexes, constraints
Planget-tasksDecompose an approved PRD into tracked, verifiable task files
Buildincremental-implementationThin vertical slices, test each before expanding
Buildget-designProduct-specific visual direction, anti-AI-slop design, critique, and UI refinement
Buildfrontend-ui-engineeringProduction-quality UI with accessibility
Buildapi-and-interface-designStable interfaces with clear contracts
Verifytest-driven-developmentFailing test first, then make it pass
Verifydebugging-and-error-recoveryReproduce → localize → fix → guard
Reviewcode-review-and-qualityFive-axis review with quality gates
Reviewcode-simplificationPreserve behavior while reducing unnecessary complexity
Reviewsecurity-and-hardeningOWASP prevention, input validation, least privilege
Reviewperformance-optimizationMeasure first, optimize only what matters
Shipgit-workflow-and-versioningAtomic commits, clean history
Shipci-cd-and-automationAutomated quality gates on every change
Shipdeprecation-and-migrationRemove old systems and migrate users safely
Shipdocumentation-and-adrsDocument the why, not just the what
Shipobservability-and-instrumentationStructured logs, RED metrics, traces, symptom-based alerts
Shipshipping-and-launchPre-launch checklist, monitoring, rollback plan

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.