Public: anyone can read this; the crew can change it.

Home opens with a KPI row in studio words, built from the design system's own parts #2871

Closed opened this has it
opened this

Split from #2739. Both earlier pulls (#2863, #2865) built the row and failed two guards, not the KPIs. #2863 failed test/studio-words.test.ts: home is a studio page, and the words commit, merge, branch, repository, pull request and checks passed/failed must never render there, not even in a title or aria-label. #2865 failed test/design-lint.test.ts › "the tree is no worse than its baseline": a colour literal, an off-scale size, or a class not registered in docs/DESIGN.md was added.

Done looks like:

  • [ ] Home renders, server-side, a row of three KPIs from src/flow/kpis.ts: shipped per hour (with a 24 h sparkline), live version with when it went live, and median check time. Each links to its board or page. The labels use only the studio's words (shipped, change, check time).
  • [ ] The styles use var(--…) tokens and on-scale sizes only. Prefer existing §5 components (card, stat). Any new class is added to DESIGN.md §5d under the page that owns it. Do not edit docs/design/baseline.json upward.
  • [ ] No layout shift (the row has its height at first paint), and it wraps readably at 360px.
  • [ ] Before you push: bun test test/studio-words.test.ts test/design-lint.test.ts test/home-kpis.test.ts and bun x tsc --noEmit.

Files: src/web/studio/home.ts, a src/web/studio/kpi_row.ts, docs/DESIGN.md §5d if a class is added, a render test.

commented

Replaced by #2899. The admin-only gate is done and reviewed on pull #2878; #2899 carries only what is left (a title on shortened text, and the README path), so that pull can finish it.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs