MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-2898

`core.md`'s 620-line cap has no room for the cross-reference index the split made necessary — and the pays-for-itself mechanism is unavailable to any card forbidden from editing `fixtures/`

Done
Description

Repo: motir-meta. One PR. Filed by MOTIR-2708's run (motir-meta PR #199), which flipped COMPRESSION.measure.py --check's core.md row from PASS to FAIL and could not buy the lines back. Surfaced rather than absorbed (notes.html #27).

Finding — the cap and the repair mechanism are not reachable from the same card

COMPRESSION.measure.py --check on origin/main (7b005e5):

[PASS] core.md                                        612 / 620    § Decision 3 as amended (MOTIR-2706)
[FAIL] worst cell (deepen · bug · code, re-plan)     2027 / 1942   DERIVED landing at 38% yield (floor 1817)

core.md sits 8 lines under its cap. MOTIR-2708's deliverable — a gate-by-gate index naming the pack that holds each of the sixteen gates, which its AC 3 requires by name — costs 33 lines after two rounds of trimming (45 → 37 → 33). The row lands at 645 / 620.

The lines cannot be bought back, and the reason is structural. § Decision 3 step 2's pays-for-itself mechanism reads: "The same PR compresses an equal number of warrant lines elsewhere in core.md." Compressing warrant under § Decision 1 means moving spans into fixtures/core.md under their anchors. MOTIR-2708's AC 6 forbids editing fixtures/core.md — correctly, since a cross-reference card has no business touching the warrant proof. So the card was scoped with a deliverable that costs lines and without access to the only instrument that pays for them.

Why this is not "MOTIR-2708 should have been smaller"

The index is not padding, and the record says so about this exact species of line. § Decision 3's own amendment records why MOTIR-2660 stopped at 598 rather than reaching 520:

the remaining distance to 520 could only be bought by cutting triggers, tell-lists or the index — which § Decision 4 forbids in the same breath as it sets a target.

MOTIR-2708's addition is a index. Trimming it further trades the reader's gate-number lookup — the failure the card exists to repair — for a line count, which is § Decision 4's "the target gives way, not the rule" pointed the wrong way.

There is also a one-way ratchet worth naming: MOTIR-2627's split moved 554 lines out of core.md, and every such move creates cross-reference debt that can only be discharged inside core.md, because that is where the reader is standing when the pointer breaks. A cap set from a post-compression measurement (598 + ~3.7% headroom) budgets for rules and not for the pointers the compression itself made necessary.

What to do

Establish which of the three this is, from the measurement, and record it:

  1. The cap's BASE is wrong — 620 was derived as MOTIR-2660's landing + the record's own headroom, with no allowance for cross-reference lines. Re-derive it with that allowance and amend § Decision 3 (step 3: "Raising the cap is a decision record, not a commit").
  2. The cap should be DERIVED, not typed — the shape MOTIR-2723 already applied to the worst cell, which now prints a derived floor and landing while CORE_CAP remains a hand-typed constant one file over. Same defect, same fix, not yet applied here.
  3. The pays-for-itself mechanism needs a second currency — a card that may not touch fixtures/ cannot pay in warrant, so § Decision 3 step 2 needs an exemption or an alternative for cross-reference-only additions.

Acceptance criteria

  1. The disposition is stated in the PR body as one of the three above (or a named fourth), with the measurement that settles it — not with a re-derivation of the projection § Consequences already records as unfit to set a floor.
  2. COMPRESSION.measure.py --check's core.md row is GREEN against origin/main at the time the card lands, with core.md's then-current line count quoted. If the answer is a raised cap, § Decision 3 carries a new dated amendment block in the established form — strikethrough the old number, keep the convention, record the measurement.
  3. If the answer is a DERIVED cap, CORE_CAP no longer survives as the sole authority, exactly as WORST_TARGET no longer does after MOTIR-2723.
  4. § Decision 3 states whether a cross-reference-only addition pays for itself, and in what currency, so the next card in MOTIR-2708's position has an answer instead of an overage.
  5. plan-rules/ rule TEXT is not edited — this is record and tooling only. COMPRESSION.conserve.py <pack> --base 5b32d96 still passes for every pack it passed for before.
  6. The worst-cell row is out of scope; it was already red on main and is MOTIR-2662's ledger, not this card's.

Context refs

  • prompts/plan-rules/COMPRESSION.md — § Decision 3 (the cap, the three steps, MOTIR-2706's amendment block) and § Decision 4 (the target gives way, not the rule).
  • prompts/plan-rules/COMPRESSION.measure.pyCORE_CAP, and the --check block MOTIR-2723 taught to derive the worst cell's floor.
  • prompts/plan-rules/core.md — the gate index MOTIR-2708 added, under ## The plan-time gates.
  • motir-meta PR #199 — the diff that flips the row, with the arithmetic in its body.