Planning bug: MOTIR-4237 chose a UI destination from Motir's OWN surface inventory and never ran rung 1 — its "alternatives weighed and rejected" table listed three existing surfaces and no mirror product
Opened by Zhu Yue ·
The correction is already applied — MOTIR-4237 and all four of its children were re-planned on plan cmtkwxup9003ghvn85cmt53bj (2026-09-03), and the lesson was written. This card is the telemetry.
What happened
MOTIR-4237 moved the rail's Legal row to the account menu. Its body carried a section headed Alternatives weighed and rejected, and it named three:
A new top-bar control — the control budget is closed at four slots below
mdand this would be the ninth. The drawer's utility strip —<mdonly, so it would delete the door from desktop. An account-settings pane — the documents are not settings.
All three are surfaces Motir already had. The card ran gate 2 well — every claim about the shipped shell was verified and correct — and never ran rung 1 of the decision-authority ladder, which is the mirror product. There is no mirror citation anywhere in the story or in any of its four children.
What rung 1 says, read afterwards
Four products, read from source rather than asserted from memory:
| product | where legal lives when signed in | its account / avatar menu |
|---|---|---|
| GitLab | the Help menu (super_sidebar/components/help_center.vue) | no legal (user_menu.vue) |
| Sentry | the Help menu, in a submenu labelled Legal (static/app/views/navigation/primary/helpMenu.tsx) | no legal (userDropdown.tsx) |
| Plane | the sign-up form only; its sidebar help menu has none | no legal |
| Mattermost | the auth footer + the About dialog | no legal |
Unanimous in both directions. The rail is not the place — which the card got right — and the account menu is not either. All four keep the account menu for acts on your account and route these doors to a help / about surface.
Why the enumeration could not have found it
Motir has no help surface — verified: no help menu and no about dialog anywhere under app/ or components/. So the right answer was a room nobody had built, and an enumeration assembled from the surfaces you already have is structurally incapable of returning it. That is what makes this more than carelessness: the card's alternatives section is complete, honest and well-reasoned over the wrong candidate set, and reads as diligence.
Two consequences the miss also hid, both found only by the mirror check:
Docshas the same problem and is a help-menu row in both GitLab and Plane, so the story was moving one of two identical doors.ShortcutsCheatsheethas no visible entry point at all —?only, andCommandPaletteContextValuedoes not expose it — which is a third door the missing surface was hiding.
What no signal could have caught
validate_work_item on the story returned valid: true; readiness was ready: true, openBlockers: []; the three advisories it did return were about a self-blocking-design shape and two in-flight file overlaps. None of them is about placement, and none could be: every advisory family keys on something present in the tree — a reference, a merged PR, a self-contradicting criterion — and a destination nobody considered is none of those. The defect lives in the card's candidate SET, which no mechanism reads.
The correction
Plan cmtkwxup9003ghvn85cmt53bj, awaiting approval: the story is re-titled and re-bodied around building a Help menu in the rail's footer and the drawer's utility strip; Docs and Legal both move into it; Keyboard shortcuts gets its first door; and the row is renamed Legal documents. All four children are re-scoped in place. Two further defects the pass surfaced were filed rather than left as prose: MOTIR-4248 (the account menu has no design asset) and MOTIR-4249 (Legal is two labels in the English catalog).
The still-open question this replan did NOT settle
Whether Settings, Security, Job runs and Git belong in the rail. The re-planned story keeps all four and says so explicitly, on the same reasoning the original used: it is not this story's question. But the story's own thesis — a rail that admits one non-daily door has no principle left for refusing the next — applies to a rail that has just been shown to contain two, and the mirror puts workspace-administration doors in a settings area rather than a project nav. This is a question for a later pass, not a defect in the current plan, and it is recorded here so it is not re-discovered from scratch.
Acceptance criteria
- This card is
donewhen the re-plan is approved (or declined) and the outcome is recorded in a comment here. - The lesson is written and its scope decided on the record. Done: GLOBAL, authored as a curated row in
motir-aisrc/seed/lessons.base.tswith its generated migration — the takeaway survives stripping every repository name, key, path and date, so it is not this project's lesson. </descriptionMd>
Discussion
No comments yet.
Adding to this discussion signs you in on app.motir.co and brings you back to this request.