Context
Measured while analysing why opus round-1 approval is 29% against GPT's 82% (Discussion #16923). The largest artifact in the review loop is the one reviewers load least, and the gate that should have prevented that was disarmed by a per-skill override rather than satisfied.
Debt paid before opening per the operator's resolve-before-open rule: nine tickets closed today, including #16910 and #16914.
Live latest-open sweep at 2026-08-10T21:45Z plus a keyword sweep for an existing extraction owner: none found.
The Problem
.agents/skills/skills.manifest.json sets a global perFilePayloadBudget of 25000. The pr-review skill overrides it to 37000:
| skill |
cap |
vs global |
pr-review |
37000 |
+12000 (+48%) |
pull-request |
22000 |
−3000 |
pr-review-guide.md is 36884 bytes — 116 bytes under a ceiling that exists only to accommodate it, and 11884 over the global cap. pull-request moved the other way and tightened.
This is Map vs World Atlas satisfied by moving the goalpost. The lint's own failure message prescribes the real remedy — "Extract edge-case sections to sub-rule sibling files behind one-line trigger pointers" — and the override made that unnecessary. There is no sunset condition on it, so §self_evolving_systems's Substrate Accretion Defense is violated by the instrument meant to enforce it.
Why it costs review quality specifically, which is what makes this more than hygiene. The single largest section is §7 "Depth Floor — Preventing Rubber-Stamp Approvals" at 10694 bytes, and within it §7.7 Anti-Patterns at 3685. Measured reviewer behaviour over the latest 600 PRs: opus seats approve 64–79% of first formal reviews, GPT seats 14–24%. The guidance against rubber-stamping is the biggest thing in the book and therefore the least likely to be loaded at the moment of the verdict. Volume is not the same as reach.
The Architectural Reality
The Atlas already exists and is half-applied — .agents/skills/pr-review/audits/ holds seven siblings, and §7.5.1, §7.5.2, §7.5.3, §7.6 and §7.8 already point at them. What remains is the subsections that were never extracted.
Measured byte census, top-level:
| bytes |
section |
| 10694 |
§7 Depth Floor |
| 5245 |
§5 Required Actions & Cross-Linking |
| 3860 |
§6 Review Template Selection |
| 3181 |
§3 Structural Evaluation Metrics |
Within §7:
| bytes |
subsection |
shape |
| 3685 |
§7.7 Anti-Patterns |
catalogue, consulted on demand |
| 1444 |
§7.3 Provenance Audit |
per-review step |
| 1324 |
§7.5 Test-Evidence & Location |
per-review step |
| 1313 |
§7.1 Minimum-One-Challenge |
mandate |
| 262 |
§7.2 Cross-Model Asymmetry |
context |
Extraction targets are the on-demand lookups, not the per-review steps. §7.1 is a mandate and stays in the Map as a trigger; §7.7 is a catalogue a reviewer consults when a smell appears.
Section refs are matched as (TARGET\s+)?§REF with markdown links stripped, and a backticked filename silently breaks the match — so pointers are written bare: review-anti-patterns.md §1, never with backticks.
The Fix
Extract on-demand catalogues to audits/ siblings behind one-line triggers, then ratchet the override down by the bytes recovered so the reclaimed space cannot be refilled. Extraction without the ratchet is temporary.
Order, largest-yield first: §7.7 Anti-Patterns (3685), §6 Review Template Selection (3860), the template blocks inside §5 (5245 total). That reaches the 11884 needed for the global cap.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
pr-review-guide.md §7.7 |
this ticket |
content moves to audits/review-anti-patterns.md; a one-line bare-path trigger remains |
none — the trigger is mandatory, the payload is on-demand |
the trigger line |
guide byte count drops by ≥3600 |
skills.manifest.json pr-review.perFilePayloadBudget |
this ticket |
ratcheted down by at least the bytes recovered, each step permanent |
never raised again without a sunset condition |
the manifest value |
ai:lint-skill-manifest -- --base origin/dev green at the lower cap |
.agents/skills/pr-review/audits/ |
existing convention (#11319 / #11320) |
gains siblings; the seven existing files are the precedent |
n/a |
the sibling files |
the five already-extracted subsections |
Decision Record impact
none. Applies the existing Map vs World Atlas convention and the Substrate Accretion Defense; amends no ADR.
Acceptance Criteria
Out of Scope
- Deleting any guidance. Map vs World Atlas relocates behind a trigger; it does not remove rules. A PR that drops a rule fails the first AC.
- §5 and §6 extraction. Named above as the follow-on order with measured bytes; this leaf delivers §7.7 and the ratchet so the pattern and the finish line are established.
- The other two
oversizedWorkflowMaps entries. post-review-pickup-workflow.md is 8143 and needs nothing; pull-request-workflow.md is already tightened to 22000.
- Any change to review policy. This moves bytes; it does not alter what a reviewer must do.
- The reviewer-rigor gate itself — that is
#13144, where the falsifier field is proposed.
Avoided Traps
- Reading "compress" as "delete". The lint message says extract; the operator's framing is explicit that optional items move to their own files behind short meaningful triggers. Deleting rules to hit a number would trade review quality for a green gate.
- Extracting without ratcheting the cap. Reclaimed bytes get refilled; the override is what made 36884 possible.
- Extracting a per-review step. §7.1 is a mandate — moving it behind a trigger would make the floor optional. Only on-demand lookups move.
- Backticked pointers. They silently break section-ref validation, producing an unvalidated ref that reads as checked.
- Raising the cap again "temporarily." The +12000 was presumably temporary too, and it has no sunset.
Related
Discussion #16923 (the measurement that surfaced this). #13144 (reviewer-rigor gate). #11319 / #11320 (the Map vs World Atlas convention).
Origin Session ID: 83ee6112-e066-42b4-a1b5-d064d0f9c276
Retrieval Hint: "pr-review-guide perFilePayloadBudget override 37000 extract Atlas"; grep oversizedWorkflowMaps ai/scripts/lint/lint-skill-manifest.mjs.
Context
Measured while analysing why opus round-1 approval is 29% against GPT's 82% (Discussion #16923). The largest artifact in the review loop is the one reviewers load least, and the gate that should have prevented that was disarmed by a per-skill override rather than satisfied.
Debt paid before opening per the operator's resolve-before-open rule: nine tickets closed today, including
#16910and#16914.Live latest-open sweep at 2026-08-10T21:45Z plus a keyword sweep for an existing extraction owner: none found.
The Problem
.agents/skills/skills.manifest.jsonsets a globalperFilePayloadBudgetof 25000. Thepr-reviewskill overrides it to 37000:pr-reviewpull-requestpr-review-guide.mdis 36884 bytes — 116 bytes under a ceiling that exists only to accommodate it, and 11884 over the global cap.pull-requestmoved the other way and tightened.This is Map vs World Atlas satisfied by moving the goalpost. The lint's own failure message prescribes the real remedy — "Extract edge-case sections to sub-rule sibling files behind one-line trigger pointers" — and the override made that unnecessary. There is no sunset condition on it, so
§self_evolving_systems's Substrate Accretion Defense is violated by the instrument meant to enforce it.Why it costs review quality specifically, which is what makes this more than hygiene. The single largest section is §7 "Depth Floor — Preventing Rubber-Stamp Approvals" at 10694 bytes, and within it §7.7 Anti-Patterns at 3685. Measured reviewer behaviour over the latest 600 PRs: opus seats approve 64–79% of first formal reviews, GPT seats 14–24%. The guidance against rubber-stamping is the biggest thing in the book and therefore the least likely to be loaded at the moment of the verdict. Volume is not the same as reach.
The Architectural Reality
The Atlas already exists and is half-applied —
.agents/skills/pr-review/audits/holds seven siblings, and §7.5.1, §7.5.2, §7.5.3, §7.6 and §7.8 already point at them. What remains is the subsections that were never extracted.Measured byte census, top-level:
Within §7:
Extraction targets are the on-demand lookups, not the per-review steps. §7.1 is a mandate and stays in the Map as a trigger; §7.7 is a catalogue a reviewer consults when a smell appears.
Section refs are matched as
(TARGET\s+)?§REFwith markdown links stripped, and a backticked filename silently breaks the match — so pointers are written bare:review-anti-patterns.md §1, never with backticks.The Fix
Extract on-demand catalogues to
audits/siblings behind one-line triggers, then ratchet the override down by the bytes recovered so the reclaimed space cannot be refilled. Extraction without the ratchet is temporary.Order, largest-yield first: §7.7 Anti-Patterns (3685), §6 Review Template Selection (3860), the template blocks inside §5 (5245 total). That reaches the 11884 needed for the global cap.
Contract Ledger Matrix
pr-review-guide.md§7.7audits/review-anti-patterns.md; a one-line bare-path trigger remainsskills.manifest.jsonpr-review.perFilePayloadBudgetai:lint-skill-manifest -- --base origin/devgreen at the lower cap.agents/skills/pr-review/audits/Decision Record impact
none. Applies the existing Map vs World Atlas convention and the Substrate Accretion Defense; amends no ADR.Acceptance Criteria
audits/review-anti-patterns.md, reachable from a one-line trigger in the guide. No content is deleted — extraction preserves every rule.ai:lint-skill-manifestreports no dangling section ref.pr-review.perFilePayloadBudgetis lowered by at least the bytes recovered, measured and stated in the PR.ai:lint-skill-manifest -- --base origin/devis green — the invocation CI uses, since a bare run printsbyte-delta gates skipped.Out of Scope
oversizedWorkflowMapsentries.post-review-pickup-workflow.mdis 8143 and needs nothing;pull-request-workflow.mdis already tightened to 22000.#13144, where the falsifier field is proposed.Avoided Traps
Related
Discussion #16923 (the measurement that surfaced this).
#13144(reviewer-rigor gate).#11319/#11320(the Map vs World Atlas convention).Origin Session ID: 83ee6112-e066-42b4-a1b5-d064d0f9c276
Retrieval Hint: "pr-review-guide perFilePayloadBudget override 37000 extract Atlas";
grep oversizedWorkflowMaps ai/scripts/lint/lint-skill-manifest.mjs.