feat(admin): add DESIGN.md design system for admin SPA#624
Conversation
Codifies the existing GitHub Primer-derived visual language into a machine-readable design system that Claude Code, Gemini CLI, and Cursor consume via the AGENTS.md → CLAUDE.md chain. Follows the Google Stitch DESIGN.md spec (canonical section order, YAML token schema with component refs, typography objects). Signed-off-by: Wayne Sun <gsun@redhat.com>
Review: #624Head SHA: adb8921 SummaryThis is a well-structured documentation-only PR that adds a design system document ( FindingsLow
Info
FooterOutcome: comment-only Previous runReview: #624Head SHA: 92c6ccd SummaryThis PR adds a well-structured DESIGN.md design system document for the admin SPA and a small CLAUDE.md directive pointing agents at it. The document is thorough, covering tokens, component patterns, accessibility, and anti-patterns. No code changes are made, so there are no correctness or security risks. However, there are several documentation accuracy issues in the token provenance table — some hex values don't match the actual source, and one existing color is missing from the token inventory entirely. These are worth correcting to avoid confusion when engineers (or agents) try to reconcile the design system with the existing code. FindingsMedium
Low
Info
FooterOutcome: comment-only Previous run (2)Review: #624Head SHA: 283b338 SummaryThis is a well-structured documentation PR that adds a design system file ( FindingsMedium
Low
Info
FooterOutcome: comment-only Previous run (3)Review: #624Head SHA: b326780 SummaryThe DESIGN.md is well-structured and provides a comprehensive design system specification. However, the PR description claims that 18 color tokens were "extracted from hardcoded hex values in App.svelte and OrgList.svelte," but this claim is materially inaccurate: OrgList.svelte does not exist in the codebase, only 3 of the 9 core palette colors match the source exactly, several tokens are entirely new colors not present anywhere in the code, and the existing error color ( FindingsHigh
Medium
Low
Info
FooterOutcome: request-changes |
- Update --fg-danger and --border-danger from #cf222e to #a40000 to match existing App.svelte error color - Add per-token provenance (existing vs new) to Colors table with source file references (App.svelte, Home.svelte — not OrgList.svelte which does not exist) - Add "Implementation status" note clarifying CSS custom properties are not yet declared in app.css - Fix --space-* reference in Anti-Patterns to match YAML front matter naming and note tokens are aspirational - Mark File Organization as target architecture with exists/planned annotations and add missing status/ directory - Add source files provenance paragraph to Overview Addresses review feedback on #624 Signed-off-by: fullsend-fix <fullsend-code@users.noreply.github.com>
🔧 Fix agent — iteration 1 (bot-triggered)Addressed 5 of 6 review findings with fixes to DESIGN.md: corrected error color tokens to match source, added per-token provenance, documented CSS custom property implementation status, fixed spacing token references, and marked file organization as target architecture. Disagreed with 1 low-severity finding (YAML format choice is appropriate for AI agent consumption). Fixed (5):
Disagreed (1):
Tests: passed Decision points
Updated by fullsend fix agent |
The coder bot incorrectly changed fg-danger and border-danger from Primer standard #cf222e to #a40000 (the existing App.svelte value). The design system should prescribe Primer as the target — existing ad-hoc values will be migrated during component extraction. Signed-off-by: Wayne Sun <gsun@redhat.com>
The token was defined in YAML front matter and used in .banner--warning CSS but missing from the markdown Colors table. Signed-off-by: Wayne Sun <gsun@redhat.com>
Button padding was 0.4rem in DESIGN.md but 0.35rem in App.svelte — align to the existing value. Also document that --border-muted intentionally supersedes the #888 button border. Signed-off-by: Wayne Sun <gsun@redhat.com>
ifireball
left a comment
There was a problem hiding this comment.
Not sure what it means to actually apply this to the admin UI...
We should consider having a unified design language for all our web assets rather making a specific one just for the admin UI.
Summary
web/admin/DESIGN.mdfollowing the Google Stitch DESIGN.md spec — YAML front matter with machine-readable tokens (colors, typography, spacing, rounded, components with token refs) and markdown body in canonical section order (Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, Do's/Don'ts)CLAUDE.mdso Claude Code, Gemini CLI (via AGENTS.md), and Cursor all discover and enforce the design system when generating UI componentsTest plan
make lintpassesnpx @google/design.md validate web/admin/DESIGN.mdwhen CLI is available)web/admin/src/