Estimate: 50m
Type: design (THE design gate — produced FIRST; every UI code subtask here — 6.14.5, 6.14.6, 6.14.7 — depends on this card and is blocked until it lands). Produce the surface design assets under motir-core/design/epic-privacy/, composing ONLY shipped components/ui/* primitives + --el-* colour tokens + [data-display-style] shape tokens (NO Tier-0 --color-*, no hand-rolled spacing/radius), mirroring 7.0.1’s multi-panel design-card shape.
The surfaces to draw (every panel — the multi-panel rule, mistake #31):
IssueTypeIcon) STILL shown, plus a "private" badge (a Pill tone) that reads e.g. "Not public", and crucially NO child count, NO progress bar / rollup, NO point total — draw the row deliberately WITHOUT those aggregate tells (contrast it with a normal epic row that DOES show count/progress so the difference is explicit in the mock). Note in writing that the tells are stripped server-side, not just visually omitted.EmptyState-family inline panel) — the exact copy, the icon, and the one-line explanation ("The project admin has kept this epic’s contents private."). Draw it inline at the child-indent level so it reads as "this is where the children would be".Write design/epic-privacy/design-notes.md naming every primitive composed (e.g. IssueTypeIcon for the epic hue, Pill for the "private" badge tone, the EmptyState family for the placeholder, the toggle/segmented primitive for the admin control), the EXACT copy for the placeholder (tree + detail), the badge label, and the admin-control explanation + states, the per---el-* colour role for every element (use the palette, not grey-only — finding #54; e.g. the "private" badge tint, the placeholder’s muted-but-legible tone), and a "primitives composed (no hand-rolling)" checklist. It MUST state, in writing, that (a) the epic ROW stays visible (title + badge) while its children + aggregate tells (count / progress / points) are ABSENT for public viewers, (b) the same "not public" copy appears in BOTH the tree-expand and the detail child-panel, (c) members see everything (no placeholder), and (d) the set-private control is project-admin-gated.
design/epic-privacy/*.mock.html renders the six panels above, referencing ONLY --el-* + [data-display-style] tokens (no Tier-0 --color-*, no hand-rolled spacing/radius) + shipped components/ui/*.design-notes.md names every primitive + the exact placeholder / badge / admin-control copy + the per-element --el-* role, and states the row-visible / children-and-tells-absent / two-places / member-bypass / admin-gated invariants; AA contrast holds for the "private" badge tint + the placeholder text.scripts/plan-seed/data/story-7.0.ts § 7.0.1 — the multi-panel design-card shape to mirror.scripts/plan-seed/data/story-6.12.ts § 6.12.1 — the public project-view / board / roadmap design this composes with (the public row + the public surfaces the badge/placeholder appear on).motir-core/components/ui/*, app/globals.css (the --el-* + [data-display-style] token layers), motir-core/CLAUDE.md § colour + shape tokens; IssueTypeIcon / Pill / EmptyState (the kind-hue + badge + placeholder primitives).