Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
144
planned
1,362
shipped

Motir · Work items

MOTIR-2934Done

Planning bug: `COMPRESSION.conserve.py` cannot express "a gate gained a sub-bullet" — the enumeration's COUNT NUMERAL is surviving text, so every future limb re-words it

Repo: motir-meta. One PR. Surfaced 2026-08-17 by the motir run MOTIR-2913 execution, under notes.html #27 (an out-of-scope defect found mid-subtask is logged, never absorbed). MOTIR-2773's sibling, one arrow over: that card gave the checker a verdict for added; this is the shape an addition takes that the added verdict still cannot reach.

The defect

core.md gate 8 introduces its sub-bullets with a counted lead-in — "Six more triggers, each of which reads as not a re-plan…". The count is ordinary pack prose, so it sits inside the region COMPRESSION.conserve.py holds word-for-word against the pre-compression baseline.

Adding a sub-bullet therefore requires re-wording surviving text, and invariant C is stated so that any replace is fatal:

    exit 1  a span was lost, or baseline text was re-worded, or a fragment was inserted

The sub-bullet itself classifies cleanly as + ADDED (MOTIR-2773's exemption works exactly as designed). It is the numeral that trips, and there is no way to add a limb to a counted enumeration without touching it.

The evidence — the FAIL on core.md is entirely this, and has been for two cards

Measured on origin/main at 77747a7, before MOTIR-2913 made any edit:

[FAIL] core.md   baseline 60877c → 54893c  (…, 5 sentence(s) ADDED)
         REPLACE — expected 'F'   got 'S'
         REPLACE — expected 've'  got 'x'

FiveSix. That is the whole violation: a previous card added a sub-bullet and bumped the numeral. No warrant was lost, no rule re-worded, no fragment inserted. core.md has been red since, for a numeral.

After MOTIR-2913's own sub-bullet (FiveSeven):

[FAIL] core.md   baseline 60877c → 55760c  (…, 6 sentence(s) ADDED)
         REPLACE — expected 'Fi'  got 'Se'
         INSERT  — expected ''    got 'n'

The violation COUNT is unchanged — the same single reword region, re-expressed. Two cards have now paid the same red, and every future gate-8 limb will re-pay it.

Why it matters (the docstring says so itself)

conserve.py's own rationale for MOTIR-2773 is that a permanently-red check gets ignored:

A check that is red for a benign reason on three packs and counting is a check nobody reads, which is how a real re-wording gets through.

That is now true of core.md for the same reason the docstring names, via a shape the fix did not cover. core.md is the pack every pass loads, so it is the worst one to have parked at red.

Deliberately NOT decided here — the fix is a real choice

  1. Drop the numeral from the pack"More triggers, each of which…". One replace now, none ever again. Cheapest, and the count carries no rule content. But it is itself a reword, so it must land as its own recorded exception.
  2. Teach is_addition an ENUMERATION-COUNT verdict — a replace whose both sides are number-words/digits, adjacent to a list whose length changed by the delta. Precise, and strictly more machinery to trust.
  3. Re-baseline core.md — declines to answer, and loses every conservation claim since the first compression.

Recommend (1), with the finding written into COMPRESSION.md § Decision 1 so a reader knows why the numeral went. Do not pick it here without reading CORPUS-MAINTENANCE.md.

Related, NOT folded in

  • core.md's gate INDEX (line ~677) says "Limbs 8a–8e" while gate 8 has held six sub-bullets and now holds seven. Same root cause (an enumeration label that is surviving text), already stale before this run, and fixing it is a second replace — so it belongs to whichever disposition above lands, not to a separate card.

Acceptance criteria

  1. python3 prompts/plan-rules/COMPRESSION.conserve.py core is run and quoted BEFORE any edit, so the chosen fix is measured against the red recorded above and not against a re-derived one.
  2. One of the three dispositions is chosen, applied, and its reasoning recorded in COMPRESSION.md § Decision 1 — including why the other two were refused.
  3. core.md's gate-8 sub-bullet count and its gate-index limb range (8a–8e) agree with the sub-bullets actually present, whatever form the disposition leaves them in.
  4. python3 prompts/plan-rules/COMPRESSION.conserve.py is re-run over EVERY pack and its verdict quoted. core.md reaches [PASS], or the PR body names the remaining violation and why it is not this card's.
  5. The PR body states that the pre-existing red was Five → Six from an earlier card and NOT introduced by MOTIR-2913 — whose edit re-expressed the same single region — so no reader attributes it to the wrong PR.

Context refs

  • prompts/plan-rules/COMPRESSION.conserve.pyis_addition() / classify(), and the docstring's WHICH OPERATIONS IT IS STATED OVER section.
  • prompts/plan-rules/core.md gate 8 — the counted lead-in (line ~147) and the gate index (line ~677).
  • MOTIR-2773 — the added verdict this sits one arrow past; MOTIR-2913 — the run that surfaced it.