agentleFS
lightarktechlightarktech/founder-coding-skills/skills/two-axis-review/SKILL.md

two-axis-review

Skill1 starsChanged 4 months agoMITView on GitHub

Review finished work on two separate axes — craft quality and faithfulness to what was asked — and never let one axis excuse the other. Use before merging any meaningful change.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Put the original request next to the diff and check three things:

    line 14
  2. Distinctive:

    Escape valve: When timing genuinely rules out reviewing first, the artifact reaches the founder stamped not independently reviewed — on the …

    line 49
  3. Distinctive:

    Run the two axes as separate passes with fresh eyes (two sub-agents, or two sittings) so they can't contaminate each other — and neither …

    line 55

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

A change can be beautifully built and still be the wrong thing; it can be exactly what was asked and still be built badly. One review that mixes both questions lets each failure hide behind the other's pass. Keep the axes separate.

Axis 1 — Craft

Does the change meet this project's own standards? Documented conventions first; beyond them, watch for the classics: duplicated logic, names that don't say what they mean, one edit scattered across a dozen files, abstractions nobody needed. (The canon here is Martin Fowler's catalog of code smells — flag by name, as judgment calls, never as autopilot rules.)

Axis 2 — Faithfulness

Put the original request next to the diff and check three things:

  • Missing — asked for, not there (or half there).
  • Uninvited — there, but nobody asked (scope creep hiding as initiative).
  • Warped — looks implemented, but numbers/edge behavior/wording differ from what was specified. Check the exact values: limits, thresholds, orderings, legal wording.

The reviewer is never the author

Two passes from one model are one pass with extra steps. It reviews toward the assumptions it wrote with.

  • A different model, not just a different chat. Reviewers on both axes come from another model family or another tier than the author. A fresh context on the same model clears the memory, not the blind spot — what it failed to imagine while building is what it fails to look for while judging.
  • The reviewer gets the ask, the diff, and the test output — nothing else. No author commentary, no "here's why I did it this way", no defense of the hard part. That narrative is precisely what drags a fresh model back into the author's frame. If a diff can't be judged without the author's story attached, that itself is an Axis 1 finding.
  • Review at or above the difficulty of the work. Swap family or swap tier, never drop below the job: top-tier author, flagship reviewer, or the reverse. The smallest model is for mechanical passes — wording checked against the spec line by line, links, formats, checklist coverage. Aim it at architecture or business logic and you have staged a review, not run one.
  • Bake it into the default roster. Author on one strong model, reviewer on a different one, as the standing configuration — then heterogeneity survives the day you are rushed and would otherwise have reused whatever was already open.

The same rule from the testing side: red-light-first. Tier assignment: model-tiering.

The orchestrator is an author too

Everything above governs work that was dispatched, which leaves the largest hole open: what the main session writes itself. Postmortems, conclusions, readings of the data, acceptance reports, final external copy — the orchestrator drafts them, checks them, and hands them over with no second party ever in the loop. Rereading them inside the context that produced them is not a review; it is the same blind spot getting a second look at itself.

Send out for review — anything the founder will decide on, or that goes outside:

  • Incident postmortems and root-cause writeups.
  • Readings of metrics or test data — the numbers, and what you claim they mean.
  • Feasibility and go/no-go conclusions.
  • Acceptance and sign-off reports ("this is done, here is the proof").
  • External copy and public materials in final form.

Don't — or every sentence becomes a dispatch:

  • Routine status updates and progress notes.
  • Relaying a conclusion a sub-agent already had independently verified — it has been reviewed; don't review the messenger.
  • Small reversible changes.

How. Another model family or another tier, same as any reviewer. Hand it the raw material — the original ask, the raw data, the untouched command output — plus the artifact under review. Hand it none of your reasoning and none of your justification. Its one question: where does the conclusion outrun the evidence?

Escape valve. When timing genuinely rules out reviewing first, the artifact reaches the founder stamped not independently reviewed — on the artifact, in plain words, before they act on it. Late is survivable. Unmarked is not.

The report the founder trusts most is the one nobody checked.

Rules

  • Run the two axes as separate passes with fresh eyes (two sub-agents, or two sittings) so they can't contaminate each other — and neither pass is run by the model that wrote the change (above).
  • Report per axis; don't average them into one score. "9/10 craft" never buys forgiveness for "wrong feature".
  • Adversarial rounds cap at 2 (see dispatch-economics). Findings must quote the line they're about.
  • Our first run of this review caught a legally sensitive one-word deviation ("we" vs "I" in a compliance sentence) that CI and human eyes had both passed. Exact-wording checks pay.

Success criteria

Two written verdicts, one per axis, each citing evidence, neither produced by the author's model. Every finding is either fixed or explicitly accepted with a reason — none silently dropped. Every artifact the founder will act on either cleared a reviewer from another family or tier, or arrived carrying the words not independently reviewed — there is no third option.

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.