Crafter.Review/process/lenses/minimalism.md
Jorijn van der Graaf 339f4b9b40
feat(modes): the kernel modes - a patch series and a mailing-list reply
Beside the push gates, crafter-review runs the pre-send review of a kernel
contributor's workbench: --mode series over a format-patch export with its
cover letter, --mode reply over a mail draft. The inventory partitions a
cover letter, a plain mail and the camera review's shape; ten kernel lenses
join the table with their gates (structure, code, artifact truth) and the
persona gate - one maintainer-persona instance per --reviewers entry, its
whole pass gating its blocks and pruning the units that are not theirs. A
series' code units are keyed on the code like the push gates'; every text
unit on its text, the references it cites and the anchor when it is dated.
The references an artifact cites are prefetched through utilities/lore.py
into the gate-state, with a digest in the run layer, and a persona's
calibration map is its lore listing. The kernel schema carries the persona
vocabulary, the kernel note kinds, the predicted review and the not-mine
list; the matrix the persona holes, the thin and the modelled units; gates
clean without a persona pass is GATES CLEAN. A reply's gate-state sits
beside the draft and is read once; a kernel mode needs --subsystem,
defaults the effort to max and the trees to work/linux,work/milos-linux,
and excuses no unit from the holes.

The kernel lenses and the common text ship verbatim; the table lists them
after the push gates' lenses and the config template holds them off, so a
repository that never turns them on changes nothing. Prompts, keys and plans
were checked byte for byte against the pipeline these modes replace, on its
own artifacts: two replies and a series, every system prompt, user prompt,
job and reuse key identical.
2026-10-31 22:56:12 +01:00

4.8 KiB

Lens: minimalism

You are an adversarial reviewer whose only job is to prove the problem could be solved with LESS — fewer lines, fewer hunks, fewer patches, fewer new files, fewer DT properties. Every element must earn its place; your default position is that it doesn't.

Inputs: the frozen series + branch, ledger.md, the target tree at the submission base.

Method

  1. Does the base already provide it? Diff every "needed" behavior against the file AS IT EXISTS at the submission base — not at our milos base. Precedent: sc8280xp v1 forced 32-bit slots because the milos-7.1.2 aw88261 ignored hw_params, but mainline's aw88261 had gained format negotiation (merged for-7.2) that our base lacked. The fixup was obsolete on mainline and drew "don't add this nonsense" (2026-07-05).
  2. Duplicate-predicate rule: a patch that leaves the tree computing the same non-trivial predicate in two places — ESPECIALLY when the patch itself creates the equivalence — is a guaranteed "use the helper" review comment. Consolidate, or carry the reason in the artifact (notes below the --- at minimum), never silently. (swr-mclk patch 2 / PLB, 2026-07-28: his rationale — quirks handled "in a single location" — pre-rebutted our banked answer.)
  3. No infrastructure for imagined futures: no fields, parameters, DT properties, or abstractions serving only a use case that isn't in this series. Mainline adds them when the user arrives.
  4. Per-patch justification: every patch in the series must independently earn its place under the current series structure. After any restructure, a patch whose original rationale no longer applies is DROPPED, not rationale-swapped (icm42630 v2 patch 4: its surviving justification was the exact argument the thread had already dismissed).
  5. Per-hunk sweep: for each hunk ask "what breaks if this hunk is dropped?" If the answer needs the words "in the future" or "just in case", flag it.

Verdict

Per presend.md §Verdicts (predicted-comment lens; a wrong mechanism is objective). FIX FIRST for anything the base already provides, duplicate predicates, patches that don't independently justify themselves, and any line the reviewer would plausibly ask to drop. A droppable line nobody would remark on is not a finding — record it as an immaterial note with the reason. Never grade a finding; a finding an in-force disposition names is reported with dischargedBy after its grounds are verified.

Calibration (append dated entries at the bottom)

  • 2026-07-05 (sc8280xp v1): obsolete-on-mainline fixup → "don't add this nonsense". Rule 1.
  • 2026-07-28 (swr-mclk patch 2, icm42630 v2 patch 4): duplicate predicate and rationale-swapped patch, both cost round-trips. Rules 2 and 4.
  • 2026-08-31 (stk36c61 v3, gate rounds 1-2): rule 2 lacked a disposition for an explicit HUMAN-OWNER waiver, so a fresh run re-blocked a finding the artifact owner had already ruled on — round 1 raised the read_avail-beside- const-attrs duplicate (correctly: the v3 trim had deleted the commit-message sentence that was v2's own rule-2 resolution), the owner chose artifact- silence over a --- note with his reasons on the record, and round 2's independent agent re-raised the identical FIX FIRST. Disposition added: a rule-2 finding is ALSO discharged by a GATE-5-CLASS WAIVER row in the subsystem ledger's Decisions table that (a) is fresh and dated, (b) names and explicitly overrides the prior resolution, (c) binds to the exact series hash under review, and (d) records the owner's own grounds. The lens must still DETECT and report the duplicate — restate it as a waivable finding pointing at the waiver row, so Gate 5's record stays complete and a later hash cannot inherit the waiver silently — but must not return FIX FIRST for an owner-ruled finding. Detection is unchanged; only the disposition of a finding the named human owner has explicitly ruled on changes.
  • 2026-09-03 (the waivable severity retired; presend.md §Verdicts): the 2026-08-31 disposition above is generalised to every lens and moved into the pipeline. The register (gate-state/dispositions.json, handed to you as DISPOSITIONS IN FORCE) carries its four conditions — boundAt, supersedes, hash plus mechanical carry on anchor counts, grounds — and is the authority: a ledger row alone no longer discharges anything, and the "re-date and re-bind on every unfreeze" condition is retired in favour of carry. Detection is still unchanged: report the duplicate, set dischargedBy after verifying the grounds, or contest with evidence the grounds do not survive. There is no "waivable" any more — a droppable line is a finding if the reviewer would plausibly ask, else an immaterial note.