One tree per org: addresses claim a node, the org runs its buildings, chips say where each row really lives.
11 Sept 2026 · branch ui-atlas-tree-mode · captured against propflow-stage · at 37020c2b57
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
A6 §3's contract row makes the view a URL mode — ?path=…&mode=tree|grid|table|raw — so the map is a peer of Grid, Table and Raw rather than a second page. Every card is positioned by the pure layout module the layout test asserts over, and every chip comes from the pure projector, so what is asserted below is what a reader sees.
Asserted in the captured DOM — One tree per org · the client, the wall · solid — the row lives here · dashed — a tag that is never walked · ringed — a nearer row overrides · barred — a lock farther up masks your own row · dotted — the record's own gap, drawn where it hurts · Side list — never roots · The map as a table · Read-only — nothing on this view writes.. All six legend lines, asserted as text. The TREATMENTS they name are asserted separately in atlas-org-map-legend.test.tsx, which server-renders the legend and pins svg-mark-count == kinds-with-a-mark (3 and 3; it was 0 and 3 before the fix) — because this capture can only assert rendered text, and a mark is an inline