tests/settings/permissionMeta.test.tsx asserts the token-permission picker splits into two columns of a literal 6 and 5 rows. Those literals are a tripwire on a design asset whose measurement was taken at MOTIR-2578 — and the grantable set has grown three times since without the asset being re-measured.
| card | grantable keys | split | the project group |
|---|---|---|---|
| MOTIR-2578 | 8 | measured | project:browse |
| MOTIR-3361 | 9 | 5/4 | + lesson:manage |
| MOTIR-3480 | 10 | 5/5 | + lesson:view |
| MOTIR-3553 | 11 | 6/5 | + lesson:reinforce |
Each of the last three left a note asking for a re-measure "when the set next grows", and each time the set grew the note was renewed instead of discharged. This card is that discharge — it is filed because a deferral naming no card is an orphan by construction, and this one has been renewed three times.
The three real invariants pass untouched and are what actually hold the layout: the columns balance within one row, no domain group is broken across a column, and the two columns sum to the grantable total. Nothing is visually wrong today — the picker renders correctly at 6/5. What is stale is the ASSET the numbers were measured from, and the honest reading of a growing gap is that the drawing no longer describes what ships.
The card's real question is not "redraw it" — it is whether a row count belongs in a design asset at all for a set that grows every time a permission is minted:
Recommending the second, and the card should record which was chosen and why.
design/ for the token-permission picker is re-cut or re-measured against the CURRENT grantable set, and the three-file set (design-notes.md + .mock.html + .png) is complete.permissionMeta.test.tsx's two literal row-count assertions are replaced by the balance rule they are a proxy for, and the renewed comment chain is deleted rather than extended.Published N design artifact(s) — a failing guard in the same job skips the publish step silently).tests/settings/permissionMeta.test.tsx — the three renewed comments and the two literals; the three invariants that actually hold the layout.lib/permissions/catalog.ts — PERMISSIONS, and why the project domain keeps its keys contiguous.MOTIR-2578 — where the asset was measured. MOTIR-3553 — the third growth, which surfaced this.