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
145
planned
1,361
shipped

Motir · Work items

MOTIR-4150To Do

Planning bug: a card read an element's specified measure off an UNAPPLIED rule in the mock's stylesheet, and called it "the value the asset draws"

Type · planning bug (telemetry about the planner) · filed under the planner-bug home, MOTIR-1465

Discovered in · running MOTIR-4084 on 2026-09-02, at the design-reference step, on branch subtask/MOTIR-4084-named-max-w. The card's fix direction and its last acceptance criterion both rest on the falsified sentence.

What the plan got wrong

MOTIR-4084 states, as the justification for the width it prescribes:

design/runs/run-section.mock.html:507 ships its own inlined vanilla CSS .max-w-md { max-width: 28rem; } … So the asset was drawn at 448px

and its AC 6 then says "no invented width beyond the 28rem the asset draws".

The asset does not draw that element at 28rem. Measured on origin/main @ a42f2e223:

  • .max-w-md occurs exactly once in the whole file — at line 507, as a rule DEFINITION in the mock's inlined utility sheet. grep -c returns 1, and a scan of every class="…" attribute in the file returns no element carrying it.
  • The element the card is about — panel 8, EMPTY — "nothing has run", the paragraph under No runs yet — is .emptyBox p, and the asset caps it at max-width: 46ch (design/runs/run-section.mock.html:1750-1755), ≈322px at the shipped 14px, not 448px.

So a rule that happens to be present in a stylesheet was read as the specification for an element that never references it. The mock's utility sheet is a generic block copied into several assets (runs-index, run-modal and run-section all carry the same unused .max-w-md), which is exactly why its presence says nothing about any particular element.

The card's CONCLUSION survives intact and the fix shipped on it: the app collapsed that paragraph to 16px, the mock does not collapse it at all, and 28rem is a defensible measure (it is also the stock value of the step the author wrote). Only the sentence explaining WHERE 448px came from is false. Recorded rather than quietly corrected because the falsification is invisible in the diff — the shipped width is the one the card asked for either way.

The rule that would have prevented it

A design asset specifies an ELEMENT, never a stylesheet. When a card cites an asset for a measure, a colour or a spacing, the citation must name the rule that the element actually MATCHES — the selector that applies to it — not a rule that appears somewhere in the file. The check is one command (grep the class in every class="…" attribute, not in the file), and it is the same discipline the design-reference rule already states one level up: READ the SOURCE and inspect every panel, which this card did for the panel and skipped for the selector.

The near-miss shape worth keeping: a card that quotes a file:line reads as MORE verified than one that describes an asset in prose, so the coordinate is what stops the next reader checking. Here the coordinate was accurate and the inference from it was not.

Resolution

(open — a corpus edit, if the rule above is judged worth stating in plan-rules/type-design.md's authoring bar. No product code is owed: MOTIR-4084 shipped correctly.)