Filed by THE REPLAN ACTION on MOTIR-2611, 2026-08-10, per plan-procedure.md step 5.
Re-scoped 2026-08-10 by guard #5 (the one-repo-per-subtask gate). As authored this card straddled
motir-meta+motir-ai, and its own AC 5 said so — which is gate 1's "a card that DECLARES ITS OWN SPLIT has already performed the analysis and stopped one edit short". The split is now performed: themotir-aimirror is MOTIR-2615,blocked_bythis card because it LIFTS this card's merged wording. This card ismotir-metaonly, one PR.
MOTIR-2611 asserted that cli-v0.2.0's tree predated motir login, that the sandbox image built from it therefore could not carry the command, and that cutting cli-v0.2.1 was the fix. It was authored high, dispatched, and its first execution step would have been an irreversible npm publish.
| the card's claim | measured |
|---|---|
cli-v0.2.0's tree had no login | git show cli-v0.2.0:packages/cli/src/program.ts → register(program, 'login') at :95, logout at :114; commandCatalog.ts → path: 'login' at :146 |
52 ahead, 20 touching packages/cli | 53 ahead, 4 touching packages/cli; the program.ts diff is 4 lines, both copy edits |
| the published image cannot have it | :claude == :claude-0.2.0 == one index digest sha256:44d9022… from release run 31280497216; extracting the CLI tarball from BOTH arch layers and running it gives 0.2.0 with login first under SETUP COMMANDS |
motir -v → 0.2.0 and no login | impossible from any published artifact: 0.1.0 has no login, 0.1.1 and 0.2.0 both do |
The card's evidence table has seven rows. Six are measurements of main and one is a tag name. Not one row measures the tag's TREE — the only place the asserted absence could live. The conclusion "cli-v0.2.0's tree had no login" appears in the prose as a finding, but it was never a reading; it was inferred from "login is on main" plus "main is ahead of the tag", which entails nothing about whether the tag also has it.
This is gate 2's ABSENCE direction, applied to a REF instead of a path. The gate already says a card whose deliverable is an edit asserts its target text is not there, and must grep before asserting the gap. Here the asserted gap was login ∉ cli-v0.2.0, and git show <tag>:<path> is that grep — one command, never run. Every existing statement of the rule names a file, so a claim about a git ref reads as out of its scope, and a table of correctly-cited main line numbers is exactly what a verified precondition looks like ([[unverifiable-precondition-is-a-hypothesis]] is the same shape at a different tier).
The second, sharper limb: an artifact was OBTAINABLE and nobody obtained it. Gate 13(a) makes a card PULL an artifact before calling it published; the mirror case — pulling it before calling it BROKEN — has no gate at all. docker is unavailable in this sandbox, and the actual verification (fetch the manifest anonymously, pull the layer holding /tmp/motir-cli.tgz, install it, run motir help) cost four commands and no credential. A card asserting a defect IN a published artifact is asserting something checkable, and checkable claims about artifacts are the exact class this repository has now been wrong about four times.
git show <ref>:<path>. State the trap explicitly: a reading of main is evidence about main ONLY, and an accurate file:line table can carry an unverified conclusion because a correctly-cited line number is what a VERIFIED precondition looks like.prompts/plan-rules.md gate 2's absence limb names git refs explicitly, with git show <ref>:<path> as the discharge and the "evidence about main only" framing stated.prompts/plan-rules.md gate 13 carries the reproduce-the-defect limb, labelled as the mirror of (a), with the credential-free, docker-free recipe stated concretely enough to run and the every-architecture caveat included.notes.html entry number, so a reader can reach the incident.MOTIR-<n> in the branch or title (the motir-meta PR-title rule); the card reference goes in the PR body.notes.html #253 was written by the replan itself and merged as motir-meta PR #161 on 2026-08-10. This card does not touch notes.html.
motir-meta/prompts/plan-rules.md — the per-card gate checklist (gate 2 at ~:56, gate 13 at ~:236) and The plan-time gates section below it.motir-meta/notes.html #253 — the merged lesson this rule change generalises.SHARED_PLANNING_RULES and everything else in motir-ai — that is MOTIR-2615, which lifts this card's wording after it merges. Write the wording here so it can be lifted and generalised without re-deriving intent; note that the shipped mirror may name no Motir repo, so avoid making the rule's meaning depend on one.