# Herd study 01 — validation, 5 October 2026

## Checked

- 24 plain Node checks pass: 15 gateway boundaries and 9 product-flow cases.
- `node scripts/check-wiring.mjs` passes from the repository root.
- JavaScript syntax and local HTML resource links pass.
- Wrangler dry-run packages the gateway with three existing service bindings.
- Desktop and phone pages inspected using Chrome MCP at the production `/dev/herd/` URLs, never a local server.
- Pasture and builder measured at 320, 390, 768 and 1440 CSS px; journal at 320; infrastructure at 320, 390 and 1440.
- A 3px infrastructure overflow initially caused mobile auto-scaling (innerWidth 323, clientWidth 320). Wrapped actions and constrained grid children correct it: client, inner and scroll width all 320.
- Cow → Aave → plan → review → create → fund → borrow → repay exercised through real buttons. Creation leaves supplied assets empty; funding leaves debt zero; borrowing adds 100 sample USDC; repayment clears it.
- Fully funded Cow → review → create → fund exercised independently; it exposes no borrowing action.
- Bull exposes only Aave collateral. Selecting the unsupported WETH / USDC sample pair blocks continuation; returning to wstETH / USDC restores it.
- Zero price blocks review. Node cases also cover negative/nonfinite values, past dates, unsupported schedules and strategy size versus funding amount.
- Theme survives page navigation, changes no financial state, and still toggles with localStorage intentionally denied in an isolated test context.
- Step transitions now bring their heading into view. The corrected created-position heading was measured 24px below the viewport top.
- Mandatory console checks showed no application errors/warnings in the inspected final flows. Local gallery images loaded without broken resources.
- The custom domain has one known console message: its strict CSP blocks the zone-injected Cloudflare analytics beacon. The app and same-origin API work. Automatic approval review rejected widening CSP; the original policy is retained.

## Art and capture conditions

Built-in `image_gen` generated three alternative boards and an eight-character
RGBA atlas, followed by one extraction/spacing pass. Exact prompts are linked
from `designs.html`. UI copy and controls are native HTML/CSS/JS. The atlas is
1536 × 1024 with transparent outer/background pixels. CSS crops match the
actual silhouettes rather than assuming the raster obeyed a perfect grid.

Final captures are in `img/designs/2026-10-05/`. Mobile full-page images retain
a 390 × 844 viewport; they are not scaled desktop screenshots. Reference pages
were captured at 1920 × 993. Changing mobile emulation reloaded the preview;
required states were restored before capture. Chrome restarted once during
checking; new page IDs were obtained before resuming.

## Deliberate scope

The consumer flow is a design preview with fictional inputs. No wallet, live
price, return forecast, health-factor calculation, transaction or migration is
wired. Roll and close reveal proposed steps, not executable quotes. The study
does not establish newcomer comprehension or improved conversion.

Cow and Cattle source files, deployments, indexers, databases and cron remain
unchanged. The infrastructure gateway only exposes documented reads and keeps
source failures intact. The consumer domains remain proposals. Host publication
and live source-read results are recorded separately in `DEPLOYMENT.md`.
