One row per capability, one column per body, with a strict status vocabulary —
"works" means exercised with evidence named, never that a device node appeared.
blueline points at PAF/ rather than copying it; d10 carries its own state; m1
records what already transfers before anything is measured.
The display pipe is corrected in the same change: ADP binds and scans out and
the panel stays dark, so it is partial, not working.
START-HERE §6 said the phone has no wifi away from home because the
SSIDs are pinned. It joined a foreign SSID on 2026-08-02 and sat there
working while that paragraph sent the reader hunting for a cable. It
now says how to pass the address, and records that a phone off the home
net reaches the repo through the laptop rather than by bringing the
phone's tunnel up.
TASK-51 §3 said the volume buttons do nothing. They were wired on
2026-08-02 in 266af98 — Action::Volume on the down edge, through the
executor table, with tests. Only the gesture level is still unbound.
SECURITY-AUDIT gains three rows its own review cadence required: the
virtual-keyboard and input-method bind filters admit every client, which
is keystroke injection and observation from any uid-1000 process
(verified live with wtype); the clipboard gate is written and tested and
routed at no call site; xdg-activation accepts every token and never
prunes them.
Doctrine explains why the system is shaped the way it is and is the wrong
thing to open when the screen is black. This is for that: USB
unreachability (with the ARP test that proves the phone is fine), the
black-screen regression and its mechanism, what to do when a Hyprland
binding stops existing, where to build, the three different ways things
reach the phone and why an overlay-only fix never arrives, and the five
traps that have each cost a session.
Every repo's CLAUDE.md now points here before it points at doctrine.