4.2 KiB
whetstone
The review suite reviews code. Whetstone reviews the review.
A continuous-improvement agent for the review stack: it takes the human review feedback a PR actually received, compares it against what the automated suite flagged for the same change, and turns every generalizable miss into a permanent upgrade — a new rule in the generic review skills when the class is portable, a review-miss ledger entry when it's org-specific. Nothing lands without the user approving each proposal.
Why it exists
An empirical gap study of automated-review misses vs human review feedback showed the suite's misses
cluster into learnable classes — and that a miss, once recorded, converts to a catch on
the next review. The study was a one-time manual harvest; whetstone is the same loop run
continuously, at the moment the signal is strongest: when human feedback on a PR is being
addressed, the spawner (sisyphus/architect) knows BOTH what the humans said and what the
suite's own lanes flagged — ground truth the periodic mine-review-misses macro has to
re-infer from comment formats.
How it fits
- Spawned by sisyphus (after a run that addressed human review feedback) or architect (same trigger at run end), or invoked directly against a PR. Runs AFTER review, never during — it is not a reviewer lane, never posts to the PR, and never judges the code.
- Classifies each retained finding as CATCH / PARTIAL / MISS against the suite's findings. Lane hygiene excludes only what would be circular: author self-replies and the suite's OWN posted output. A teammate's review agent or another team's bot is an independent reviewer — its findings count as miss signal when the author actually addressed them (ignored agent comments are unvalidated noise and are dropped).
- Generalization gate for each miss, in order: taste → dropped; one-off → appended to
the candidates inbox (
share/review-miss-candidates.jsonl) for recurrence tracking; org-specific class → drafted as a ledger entry; general class → drafted as a suite edit in house style. General rules must pass the noise firewall: concrete check, crisp trigger, zero org nouns, not already covered (sharpen over duplicate). - Propose → approve → apply: every proposal shows the quoted evidence, the class
statement, and the full draft; the user checkboxes what to apply. Ledger entries append
idempotently. Suite edits go where the suite lives: with a
suite_repoconfigured (a source-of-truth bundle repo), edits land in its working tree — never committed (that stays a human act) — and one further approval mirrors them into the live runtime config, drift-guarded (runtime files diverging from the pre-edit repo version are reported and skipped; runtime-only changes are never made). Without asuite_repo— most users, whose live config IS the suite — edits apply directly underruntime_config, with per-file backups toshare/whetstone-backups/as the revert path. Empty proposal lists are a fine outcome; whetstone never invents findings to justify its spawn.
Relationship to the other ledger tools
| Tool | Sees | When |
|---|---|---|
whetstone |
Human feedback on PRs YOUR runs addressed, with suite ground truth | Real-time, per run |
mine-review-misses |
All human comments across an org/repo set, historical | Periodic batch / bootstrap |
record-miss |
Defects that escaped review entirely (prod, incidents) | One-off, when it bites |
Whetstone narrows what the miner finds on your own PRs, but doesn't replace it: the miner
harvests teammates' PRs, repos you don't code in, and years of history in one run — and
record-miss covers the misses no one ever commented on.
Rules that keep it safe
Additive only (never weakens or removes an existing rule); writes only to the suite skills/review-agent configs (repo when configured, live config otherwise — always backed up first), the ledger, the candidates inbox, and — with its own approval, drift-guarded — the runtime mirror of this run's applied repo edits; never commits, never pushes, never touches source repos, never makes runtime-only changes when a suite repo is configured; one proposal per defect class; verbatim citations only.