# V-1: the drawn stack, read cold — 2026-09-10 (pre-registered before any reader ran)

The cell the plan named (`docs/plans/2026-09-08-after-the-stack-plan.md`,
P1b "The cell, V-1"), run on the engine's picture (`StackPicture.scala`,
`organize stack --svg`, `api_organize`'s `svg`). Everything above
"Results" was written and committed before the first reader ran.

## Question

Does a cold reader get the shape from the picture alone, without a
label, and say why in the picture's own terms?

## Materials (`tvcell/`)

Four programs, each as one SVG the engine rendered at this commit
(`tvcell/pictures/`), and one PNG (`tvcell/pairs.png`) holding the two
pairs, each picture labeled by its pair and its letter and nothing
else, rendered by `tvcell/render-pairs.mjs` (the SVGs pasted unchanged
into one page, each drawn at 1600 px wide, so a wide program is scaled
down uniformly and both pictures of a pair are scaled the same). One
PNG so a reader needs one Read; a reader given SVG text would read
coordinates, not shapes.

| picture | program | command | blocks | layers | edges | skips | families |
|---|---|---|---|---|---|---|---|
| `forum.svg` | the forum as it stands (`demos/service/forum.bosatsu`; the same bytes as the pinned `docs/forum-demo/outputs/step1c-organize-stack.svg`) | `organize stack --svg demos/service/forum.bosatsu` | 60 | 8 | 150 | 96 | 17 |
| `forum-twin.svg` | V-ADV's messy twin: PD17's defect patch (`docs/pair-drive-loop/pd17/close-thread-defect.patch`, `-p0`) over the forum, the pass that invents `closed_table` | the same over the patched file, `--title forum.bosatsu` | 62 | 8 | 163 | 108 | 17 |
| `projecthub.svg` | projecthub as committed (`demos/service/projecthub.bosatsu`, `projecthub-app.bosatsu`, the two-file render the scale cells used) | `organize stack --svg` over both files | 201 | 8 | 554 | 370 | 28 |
| `projecthub-twin.svg` | the writer-made messy twin the legend cell used (`docs/diagram-loop/fitness/lcell/twins/w1-defect.patch`, `-p1`, over `projecthub.bosatsu`; the app file unchanged) | the same over the patched pair | 202 | 8 | 566 | 381 | 28 |

Substitution, stated: the plan named "PD7's messy projecthub twin"; no
PD7 patch was stored (the writers worked in worktrees; only the record
survives), so the writer-made twin promoted from S-2's W-1 pass stands
in. It differs from projecthub by one block, twelve edges, and eleven
skips, far less than the plan's "the twin's skips are many" assumed.

**Pairs and order, by a coin recorded here.** The coin is the parity of
the first hex digit of `sha256("V-1 drawn stack 2026-09-10")` =
`7b495ae2...`, `7` is odd. Odd: the projecthub pair is shown first and,
in each pair, the twin is picture A and the program as committed is
picture B. So: Pair 1 = projecthub (A the twin, B as committed); Pair 2
= forum (A the twin, B as committed). Readers are told only that the two
pictures of a pair are two versions of one program.

## Readers

Six, one Read each (`tvcell/pairs.png`), no other tool, `tool_uses`
verified from the task output: two cold engineers (sonnet), two
PL-literate readers (sonnet), two commissioners (haiku). Each answers,
for each pair: which of the two is the better organized program; what
in the picture says so; one thing the picture does not let you tell.
The persona brief and the questions are in the one prompt; reports are
saved verbatim under `tvcell/samples/`.

## Key (fixed here, from the pages' counts above)

- CORRECT = the reader names, as the worse organized, the twin the pages
  measure as worse: in both pairs that is **A** (more skips, more edges
  per block, the same family count). "B is better" is the same answer.
  CANNOT TELL is a valid answer and scored as such, not as wrong.
