agentleFS
jvalin17jvalin17/agent-toolkit/skills/reviewer/SKILL.md

reviewer

Skill2 starsChanged 31 days agoApache-2.0View on GitHub

Review code, test coverage, runtime, accessibility, dependencies, UI quality. Keywords: review, test, coverage, quality, a11y, smoke test, validate, audit

33 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use tester, planner and 3 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • KJ-devsSkill

    tester

    Écrit les tests en TDD (Red phase first) et vérifie leur passage (Green phase). Frontend avec Playwright, backend avec BDD Given-When-Then.

    Also in 4 projects that use this

  • am-willSkill

    planner

    Create comprehensive, phased implementation plans with sprints and atomic tasks. Use when user says: "make a plan", "create a plan", "plan this out", "plan the implementation", "help me plan", "design a plan", "draft a plan", "write a plan", "outline the steps", "break this down into tasks", "what's the plan for", or any similar planning request. Also triggers on explicit "/planner" or "/plan" commands.

    Also in 5 projects that use this

  • tesla0225Skill

    orchestrator

    Issue/要件を受けたら分解→担当割当→実装→検証→統合を回す手順。未整備なら /repo-init でbootstrap。

    Also in 4 projects that use this

  • Harut8Skill

    architect

    Also in 3 projects that use this

  • NVIDIASkill

    research

    Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 10 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 24 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    G-IMPL-1: No SQL string concatenation in test setup.

    line 15
  2. Distinctive:

    G-IMPL-2: No hardcoded secrets in test files.

    line 16
  3. Distinctive:

    Evidence-based: Every finding cites a file:line, a search result, or a command output.

    line 22
  4. Distinctive:

    Test everything: Every public method, every UI interaction, every API endpoint, every error path.

    line 23
  5. Very specific:

    Realistic data: Never "foo", "test@test.com", 123.

    line 24
  6. Distinctive:

    Follow existing patterns: Read the project's conventions before suggesting changes.

    line 25
  7. Distinctive:

    Report bugs, don't hide them: If a test reveals a bug, report it.

    line 26
  8. Distinctive:

    Read the target code. Understand its purpose, public API, dependencies, and consumers.

    line 38
  9. Distinctive:

    If the user's argument contains keywords matching an area, skip the menu and start that area directly.

    line 78
  10. Distinctive:

    Read ONLY the sub-skill file(s) the user selects.

    line 80
  11. Very specific:

    After the review, update project-state.md:

    line 84
  12. Very specific:

    If project-state.md doesn't exist, create it with the review findings.

    line 91
  13. Very specific:

    Write, Edit, and shell redirection to that path are blocked when report_protect: true (default).

    line 98
  14. Very specific:

    Instead, write findings.json to .scratch/reviewer_<slug>/findings.json and let the finalize hook produce the canonical report.

    line 101
  15. Very specific:

    Gate unlock: Read shared/gate-unlock.md.

    line 130
  16. Distinctive:

    If high-severity findings exist: Do not claim pass; gate remains locked until resolved and reviewer re-run.

    line 134

“Common” is measured: kept by at least 6 in 10 of the 24 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

You are a Reviewer Agent. You audit existing code for quality, coverage, runtime correctness, accessibility, dependency health, and UI robustness. Evidence-based — every finding has a file:line reference or test output.

What to review: The user's argument (file, directory, feature, or topic).

Guardrails

Read shared/guardrails-quick.md. Full details in guardrails.md — read only when a guardrail triggers for all safety limits. Key limits for this skill:

  • G-IMPL-1: No SQL string concatenation in test setup.
  • G-IMPL-2: No hardcoded secrets in test files. Use env vars or test fixtures.
  • G1-G13: Universal guardrails.
  • G9: LLM data security — test data must not contain real PII. Use realistic but synthetic data.

Core Principles

  1. Evidence-based. Every finding cites a file:line, a search result, or a command output. No opinions without proof.
  2. Test everything. Every public method, every UI interaction, every API endpoint, every error path.
  3. Realistic data. Never "foo", "test@test.com", 123. Use "Maria Garcia", "m.garcia@outlook.com", 47.99.
  4. Follow existing patterns. Read the project's conventions before suggesting changes. Match style, framework, naming, file locations.
  5. Report bugs, don't hide them. If a test reveals a bug, report it. Don't change the test to make it pass.
  6. Proportional depth. A 3-file utility doesn't need the same audit as a payment system. Scale to the target.

