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

Planning bug: two bugs were filed mid-run WITHOUT the bug-filing protocol — one proposed a rule the corpus already carries in both homes, and the rule forbidding exactly that was routed to the pass that skipped it

Done
Description

This is step 5 of the REPLAN ACTION that motir run 3571 ran on MOTIR-3571. It records the defect and the one decision the replan did not settle.

Outcome of the replan: the corrected MOTIR-3571 was approved, built and shipped as motir-ai#309 — one global lesson row plus its generated data migration. So the takeaway this card is about is now IN the corpus, and what remains here is only the MOTIR-3570 gate pass below.

What happened

While running MOTIR-3463, two bugs were filed as asides in the flow of that run — MOTIR-3570 and MOTIR-3571. Neither invoked log-bug.md, and neither loaded the rule packs plan-rules/MANIFEST.md routes to a bug-filing pass. Both carried strong evidence and failed ordinary authoring gates.

MOTIR-3571's defects, as found when it was later picked up as a run target:

gatedefect
core #1 — repo pinnedtargetRepo: null, targetRepos: [], while its criteria named paths in TWO repositories
core #16 — both content axesexplanationMd: null
phase-deepen gate 14 — ACTORa criterion asking that MOTIR-3463 carry a comment — another card's work
phase-deepen — the asserted-ABSENCE limbthe remedy asserted a corpus gap that is not there

⚠️ The one that matters — and the exact rule it broke

MOTIR-3571's remedy was "add this rule to plan-rules.md and its mirror." Verified on origin/main of both homes AFTER the card was filed:

  • plan-rules/phase-deepen.md step 2 already carries it — "Readable in a running system ⇒ QUERY that system, and put the output on the card" / "Readable nowhere ⇒ the premise is a HYPOTHESIS (the UNVERIFIABLE verdict), and the card's grammar says so."
  • plan-rules/phase-deepen.md gate 14 — "AUDIT EVERY WORLD-STATE CRITERION FOR A SECOND ACTOR."
  • motir-ai/src/llm/planningRulePacks.ts:132 AC_SATISFIABLE_INSIDE_THE_BOUNDARY — the mirror, same text.

And the pack carries the rule that forbids exactly this mistake:

⚠️ A card whose deliverable is an EDIT asserts the text is not there (the asserted-ABSENCE limb)"GREP the target and QUOTE the result before asserting the gap … When the target is MIRRORED — plan-rules/SHARED_PLANNING_RULES — grep BOTH homes, and by a TEXT probe over the constant rather than a pack-name lookup."

There is no corpus gap and no routing gap. plan-rules/MANIFEST.md:42 routes motir log-bug to core.md + phase-deepen.md + kind-leaf.md + kind-leaf-deepen.md + kind-bug.md + …. The rule existed, was routed to precisely this act, and was not read — because filing was treated as a note rather than as authoring a card.

So the remedy here is NOT another rule. Adding a fourth restatement would give the corpus one more place to drift and would teach nobody; the corpus's own convention (_shared.md) is that one occurrence is a LESSON and only a recurrence earns a rule. The takeaway is recorded as tenant lesson cmta2kil70000i3sksmvw0lk3, "File a bug through the bug-filing protocol, even when the defect surfaced mid-conversation."

The still-open decision this replan did NOT settle

MOTIR-3570 was filed the same way and has not been run through the gates. Its EVIDENCE is sound — the failing step, the log excerpt and the machine-creation timestamps were all read at rung 2, and its stated fix was verified against .github/workflows/ci.yml — but nobody has checked its acceptance criteria for the ACTOR / SURFACE / ORDERING axes, nor confirmed its repo pin is right. Someone should give it one gate pass before it is claimed. Not done here, deliberately: a run corrects the card it is running, and re-scoping a second card on the way past is the scope creep this protocol exists to prevent.

Acceptance criteria

  • MOTIR-3570 has had plan-rules/core.md's per-card gate checklist run over it — gates 1, 14 and 16 at minimum — and either passes or is re-planned.
  • This card states which of the two outcomes happened, with the evidence, rather than being closed silently.

Context refs

  • motir-meta/prompts/log-bug.md — the protocol neither filing invoked
  • motir-meta/prompts/plan-rules/MANIFEST.md:42 — the routing that was already correct
  • motir-meta/prompts/plan-rules/phase-deepen.md — the asserted-ABSENCE limb and gate 14
  • Plan cmta2ixdy0026i3ph46lyyu04 — the re-plan of MOTIR-3571, approved and shipped as motir-ai#309