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
145
planned
1,361
shipped

Motir · Work items

MOTIR-4152To Do

Planning bug: the corpus routes 13 live citations to `plan-rules/op-replan.md`, which MOTIR-3869 DELETED — including one that says "stated in full there; do not restate it here"

Found while reading the rules for a re-plan of MOTIR-3942 (2026-09-02), following run.md's instruction to read plan-rules.md in full before touching a card. The pack it sent me to does not exist.

The defect

prompts/plan-rules/op-replan.md was retired by MOTIR-3869 / MOTIR-3870"the OPERATION axis is retired: replan IS plan" — and its rules were merged into core.md. MANIFEST.md records that correctly. The files a planning pass actually LOADS were not swept, and still route to the deleted path.

Measured — the command, its scope and its reading:

$ ls prompts/plan-rules/op-replan.md
ls: cannot access …: No such file or directory

$ grep -c op-replan prompts/_shared.md prompts/run.md prompts/plan-procedure.md \
                    prompts/plan-rules/core.md prompts/plan-rules/kind-story.md
prompts/plan-procedure.md:5   prompts/plan-rules/core.md:4
prompts/plan-rules/kind-story.md:1   prompts/_shared.md:1   prompts/run.md:2
→ 13 citations, in the five files a pass loads or is told to read

⚠️ The worst one, and why this is not cosmetic

core.md — the pack every planning pass loads — carries this, in gate 8's fourth-arrow limb:

"Stated in full, with its direction check and its prose signal, in op-replan.md limb (2); do not restate it here."

A reader following that instruction finds no file, and cannot tell from the citation alone whether the rule was lost in the merge or merely moved. I checked: the content SURVIVED — the SCOPE IS NOT STATIC / THE TAKER INHERITS THE DONOR'S BLOCKERS limb is in core.md's own reconcile section, a few hundred lines below the citation. So this is a broken pointer, not a lost rule. That is exactly what makes it worth filing rather than shrugging at: the next reader has to do that verification too, and the cheap failure is to conclude the rule is gone and re-derive it — which is how one rule becomes two copies that drift.

The others are ordinary routing: core.md's gate index sends gate 8 to op-replan.md; run.md twice tells a blocked run that its re-plan rules "live in plan-rules/op-replan.md"; plan-procedure.md cites it five times including inside THE REPLAN ACTION's own steps; _shared.md's pack list describes it as a live pack.

Scope BOUNDARY

  • IN: the 13 citations in the five files above — repointed to where each rule actually lives (core.md's reconcile rules section for the merged limbs, MANIFEST.md for the routing).
  • OUT: the HISTORICAL and MEASUREMENT files. RESTATEMENT.md (21), COMPRESSION.md (4), ASSIGNMENT.md (1), DECISION.md (1), MANIFEST.md (1) and the three .py generators name op-replan as a RECORD of the split and its retirement. Those are correct as they stand and must not be swept — a record of a deleted thing is not a broken pointer.
  • OUT: re-wording any rule. This is a citation repair. A rule that changes wording here is a defect, not a deliverable.
  • OUT: motir-ai — verified, not assumed (core.md gate 19, the TWO HOMES). git grep -c op-replan origin/main -- src returns 2, both in planningRulePacks.ts, and both are PROVENANCE comments rather than routing: a pre-split line-mapping note (:448) and the retirement's own explanation (:838). SHARED_PLANNING_RULES encodes rule TEXT, not pack paths, so the shipped planner has nothing to repoint. This is a single-home card, and that grep is why.

Acceptance criteria

  • grep -rn op-replan over the five live files returns 0, and every one of the 13 sites names a destination that exists.
  • core.md's "do not restate it here" citation resolves — it points at the section of core.md that actually carries the taker-inherits-the-donor's-blockers limb, so a reader can reach the rule without a search.
  • The historical files are UNCHANGED — asserted by diff: the change touches exactly the five files named IN, and no other.
  • No rule text is re-worded. Asserted by a word-diff over the touched hunks showing only citation paths changing.

Context refs

  • motir-meta prompts/plan-rules/MANIFEST.md — the retirement, stated correctly, and the routing every repointed citation should agree with.
  • motir-meta prompts/plan-rules/core.mdThe reconcile rules — MERGED HERE FROM op-replan.md, the section the merged limbs actually live in.
  • motir-meta prompts/plan-rules/COMPRESSION.md § Consequences — why verify.py is red on main and why a reassembly proof cannot be used to check this.
  • MOTIR-3869 / MOTIR-3870 — the cards that retired the operation axis.