Surfaced by the fallback panel on #166 (LOW, flagged independently as a length/structure concern). Not repaired there: rebuilding the contract inside a fix round is the mechanism creep fallback-review-panel.md itself warns against.
What is wrong
Contract item 7 is now 75 of 389 lines (~19%) of docs/agentic-dev-kit/fallback-review-panel.md, and it is the largest single item by a wide margin. It has been repaired in four separate changes.
The doc's own "Keep the record small" section says "A claim that has needed repairing twice is doing more work than it can carry; cut it back to what you can stand behind." Item 7 is exempt from the letter of that rule — it is executed prose, first class, so the remedy is not deletion — but the size is a real problem for a different reason: item 7 now carries four separable requirements under one number.
- Do not mutate the shared tree (the original requirement).
- Establish your placement — linked worktree vs. the shared checkout — before any write, and report HEAD +
git status --short at the end.
- Namespace the scratch path by lens and revision.
- Resolve the right revision — diff against the named sha, verify the base, handle the wrong-repo case.
(2) and (4) were added on #166; (3) came from #136. A lens is handed this as one blob, and a reader looking for "how do I get to the right code" has to read past three other requirements to find it.
Why it was not just split
The obvious repair — promote each into its own numbered item — is blocked by stable numbering. Items 2, 5, 7 and 9 are referenced by number from:
So renumbering silently invalidates external references, including in tests and issue titles. #166 worked around it by appending item 10 rather than inserting, which preserves references but puts a report-shape requirement after the severity requirement instead of beside the other report-shape items (8, 9).
What a repair needs to decide
Not urgent
Nothing is broken. This is a readability and maintainability ceiling on the file that every panel run reads, filed so the next person to touch item 7 does not have to re-derive why it could not simply be split.
Surfaced by the fallback panel on #166 (LOW, flagged independently as a length/structure concern). Not repaired there: rebuilding the contract inside a fix round is the mechanism creep
fallback-review-panel.mditself warns against.What is wrong
Contract item 7 is now 75 of 389 lines (~19%) of
docs/agentic-dev-kit/fallback-review-panel.md, and it is the largest single item by a wide margin. It has been repaired in four separate changes.The doc's own "Keep the record small" section says "A claim that has needed repairing twice is doing more work than it can carry; cut it back to what you can stand behind." Item 7 is exempt from the letter of that rule — it is executed prose, first class, so the remedy is not deletion — but the size is a real problem for a different reason: item 7 now carries four separable requirements under one number.
git status --shortat the end.(2) and (4) were added on #166; (3) came from #136. A lens is handed this as one blob, and a reader looking for "how do I get to the right code" has to read past three other requirements to find it.
Why it was not just split
The obvious repair — promote each into its own numbered item — is blocked by stable numbering. Items 2, 5, 7 and 9 are referenced by number from:
fallback-review-panel.mditself ("contract item 7", "contract item 9", "the anchoring contract item 2 forbids")scripts/tests/test_mutation_gate.py:3("contract item 5")So renumbering silently invalidates external references, including in tests and issue titles. #166 worked around it by appending item 10 rather than inserting, which preserves references but puts a report-shape requirement after the severity requirement instead of beside the other report-shape items (8, 9).
What a repair needs to decide
item 7→#isolation), with a one-time sweep of every referencing site, so future inserts are cheap. This is the version that actually closes the problem.item 7resolving but reads awkwardly and does not help item 8/9/10 ordering.contract item Nreference in any tracked file resolves to an item that exists. There is none today, so a renumber would fail silently — the same class as archive_plan_sessions must warn on relative cross-references — both inside moved blocks and into them #73 (relative cross-references) and A three-space list continuation is correct CommonMark and silently renumbers under Python-Markdown #116 (list renumbering under Python-Markdown).Not urgent
Nothing is broken. This is a readability and maintainability ceiling on the file that every panel run reads, filed so the next person to touch item 7 does not have to re-derive why it could not simply be split.