Problem. Comparing the shipped /v2/ render against codev/research/v2-mockups/01-site.png side by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.
Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.
Missing, all present in the approved design:
Approved (01-site.png) |
Shipped |
Header: Porch mark, SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS, FIND NODE ⌘K, ADD MACHINE, gate badge |
localhost THIS MACHINE and nothing else |
tower-01 MAC STUDIO · FOREMAN'S RIG + ONLINE · 41% LOAD |
no machine metadata at all |
WORKSPACE / CHECKOUT with icon |
bare CODEV-1455 |
architect/checkout-v3 with icon and status dot |
bare main |
builder/pay-2201 |
bare spir-83 |
| Sparkline as visible bars of varying height |
a row of dots, effectively invisible |
Offline machine shows RECONNECT TO RESUME in its empty lot |
nothing |
| Plots sized to content, ~3 across, compact |
stretched to the tallest in the row (#111) |
The naming convention is the biggest single loss. workspace/, architect/ and builder/ prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.
Sparklines. .spark i bars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (....... at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.
Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.
Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent 41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.
Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.
Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.
Problem. Comparing the shipped
/v2/render againstcodev/research/v2-mockups/01-site.pngside by side, the structure and palette match but almost everything that makes the design readable was dropped. It reads as a wireframe of the mockup.Spec 83 checked tokens, containment, rust discipline and D8 chrome absence — all of which passed. Nothing checked fidelity against the mockup itself, which is why this got through review.
Missing, all present in the approved design:
01-site.png)Porchmark,SITE REGISTER · 2 MACHINES · 5 WORKSPACES · 11 BUILDERS,FIND NODE ⌘K,ADD MACHINE, gate badgelocalhost THIS MACHINEand nothing elsetower-01 MAC STUDIO · FOREMAN'S RIG+ONLINE · 41% LOADWORKSPACE / CHECKOUTwith iconCODEV-1455architect/checkout-v3with icon and status dotmainbuilder/pay-2201spir-83RECONNECT TO RESUMEin its empty lotThe naming convention is the biggest single loss.
workspace/,architect/andbuilder/prefixes are how the design tells four node kinds apart at a glance. Without them every row is an undifferentiated string, and the hierarchy has to be inferred from indentation alone — which is the outline FR-1 explicitly rejects.Sparklines.
.spark ibars render at the trace value, so an all-zero trace is zero-height and reads as dots. The mockup's idle builders show a visible flat baseline (.......at a consistent low height) rather than nothing. An idle builder should look idle, not look broken.Not in scope, correctly omitted: gate queue rail, live panes, find-node, add-machine. Those are later units per D8 and are absent rather than stubbed, which was the right call.
Scope of a fix. Restore the label prefixes and icons, the header bar with its counts, machine metadata where the wire carries it (and omit what it does not — do not invent
41% LOAD), a visible idle baseline for sparklines, and the offline-lot placeholder. Fix #111 in the same pass since it is one line and compounds all of this.Testing. A fidelity check the current suite has no equivalent of: render a fixture matching the mockup's data and assert the label prefixes, header counts and sparkline baseline are present. Component tests that assert only "the name renders" cannot catch a missing prefix.
Found by the architect comparing renders after merge. Spec 83's review verified tokens and structure and never compared against the mockup — that gap is the reason this shipped.