zerg-uilisted
Install: claude install-skill cipher982/longhouse
# Zerg UI: look at it
A UI change is not done until you have looked at a rendered frame of it.
Tests prove behavior (an element exists, a label contains a string); they do
not see "fable 5 1" where "fable 5.1" belongs, a banner with no bottom edge
over scrolling text, or a preview that rendered blank. Every one of those got
past a green suite in this repo. You have vision: `Read` a PNG and it is
shown to you. Use it.
## Pick the render path
| You changed | Render it with | Cost | Sees |
| --- | --- | --- | --- |
| A SwiftUI view or its states | `make ios-previews` | ~4 min, renders every `#Preview` | Component in dark/light, edge states, no server |
| iOS screen against real data | `make sim-deploy SESSION=<id>` then `make sim-shot LABEL=<name>` | ~3 min build, then seconds per shot | The real pipeline: hosted data, real fonts, real chrome |
| iOS screen in a deterministic state | `make ios-ui-shot TEST=<Suite>/<test>` | ~2 min | A fixture-driven frame the UI test attaches, exported to PNG |
| iOS ingest/recovery without a phone | `make simlab-run` | six real-client journeys | Scratch Runtime Host + Machine Agent + iOS app; client-render convergence and network recovery |
| Web page or row | `make ui-capture PAGE=<page> SCENE=<scene>` | seconds once Vite runs | Playwright screenshot plus accessibility snapshot |
Look at more than one when the change spans surfaces. The simulator shot
proves the data path; the fixture shot proves the layout at a known state.
## Own the QA