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-2723

Planning bug: the FOURTH line-target miss, and the re-shape — `--check` compares against a hand-typed constant instead of deriving the floor from the corpus

Done
Description

Repo: motir-meta. One PR. Filed by MOTIR-2662's run, which spent § Decision 4's escape clause and amended the target on the record for the third time. This is the re-shape the repeat-defect trigger prescribes at three, not a fourth patch.

Finding — a "measurement" that was still an arithmetic

MOTIR-2706 corrected § Decision 4 the day before, replacing a projection (1 600) with a figure derived from measurements (1 950), and stated the perfect-cut floor as 1 867603 − 196 + 2×25, the evidence tag charged at the two lines § Decision 1 prints and COMPRESSION.conserve.py enforces.

MOTIR-2662 ran the cut and landed at 1 975.

The yield forecast was exactly right, which localises the error to one place. The record predicted the three landed cards' mean realisation of 38%; the cut removed 74 gross warrant lines against a projected 196 — 38% to the percentage point.

The entire 25-line miss is that an evidence tag occupies THREE lines on disk, not two. A blockquote must be separated from the paragraph above it by a blank line or Markdown folds it into that paragraph, so a tag inserted between two paragraphs costs blank + **Warrant:** + → [fixtures/…].

perfect cut of the six worst-cell packsformulacell
1-line tag (measure.py's TAG_LINES)603 − 196 + 1×25 = 4321 842
2-line tag (§ Decision 1's printed form)603 − 196 + 2×25 = 4571 867 ← recorded
3-line tag (what a file holds)603 − 196 + 3×25 = 4821 892

1 950 sat 58 lines above a floor that was itself 25 lines too low.

Why this is a re-shape and not a fourth correction

Three re-sets of one number in two days, all sharing a root shape — a line figure set from a calculation never run against the artifact it describes:

#instancethe unmeasured step
MOTIR-2687AC set from a corpus-wide warrant sharethe share was never measured on the region
MOTIR-2702TAG_LINES = 1 vs a two-line printed formnobody multiplied
this onefloor from a two-line tagthe separator the format requires was never counted

Per plan-rules/kind-bug.md's repeat-defect trigger, at three the card is not sealable on the three-independent-causes branch — they are one cause. So: the re-shape card.

notes.html #260 carries the lesson and its rule-tier move: a number about an artifact is checkable only against the artifact — not against its specification, not against the code that generates it, not against the paragraph defining its shape.

Acceptance criteria

  1. COMPRESSION.measure.py DERIVES the worst cell's perfect-cut floor from the corpus it already walks — per-pack sentence-grain warrant, warranted-rule count, and a TAG_LINES read from a REAL tag — and prints it beside the measured cell. --check compares the cell against a derived floor and a derived expected landing; no hand-typed WORST_TARGET survives as the sole authority.
  2. TAG_LINES is established EMPIRICALLY, not declared. The script counts the on-disk lines a real tag occupies in a compressed pack (> **Warrant:** + → [fixtures/…] + the mandatory blank separator) rather than carrying a literal. This subsumes MOTIR-2702's AC 1 — coordinate: if MOTIR-2702 lands first it sets TAG_LINES = 3, not 2, and this card replaces the constant with the count.
  3. A MINIMUM-SPAN rule is recorded in COMPRESSION.md § Decision 1: a rule whose separable warrant is smaller than the tag that replaces it is left whole and named, because compressing it makes the pack longer. Fixture: op-replan.md came out +1 line / −494 chars at a 49.1% measured warrant share.
  4. § Decision 4's amendment history is left as written — three strikethroughs and three dated blocks. This card changes how the number is COMPUTED, not what the record says happened.
  5. plan-rules/ rule TEXT is not edited — this is tooling and record only.

Context refs

  • prompts/plan-rules/COMPRESSION.md — § Decision 4's third amendment (MOTIR-2662) carries the arithmetic; § Consequences' "The projection SIZES a problem" carries the three prior defects.
  • prompts/plan-rules/COMPRESSION.measure.pyTAG_LINES, CORE_CAP, WORST_TARGET, and the --check block.
  • prompts/plan-rules/COMPRESSION.conserve.py — the TAG / PTR regexes; the authority on the tag's shape, and where a real tag can be counted.
  • notes.html #260 — this occurrence; #257 / #258 / #259 — the prior three.
  • ⚠️ MOTIR-2711 is open and adjacent: conserve.py's default merge-base baseline is post-compression on main. Both cards are "the checker's default is wrong"; they are separable but should be read together.