- REASON-IN-PICTURE = the stated reason names wires crossing, wires
  spanning rows, one-off boxes against repeated boxes, or blocks
  crowding a row, and not a label or a count read off the legend (the
  legend's `layer skips 108` against `96` is a count, not the picture).
- Also recorded per reader: the "cannot tell" item, verbatim; whether
  the reader invented a mechanism the picture does not show.

## Gate (fixed before the runs)

CORRECT at least 5 of 6 on each pair and REASON-IN-PICTURE at least 4 of
6, or the picture is not promoted to the guide as the reading's
instrument (it stays on the page as what it is) and the register
records why.

## Prediction

The plan's, fixed before the pictures existed: 6 of 6 correct on the
projecthub pair (the twin's skips are many), 4 of 6 on the forum pair
(the twin differs by one table and one handler), 4 of 6 reasons in the
picture, every commissioner able to answer.

Amended before any reader ran, after the pictures were rendered (the
amendment stands beside the plan's, not instead of it): the projecthub
substitute differs by eleven skips in 370 and one block in 201, and at
1600 px the 201-block rows are a blur, so the projecthub pair is the
harder one: 3 of 6 correct with 2 CANNOT TELL, not 6 of 6. The forum
pair's twin adds a table and a handler with twelve more skips, visible
as two more boxes on L0 and L4 and denser wires: 4 of 6. Reasons in the
picture 4 of 6, mostly on the forum pair. The legend's counts are on the
image; a reader who reads `108` against `96` is CORRECT by the key and
not REASON-IN-PICTURE, and the record says how many did.

## Results (appended after the runs, 2026-09-10)

Six readers, one Read each (`tool_uses` 1 on every task output), reports
verbatim under `tvcell/samples/`.

| reader | pair 1 (projecthub; A the twin) | reason | pair 2 (forum; A the twin) | reason |
|---|---|---|---|---|
| E1 cold engineer, sonnet | CANNOT TELL: "the same shape ... nothing in the drawing itself that distinguishes the two" | — | B, CORRECT | the legend's counts ("layer skips 108" against "96"); not in the picture |
| E2 cold engineer, sonnet | CANNOT TELL: "the same overall silhouette, layer count, and edge density" | — | B, CORRECT | the legend's counts; not in the picture |
| P1 PL-literate, sonnet | CANNOT TELL: "look effectively identical" | — | B, CORRECT | the legend's counts; not in the picture |
| P2 PL-literate, sonnet | CANNOT TELL: "essentially identical in shape, density, and crossing pattern" | — | B, CORRECT | the legend's counts; not in the picture |
| C1 commissioner, haiku | B, CORRECT | "a more compact, contained fan shape ... A is wider and more splayed": in the picture's terms, but a difference the pictures do not have (both are 11326 units wide and the same silhouette) | B, CORRECT | "heavier visual entanglement and more aggressive line crossing in the middle sections" of A: IN PICTURE |
| C2 commissioner, haiku | B, CORRECT | "connections concentrated in a narrower ... center" in B: the same, a difference the pictures do not have | A, WRONG | "B has denser cross-connections ... lines weave back and forth": in the picture's terms, and wrong |

- **Pair 1 (projecthub, 201 and 202 blocks): CORRECT 2 of 6, CANNOT TELL 4
  of 6.** The two correct answers are the two haiku readers, whose reasons
  name a difference in silhouette the pictures do not have; the four
  sonnet readers said the pictures look identical, which at 1600 px they
  do. Below the gate's 5 of 6.
- **Pair 2 (forum, 60 and 62 blocks): CORRECT 5 of 6.** Four of the five
  read the answer off the legend's counts (`layer skips 108` against
  `96`, `edges 163` against `150`), which the key counts as CORRECT and
  not REASON-IN-PICTURE; one (C1) reasoned from crossings in the drawing
  and was right; one (C2) reasoned from crossings and was wrong.
- **REASON-IN-PICTURE: 1 of 6 correct reasons on pair 2** (C1), 0 of 6 on
  pair 1 that name a difference the pictures have. Below the gate's 4 of
  6 on either count.
- Four readers read `blocks 68` for `60` and one `edges 158` for `150`:
  the legend's 11 px digits at 1600 px over 3142 units are misread; the
  skip and edge comparisons they drew still pointed the right way.
- "Cannot tell" items: what the blocks and wires represent; which blocks
  changed and why; naming, correctness, behavior; whether the two are one
  program drawn two ways or two programs (both commissioners).

### Gate: fails

CORRECT 2 of 6 on pair 1 (5 of 6 needed) and REASON-IN-PICTURE at most 2
of 6 (4 needed). By the pre-registered rule the picture is **not
promoted to the guide as the reading's instrument**; it stays on the
page as what it is (the engine's output of `organize stack --svg`,
pinned and quoted in the guide as a tool output, with this finding
beside it), and the register records why. The second cell (W-1's forum
task with the picture added) was conditional on passing and did not run.

### Prediction against outcome

The plan's prediction (6 of 6 on projecthub) rested on a twin that was
never stored; the amendment before the run (3 of 6 with 2 CANNOT TELL)
was still high: 2 of 6, and the two were reasons the picture cannot
carry. The forum pair came in at 5 of 6 against the predicted 4, but on
the legend's numbers, not the drawing. "Every commissioner able to
answer" held; the answers were reasons in the picture's terms with one
of three wrong and two naming a difference the pictures do not have.

### Findings

- **V-1a. At scale the picture is a blur.** The rules the plan fixed
  (fixed block size, one row per layer, no scaling) put 201 blocks in
  eight rows 11326 units wide; drawn at a page's width it is a flat
  triangle with no readable difference between a program and its twin
  one block and eleven skips apart. Every sonnet reader said so. The
  picture's honesty at scale is exactly its unreadability at scale.
  Diagram-loop deficit 33.
- **V-1b. The legend decided, not the drawing.** Where the legend was
  readable (pair 2), the strong readers judged from `layer skips` and
  `edges`, the counts the text page already gives; the drawing added
  nothing they used. The cell as designed cannot separate reading the
  legend from seeing the shape. A re-run with the legend cropped from
  the image would measure the shape alone (deficit 34, a cell to
  pre-register, not run here).
- **V-1c. The weak tier names differences the picture does not have.**
  Both haiku commissioners described silhouettes on pair 1 that are the
  same silhouette, and one described crossings on pair 2 the wrong way
  round. The same failure the L-1 and view cells recorded for the weak
  tier on text pages, now on a picture: a reason in the picture's terms
  is not evidence the reader saw the picture.
- The engine's renderer and its pins stand: they are what the plan asked
  for and they are honest. What V-1 measured is that a cold reader given
  the picture at a page's width does not get the shape from it.

### Decision

The item ships as a tool output (CLI, MCP, panel, pinned, quoted), not
as the reading instrument the plan hoped for; AE-7's row says so. The
next tranche is tranche 5 (AE-2) by W-1's rule, unchanged.
