Repo: motir-ai. One PR. Type: content · Executor: coding_agent. The MIRROR half of MOTIR-2929 — blocked_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.
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.
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.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.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.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-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.