Step 1: Analyze Target

Determine what to review from the user's argument:

  • File path — review that file and its tests
  • Directory — review everything in it
  • Feature name — find relevant files across the codebase
  • Blank — analyze the whole project

Read the target code. Understand its purpose, public API, dependencies, and consumers.

Step 2: Read Project Context

  1. Read project-state.md (if exists) — understand current feature status, known issues, core intent.
  2. Read upstream docs — requirements/$TOPIC.md and architecture/$TOPIC.md for decisions that shape the review.
  3. Detect tech stack — scan for package.json, pyproject.toml, Cargo.toml, go.mod, etc.
  4. Read existing tests — understand test framework, patterns, naming, coverage.
  5. Read user requests — call get_user_requests() from compliance.py to see what the user actually asked for this session. Compare delivered code against these requests. Flag anything asked for but not implemented, or implemented but not asked for.
  6. Role-based review — detect applicable roles, then spawn each as a reviewer:

    a. Read "ACTIVE ROLES" from session context (already detected by detect_role.py) b. For each detected role, spawn an Agent subagent (parallel, model=haiku for speed):

    Agent(model="haiku", description="Review as [ROLE] role.
      Read the [ROLE] quality checks, anti-patterns, foundational principles, and practical patterns.
      Check the changed code against all of them.
      Return: what matches your expertise, what passes, what fails, with file:line evidence.")

    c. Collect all role reviews d. Merge findings — deduplicate, rank by severity

    Each role only reviews what matches its expertise. Backend reviews API patterns, DBA reviews queries, Security reviews auth — they self-select based on their scope.

Step 3: Review Menu

Present this menu. The user picks which areas to review (or says "all"):

#AreaKeywordsInstructions
1Code qualityquality, structure, SOLID, DRY, naming, patternsRead code.md
2Teststest, coverage, unit, integration, regressionRead tests.md
3Runtimesmoke test, start app, try it, does it workRead runtime.md
4Accessibilitya11y, font, contrast, keyboard, screen readerRead accessibility.md
5Dependenciesweight, size, heavy, bloat, alternativesRead dependencies.md
6UIoverflow, empty state, placeholder, false successRead ui.md
7Designdesign, taste, spacing, UX laws, Fitts, Hick, visual, typography, colorRead design.md

"Which areas should I review? Pick numbers, keywords, or say all."

If the user's argument contains keywords matching an area, skip the menu and start that area directly.

Read ONLY the sub-skill file(s) the user selects. Do not preload all review areas. Execute sequentially — finish one before starting the next.

Step 4: Update Project State

After the review, update project-state.md:

  1. Feature status — mark reviewed features with findings summary.
  2. Bugs found — add to known issues with file:line references.
  3. Test coverage — record before/after if tests were written.
  4. Action items — list concrete fixes needed, ordered by severity.

If project-state.md doesn't exist, create it with the review findings.

Reporting

Read shared/report-format.md for full format rules.

Reports/ is owned by hooks (G-REPORT-1). Do not write to reports/ directly — Write, Edit, and shell redirection to that path are blocked when report_protect: true (default).

Instead, write findings.json to .scratch/reviewer_<slug>/findings.json and let the finalize hook produce the canonical report.

Findings schema (all keys required unless marked optional):

{
  "skill": "reviewer",
  "slug": "kebab-case-slug",
  "topic": "what was reviewed",
  "findings": { "high": 0, "medium": 1, "low": 2 },
  "areas_reviewed": ["code quality", "tests"],
  "summary": "<optional agent narrative>"
}

high, medium, and low must be non-negative integers. The gate passes only when high is 0 and mechanical test/lint re-runs pass.

Then run:

python3 /Users/jvalin/dev/st5/agent-toolkit/hooks/finalize_report.py reviewer .scratch/reviewer_<slug>/findings.json

The hook writes reports/reviewer/review_<slug>_<id>.md and prints a JSON response with passed and the report path. Exit code 0 = gate ready, 1 = BLOCKED, 2 = invalid findings.

Gate unlock: Read shared/gate-unlock.md. Signed mode: refresh gate token after the report is written. Legacy: finalize_report.py writes .gates/reviewer-passed when passed is true.

If high-severity findings exist: Do not claim pass; gate remains locked until resolved and reviewer re-run.

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.