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-2498Done

The roles mock still DRAWS the two-fill checkbox its own notes deleted — panel 3 contradicts § A role is its name and its set

A defect in MOTIR-2463's merged output, found while starting the editor card — which is the card that reads the panel in question.

When the based_on decision landed (Yue, 2026-08-09) the amendment swept the notes, the field hint, panel 2's chip and the Members picker — but not panel 3's permission rows. So design/projects/roles-permissions.mock.html now contradicts itself:

  • § Colour + shape rules and § A role is its name and its set say a permission is held or not held — ONE checked state;
  • panel 3 still renders two <span class="cbox frombase"> greyed ticks, two <span class="from">from Viewer</span> labels, and two aria-label="Held — from Viewer" values.

Why it matters rather than being cosmetic. The mock is the layout source of truth and the notes are the spec; when they disagree, the next agent has to pick one, and the design-reference rule exists precisely so they never have to. MOTIR-2483 builds this exact panel against the shipped Checkbox, which has no provenance prop — so the mock is asking for a control that no longer exists.

Scope boundary

In: the two .frombase fills → plain checked .cbox; the two .from spans removed; the two aria-labels → Held; the now-unused .permrow .from rule and the .cbox.frombase rule deleted (a dead rule in a mock is a suggestion to the next reader); the PNG re-exported; a one-line revision note. Out: anything else in the asset — the notes are already correct, panel 2 is already correct, and the Start from field and its hint stay exactly as they are (the pick still seeds the grid).

Acceptance criteria

  • grep -c 'frombase\|class="from"\|Held — from' design/projects/roles-permissions.mock.html returns 0 — the markup, the labels and both CSS rules.
  • Every checked box in panel 3 is the single accent-filled state, with aria-label="Held"; unchecked rows are unchanged.
  • roles-permissions.png is re-exported from the edited markup.
  • The design-asset guard lane (vitest --config vitest.design.config.ts) stays green.
  • The asset no longer specifies any control the shipped Checkbox primitive cannot render — which is the check that would have caught this.