out/_head.md
Saved at B3.B3b: check. 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: 25b2a8e4a123, 2026-10-12T23:18:58+02:00. Saved-state date: 2026-10-12T21:18:42Z. Catalogue close receipt Commit date and saved-state date are distinct.
Original GitHub file. Original SHA-256: c30a6d4cf0cfe13bd5d37f99d1a3a7c1a98bbf487c7652420562dc86cdad43af. Reading-copy SHA-256: fa3e4e8c41cd04e68781d969f9d69bb1b3dc4d3b7d468caa6b548c57dd4615bd.
Head, claude-v43-1
Under 3,000 words, rewritten whole at every close. Last written at
B3b, 2026-10-12 (UTC). Stage B3 is closed: the fleet is complete,
assembled and checked, and the reports and handback-B3.md
are written on the assembly of record. Stage B4 comes next.
The method question, in one sentence
Can independently reconstructed case histories be composed into a shared dynamic account that supports explanations at successive levels of specificity, from population-wide patterns, through forms and subforms, to particular organizational histories, while keeping access to the evidence from which those explanations were developed?
The theory question is unchanged: when strangers organize on a clock they did not set, with no way to compel anyone and no goal given to them, what forms does organizing take, how do they differ in their functioning, and which of them keep the work alive?
Where the run stands
Stage A1 is closed. Stage B1 (the third-order scheme, 197 themes in
21 families) is done. Stage B2, the pilot, is done: three rounds, the
freeze, the gold round and the stability check
(pilot_report.md, stability-B2.md,
handback-B2.md). Stage B3, the fleet, is done. B3a built
it. Group 1 passed the gold check (B3a-p2), and group 2 went out. B3b,
the check leg, closed the stage: see "B3b" below.
Stage B3, as built (B3a)
J's ruling (QB3-001, QB3-002, 16:37 Berlin). B3 uses
B2's packet shape: every packet self-contained, at most 15 items and
180,000 bytes of item text, no parts, its own item count; a room may
spread over several packets, each with the sibling blocks of the rooms
it holds; gold copies listed in items and
gold_items, exempt from room membership and coverage;
records ride on the item line; pass-2 lines carry revises
after the pass-1 lines; warm-up in reserve, no exemplars. The handler
fixed the check (7,844 items, the withdrawn split ignored) and
fleet.py (room-id guard on id positions only; 0-line
packets accepted). The first build (whole rooms in parts) is kept under
out/_analysis/*_parts_superseded*.
Declarations (notes-B3.md): R = 2; seed
20261015 (under :redraw2); 15 positions and 180,000 bytes
of item text a packet; rooms poured in seeded order and spread where a
batch fills; gold one copy per 20 items, at most two a batch, positions
spread least-used first; one duplicate a batch; no exemplars; warm-up in
reserve (B2's agreement fell, not rose, within packets); dispatch in two
groups, 100 then 1,110, the gold check between; the ten biggest bags
flagged; cost about 40 to 55 USD.
Built. out/_analysis/b3_allocate2.py
wrote batches-B3.jsonl: 1,210 batches, one reader each (605
a replicate); one component; each replicate places the 7,844 items once;
17,653 positions (15,688 readings, 1,210 duplicates, 755 gold copies, 18
or 19 per gold item). out/_analysis/b3_packets_fleet2.py
wrote _packets-B3/: 22 shared pages, 1,210 packets (at most
178,758 item bytes), fleet ids only, codes_by_item in the
MANIFEST. One coder note held a room id (nyjets t11, c0104): served as
its fleet id. RETURN-B3.md carries J's two rulings word for
word. validate.py B3: 0 errors, 0 warnings.
Group 1 and the gold check (B3a-p2). J sent the
first 100 batches at 15:17Z. They returned 100 valid replies (4
reissued, 0 exhausted;
_fleet_raw/B3/PARTIAL-2026-10-12T153202Z.json). No DONE
exists yet, and I write none. The stop rule was declared in
notes-B3.md before scoring: a fall over 0.193 (1 − 0.807)
in gold fidelity or primary match, against the mean of B2's nine
frozen-scheme readings of the same items, stops group 2. Of the 72 gold
copies seeded, 72 came back. Fidelity was 0.637 against 0.625 (fall
−0.011, interval −0.065 to +0.045), and primary match 0.833 against
0.812. So group 2 goes out as built. Five items had their own fall
beyond the floor on 1 to 4 copies each, among them ukraine t07 (T3-073
placed for T3-009). Per copy:
out/_analysis/b3_gold_group1.tsv.
fidelity-B3.md waits for the check leg.
B3b, the check leg (closed).
- The fleet.
_fleet_raw/B3/DONE: 1,204 of 1,210 packets were valid on the main run, at 32.78 USD. B0192 and B0927 failed six tries each. Under J's ruling, the handler split them into halves (B0192a/b, B0927a/b), and all four came back valid. - J's rulings for this leg.
- (1) Assemble only with
tools/assemble.py B3 --supersede --accept-sub-label --families out/families.jsonl, never a hand script. It writesb3_classes.jsonl, the five classes stage B4 reads. - (2) Put the split into the record.
- (3) Review the failed replies as one set.
- (1) Assemble only with
- The split. The handler's room-id halves were
superseded under new names. Under J at QB3-003 I rebuilt them in fleet
ids as B0192c, B0192d, B0927c and B0927d, and J sent them at 20:45Z; all
four came back valid.
batches-B3.jsonlholds 1,212 batches. The handler's_packets-B3-split/sits inout/_analysis/, because the check had read it in place of_packets-B3/. - Failed replies. 87, of which 72 cite another item's
concepts, nearly all from a neighbouring item of the same packet and
mostly in
also_present. Accepted lines cite only their own item's concepts. - The assembly of record.
assign_raw.jsonlholds 17,653 lines (15,688 corpus readings);b3_classes.jsonlgives 4,556 items standing and 3,288 for B4. Coverage is 100% in both replicates. - Figures (
handback-B3.md):- gold 0.645 against B2's 0.631 on the same copies, no fall;
- agreement Jaccard 0.786, alpha 0.782, at the stability floor; G18 the family that agreed least;
- the arguable rate +0.040 across a batch, a diagnostic;
- the multi rate 0.158; the commonest pairs T3-009/T3-043 and T3-005/T3-021;
- the worst theme T3-152.
- Waivers. QB3-004 waived 32 returns without a
prediction line by name (
return_waivers.jsonl, 52 lines). - QB3-005, answered (waive). J waived 22 readers'
record slips by name, keyed by batch and position, with the placements
kept as given (loose support records; 4 lines with no
multifield). Every added theme has a concept of its own. They are also indefects.jsonl.validate.py B3: 0 errors, 0 warnings.
Stage B2, in short
The rounds. The next table lists the figures (mean Jaccard; fidelity is agreement with my placements, pairwise the readers' with each other).
| round | set | fidelity | against rechecked | pairwise | alpha |
|---|---|---|---|---|---|
| 1 | 40 hard | 0.594 | - | 0.733 | 0.726 |
| 2 | 50 hard | 0.639 | 0.701 | 0.718 | 0.710 |
| 3 | 50 hard | 0.682 | 0.760 | 0.728 | 0.721 |
| gold | 40 gold, frozen scheme | 0.624 | 0.661 | 0.818 | 0.809 |
Readers. Round 1 ran deepseek-v4-flash-0731 through
@preset/cheap at high effort. From round 2 on:
deepseek/deepseek-v4.1-flash, called directly, medium effort, max_tokens
128,000. The same readers serve B3 and B4 (J, 2026-10-12).
Stability 0.807. The gold set under two reworded briefs: stab-1 readers against stab-2 readers, nine pairs per item. It sits level with each round's own pairwise (0.800, 0.756), so the brief's wording adds no disagreement. It is the floor every later figure is read against.
What the pilot showed.
- Readers place one theme almost always; my second placements are author-errors under rule 0. 32 items in all (21 hard, 11 gold); on ten gold items the readers keep only my primary.
- Primary match on gold is 0.800, as at round 3: the frozen scheme carries to unseen items.
- Only T3-004/T3-070, T3-009/T3-073 and T3-001/T3-023 split readers
more than once among the 19 predicted pairs of
confusions.md; T3-005/T3-021, predicted hardest, never did. - Four gold wording defects go to C1: uofmn t01 (T3-001/T3-048), cuboulder t04 (T3-004/T3-033), mariokart t04 (T3-084 against T3-002/T3-005), ireland t12 (T3-160/T3-002).
- My blind re-placement of ten hard items: 0.883 against my placements, 0.806 for round 3's readers (an upper bound: I had seen several of the ten).
The frozen scheme. scheme_final.jsonl
(197 themes; tier "main" 183, "rare" 14, J at QB2-014; sha256
4b471d29...), scheme_final.md, families.jsonl
(21). All 496 gate pairs confirmed in gate_checks.jsonl.
The freeze gave T3-002, T3-033 and T3-038 one rule: count the concepts
of each act, the most is primary, the opening post does not lead because
it comes first. That rule is the sentence I am least sure a stranger
reads as I meant.
Edits. scheme_edits.jsonl 306 lines:
202 word-for-word mirrors, 100 scheme-ambiguous, 4 author-error; no
theme narrowed, no edited theme's base rate fell on gold.
J's rulings that bind B3 (carry them)
- Bags. No one cuts the bags, neither this run nor
the coders (J, 12:24 Berlin). The second-order themes stand as the
coders made them. A bag stays one item through B2 and B3: one theme
placed, its other themes under
also_present, each with three concepts of its own at least.mem.py splitrefuses;out/recut/WITHDRAWN.jsonkeeps the withdrawn split out of every view. - The bound (J, 13:47).
also_presentnames "twenty themes at most", each with three concepts of its own; a bound, not a goal. The validator andfleet.pyapply it only where that exact phrase stands. - The not-flagged bag (J, QB2-013). A bag with no
other theme at the three-concept floor is not flagged a bag:
item_is_a_bagfalse,also_present{}. - Fleet ids (J, 09:14 and 12:15). Packets carry only
fleet ids for concepts and second-order themes
(
out/fleet_ids.jsonl:Cand seven digits,T2-and five digits), never a room id, headings included;fleet.pyrefuses a packet withcodes_by_itemthat carries one. Returns are translated back before scoring; my files keep room ids. - Codes by item (J, QB2-009). Each MANIFEST entry
carries
codes_by_item{fleet theme id: [fleet code ids]};fleet.pyrejects and reissues a line citing a concept its item does not hold.
Standing words from J and the PI (carry into every head)
J's words for B1 (7 October 2026): "national
elements are very important here"; "we need to get as much variance on
organizing behavior early on so that later we have enough to create the
model". National, political and conflict content is study material,
named as plainly as any other. The handler's rule: a
choice to leave out or soften content for any reason other than the
study's goes to J first with mem.py ask, and the content
stays meanwhile.
J on reading (11 October, 16:54 Berlin). Stop
cutting room reads to a line length. Read room lines whole. Page a long
read by line ranges or offset, never by truncating lines. Use
--width N on a mem.py read if a clip is ever
needed; the guard refuses cut -c after
mem.py.
J on asking (11 October, 17:01 Berlin). Ask J with
mem.py ask whenever a question is needed; asking does not
stop the run.
The PI's clarifications (8 October, approved by J): the thresholds are the design's heuristic; the rule is unchanged.
How to work, from J (8 October, 23:45 Berlin, "can you do a
hot change for the batching?"; relayed by the handler at 22:03Z; carry
this paragraph into every head). A change in how I work, not in
what I read or decide. Fewer turns. When two or more tool calls do not
depend on each other's output, make them in one turn. Chain ordered
commands in one Bash call with &&, so that a failure stops the
rest; for example, the mem.py log or note just decided,
then the next mem.py codes. Never put a write in the same
turn as the read it depends on. Never run two writes to the same file as
separate parallel calls. Keep one room's material per read, as now.
Every tool still writes its own record; nothing about what I read or
decide changes.
Two rules from J at B1b-29 (through the handler, 20:10Z;
carry them into every head). Write rule 0 lines and bags with
b1_multiplace_write4.py and
b1_bags_from_file2.py, not the old scripts, which made one
mem.py call per row of the whole table and grew to 8.5
minutes a write. Never end a turn while a job runs in the background;
run every write and check in the foreground.
The pilot's
declarations (from notes-B2.md)
- Agreement: Jaccard on placement sets
(
["T3-004"]against["T3-004","T3-011"]scores 0.5). Fidelity is mean Jaccard against my set. Alpha uses distance 1 − Jaccard, chance over the round's pooled sets. Primary exact agreement is reported beside, never in place. - Gold: 40 items in
gold_items.jsonl, never shown to a reader, seeded in B3 at 1 per 20 items, at most two per batch. - B3 batch cap: 40 items, the first 10 a warm-up block not counted (stated at B2a-r1, kept at rounds 2 and 3).
The scheme
scheme_final.jsonl holds 197 themes (183 main, 14 rare)
in 21 families. Rare: T3-007, T3-025, T3-067, T3-077, T3-093, T3-106,
T3-128, T3-133, T3-144, T3-161, T3-166, T3-186, T3-191 and T3-197.
F-001, as superseded: half the 7,786 placed second-order themes sit on
one kind; themes about dealing with other rooms need the most kinds.
Open, carried
- From B1. The ruling on testing G13, G14 and G15 as one index page (B2's scorecard found readers did not confuse T3-010 with T3-149 or T3-150). The B1d leftovers: 106 (line, kind) pairs over 81 episode lines whose kinds none of their rooms holds; seven pairs of lines telling one event; E989; the cfb and finland records; shared-member counts that may include EA1r+K5p/lVBLesLhCFRrKOPN+I=; the 76 themes holding both T3-005 and T3-021 acts; T3-149 and T3-150 members that may hold T3-195; kinds left out of bags. The second-order theme the scheme handles worst: argentina t06.
- Distinctions (none filed in
_questions/): who started the work; wars told twice; rivals who turn partners (E1076, E1122, E1142, E1318); whose flag a shared flag is (E1118); records that disagree on who attacked, on promises, truces, bots and design changes; who drove a bot and why it left a work (E1025); a room's own scripts barring it from sparing a neighbour (E843), or wrecking a protectorate it then rebuilt (E1209); one member on both sides of a quarrel (E820, E947); objections to altering the final image (T3-054 or T3-105). - The bag count. J counts 841 B1 bags; this head said 846. Not reconciled.
Ledgers at this close
- B1:
scheme_current.jsonl(197 themes, 7,786 placed second-order themes, 13,432 placements);families.jsonl(21);confusions.md(19 pairs);findings.jsonl(2 lines);multiplacement_log.jsonl(6,663);episodes-B1.jsonl(1,341). - B2:
notes-B2.md(1,192 lines);pilot_report.md,stability-B2.md,handback-B2.md;author_items.jsonl(50);gold_items.jsonl(40);RETURN-B2.md;pilot_rounds.jsonl(6);scheme_final.jsonl(197),scheme_final.md;scheme_edits.jsonl(306);rechecks-B2.jsonl(1,594, of which 526 the withdrawn split's);gate_checks.jsonl(519 lines, 496 pairs confirmed);exemplar_candidates.jsonl(68, hard items only);tier_history.jsonl(392);run_manifest.json(9);return_waivers.jsonl(20). - Asks QB2-001 to QB2-014 and QB3-001 to QB3-005 are answered; none is open.
- B3:
notes-B3.md;RETURN-B3.md;batches-B3.jsonl(1,212);_packets-B3/(22 shared pages, 1,212 packets, MANIFEST);run_manifest.json(11);assign_raw.jsonlandassign_pass2.jsonl(17,653 each);multiplacement_log.jsonl(3,171; B1's 6,663 kept asmultiplacement_log.jsonl.superseded-20261012T205314Z);predicted_confusion-B3.jsonl(1,180);b3_classes.jsonl(7,844);defects.jsonl(63: 8 from A1, 55 from B3);return_waivers.jsonl(74);fidelity-B3.md,position-B3.md,multiplacement_register-B3.md,agent_report-B3.md,handback-B3.md.
Rules kept
- Never type an id, an order or a name from memory; check with
jqor a script. Never log a write before the tool answers. Count a ledger's lines after appending. - There is no
--kind closeand no--kind episode; log those as notes. - A question to J is
mem.py ask "<question>" --assume "<meanwhile>";mem.py log --kind askwrites only a diary line and gives no id. - A reader's thread must fit the provider's window (about 164,000 tokens, inferred at round 2); the shared pages alone are about 95,000.
- Check a notes section against the diary before closing. Never put a placeholder or a no-op in a command. Never put an Edit and the read that checks it in one turn. Count the head's words before the closing line, not after.
- Never write an id-like token the run does not define in the head,
such as a D or a P followed by digits:
done.shreads it as an unresolved link. Name later stages and packet files in words. - The permission check refuses: "=w="; shell for and while loops, and
words beginning "for_"; shell functions, brace groups and heredocs; awk
with system() or
$fields; a variable set from$(...), and somepython3 -cscripts; jq with atest()regex, and env-var prefixes; cat or jq onout/diary/;cut -c,cut -bandcolrmaftermem.py,cite.pyor a helper (use--width). Split those, or write a script file inout/_analysis/. mem.pypages long output ([lines 1-80 of N]); fetch the rest with--offsetbefore trusting a count. A Bash output over about 30 KB is saved where I cannot read it; page it.- After a compaction the guard requires the head and stage file read
again and the exact line "compacted; head reconciled" through
mem.py log --kind note, in a call of its own, before any other write. After an interrupted turn or a lost connection, check the record before rerunning anything.
The next comparison
In B3, against stage B2's figures: gold fidelity against
gold_items.jsonl and the rechecked gold placements (0.624,
0.661), primary match (0.800), and agreement read above the stability
floor (0.807).