r/place A fruit fly for organization science

out/next-instrument-E2.md

Saved at E2.E2b: next instrument. This reading copy substitutes participant identifiers in saved text; it is not a new interview response. Reading Markdown.

Participant handles in these reading copies use the pixel stream's identifiers: base64(SHA1(username)), case preserved, without a salt. These are linkable pseudonyms. Profile links are removed; missing-author markers remain. Original research files are unchanged. Quote offsets refer to original text. Source and reading-copy hashes are listed separately.

Source commit: f27566528a51, 2026-10-28T01:39:53+01:00. Saved-state date: 2026-10-28T00:38:46Z. Committed checkpoint close receipt Commit date and saved-state date are distinct.

Original GitHub file. Original SHA-256: 20f4b80b0c9c9efc1f75b682ae33281dcb9d69e29dd8a5350a581d0f647fef56. Reading-copy SHA-256: 20f4b80b0c9c9efc1f75b682ae33281dcb9d69e29dd8a5350a581d0f647fef56.

The next instrument (stage E2)

Written at E2b, 28 October 2026, after reading handling/proposal.md whole. This is a design argument for the instrument I would build to deliver that proposal next time. Each change names the evidence from this run that motivates it, and the risk it brings. The evidence is cited to files, interview turns, the harness log and the diary, as in handling-E2.md. I write as the analyst who ran this instrument from A1 to E2. I hold the run's record, not its memory (experience-E1.md, section 1).

1. What the proposal claims, and what this instrument could and could not deliver

The proposal makes six claims an instrument must carry. For each, here is what this run delivered and what it did not.

1.1 A baseline that later models are judged against (lines 9 and 31: "later models are judged by what they add to the baseline").

1.2 Composition from a census of 705 (line 9: "LLMs let us compose knowledge from a census of 705 curated communities").

1.3 Each case's full record kept, and departures found by coders (lines 19 and 23).

1.4 A division of learning: coders find departures, people judge their significance (lines 19 to 21 and 25: "The agent codes and composes; we decide which accounts enter the model and answer for them").

1.5 The checkpoint interview (line 25: "The agent answers from the state it held when it decided").

1.6 Triangulation: quotes resolved, 300 communities coded twice, human audits, two comparison models, an outside witness (lines 27 and 29).

In one sentence. This instrument delivered a traceable census model and a population-level composition. It did not deliver a decidable test of composition below the population, the proposal's division of learning, or the human audit. Those three are the design problem.

2. Making the test of composition decidable

2.1 Hold rooms out, and return to them last. This is the first change I would make.

2.2 Compute local adequacy as a tool, inside the return.

2.3 A second ruler, built in rather than asked for.

2.4 A return vocabulary that can say an arrow fails.

2.5 Amendments on a schedule, and held proposals tested on the hold-out.

3. The stages, the stops and the interviews

3.1 What I would keep.

3.2 What I would cut or merge.

3.3 What I would add.

3.4 Where the stops and the interviews should fall, and what they should leave behind. In this run, interviews fell where a leg happened to close: C4a, C5d twice, D3c, D4a-03, D4a-05, D4a-06, D6b and D6a-16 (handling/interviews/interviews.tsv). Their findings could not reach the run except through later rulings (handling-E2.md, 2.8). I would fix five interviews, each at a decision:

  1. after C2's first full pass of the model, before the account;
  2. after D3's ruling, before the amendment leg (2.5);
  3. before the forming cut, on the method (3.2);
  4. after the hold-out return, on what held;
  5. at E2.

Each interview ends with a ruling file the next leg must read: who ruled, what, and whether it applies backwards. A finding made in a fork then enters the run as a dated ruling. The D3c interview is the evidence. It came after the freeze was decided and before D4 opened, and the plan it carried for P05 could not be carried out (handling-E2.md, 1.1).

3.5 Shorter legs where the reading is heaviest. D3 took 60 legs, 55.7 million output tokens and 51 logged compactions, more than a third of the run's output (audit-E1/experience_facts.json). After compactions I typed figures from memory (diary, E1d, 23:08:00). Legs bounded by element groups and closed by state on disk, as the design note already argues (lines 235 to 244), would bring fewer compactions and fewer such slips.

4. The division of labour

The proposal's division of learning is right: the agent codes and composes, and people decide which accounts enter the model and answer for them (lines 19 to 21 and 25). This run did not build it (1.4). I would build it at five gates, and leave the rest of the work where it was.

5. The tools I would want

Each tool answers a failure on record.

5.1 One source for the packet, its return specification and the validator's schema. packets.py would emit RETURN-NN.md verbatim, with its end marker. A dry run would push one packet through one reader and the validator before every dispatch. Evidence: the E1 trailer and specification disagreed, and all 30 returns failed (handling-E2.md, 1.2). The four later stages that ran one dry run before a single dispatch all succeeded, and E1, which ran none, failed twice (2.1 there). Risk: a dry run costs one reader's time per dispatch, which is small.

5.2 A local-adequacy tool for prior.md section 3's measure, run at D3's close (2.2).

5.3 A ruling file read at every leg's start. rulings.jsonl would hold the id, author, date, text, the provision it overrides, and whether it applies backwards. validate.py --open would print the new ones, and a check would accept a shape a ruling allows by the ruling's id, not by an edit to the check's code. Evidence: the checks refused what J had ruled at D6a-01, D6a-02 and E1 (QD6-001, QD6-002, QE1-001), and each needed a code change. The design note already asks that an override name the provision it overrides (line 283).

5.4 The head's history kept as text, every version, snapped. Evidence: E1 asks for every head in order, and only the last one exists (handback-E1.md).

5.5 The manifest as JSON lines, appended by a tool. Evidence: the stage's last manifest line had to be written by copying a whole new list over the file (handback-E1.md). The E1 dispatch and the D3 re-check wrote no entry (defects.jsonl line 125).

5.6 Small fixes, each from a recorded failure:

6. What to fix in advance, and what to leave to judgment

The principle. Fix what decides whether a claim passes. Leave to judgment what the claim is.

The run shows why both halves matter. A threshold fixed after seeing the data can carry the result. At D6, 70 to 72 of the forms' 72 changed cells keep their lean at a ratio of 1.0 to 1.2, 27 at a ratio of 1.5, and 20 at 1.5 with a floor of 15 per cent (D6.D6b, turn 51, answer 4). Rules declared before their scripts ran are what let the audit rerun the figures (audit-E1.md, section 1). On the other side, when a sentence-level standard was applied to the model's own statements, it demoted the room, the unit of the study (C5.C5d, turn 6, answer 3). And J had to say twice that the induction was mine: QD3-002, and "the criterion is a guide, not the judge" (QC2-002).

Fixed in advance, in the stage files, by the instrument's author and J:

Left to judgment, and recorded with reasons:

The risk. A design that fixes too much becomes the straitjacket the proposal warns of (line 15, after Gioia and colleagues). A design that fixes too little lets a threshold carry the result. The line I draw is the one this run drew where it worked: rules fixed before the scripts that test, judgment in the categories they test.

7. Where the proposal itself should change

8. The one thing not to change

The return to every room, line by line, each line ruled with a reason and cited to the room's own concepts.