The workbench (#386, PR #392) exists to put real estates in front of behold. This is what the first pass found, on five of them at every zoom: terralith-4 (301 resources, choudoufu, all bound), terralith-4-adopt (the same, unadopted: 84 bound by derived identity, 85 unowned, 132 neutral), choudoufu-workbench (four estates, 42 cards), waterpark (Terraform, 5 roots, 58 cards / 219 at attributes), choudoufu-cohort-iam-ecr (6). Measured with a headless-Chrome driver over the real SPA (the ⌘K palette picking each zoom), the raw /api/graph SVG, the inspect pane and all four panel tabs.
The headline: the graph does not survive scale
terralith-4's SVG is 144,010 × 316 — a 455:1 strip. Every choudoufu card sits on one dagre rank because the member emits no edges, so fit shows a one-pixel line and nothing is clickable. The 42-card workbench (9,564 × 520) and waterpark (15,833 × 1,164) are the same shape at smaller widths. This is the case the terralith was chosen to expose, and it fails at the first screen.
Per zoom
| zoom |
what a person sees |
| components |
The boot default for every non-chant estate, and it lands on "the components lens doesn't apply to a composed estate yet". #182's fallback fires only on zero nodes, so the first screen of every choudoufu and Terraform estate is an apology. |
| composites / resources |
Identical pictures. On choudoufu estates the note promises "sourceRef/dependsOn … only appear at detail 3", then attributes says "nothing in this estate references anything else" — both wrong for a terralith full of role attachments. live-check states only cross-estate references, so intra-estate edges are missing entirely. |
| attributes |
waterpark jumps 58 → 219 cards and the root boxes become mostly empty space with the cards in a far corner (the baseline box: one card, bottom-right, the rest void). On choudoufu estates it changes nothing. |
| logical |
On choudoufu estates the same strip with the note dropped. On waterpark it drops the roots note, the one note that explained the picture. |
| runtime |
Offered on every choudoufu estate; always "nothing below the declaration boundary". A Kubernetes stop, offered where it never applies. |
Wording and vocabulary that misleads
- The overlay legend says managed / foreign / pending / unobserved. choudoufu's own words are bound / unowned / pending / neutral. On the unadopted terralith 84 cards read "managed" before any adoption (bound by derived identity), so a reader thinks a third of the estate is already theirs.
- "estate of 1 projects" on every lone estate.
- Every card repeats the member prefix in its title (
terralith-4/aws_ecs_cluster.main inside the terralith-4 box), the type and the word choudoufu on line two, then rung: and estate: rows — three of five lines on 301 cards carry nothing the box does not already say.
- The waterpark roots note is long and repeats verbatim at every zoom in a 260px panel, pushing the counts off the bottom.
- The inspect pane's UNOWNED detail is a paragraph in monospace with the adopt tags below it as JSON. The one thing a person wants — the tag write to run — is not on it as a line to copy.
Bugs
- Every choudoufu estate fires 500
/api/resources?env=live at boot (No lexicon detected — the panel asks chant for component resources on a kind chant cannot read).
- waterpark draws an empty box named
access at the top right: a member box for the served directory itself, with nothing in it, beside the five root boxes.
- Wheel zoom on the graph did nothing in headless Chrome (may be a headless artifact; check by hand).
Missing
- Intra-estate edges for choudoufu members. The terraform lexicon (0.61, chant#2265) already resolves references in HCL; choudoufu's roster can be joined to it by address.
- A layout for edgeless graphs — wrap into a grid, or rank by type / module path, instead of one row. pinhole exposes
rankdir; behold already sets nodesep/ranksep (src/render.ts).
- Grouping inside a choudoufu estate. The terralith has modules and count fan-outs; every card sits loose in one box.
- Search / jump-to-node. The palette has zoom, env, panel and deploy commands and nothing that takes an address.
- A collapsed or count view of a box, so 301 cards can read as 301 resources · 85 unowned until opened.
Definition of done
just example terralith-4 opens on a picture a person can read without zooming: resources zoom by default, cards wrapped, no box wider than roughly 4:1, boxes badged with counts, edges between the roles and their attachments.
- No 500 in the console on any workbench entry; no empty member box on waterpark;
runtime only offered when a member could have runtime children; the roots note survives the logical zoom and fits the panel.
- The legend and the counts speak choudoufu's words on choudoufu members; a card inside a box says what the box does not; the UNOWNED inspect shows the adoption line to copy.
- ⌘K takes an address and lands on the card.
- The workbench e2e asserts the aspect ratio and the edge count on terralith-4, so the strip cannot come back unnoticed.
The workbench (#386, PR #392) exists to put real estates in front of behold. This is what the first pass found, on five of them at every zoom:
terralith-4(301 resources, choudoufu, all bound),terralith-4-adopt(the same, unadopted: 84 bound by derived identity, 85 unowned, 132 neutral),choudoufu-workbench(four estates, 42 cards),waterpark(Terraform, 5 roots, 58 cards / 219 at attributes),choudoufu-cohort-iam-ecr(6). Measured with a headless-Chrome driver over the real SPA (the ⌘K palette picking each zoom), the raw/api/graphSVG, the inspect pane and all four panel tabs.The headline: the graph does not survive scale
terralith-4's SVG is 144,010 × 316 — a 455:1 strip. Every choudoufu card sits on one dagre rank because the member emits no edges, so fit shows a one-pixel line and nothing is clickable. The 42-card workbench (9,564 × 520) and waterpark (15,833 × 1,164) are the same shape at smaller widths. This is the case the terralith was chosen to expose, and it fails at the first screen.Per zoom
live-checkstates only cross-estate references, so intra-estate edges are missing entirely.baselinebox: one card, bottom-right, the rest void). On choudoufu estates it changes nothing.Wording and vocabulary that misleads
terralith-4/aws_ecs_cluster.maininside theterralith-4box), the type and the word choudoufu on line two, thenrung:andestate:rows — three of five lines on 301 cards carry nothing the box does not already say.Bugs
/api/resources?env=liveat boot (No lexicon detected— the panel asks chant for component resources on a kind chant cannot read).accessat the top right: a member box for the served directory itself, with nothing in it, beside the five root boxes.Missing
rankdir; behold already setsnodesep/ranksep(src/render.ts).Definition of done
just example terralith-4opens on a picture a person can read without zooming: resources zoom by default, cards wrapped, no box wider than roughly 4:1, boxes badged with counts, edges between the roles and their attachments.runtimeonly offered when a member could have runtime children; the roots note survives the logical zoom and fits the panel.