PREFLIGHT.md - taste-skill §14 plus the Felhom additions, run in writing against
the DEPLOYED preview, Pass/Fail per line. Measured, not assumed:
page height 1440: 10 922 -> 6 780 px (38% shorter)
page height 390: 19 913 -> 10 865 px (45%, 23.6 -> 12.9 phone screens)
initial load: 13 req / 308 KB -> 11 req / 260 KB (same conditions)
fully loaded: 16 req / ~540 KB -> 15 req / ~545 KB (ESSENTIALLY UNCHANGED -
the 93 KB portrait is paid for by dropping the 49 KB hero logo
and the 31 KB mono font; stated rather than spun)
third-party hosts: 0 -> 0
em dashes in our copy: 18 -> 0
layout families: 8 for 11 sections (3 repeats) -> 10 for 10 (none)
no horizontal scroll: clientWidth == scrollWidth at 390 and at 1440
Contrast: three NEW styles measured 3.88 / 3.14 / 3.57 on the first pass, all under
WCAG AA. Fixed to --text-2 and re-measured on the deployed file: 7.56 / 6.12 / 6.96.
A measurement that lied, recorded because it nearly shipped a false verdict: the
first helper reported .limits p at 1.17:1 by treating the translucent --warn-dim
as opaque. Compositing the whole ancestor stack gives the true 5.67:1, a pass. The
three real failures in the same run were real. An instrument that can report a
wrong number silently is not a measurement.
Two rows filed, both needing something this session may not do alone:
R-930 (Business & legal, P3) the primary CTA is 4.01:1, under AA. MEASURED
IDENTICAL ON THE LIVE PAGE, so pre-existing and site-wide, not a regression
of this redesign. Three fixes offered, each touching brand, so it goes to
the operator rather than being changed unilaterally.
R-931 (Process & tooling, P4) felhom.eu serves NO compression at all - site.css
goes over the wire as 94 310 raw bytes with no Content-Encoding even when
gzip is offered. An nginx setting in manifests/, not a website change.
Worth more than anything on this page.
Register: 127 -> 129 rows, 2 opened, 0 closed. register_shape_gate.py OK.
documentation/backlog/
OPEN-ITEMS.md is the register of open work and the file to read first — it holds only what is
open, one row per item, every row with a category, a severity, a state and an owner (the layout is at its
top). CLOSED-ITEMS.md holds every finished row, compressed, with the commit that keeps its full text;
a row moves there in the same commit that closes it (scripts/closed_register_gate.py RULE 3).
ROADMAP.md holds intentions — features and spikes that do not exist yet — and ROADMAP-HISTORY.md
the shipped and killed ones. An R-n id is minted once and never reused.
The other files in this folder — verdict per file (2026-10-03 triage)
| File | Verdict |
|---|---|
SPEC-app-data-placement-2026-08-21.md |
KEEP — still referenced by open rows R-352 (placement still open) and R-368. |
SPEC-r85-phase4-5-2026-07-26.md |
KEEP as history — a spec of shipped work (R-85, agent v0.104.0). CONTEXT.md and architecture/00-capability-map.md link here. |
FOLLOWUP-nas-automount-guest-reboot-reassert.md |
FINISHED, kept in place — shipped in agent v0.84/v0.85 (CAMPAIGN-3). Not moved because CONTEXT.md, controller/network-storage-nas.md and felhom-controller/CONTEXT.md link to this path. |
Moved to documentation/archive/ on 2026-10-03 (finished; nothing open refers to them):
FIX-M18-NOTES.md— dump re-validation every 5 min. FIXED in controller v0.62.0 @f8afe5c(2026-06-14).FIX-M19-NOTES.md—deriveStackNamemisattribution edge. FIXED in controller v0.62.0 @6bab68b(2026-06-14).FOLLOWUP-golden-default-controller-tag.md— the golden baked a stale controller. FIXED in felhom-agent @ceca355(2026-07-03):build-golden.shv2.0.0 makes the controller tag a mandatory argument. Evidence:../audits/DRILL-golden-098-2026-07-03.md.DIAGNOSIS-f9-storage-registration-gap-2026-06-14.md— a read-only diagnosis of June 2026, superseded by the shipped F9 fixes (controllerCHANGELOG.mdcites it as history).
The archive also holds OPEN-ITEMS-narratives-2026-10-03.md: the campaign write-ups, rulings and ranking
paragraphs that sat between the register's tables until the triage, word for word.