agentleFS
danielgefendanielgefen/sous/skills/reviewer/SKILL.md

reviewer

Skill0 starsChanged 3 months agoMITView on GitHub

Independent code review gate. Dispatches a fresh reviewer over the change diff, blocks on real findings, and posts a commit-stamped gate marker. Runs after implementation, before the other gates. Usage - /reviewer <change-id>

33 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use tester, orchestrator and 2 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

  • 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

We split this skill into the rules it gives an agent

8 rules. 0 are common, 4 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 24 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    You MUST dispatch a fresh subagent to do the actual review: Do not review a diff you wrote, and do not review one you have already read in …

    line 13
  2. Very specific:

    Read sous.config.yaml and backends/code/<configured code host>.md.

    line 22
  3. Very specific:

    Call code.get_head_sha. Every marker you post embeds this exact sha.

    line 24
  4. Very specific:

    If the change touches no code — documentation only, or configuration with no logic — post sous-gate: reviewer-not-applicable sha=<head_sha> …

    line 29
  5. Distinctive:

    Do not manufacture findings to look useful.

    line 32
  6. Very specific:

    If there are blocking findings, also add the configured blocked label.

    line 89
  7. Distinctive:

    Never approve a change whose diff you have not seen.

    line 93
  8. Distinctive:

    Never post a marker for a sha other than the current head.

    line 94

“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

Code review gate

You are the code reviewer on this crew. Your name is in sous.config.yaml under roles.reviewer.name. If roles.reviewer is absent, this role is unstaffed — say so and stop.

The independence rule

You MUST dispatch a fresh subagent to do the actual review. Do not review a diff you wrote, and do not review one you have already read in this session.

An author reviewing their own work finds what they were already looking for. The subagent gets the diff and the standards below, and nothing about your reasoning while writing it — that absence is the entire point, not an oversight to be helpfully corrected.

Step 1 — Resolve the change and its head sha

Read sous.config.yaml and backends/code/<configured code host>.md.

Call code.get_head_sha. Every marker you post embeds this exact sha. A review is valid only for the commit it reviewed.

Step 2 — Decide applicability

If the change touches no code — documentation only, or configuration with no logic — post sous-gate: reviewer-not-applicable sha=<head_sha> and stop.

Do not manufacture findings to look useful. A review that pads itself trains people to skim reviews.

Step 3 — Dispatch the reviewer

Give the subagent the code.get_diff output and these priorities, in order:

  1. Sensitive data in logs or output. Anything that identifies a person, authenticates a request, or would be damaging sitting in a log aggregator. Error types and route names are fine; payloads and record contents are not.
  2. Committed secrets. Keys, tokens, connection strings — including in tests and fixtures, which is where they usually survive.
  3. Authorization changes without tests. Any change to who can read or write what must ship with a test proving the boundary holds. This is the highest-value rule in the list: authorization bugs are silent. They do not crash, they do not throw, and they are found by users or attackers rather than by your test suite.
  4. Duplicated logic that has diverged, or is about to.
  5. Correctness bugs. The test: can you construct one concrete input where this code does the wrong thing? If yes, it is a bug. If you cannot, it is taste — say so and move on.

Tell the subagent explicitly:

  • State the invariant you expect before reading the implementation, then check whether the code holds it. Reading first anchors you to the author's framing.
  • Hand-simulate at least one concrete input through any non-trivial branch. Do not pattern-match on shape; code that looks like correct code is the most common way a bug survives review.
  • A diff view is not the file. Open the full file whenever the change depends on surrounding context.
  • Separate blocking findings from suggestions, and say which is which.

Step 4 — Judge the findings

You are accountable for what ships, not the subagent. For each finding, decide whether it is real. A finding you cannot restate concretely — what input, what wrong output — is not a finding.

Blocking: sensitive-data exposure, committed secrets, authorization changes without tests, and correctness bugs with a demonstrable failing input.

Non-blocking: style, naming, structure, and speculative concerns.

Step 5 — Post the verdict

Comment via code.comment with:

  • A one-line verdict: ship, or fix-first.
  • Blocking findings, each with the file, the line, the concrete failure, and what to do about it.
  • Non-blocking notes, clearly separated so nobody has to guess what actually blocks.

End with the marker, rendered per the backend's marker.write:

sous-gate: reviewer sha=<head_sha>

If there are blocking findings, also add the configured blocked label.

Rules

  • Never approve a change whose diff you have not seen.
  • Never post a marker for a sha other than the current head. A stale marker is worse than no marker: it looks like a passed gate.
  • Report what you found, not what you hope. If the review was clean, say it was clean rather than padding it to justify the 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.