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
144
planned
1,362
shipped

Motir · Work items

MOTIR-2943Done

Planning bug: a card quoted the exact line it was changing and called it unexplained — the twelve-line comment directly above it said the opposite

Filed by the motir run of MOTIR-2921 (motir-core PR #2099). The correction is already applied — the card is amended and the PR ships the missing artifact. This card is the telemetry.

What the plan said

MOTIR-2921 cited app/(auth)/sign-up/page.tsx:71 — quoting the line verbatim, with the commit it was read at (64fb9e6e) — and concluded:

"The two flows are otherwise identical … so nothing explains the split; it reads as an omission, not a decision."

docs/decisions/home-scope.md §2.3, written in the same pass, carries the same claim. CORRECTED 2026-08-17 (this card's close-out): it does not. §2.3 (merged 7b50cc6f) states the defect — "sign-UP was never moved, and that is a real defect — filed as MOTIR-2921" — and never characterises it. grep -niE 'nothing explains|an omission|oversight|not a decision' over that file returns 0. What §2.3 does inherit is the under-specification below: it enumerates the same two stale comments and not the third.

What was actually there

Lines 59–70 of that same file, at that same commit, immediately above the quoted line:

// ⚠️ SIGN-UP KEEPS `/dashboard`, and it is a decision rather than an
// oversight (Subtask MOTIR-2654). Sign-IN now lands on `/home` — but a
// brand-new account has nothing waiting on it, so Home would greet its very
// first visitor with an empty state whose next action (`/ready`) needs a
// project they do not have yet. …
// … If Home ever learns the no-project case, this is the line
// to revisit.
$ git log --oneline -1 -S"SIGN-UP KEEPS" -- 'app/(auth)/sign-up/page.tsx'
c6b5d19d feat(home): the signed-in landing surface … (MOTIR-2649) (#2044)

MOTIR-2654's own PR wrote it. The split was reasoned, documented at the point of change, and carried its own expiry condition.

Why this is a defect and not a quibble

The card's remedy survived — MOTIR-2761 met the stated revisit condition 1 h 42 min after the card was filed (filed 18:41:32Z, PR #2096 merged 20:23:43Z; "four hours" here originally), and home-scope.md §2.3 decides the landing on other grounds. But the miss cost the card a criterion. Its stale-comment list enumerated dashboard/page.tsx and home/page.tsx and did not contain the one comment that would be most wrong after the change: a twelve-line defence of /dashboard (lines 59–70) sitting directly above a line that now reads /home. A run following the criteria literally would have shipped it.

It also mis-frames the work for whoever reads the card next. "An omission" and "a decision whose stated condition has since been met" call for different diffs and different PR bodies — the second owes the reader the supersession, the first owes nothing.

Where the same shape reaches

The notes.html lesson (motir-meta) carries the general form. In short: a grep returns a LINE; the warrant for changing it lives in the LINES AROUND IT. A card that quotes a line and characterises it — "unexplained", "an oversight", "nobody wrote down why" — is making a claim about the surrounding text, and that claim costs one sed -n '<n-20>,<n+5>p' to check. This is the near-inverse of MOTIR-2921's own explanation ("grep for the value being replaced, not for the file you were thinking about"): widening the grep is necessary and not sufficient, because each hit still has to be READ in place — the same sweep returns 21 hits in 11 files — identical at 64fb9e6e and at origin/main — of which the fix moved 16 and deliberately left five that were real /dashboard navigations, not landings; a blind sweep would have broken all five.

Context refs

  • MOTIR-2921 — the card; motir-core PR #2099 carries the falsification and the evidence in its body.
  • MOTIR-2654 / motir-core#2044 — the pass that made the decision and documented it.
  • MOTIR-2761 — the card that met the revisit condition (d024d863).
  • motir-core/docs/decisions/home-scope.md §2.3 — not a second home for the claim (see the correction above); it inherits the two-item artifact list, and needs no amendment: every sentence in it is true and it already names MOTIR-2921 as the owner of the fix.

Close-out verification (2026-08-17) — motir-meta PR #229

Citations re-executed by content. Exact: sign-up/page.tsx:71 and the comment at 59–70 at 64fb9e6e; git log -1 -S"SIGN-UP KEEPS"c6b5d19d … (#2044), i.e. MOTIR-2654's own PR; d024d863 / PR #2096. Wrong, and fixed above and in notes.html #300: the §2.3 propagation claim, "four hours", "nine hits" (the entry's number), and "fourteen-line" — the comment is twelve lines, which this card's own explanationMd said correctly all along while the title and body said fourteen.

Advisory citation re-run live (the one rung-2 class that usually cannot be): validate_work_item MOTIR-2921 still returns valid: true, advisories: [], and MOTIR-2921 is still not-done, so the channel was in the same state the entry cited it in. It holds.

Correction verified applied, not merely claimed (the MOTIR-2907 check). MOTIR-2921's description carries the dated ## ⚠️ AMENDED section and the criterion it was missing — "the comment ABOVE that line … is replaced by what is true, including WHY it stopped being true" — so the amendment reached the acceptance criteria, not only an appendix or a comment. PR #2099's branch ships all three comments rewritten (sign-up, dashboard, home).

Promote verdict: LESSON. Do not restore the conditional form. #300 ended on "if it recurs, the candidate homes are …", the notes.html #221 shape. Settled on three grounds, rising:

  1. The family is TWO, not one. notes.html #252's 2026-08-10 amendment carries the same check verbatim — "a file:line is a citation of a LINE; the unit that carries the meaning is the BLOCK", discharged by one sed -n — seven days earlier, uncited by #300. A Recurred pointer now runs the other way on #252.
  2. The nominated home already reaches it. plan-rules/phase-deepen.md's NEGATIVE limb: "carry the SEARCH, not the verdict … run it over the files the card ALREADY cites". The rationale sat in the file this card cited, twelve lines above the line it quoted — the limb's own MOTIR-2912 fixture. Its illustrations are all grep-shaped and this claim has no string to grep for; the governing sentence governs.
  3. The ORDER test runs negative. That limb landed 4f0043c at 2026-08-17T19:42:29Z (MOTIR-2928); MOTIR-2921 was authored 18:41:32Z61 minutes earlier. Zero post-rule occurrences; a trigger nobody has run cannot be shown insufficient. A recurrence dated after that commit is a diligence miss against the limb, not a case for widening it.

The second nominated home was a mis-citation: gate 4 of plan-rules/core.md is Both sizes set, the estimation gate. The gate meant is gate 2, Preconditions VERIFIED against shipped reality — cite a gate by NAME; the checklist renumbers.

No new card is owed. The ADR needs no amendment, no rule change is supportable, and the code-side remedy is in PR #2099.