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
Opened by Zhu Yue ·
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:
| gate | defect |
|---|---|
| core #1 — repo pinned | targetRepo: null, targetRepos: [], while its criteria named paths in TWO repositories |
| core #16 — both content axes | explanationMd: null |
phase-deepen gate 14 — ACTOR | a criterion asking that MOTIR-3463 carry a comment — another card's work |
phase-deepen — the asserted-ABSENCE limb | the 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.mdstep 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.mdgate 14 — "AUDIT EVERY WORLD-STATE CRITERION FOR A SECOND ACTOR."motir-ai/src/llm/planningRulePacks.ts:132AC_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 invokedmotir-meta/prompts/plan-rules/MANIFEST.md:42— the routing that was already correctmotir-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
Discussion
No comments yet.
Adding to this discussion signs you in on app.motir.co and brings you back to this request.