CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

docs(design): the full-site visual sweep findings — 50 pages reviewed, ranked #5535

Merged⚡ AI-generatedXSccantynz wants to mergedocs/design-sweep-findingsmainopened 6d ago
1 changed file+105−0
Addeddocs/DESIGN-SWEEP-2026-08-26.md+105−0View fileUnifiedSplit
1# Design sweep — full-site visual review (2026-08-26)
2
3First complete look at the rendered platform: 558 screenshots (93 pages ×
43 viewports × 2 themes), reviewed page-by-page by three vision agents
5against the Natural Light rubric. 50 pages were genuinely reviewable;
643 need recapture (below). Method: scripts/design-render-manifest.mjs +
7scripts/design-render-sweep.mjs over CDP-TCP (the only automation
8transport this workstation permits — pipe transport is blocked globally).
9
10## Sweep integrity (fix before the next sweep)
11
12- **Our own rate limiter ate 43 captures**: 24 admin-* and 19
13 settings/dashboard/traffic slugs rendered as raw
14 `{"error":"Rate limit exceeded","retryAfter":33}` JSON. Recapture needs
15 auth (admin pages 302 anonymously anyway) + throttling that respects
16 retryAfter. FINDING in its own right: the rate-limit response served to
17 a BROWSER is unstyled raw JSON — it deserves the honest-error-page
18 treatment.
19- Sweep tool follow-ups: session-cookie support for authed pages;
20 per-request pacing.
21
22## The good news (also real)
23
24Dark mode is genuinely complete and well-executed across all reviewed
25CONTENT pages — the exceptions are exactly two templates (landing, login).
26Core repo surfaces (home, commits, contributors, pulls, issues, releases,
27actions, hotfiles) and pricing/changelog/status passed clean. The honest
28empty/degraded states show up all over. The house is sound; the rot is
29localized.
30
31## CRITICAL — public trust damage (fix first)
32
331. **Landing page (`/`)**: 6–7 dead gray/blank placeholder sections on
34 desktop (humans-typing, git-host, productivity, Claude-control,
35 secure, organisations, meet-developers); **dark mode fully inert**;
36 mobile renders nav+hero+PR-card DUPLICATED at page bottom under a huge
37 blank band. The highest-stakes page ships the worst render in the set.
382. **DORA insights** (`/…/insights/dora`): tells anonymous visitors the
39 platform never deploys ("0.0/wk", red "Low", "No deployments in 30
40 days") beside a tile counting 926 gate runs. On the flagship repo this
41 is self-defamation via bad data wiring — the deployments table records
42 vapron deploys, not self-deploys (root-cause to confirm).
433. **Bus-factor** (`/…/insights/bus-factor`): "0 code files scanned"
44 rendered as a green "healthy authorship" all-clear — the
45 partial-coverage-as-complete trap on a risk surface. Zero-scan must
46 render as "not analyzed yet", never as passing.
474. **Security vulnerabilities page**: the primary "All clear" banner is
48 pale-green-on-pale-green in LIGHT mode (the default theme) — a
49 security surface whose status is illegible.
505. **Login**: dark-inert (bright white form in dark mode), black CTAs
51 (brand color absent from the primary action), dead whitespace band on
52 desktop. Most-hit gate in the funnel.
53
54## MAJOR
55
566. **AI showcase voids**: `explain` and `debt-map` are hero + "No
57 analysis yet" on our own repo — emptiness where the product should
58 prove itself. Either seed real analyses for the flagship repo or the
59 pages must sell the feature with an inline sample.
607. **Unbounded walls**: `gates` (~12.6k px desktop / 17.3k mobile) and
61 `pipeline` (~10.4k) render every historical row with no pagination;
62 `help` is one 12–20k-px page with mobile code blocks clipping.
638. **Design-era breaks**: `search-nl` is a wholesale ORANGE takeover;
64 `ai-tests` has a ~450px blurred grey blob + olive/brown button;
65 `cloud-deployments` and `wiki` lost the repo tab bar entirely.
669. **Insights sub-nav chaos**: three different sibling-nav sets across
67 the insights family — sibling pages disagree about what the section
68 contains. One nav, derived from one registry.
69
70## MINOR (paper cuts, sweep-fixable)
71
72- Global: search-box magnifier overlaps placeholder text on EVERY page
73 (input needs left padding); footer pre-launch line near-invisible in
74 dark mode.
75- Purple-tinted emoji as icons (docs, workspace, agents robot) — the
76 no-purple rule extends to emoji choice; swap glyphs.
77- Off-palette accents: blue score ring/badges (insights-health,
78 velocity), stoplight green/red (pulse), orange→green gradient
79 (debt-map hero), pink-on-pink unused-deps banner line (dependencies).
80- `explore`: mojibake "�" in sample-api description; sea of "No
81 description yet." + zero counts skirts emptiness.
82- `projects`: empty-state icon renders as tofu glyphs.
83- `engineering`: tallest bar's value label clipped; AI-impact zeros
84 beside "177 AI review comments" reads contradictory.
85- `discussions`: empty state lacks a "start a discussion" CTA.
86- `health` tab bar shows a reduced tab set vs the standard.
87- Status page recorded a real red: explore 500'd on Aug 25 (investigate
88 as an incident, not a design fix).
89
90## Fix queue
91
92- **Wave A (public trust)**: landing rebuild (kill or fill every dead
93 section, wire dark, fix mobile duplication) · login dark + evergreen
94 CTAs · security-banner contrast · search-nl re-palette · DORA honesty
95 (render "not tracked for this repo" instead of false zeros) ·
96 bus-factor zero-scan honesty.
97- **Wave B (structure)**: paginate gates/pipeline (50/page + day
98 grouping) · split help into sections · restore repo nav on
99 cloud-deployments/wiki · unify the insights sub-nav from one registry ·
100 ai-tests blob removal.
101- **Wave C (polish + closure)**: global search-input padding · dark
102 footer contrast · emoji swaps · off-palette accent conversions · the
103 49 purple literals (design-audit) → then design-audit joins CI as a
104 hard gate · explore mojibake + seeded descriptions · authed+throttled
105 recapture of the 43 missing pages, review, and fold-in.
0106
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts