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

(motir-ai) Mirror W6 into `SHARED_PLANNING_RULES` — name what ANSWERED when the address comes from our own config

Blocked
Description

Repo: motir-ai. One PR. Type: content · Executor: coding_agent. The MIRROR half of MOTIR-2929blocked_by it, and it merges FIRST. A rule that lands in only one home is half-landed: prompts/plan-rules/ is what a human planning pass reads, SHARED_PLANNING_RULES is what the shipped planner is given.

What to carry

The clause MOTIR-2929 lands in kind-leaf-deepen.md's THIRD LIMB, in this file's register (the mirror is uppercase-emphatic prose, not Markdown — match the surrounding sentences rather than pasting the pack's formatting):

AND NAME WHAT ANSWERED. Every discharge above is addressed by a name the platform itself owns. When the address comes from OUR configuration instead — a *_DATABASE_URL, a *_URL, a CLI profile or context, an account/tenant token — the config did not make the assertion, it chose WHO WOULD ANSWER IT, and a stale, sibling or snapshot copy connects, authenticates and answers in milliseconds with the correct answer to a question about last month. Nothing errors, and having run something real RAISES confidence. Such a reading is discharged only by A WITNESS THAT DATES THE RESPONDER — a row whose existence dates the database, a build version, an id verified independently — or by reading FROM INSIDE the system, on the running instance, using its own environment. AND AN ASSERTION OF ABSENCE THROUGH SUCH AN ADDRESS IS THE ONE THAT MUST NOT BE ACTED ON: "not there" is the identical reply from a current system and from a copy of it, and it is the direction whose remedy deletes.

The insertion point is immediately after this file's existing tell sentence — "THE TELL: the card's evidence for a RUNTIME property is a file in our own repo, and nothing reads the platform" — because that tell is precisely what read clean in the incident, and the new clause is the case it cannot see.

Acceptance criteria

  1. src/llm/planningRulePacks.ts's kind-leaf-deepen pack carries the clause, placed after the existing THE TELL sentence of the third limb, in this file's prose register.
  2. A test in tests/planningRulePacks.test.ts asserts the pack contains a distinctive phrase of the new clause (NAME WHAT ANSWERED and WITNESS THAT DATES THE RESPONDER), following whatever form the file's existing rule-presence assertions take — read them first rather than inventing a shape.
  3. The PR body quotes the corresponding plan-rules/kind-leaf-deepen.md text from origin/main after MOTIR-2929 merged, and states that the two homes now read the same, so a reviewer can diff them without opening both repos.
  4. Per-file coverage meets the repo's floor for every file the diff touches.

Context refs

  • motir-ai/src/llm/planningRulePacks.ts — the mirror home. ⚠️ SHARED_PLANNING_RULES moved here from src/llm/treeGeneration.ts; a grep of treeGeneration.ts returns 0 for this whole family and is a false negative. The lines are very long — read it with python, not grep.
  • motir-ai/tests/planningRulePacks.test.ts — where criterion 2 goes.
  • MOTIR-2929 — the motir-meta half, which carries the full gap analysis and the warrant line; MOTIR-2916 — the record card that filed the pair; MOTIR-2795 — the fixture.
  • MOTIR-2914 — the sibling mirror card (W5). Disjoint clauses in the same file: if both are in flight, the second to branch rebases rather than resolving a hunk conflict by hand.