Estimate: 50m
Type: design (THE design gate — produced FIRST; the UI code subtask here — 6.13.6 — depends on this card and is blocked until it lands). Produce the surface design assets under motir-core/design/project-square/, 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):
<h1>, a descriptive lede (human + crawler), the search, and a "no sign-up required" trust line. Then the grid of project cards: each card draws the project name, its org (the cross-org context — the owning org is shown), the description (truncated), and the three public stat signals from 6.12.6 (viewers / upvotes / recent activity) with their glyphs. NO per-card "Public" pill (every project here is public by definition). Draw the card hover/focus state and the whole-card click affordance (a real <a href> to the 6.12.4 public view). The grid is paginated / lazy (the at-scale rule — NOT load-all; draw the "load more" / next-page affordance + the page-boundary skeleton). Mirror the GitHub-Trending / GitLab-Explore card row.<title> / <meta description> / canonical / OpenGraph / Twitter, the JSON-LD structured data (CollectionPage › ItemList of SoftwareApplication + BreadcrumbList), the semantic HTML outline (one <h1>, <h2> sections, each card an <article> with an <h3>, topic browse in a <nav>), the real indexable URLs / sitemap (each rank / search / topic / page) + per-topic landing pages (/explore/topic/<slug>), and the GEO answer-engine framing (a citable lead + FAQ). State it is reached from the marketing site, NOT the app left-nav.Write design/project-square/design-notes.md naming every primitive composed (e.g. the card surface, Pill for the stat / tag tone, the tab control, the search Combobox/input, the EmptyState/ErrorState family, the skeleton/loader), the EXACT copy for each tab + each stat label + each search/filter placeholder + each empty/error state, the per---el-* colour role for every element (use the palette, not grey-only — finding #54; e.g. the upvote accent, the per-rank tab tone, the tag-chip tints), and a "primitives composed (no hand-rolling)" checklist. It MUST state, in writing, that the square shows ONLY public projects, that the org is shown on each card (the cross-org context), and that each card links to the 6.12.4 public view.
design/project-square/*.mock.html renders the five panels above, referencing ONLY --el-* + [data-display-style] tokens (no Tier-0 --color-*, no hand-rolled spacing/radius) + shipped components/ui/*.<a href> to the 6.12.4 view; the gallery is drawn paginated / lazy (not load-all).design-notes.md names every primitive + copy + per-element --el-* role, and states the fully-public (no-auth) + public-only + org-on-card + no-"Public"-pill + links-to-6.12.4 invariants; AA contrast holds for the stat / tab / tag-chip tints.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-view + public-roadmap design the cards link INTO (the projection to stay consistent with; NB the square itself is now ANONYMOUS, while 6.12.4 is still account-required — see the header revision + the 6.12 finding).motir-core/components/ui/*, app/globals.css (the --el-* + [data-display-style] token layers), motir-core/CLAUDE.md § colour + shape tokens; Pill (the stat/tag tone primitive).