out/notes-B4.md
Saved at B4.B4c: check and final placements. 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: 3bbef7ebf1a2, 2026-10-13T19:47:53+02:00. Saved-state date: 2026-10-13T17:47:41Z. Catalogue close receipt Commit date and saved-state date are distinct.
Historical stage instructions differ from the current canonical card. Decision row 96, 12 October, was delivered before B4a-01; further limits and re-rulings are recorded in notes-B4. Saved-card SHA-256: bb5cc6a5690643e43d2e8a600efb4c750fc499bf2c2abea6c90a94861f0e1357. Current canonical SHA-256: 7fb68adfcd6a1dab15368728559d3eb3c91162c555a8a69b26a53571dfd16ebe. Instruction history.
Original GitHub file. Original SHA-256: 8817c323c759d70963dfdeb57bb49708e3f611fcf55bb497f1e76e8127fbed16. Reading-copy SHA-256: 9da9f287c7851cfe9252b8865893c9d80af37e61ddee3f74cbb11ec730e8a009.
Notes, stage B4: adjudication
Opened at B4a-01, 2026-10-12. The PI's leg message (21:19Z) carries
J's rulings of 12 October: the contested inventory is
out/b3_classes.jsonl from tools/assemble.py.
Classes 1 and 2 stand; classes 3, 4 and 5 go to adjudication, with the
gloss-only reads that section 1 keeps whatever the class. The blind
sample at B4b adds a third reader per item from an OpenAI model, as a
separate arm reported apart. Figures before any ruling come from
out/_analysis/b4_prepare.py
(b4_prepare.json).
The gold drop (section 2)
- Dropped. All 755 seeded gold placements, told apart
by (item, agent, replicate) on
batches-B3.jsonl's gold tags. All 755 gold lines inassign_raw.jsonlsit on those keys. The 1,210 duplicates' second copies are dropped as well; they are no corpus reading. - What
assign_final.jsonlreads. Only the corpus copies, asb3_classes.jsonldoes: 15,688 lines, two per item. No line ofassign_final.jsonlcarries an agent or a replicate. - Count. The drop removes placements, not themes.
assign_final.jsonlholds one line for each of the 7,844 items, which iscounts.py'sassignment_items_expected. - Fidelity on the gold placements is stage B3's
figure, read and not recomputed: 0.645 against the gold key, primary
match 0.816 (
fidelity-B3.md).
The selection (section 1, J 2026-10-12)
The next table gives the classes from
b3_classes.jsonl.
| class | rule | items | here |
|---|---|---|---|
| 1 | the two lists equal, order included, and equal to my B1 grouping | 2,566 | stands |
| 2 | the two lists equal and a proper subset of my B1 grouping; B1's other themes kept | 1,990 | stands, tagged b1_grouping_kept |
| 3 | the two lists differ, order included | 2,393 | ruled |
| 4 | the two lists equal and not inside my B1 grouping | 837 | ruled |
| 5 | no B1 grouping: the items I left in
unplaced-B1.jsonl |
58 | ruled |
- The gloss-only reads. The 18 placements into a family neither reader opened all fall in class 3, so the contested inventory is 3,288 items.
- Class 3. 1,140 items share a primary and differ on an added theme or the order. 1,253 differ on the primary.
- Class 4. In 692 of 837 items the readers' list shares no theme with my B1 grouping.
- Class 5. In 42 of 58 items the two readers agree.
The packets (sections 5 and 7)
I expect to rule on 3,288 items in seven packets of at most 500, one packet a leg. Packet 1 takes the 18 gloss-only items first. After that, every packet runs by the family of the first reading's primary, then by the pair of primaries. A family that does not fit runs on into the next packet.
The next table lists the packets.
| packet | items | families |
|---|---|---|
| 1 | 491 | the 18 gloss-only items; G01 313; G02 162 |
| 2 | 447 | G03 to G06 |
| 3 | 500 | G07; G08 (254) |
| 4 | 461 | G08 (6); G09 to G11 |
| 5 | 409 | G12 to G14 |
| 6 | 500 | G15 to G19; G20 (184) |
| 7 | 480 | G20 (52); G21 |
The ruling policy, declared before the first item (section 5)
- A reader's
confidenceandwhy. Neither is a prior. A "clear" reading against an "arguable" one counts for nothing in the ruling. A reader'swhypoints at material, and I check what it points at against the item's concepts. The ruling rests on the concepts read against the scheme'smust_show,must_not_show,decide_when_bothand discriminators. - My B1 grouping is shown as the third placement. This is J's three-placement design. It is labelled as mine, and I weigh it like a reading, not as a prior.
- A theme neither reader chose. A ruling may name
one, logged loudly:
named_neithertrue, and thewhysays what both readers missed that the file does say. From item 401 of packet 4 this is replaced by J's rulings of 13 October: a ruling chooses among the readers' placements and my B1 grouping and adds no theme beyond them (see "Packet 4" below). - When the scheme does not decide. The ruling is
empty and
unresolvedtrue. The quote is the sentence of the scheme that failed to decide. The item is carried, not resolved by preference. - Boundaries ruled once. Where five or more items of
a packet split their primaries on one sibling pair, I rule the boundary
once. It gets one paragraph in
adjudication_report.md, quoting the discriminator, logged as one ruling with its item list. It is then applied to each item, and each item carriesboundary_ruling. - The taxonomy by class.
- Class 3: by the readers' split, with the five values of section 7.
- Class 4: the readers agree outside my B1 grouping. If the ruling
takes the readers' list, the error was mine at B1:
author-error. If it keeps a B1 theme both readers left out, it overrules them:author-disagrees.item-is-a-bagorgenuine-jointapply where the material says so. - Class 5: I left the item unplaced at B1. If the readers' placement
holds, my leaving it out was wrong:
author-error. If the item holds no doing to place, the ruling is empty andunresolvedtrue, withauthor-disagreeswhere both readers agreed. A split is ruled by the split.
reader-erroris suspected last. It is never given where both readers made the same miss.- Concepts behind each theme placed.
support_by_themeis taken from the reader line that placed the theme: itssupport, or its multiplacement record'ssupport_additionalfor an added theme. Each is checked against the item. Where neither reader placed a theme, I name the concepts. A bag keeps its unplaced themes underalso_present, each with its concepts. - The quote. It is the deciding participant's words,
a substring of the concept's text in the store, which is the rule
cite.pyresolves. Ascheme-ambiguousruling quotes the scheme sentence of the field that failed instead. No ruling cites a room note.
Blindness (section 6)
No v38 tool strips the packets, so a script does it:
out/_analysis/b4_adjudication_packets.py.
- Stripped: agent, batch, replicate, position and timestamps, and the dispatch's reader id.
- The two readings are shown as reading A and reading
B, in an order seeded by 20261016 per item, so the replicate cannot be
read off the order. Each keeps its set,
confidence,why,read,families_opened,bagandalso_present. - The item's material is rendered from the store as
mem.py themegives it: the label, the coder'stheme_note, and each concept with its id, label and the participant's words. The member name, hour and thread columns are dropped; no ruling needs them.
The conflicts pass (section 4), declared
The pass runs over the coders' theme_note alone, with no
concepts beneath it, across rooms. It runs packet by packet: before a
packet's first ruling, I read that packet's notes grouped by the
readings' primaries. coder_conflicts.jsonl grows with each
packet and is whole when the last packet is ruled. Why packet by packet:
a single pass over all 3,288 contested notes before any ruling would
fill a leg on its own, and a conflict is wanted beside the disagreements
it explains.
assign_final.jsonl
while the packets run
It is rewritten at every adjudication leg by
out/_analysis/b4_assign_final.py and holds every item of
the analysed set:
- Classes 1 and 2:
b3_classes.jsonl's placement, with class 2 taggedsource: "b1_grouping_kept". - A ruled item: the ruling.
- A contested item not yet ruled:
third_orderempty andstatus: "pending_adjudication", with the readers' confidence, so no line claims a placement before its ruling.
Packet 1, ruled at B4a-01 (2026-10-12)
All 491 items are ruled, in 20 blind chunks of 25
(out/_adjudication-B4/packet-01/rulings-NN.jsonl, appended
by out/_analysis/b4_rule_append.py).
out/_adjudication-B4/packet-01/summary.md holds the
figures, and adjudication_report.md holds them as the
interim report after packet 1 of 7. In brief:
- Taxonomy: genuine-joint 137, scheme-ambiguous 123, author-error 97, reader-error 77, author-disagrees 37, item-is-a-bag 20.
- Counts: unresolved 52 (10.6%); named_neither 84 (17.1%).
- Fields that failed: must_show 78, discriminators 39, decide_when_both 4, must_not_show 2.
- Themes that failed most: T3-017 29, T3-023 27, T3-001 24.
- Agreement: before, reader against reader, 0.486 mean Jaccard; after, each reader against the ruling, 0.633. The figure after is not a reliability figure.
- Mapping:
assign_final.jsonlwas rewritten (class 1 2,566, class 2 1,990, ruled 491, pending 2,797).
What changed during the packet, and why:
- Two rulings corrected in place. formula1 t05 and
elitedangerous t01 had used T3-063 for removals of posts that are not
canvas posts, and T3-063's
must_showbegins "Canvas posts handled under the sub's standing rules".b4_rule_append.pygained a--replacemode. It rewrites the named items in place, marks each linerevisedwith the UTC time, and keeps the old file asdisagreements.superseded-20261012T221214Z.jsonl. - Three gaps ruled the same way each time, written
into
boundaries.md:- April Fools play not posted as true (unresolved on T3-001's
must_show); - another sub's April Fools change (unresolved on T3-023's
must_show); - moderators applying standing rules to non-canvas posts (unresolved
on T3-063's
must_show, conflict CC-004).
- April Fools play not posted as true (unresolved on T3-001's
- Paragraphs added to
boundaries.md. The T3-032|T3-097 paragraph was extended for the overlap of "stop them or take them down" with "requests to switch back". Seven pairs met on fewer than five items gained short paragraphs. - A practice to declare for the later packets: a second theme on one concept. It is added where a scheme rule says "a concept of its own": T3-023's rule for T3-097 and T3-100, and T3-017's three-concept rule. Elsewhere a second theme on one or two concepts was added only where the concept plainly passes another theme's gate. Where it was not added, the concept is named in the ruling's why. Single-concept additions were not perfectly even across the packet (magictcg t09's megathread concept was left out); the report says so.
- The reader-error count. Of 77, 16 fell in chunk 18, single-concept G02 items. Two there were changed to scheme-ambiguous before writing (tagpro t15, twitch t04), because the readers had matched a test's literal words and that test does not state its canvas condition.
- Class 4. I took the readers' list in 89 items and kept a B1 theme in 29. My commonest B1 errors are listed in the report.
The next packet is packet 2: 447 items, G03 to G06, chunks built in
out/_adjudication-B4/packet-02/. The conflicts pass runs
over its notes before its first ruling, as declared.
validate.py B4, after packet 1:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 491: {'genuine-joint': 137, 'scheme-ambiguous': 123, 'reader-error': 77, 'author-error': 97, 'author-disagrees': 37, 'item-is-a-bag': 20}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 491, outstanding 2797
coder conflicts 8
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
Packet 2, ruled at B4a-02 (2026-10-12 to 13)
Before the first item:
- The conflicts pass read packet 2's notes alone,
grouped by the readings' primaries, and added CC-009 to CC-016 to
coder_conflicts.jsonl(16 lines now). - Seven boundaries were ruled once in
boundaries.md("Packet 2"): every pair on which five or more items split their primaries (out/_analysis/b4_packet_pairs.py). Four are T3-002 against a sibling, so each paragraph says how a concept is counted toward one act or the other.
All 447 items are ruled, in 18 blind chunks of 25
(out/_adjudication-B4/packet-02/rulings-NN.jsonl).
packet-02/summary.md holds the figures, and
adjudication_report.md holds them with packet 1's as the
interim report. In brief:
- Taxonomy: genuine-joint 215, author-disagrees 65, scheme-ambiguous 62, author-error 58, item-is-a-bag 44, reader-error 3.
- Counts: unresolved 10 (2.2%); named_neither 155 (34.7%), of which 98 add only themes from my B1 grouping.
- Fields that failed: must_show 33, discriminators 17, must_not_show 6, decide_when_both 6.
- Themes that failed most: T3-002 12, T3-033 9, T3-014 6.
- Agreement: before, reader against reader, 0.537 mean Jaccard; after, each reader against the ruling, 0.603. The figure after is not a reliability figure.
- Mapping:
assign_final.jsonlwas rewritten (class 1 2,566, class 2 1,990, ruled 938, pending 2,350).
What changed during the packet, and why:
- The T3-016 correction (at item 146). The
T3-002|T3-070 paragraph had said that teaching a newcomer to place
counts as directions. T3-016's
must_shownames "how to pick a colour and place". The paragraph now reads that such teaching is not a call, and is T3-016 when it explains the event. bindingofisaac t02 was revised by--replace(revisions-01.jsonl). - The T3-033 and T3-041 reading (from item 140).
T3-041's
must_not_showgives "The room's first mark proposed" to T3-033. Proposals of a further piece beside a standing mark are T3-041, scheme-ambiguous on T3-033'smust_show. clashroyale t02, ruled before the reading, was revised (revisions-02.jsonl). I checked the T3-033 concepts of the 22 other packet 2 rulings that place T3-033 without/_analysis/b4_theme_support_lines.py; each proposes a first mark. - Class 4 went the other way. In packet 1 I took the readers' list in 89 class 4 items and kept a B1 theme in 29. In packet 2 the figures are 53 and 63. Of packet 2's 65 author-disagrees, 39 keep the readers' theme and add mine under rule 0. The report says I cannot separate this from my pull toward my own grouping.
- A batching slip, twice. I put an Edit and the dry run that depends on it in one turn (revisions-01 and the chunk 12 fix). Both ran in order. I kept them apart from then on.
Readings applied in packet 2, to carry into the later packets (each from the theme's own sentences):
- The counting rule for T3-002, T3-033 and T3-038. Calls, volunteers and answers ("I'm in", "on it") count toward T3-002; placing and reports of the work's state, with coordinates of the work in progress, toward T3-038; a new mark named, even with a call for help, toward T3-033.
- T3-065 takes the flag of the room's land, its calls
and its proportions included (T3-002's
must_not_show). T3-169 takes the sub's name written; T3-044 instead when bringing visitors in is the stated point. - T3-084 takes a request received from another room and another canvas group asked as a group; T3-062 takes calls posted to other communities. "Canvas group" is undefined: scheme-ambiguous.
- T3-074 needs the limit, the cooldown or a placing trouble while building. A member's exams, papers or sleep are not in its test (pakistan t10 scheme-ambiguous; rutgers t13 author-disagrees). With nothing built yet, doubt about the hands goes to T3-136, and a design scaled down to the hands to T3-069.
- Smaller readings:
- T3-137 for following an outside sub's plan; T3-068 for another room's mark altered into the room's sign or joke;
- T3-170 for friendly work mistaken for vandalism; T3-196 for former fans returning; T3-122 for greetings to or from neighbours;
- T3-118 needs a loss; T3-125 for "we just wing it"; T3-141 for night shifts; T3-162 for vetting others' requests to build;
- T3-116 for plans hidden from rivals; T3-111 for a canvas sub's future.
National, political and hate content is named in the whys as the words give it. Examples: "schleus de merde", an anti-German slur, in france t05; "until we reach the jews" in russia t04; the anarcho-capitalist and anarcho-communist flags in anarcho_capitalism t06; "Norwegian commie bastards" in texas t10.
The next packet is packet 3: 500 items, G07 and the first 254 of G08. Its conflicts pass runs over its notes before its first ruling.
validate.py B4, after packet 2:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 938: {'genuine-joint': 352, 'scheme-ambiguous': 185, 'reader-error': 80, 'author-error': 155, 'author-disagrees': 102, 'item-is-a-bag': 64}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 938, outstanding 2350
coder conflicts 16
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
Packet 3, ruled at B4a-03 (2026-10-13)
Before the first item:
- The conflicts pass read packet 3's notes alone and
added CC-017 to CC-025 to
coder_conflicts.jsonl(25 lines now). - Nine boundaries were ruled once in
boundaries.md("Packet 3"): every new pair on which five or more items split their primaries. Three pairs from packet 2 carry over as written: T3-002|T3-033, T3-002|T3-038 and T3-004|T3-070.
All 500 items are ruled, in 20 blind chunks of 25
(out/_adjudication-B4/packet-03/rulings-NN.jsonl).
packet-03/summary.md holds the figures, and
adjudication_report.md holds them with packets 1 and 2 as
the interim report. In brief:
- Taxonomy: genuine-joint 231, scheme-ambiguous 106, item-is-a-bag 76, author-error 45, author-disagrees 39, reader-error 3.
- Counts: unresolved 7 (1.4%); named_neither 280
(56.0%), of which 123 add only themes from my B1 grouping and 157 add a
theme no placement held
(
out/_analysis/b4_named_neither_split.py). - Fields that failed: must_show 54, must_not_show 26,
discriminators 23, decide_when_both 3. 24 of the 26
must_not_showfailures are the homeland flag or its emblems. - Themes that failed most: T3-004 25, T3-033 25, T3-038 11.
- Agreement: before, reader against reader, 0.475 mean Jaccard and 0.598 primary match; after, each reader against the ruling, 0.473 and 0.535. The figure after fell below the figure before, the first packet where it did. It is not a reliability figure.
- Mapping:
assign_final.jsonlwas rewritten (class 1 2,566, class 2 1,990, ruled 1,438, pending 1,850).
What changed during the packet, and why:
- Three readings, each written in
boundaries.mdwhere it was first met: the homeland flag's look (from item 16), a design cut down to the hands (from item 12) and a celebration while placement goes on (from item 280). catalonia t07 and packet 2's sadboys t03 were revised to match. The chunk 12 draft first read T3-009 against T3-026 by theirmust_not_showtiming; T3-026'sdecide_when_bothalready decides the pair, so six draft lines were changed before the write. - T3-170 for members' own misclicks (from item 430).
Its
must_shownames "members' own misclicks or misplaced pixels owned and forgiven". bisexual t04 and kpop t05 were revised to place it (revisions-02.jsonl). - The append tool's support convention.
b4_rule_append.py(lines 131 to 145) lets the primary give up the concepts it shares with added themes where it keeps others. It does not resolve overlaps among added themes, and it refuses a placed theme only when its list equals another's. The new read-only checkout/_analysis/b4_own_support_check.py [--leg B4a-03]lists placed themes whose concepts all sit under the ruling's other themes. It found seven (ManningPlace t05, KState t04, rainbowgrid t01, dofus t01, skyrim t03 and teamcube t04, and packet 1's nerf t08). All were rewritten by--replace(packet-03/revisions-03.jsonl,packet-01/revisions-01.jsonl). The check finds none over the three packets, and I ran it after every later chunk. - Boundary tags. Eleven packet 3 rulings applied
packet 2's counting rule but carried no
boundary_ruling. The tags were added with the rulings unchanged (revisions-04.jsonl, built by the newout/_analysis/b4_br_tag_draft.py); a row comparison against the superseded ledger shows only the tag, therevisedstamp and the why changed. - A log correction. The chunk 13 line said the readers' list was taken in "11 of 17" class 4 items. The chunk holds 16 class 4 and 3 class 5 items, and a correction line says 11 of 19.
- QB4-001 asked. Two sources lowered agreement. In 76 items both readers put T3-038 first, and my rulings kept it first in 27. 201 of 500 rulings place three themes, often with a one- or two-concept theme no placement held. I asked J whether packets 4 to 7 should keep adding such themes. Meanwhile packets 4 to 7 are ruled as packets 1 to 3 were.
Readings applied in packet 3, to carry into the later packets:
- The homeland flag. The flag of the room's land, its
build, size, expansion, proportions, spot, repair and calls for hands,
is T3-065. Emblems in or beside it are T3-113. A reader's T3-004, T3-020
or T3-041 on that work is scheme-ambiguous on that theme's
must_not_show. - Borders and help. A border with no protection
stated is T3-004, scheme-ambiguous on T3-055's
must_show. "Defend" with no attacker named is T3-002. Refresh advice is T3-070. Requests received are T3-084. Permission asked of a host is T3-035, and the host's grant T3-012. Relying on a bigger room's protection is T3-099. - Smaller readings:
- T3-170 for members' own misclicks owned and forgiven; T3-171 for a colour or pattern faction spreading (EraseThePlace, the ss13 greytide);
- T3-068 for converting another's mark; T3-061 for taking a neighbour's space; T3-081 for "Campaña al desierto"; T3-130 for national politics (Brexit, imam hatip, Hayır, "Zuma Must Fall");
- a known mark located for a member is T3-026; a mark the room did not know of is T3-082 (CC-021);
- "I added a little something for my bias", T3-092's own example, goes to T3-060 by T3-092's discriminator (bangtan t10, scheme-ambiguous).
- Rule 0 as applied. At most three placements. Order by concept count; ties go by how many of the three placements (reader A, reader B, my B1) hold the theme. A one- or two-concept theme is added when it passes its gate; where several tie with no placement ahead, none is added. Each placed theme has a concept of its own.
National, political, hate, sexual and drug content is named in the whys as the words give it. Examples: "LULA PRESO AMANHÃ" in brasil t02 and "LULA PRESO AMANHA" in brasil t04; "some fake nigga kept replacing my work" in drugs t01; Hitler moustaches kept off Kekkonen in suomi t07; a Menorah "less prone to being plastered by swastikas" in israel t01; "Thin Blue Line" in AmericanFlaginPlace t10; "based Pinochet snek" in physical_removal t02; "dirty limies" in detroitredwings t03; "yiff me daddy /r/furry" in furry t01.
The next packet is packet 4: 461 items, the last 6 of G08 and G09 to G11. Its conflicts pass runs over its notes before its first ruling.
validate.py B4, after packet 3:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 1438: {'genuine-joint': 583, 'scheme-ambiguous': 291, 'reader-error': 83, 'author-error': 200, 'author-disagrees': 141, 'item-is-a-bag': 140}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 1438, outstanding 1850
coder conflicts 25
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
Packet 4, ruled at B4a-04 (2026-10-13)
Before the first item:
- The conflicts pass read packet 4's notes alone and
added CC-026 to CC-036 to
coder_conflicts.jsonl(36 lines now). - Four boundaries were ruled once in
boundaries.md("Packet 4"): T3-005|T3-021 (B2's predicted pair 1), T3-021|T3-038, T3-005|T3-038 and T3-005|T3-073.
All 461 items are ruled, in 19 blind chunks
(out/_adjudication-B4/packet-04/rulings-NN.jsonl).
packet-04/summary.md holds the figures, and
adjudication_report.md holds them with packets 1 to 3 as
the interim report. In brief:
- Taxonomy: genuine-joint 219, scheme-ambiguous 84, author-error 75, item-is-a-bag 53, author-disagrees 17, reader-error 13.
- Counts: unresolved 10 (2.2%); named_neither 222 (48.2%), of which 89 add only themes from my B1 grouping and 133 add a theme no placement held, all 133 in items 1 to 400.
- Fields that failed: must_show 39, must_not_show 32,
decide_when_both 11, discriminators 2. 20 of the 32
must_not_showfailures are the homeland flag's repair on T3-021'smust_not_show. - Themes that failed most: T3-021 24, T3-005 10, T3-073 9, T3-027 7.
- Agreement: before, reader against reader, 0.519 mean Jaccard and 0.675 primary match; after, each reader against the ruling, 0.562 and 0.671. Not a reliability figure.
- Mapping:
assign_final.jsonlwas rewritten (class 1 2,566, class 2 1,990, ruled 1,899, pending 1,389).
What changed during the packet, and why:
- QB4-001 answered, and the ruling rule changed at item 401. J (06:43 Berlin): "Ask it to stop. The point is to try to adjudicate." J's rulings (06:47 Berlin), for the rest of packet 4: a ruling chooses among the readers' placements and my B1 grouping and adds no theme beyond them; it takes the union of placements only when it names, for each theme it keeps, the separate concept that carries it; otherwise it chooses. Chunk 17 had been read under the old practice; it was re-decided under the new rule before any line was written. Items 1 to 400 of packet 4, and packets 1 to 3, are re-ruled at the start of B4a-05, not now.
- What the new rule did.
out/_analysis/b4_agreement_range.py(new, read-only) splits packet 4. Items 1 to 400: before 0.512 and 0.652, after 0.536 and 0.638, three themes placed in 179, a theme no placement held in 133. Items 401 to 461: before 0.566 and 0.820, after 0.726 and 0.883, three themes placed in 22, none beyond the placements. The two parts hold different families (G08 to G10 against G11), so the rise is not the rule's effect alone. - Rule 0 under the new rule. Concepts count only
toward placed themes; a concept whose act no placement holds is named in
the why and left out of
support_by_theme. Order by concept count, ties by how many of the three placements hold the theme. A one- or two-concept theme that a placement holds is kept when its concept passes the theme's gate and it leads its level on placements; where placed themes tie at a level, none is kept. A bag still names its other themes underalso_present, which places nothing; bakchodi t09 lists T3-006, which no reading named. - Seven boundaries in packet 4's own families. Beside the four ruled first: T3-020|T3-022 (from item 189; CC-033), and from item 401 T3-027|T3-028, T3-027|T3-087 and T3-089|T3-168. Two readings: the homeland flag kept and defended (from item 15) and a call to fight against a call to defend (from item 16).
- One correction. MonkeyIsland t03, ruled unresolved
in chunk 6 on a full T3-005|T3-021 tie, was revised to place both
themes, as the T3-005|T3-021 paragraph rules for a full tie
(
packet-04/revisions-01.jsonl). - Slips. In chunk 5 a draft's write and its dry run went in one turn. They ran in order, and the later chunks kept them apart. After the compaction in chunk 16, the chunk 16 draft was written before the head was re-read and the reconciliation line logged. I then read the head and stage file, logged the line, checked the draft against the chunk file and fixed three whys before its dry run.
Readings applied in packet 4, to carry into the later packets:
- The homeland flag kept and defended: repair, calls for hands and its spot are T3-065; an attack on it, fought or raised as an alarm, T3-005; watching it T3-021; night watch T3-141.
- Fights and calls. A call to fight is T3-005; a call to defend or protect with no attack in the words is T3-002. A report with a call is T3-005; a report without one is T3-073.
- Culprits. Members doubting a damage was the room's
own are tracing it (T3-087); a bare denial pointing at another room is
T3-087 by T3-188's
must_not_show; an organised room setting its plan apart from rogue placers is T3-188; friendly work taken for an attack is T3-170. A loss blamed after the close is T3-058. - Scripts. Scripts made, shared, fixed or run for the room's work are T3-028; scripts to wreck another room's work are not. Arguing their fairness is T3-027; the larger part leads. Glitches used to place more, and extra accounts with concepts of their own, are T3-088. Accounts handed to someone else's bot are T3-120. A script changed to spare a neighbour is T3-168; the room's own versions fighting its plan are T3-089.
National, political, hate and slur content is named in the whys as the words give it. Examples: "pokatoličeni Srbi", a slur for Croats, in serbia t08; "od srba i ostale gamadi", Serbs called vermin, in bih t02; "Too many Pajeets", a slur for Indians, in 4chan t08; "porkies" and "randian" in bakchodi t06 and t11; "Indians , being the cheats they are" and "Saffron terrorists" in pakistan t08; "changed it to fags", a homophobic slur on the Leafs logo, in sabres t09; "Shadilay my brothers. Kek wills it!" in pepe t04; Richard Spencer and /pol/ in completeanarchy t12.
The next packet is packet 5: 409 items, G12 to G14. B4a-05 opens by re-ruling packets 1 to 3 and items 1 to 400 of packet 4 under J's rulings, as J directs.
validate.py B4, after packet 4:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 1899: {'genuine-joint': 802, 'scheme-ambiguous': 375, 'reader-error': 96, 'author-error': 275, 'author-disagrees': 158, 'item-is-a-bag': 193}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 1899, outstanding 1389
coder conflicts 36
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
The re-ruling of packets 1 to 4, at B4a-05 (2026-10-13)
The PI's message for B4a-05 carried J's rulings (06:45 and 06:47
Berlin): (1) the placements are the readers' and mine (B1), and a ruling
chooses among them and adds no theme beyond them; (2) a ruling takes the
union only when it names, for each theme it keeps, the separate concept
that carries it, otherwise it chooses; (3) re-rule only the items in
packets 1 to 4 whose ruling holds a theme no placement held, under (1)
and (2), keep the superseded ledger, and do (3) before packet 5.
QB4-001's answer was read with mem.py asks before the first
write.
What was done:
- The work list.
out/_analysis/b4_rerule_list.py(new, read-only) lists the rulings that hold a theme no placement held, with both readings blinded as A and B, my B1 grouping, the old ruling and each removed theme's concepts. Packet 1 30, packet 2 58, packet 3 157, packet 4 133: 378. Every other ruled line already named a concept of its own per placed theme, so rule (2) reached no other line. - The decisions. One line per item in
out/_adjudication-B4/rerule-B4a-05/decisions-NN.jsonl;out/_analysis/b4_rerule_draft.py(new) builds a draft from them and refuses a ruling theme no placement holds;b4_rule_append.py --replacewrote each draft after its dry run in a turn of its own. Thirteen parts: packet 1 one, packet 2 one, packet 3 four, packet 4 seven. Each kept the old ledger asdisagreements.superseded-<time>.jsonl.b4_own_support_check.pyfound no theme without a concept of its own after any part.b4_rerule_list.pyreturns nothing for all four packets. - The method is in the diary entry that opened the
leg and in
adjudication_report.md: a removed theme's concepts count toward a placed theme whosemust_showtakes them; rule 0 then runs inside the placements, so a placed theme the old limit of three cut may enter; unresolved where no placement's test takes the material.
What it changed:
- Taxonomy over the four packets: genuine-joint 825 (was 802), scheme-ambiguous 336 (375), author-error 292 (275), item-is-a-bag 186 (193), author-disagrees 162 (158), reader-error 98 (96). Unresolved 82 (79): weezer t13, nbaspurs t17 and rainbowgrid t06 were added, where no placement's test takes the material.
- named_neither fell from 741 to 484. Every one now keeps a theme from my B1 grouping; none holds a theme no placement held.
- Agreement after, each reader against the ruling: 0.627 mean Jaccard and 0.698 primary match over the four packets (was 0.565 and 0.649). Packet 3 rose from 0.473 to 0.581. Not a reliability figure.
- Readings replaced. The homeland-flag reading and the call-to-defend reading of packet 4, packet 2's T3-002|T3-005 paragraph and packet 3's T3-033|T3-041 paragraph now send a concept to their theme only where a placement holds it. Where none does, calls to defend count toward T3-005, the flag's repair toward T3-021, its look and spot toward the readers' T3-004 or T3-020, and a further piece toward the readers' T3-033, T3-038 or T3-004.
- Four earlier corrections undone: catalonia t07, sadboys t03, bisexual t04 and kpop t05 had been corrected to a theme no placement held.
- Bags. Several bags placed a theme no placement held; they were re-placed among the placements, and some stopped being bags (adventuretime t04, suomi t07, archlinux t04, israel t02, loliconsunite t02, placeDE t03).
What I doubt:
- Rule 0 inside the placements keeps more of my B1 than a choice would. A one- or two-concept B1 theme that leads its level is kept as a third theme. 89 of packet 4's 137 named_neither rulings place three themes. Rule (2) permits that union, since each kept theme has its own concept; it does not require it. I applied the rule declared at item 401 so that all four packets are ruled one way. If J reads "otherwise it chooses" as asking for fewer unions, the rule to change is the one-concept keep.
- Two labels do not match the rulings. 12 author-error rulings from packet 4's items 401 to 461 keep a B1 theme (by §7 author-disagrees), and 2 packet 2 author-disagrees rulings take the readers' list. Rule (3) does not reach them, so they stand and the report gives both counts.
- Where both must_show lines take a concept, I
followed the reading that placed it, or the more specific test (a
swastika alarm to T3-146, '24-7 supervision' to T3-141 by T3-021's
must_not_show). These choices decide whether a one-concept theme survives.
Slips: two Edit calls on adjudication_report.md ran in
one turn; both applied, and the later edits went one at a time.
National, political, hate and slur content named in the re-ruled whys as the words give it, for example: "pokatoličenim Srbima" (Catholicised Serbs, a slur for Croats) and the tricolour that vandals tried to make "Bulgarian or Arab" in serbia t08; "porkies" for Pakistanis and "Randia" for India in bakchodi t06; the swastika on the Pakistani flag and "To Bakchodi fuckers" in pakistan t05; the black Nazi symbol in the menorah in israel t02; "TheDonald users and KotakuInAction" miscolouring the trans flag in traaaaaaannnnnnnnnns t02; "franchutes" for the French in spain t09; the Moors and the Empire in PORTUGALCARALHO t02.
J's ruling on also_present, and the correction, at B4a-05 (2026-10-13)
The PI's message at 07:09 UTC carried J's ruling of 09:09 Berlin on
bakchodi t09: rule (1) extends to also_present, which lists
only themes that a reader or my B1 named; apply it to the rulings
written from now on and to the ledger's existing entries, keeping the
superseded ledger. I asked J whether a theme a reader listed under its
own also_present counts as named (QB4-002). J's answer
(09:20 Berlin): yes; also_present may list themes a reader
placed, a reader listed under its own also_present, or my
B1 named, nothing else; restore any entries the interim reading removed
that this admits.
What was done:
- The scan.
out/_analysis/b4_ap_scan.py(new, read-only;--reading placed|named,--ledger) found 128 lines in packets 1 to 4 (5, 32, 46, 45) listing 273 themes outside the named set. Dropped most: T3-002 29, T3-004 17, T3-041 16, T3-170 14, T3-073 14, T3-065 9, T3-070 8. 84 lines keep a theme only a reader's ownalso_presentnamed, which QB4-002 admits. - The correction. Four
--replaceparts fromout/_adjudication-B4/rerule-ap-B4a-05/draft-apNN-named.jsonl; old ledgersdisagreements.superseded-20261013T072151Z.jsonl,-072154Z,-072158Z,-072202Z.b4_rerule_draft.pynow takes several decision files.out/_analysis/b4_ap_emptied_show.py(new, read-only) printed the four bags left with no theme at the floor; each was re-ruled by hand: archlinux t01 (genuine-joint), ireland t04 and starvstheforcesofevil t02 (author-disagrees), de t02 (author-error). - The interim reading (placed themes only) ran as a dry run and removed nothing from the ledger, so nothing had to be restored.
- From packet 5 on,
also_presentlists only placed themes, and a bag needs four placed themes with three concepts each.
Packet 5, ruled at B4a-05 (2026-10-13)
Before the first item:
- The conflicts pass read packet 5's notes alone and
added CC-037 to CC-048 to
coder_conflicts.jsonl(48 lines now). - Five boundaries were ruled once in
boundaries.md("Packet 5"): T3-010|T3-024, T3-010|T3-149, T3-006|T3-061, T3-010|T3-011 and T3-010|T3-151, each applied under J's rulings.
All 409 items are ruled, in 17 blind chunks
(out/_adjudication-B4/packet-05/rulings-NN.jsonl).
packet-05/summary.md holds the figures, and
adjudication_report.md holds them with packets 1 to 4 as
the interim report. In brief:
- Taxonomy: genuine-joint 291, author-disagrees 44, author-error 41, reader-error 16, scheme-ambiguous 14, item-is-a-bag 3.
- Counts: unresolved 3 (linux t03, survivor t26, PurplePixels t13); named_neither 131 (32.0%), every one from my B1 alone, none beyond the placements.
- Fields that failed: must_show 2, must_not_show 8, decide_when_both 0, discriminators 4. The one sentence that failed more than once is T3-006's discriminator against T3-061 (4).
- Agreement: before 0.467 mean Jaccard and 0.623 primary match; after 0.612 and 0.677. Not a reliability figure.
- Class 4: the readers' list taken in 42, a B1 theme kept in 44.
- Boundary tags: T3-010|T3-149 34, T3-010|T3-151 31,
T3-010|T3-024 26, T3-006|T3-061 18, T3-010|T3-011 14. Chunks 6 and 7 and
item 409 were tagged after the packet (nine
--replacelines; old ledgerdisagreements.superseded-20261013T081847Z.jsonl). - Mapping:
assign_final.jsonlrewritten (class 1 2,566, class 2 1,990, ruled 2,308, pending 980). The summaries of packets 1 to 4 were rerun after thealso_presentcorrection.
Readings applied in packet 5, to carry into the later packets:
- Fights and deals. T3-010's "with no fight to end" fails for a concept naming a fight, a threat, peace or a truce, even where no placement holds T3-149. A shift agreed with no request in the words is T3-010; a move because a neighbour asked is T3-039 where placed.
- Help. A request for help is T3-084 by T3-011's
must_not_show. Help counts toward T3-151 only when the return is named. T3-150'sdecide_when_bothkeeps help traded inside an alliance when defence or a fight is the frame. A member whose effort moves to another room's build is T3-137. - Space. A request for space to the room that holds it is T3-035; a host ruling on many requests T3-162; a single grant T3-012; a warning that a faction covers unapproved art T3-094.
- Neighbours. T3-079 needs national flags; T3-149 rooms already in contact; T3-078 kin felt in the words; T3-099 the bigger room's protection and its size in the words; T3-071 adoption into a neighbour's work; T3-170 friendly work taken for vandalism.
- Rule 0 at the top. Where the top of the order ties on concepts and placements, all the tied themes are placed (Clannad t05, Fez t06, Dustforce t08, aceattorney t10, androidgaming t06). Themes of three concepts or more tied on placements at the limit of three are left out together.
What I doubt:
- My B1 kept against both readers. Rule 0 inside the placements keeps a one- or two-concept B1 theme alone at its level. In class 4 that turned the ruling toward my B1 in 44 of 86 items, 7 of 7 in chunk 7 and 8 of 9 in chunk 14. 89 of the 131 named_neither rulings place three themes. If J reads "otherwise it chooses" as asking for fewer unions, the rule to change is the one-concept keep.
- Requests for room inside a host's work. The T3-010|T3-024 paragraph counts "a request for room" toward T3-010. In theitalyplace t11 I left the requests for room inside Italy's flag out as T3-035's act, which no placement held, and counted only requests between neighbouring works toward T3-010. Counted the other way, T3-010 leads that item; the ruling's set is the same.
- Where both must_show lines take one concept, the choice can decide the item: england t05 ('No' with a flood complaint), falcons t15 ('Nope ... or you get nothing'). I counted a reply that answers a request toward T3-115 both times.
Slips:
- After the first compaction of the leg,
rulings-06.jsonlwas written before the head was re-read and the reconciliation line logged. I then logged the line and re-checked the draft (item 138). - Three Edit calls on
b4_ap_scan.pyran in one turn. All applied; later edits went one at a time. - One diary line said I had asked J before
mem.py askran; the ask followed at once. - One diary line gave the dropped-theme counts from the placed reading; a later line corrected them from the superseded ledger.
- The chunk 14 dry run refused c0185 on hawks t06 (a concept of another theme); it was removed before the write.
- After the last compaction, chunk 16 was read before the head; the reconciliation line was logged before any write.
National, political, hate and slur content named in packet 5's whys as the words give it, for example: 'BURN THE DISGUSTING ANCRAP RAG!', the hammer and sickle and 'Yellow Hordes of Ancapistan' (TheFarLeftSide t05); a white-supremacist parody about purging 'the inferior colored people' (ssbpm t17); 'remove the Russian scourge' and 'generalgovernment' (czech t07); 'utrota dansken vid 16.00' (sweden t03); 'Manifest Destiny' (AmericanFlaginPlace t06); 'Pakistani's who want to vandalize' and 'homosuck' (india t04); 'la escoria de Chavez' (uruguay t04); 'argentinos nojentos' (portugal t11); a joke about Norwegian sailors and rapes (europe t10); 'BASH THE FASH' and the NKVD beside Rosa Luxemburg (fullcommunism t05); 'frog shagging bastards of the north' (malta t03); a red swastika planned on a logo (liquicity t07); r/Eagles' 'Nazi Flag', 'kill this Nazi scum' and 'anti semetic bullshit' (falcons t15); 'Purify the core' (theblackvoid t02).
The next packet is packet 6: 500 items, G15 to G19 and part of G20. Its conflicts pass runs first.
validate.py B4, after packet 5:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 2308: {'genuine-joint': 1117, 'scheme-ambiguous': 350, 'reader-error': 114, 'author-error': 334, 'author-disagrees': 208, 'item-is-a-bag': 185}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 2308, outstanding 980
coder conflicts 48
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
Packet 6, ruled at B4a-06 (2026-10-13)
Before the first item:
- The conflicts pass read packet 6's notes alone and
added CC-049 to CC-062 to
coder_conflicts.jsonl(62 lines now). The two that explain most splits: CC-049 (the room's joking written as one practice whether about the canvas, the sub's April Fools change, its ordinary talk or a rival) and CC-052 (G15's truces, alliances, help and borders as one practice, as CC-037 in packet 5). - Eight boundaries were ruled once in
boundaries.md("Packet 6"): T3-010|T3-149, T3-017|T3-031, T3-001|T3-031, T3-023|T3-031, T3-150|T3-151, T3-031|T3-050, T3-018|T3-031 and T3-018|T3-052, with T3-010|T3-151 carried from packet 5 and the pairs below five applied as met. - QB4-003 asked during chunk 5: whether a theme a
reader listed under its own
also_present, and no placement holds, counts in the bag test. Meanwhile a bag needed four placed themes.
QB4-003, answered, and the revisit
J's answer (11:29 Berlin): "count them. Themes a reader listed under
its own also_present count in the bag test. Apply it to packet 6 and to
the 43 rulings in packets 1 to 5 that
out/_analysis/b4_bag_named_check.py lists, keeping the superseded
ledger." The test as applied from item 126 is written in
boundaries.md ("The bag test after QB4-003"): the themes
counted are the placed themes and the readers' own
also_present themes; a named theme's concepts of its own
are those its must_show takes that no placed theme in the
ruling already holds; four themes with three concepts of their own make
a bag; the bag places the largest act a placement holds; a placed theme
with three concepts is never cut by the limit of three.
The revisit read 64 lines (43 in packets 1 to 5 and 21 in packet 6's
items 1 to 125): 45 became bags and 19 were kept, where the readers'
listed concepts did not hold three under the named theme's test. Four
slips outside the list, where four placed themes with three concepts
each had been cut at the limit, became bags: utaustin t05 and japan t05
(packet 6), loliconsunite t02 (packet 4) and lebanon t02 (packet 5).
pcmasterrace t10 (packet 5), on the list, had also cut two placed themes
at the limit. New tools: b4_bag_view.py (read-only; one
item's readings, ledger line and named-only concepts) and
b4_bag_draft.py (a bag re-rule draft from a short spec).
Drafts and specs: out/_adjudication-B4/rerule-bag-B4a-06/.
After packet 6, the check flagged seven packet 6 bags that could list
one more named theme. Six hold two concepts or fewer under the test (de
t11's T3-009, fivenightsatfreddys t08's T3-084, philippines t08's
T3-072, turkey t06's T3-151, cfb t02's T3-150, frankocean t05's T3-084
and T3-011, EraseThePlace t06's T3-149). chibears t10 was a slip: reader
A's T3-050 holds three, and it was re-ruled with T3-050 under
also_present (spec-06-084.json; old ledger
disagreements.superseded-20261013T111959Z.jsonl).
Carried open: 26 older bags in packets 1 to 5 could list more named
themes; J named only the 43. The packet 4 item 197
also_present note carries unchanged.
J's answer on lone B1 themes, and the rule I chose
The PI relayed J's answer at 10:28Z (12:28 Berlin): "Whatever the agent feels more comfortable with. They can also adapt the code definition if needed". The options J saw: (1) leave it, my B1 a full placement; (2) a theme only my B1 placed beats two agreeing readers only with three or more concepts of its own; (3) when both readers agree their list stands and my B1 is a note.
I chose option (2) with a condition. In class 4, a theme only my B1 placed stands against the two agreeing readers only with three concepts or more of its own; with fewer it is left out and named in the why. The readers' list then stands where its test takes concepts; where my reading finds it takes none, the item is unresolved, and no one-concept theme of mine is put in its place. Class 3 is unchanged.
Why. Two independent readers agreeing is the case where my B1 carries the author's pull most. Three concepts is the scheme's own floor for a theme of its own. Option (3) would make the adjudication measure obedience and would force a readers' theme whose test takes nothing.
Earlier packets: b4_lone_b1_check.py (new, read-only)
found 250 class 4 rulings in packets 1 to 6 keeping a lone B1 theme, 130
under three concepts. b4_lone_b1_draft.py (new) built the
drafts in out/_adjudication-B4/rerule-loneb1-B4a-06/; six
--replace parts, old ledgers
disagreements.superseded-20261013T103259Z to
-103319Z. 130 lines changed: packet 1 11, packet 2 29,
packet 3 31, packet 4 20, packet 5 23, packet 6 16; author-error 83,
author-disagrees 40, scheme-ambiguous 7; unresolved 30. After packet 6
the check finds 144 class 4 rulings keeping a lone B1 theme, every one
with three concepts or more.
The figures
All 500 items are ruled, in 20 blind chunks
(out/_adjudication-B4/packet-06/rulings-NN.jsonl).
packet-06/summary.md holds the figures, and
adjudication_report.md holds them with packets 1 to 5 as
the interim report. In brief:
- Taxonomy: genuine-joint 256, author-error 83, scheme-ambiguous 71, author-disagrees 51, item-is-a-bag 20, reader-error 19.
- Counts: unresolved 49 (9.8%); named_neither 145 (29.0%), every one from my B1 alone, none beyond the placements.
- Fields that failed: must_show 31, must_not_show 8,
decide_when_both 0, discriminators 32. The sentences that failed most:
T3-017's discriminator against T3-031 (24) and T3-001's (8), both the
canvas condition; T3-018's
must_show(5); T3-052'smust_show(4); T3-004'smust_not_show(4, the homeland flag). - Agreement: before 0.454 mean Jaccard and 0.510 primary match; after 0.600 and 0.595. Not a reliability figure. Items 1 to 316 (G15 to G19) 0.446 before, 0.593 after; items 317 to 500 (G20) 0.468 and 0.616.
- Class 4 (134): the readers' list taken in 87, a B1 theme kept in 32 (each with three concepts or more), unresolved 15.
- Boundary tags: T3-010|T3-149 28, T3-017|T3-031 24, T3-001|T3-031 9, T3-010|T3-151 6, T3-150|T3-151 5, T3-023|T3-031 5, T3-018|T3-052 5, T3-031|T3-050 4, T3-018|T3-031 1.
- Mapping:
assign_final.jsonlrewritten (class 1 2,566, class 2 1,990, ruled 2,808, pending 480). - Packets 1 to 6: 2,808 rulings; genuine-joint 1,348, author-error 482, scheme-ambiguous 421, item-is-a-bag 238, author-disagrees 186, reader-error 133; unresolved 161; named_neither 649; agreement before 0.489, after 0.642.
Readings applied in packet 6, to carry into packet 7
- G15 to G17. Deals as in packet 5. The homeland flag's calls, build, spot, size and repair count toward T3-065 where a placement holds it, and toward the placed T3-002, T3-004, T3-020, T3-021 or T3-038 where none does; national pictures beside it are T3-113; national feeling through the flag T3-145.
- G18. T3-086 is the community's own quarrel carried onto the canvas (Hello Internet's flag quarrel, halo t14's FixMCC, Bitcoin's scaling split, the Texans' FTC mark). T3-130 is national politics; T3-080 a political symbol argued over, partisan marks included; T3-081 a canvas fight told in a nation's real history of war or occupation, not war talk between fandoms (T3-135); T3-179 ideology argued from the canvas.
- G19. T3-050 is taunts at a rival community, even in the joke register; T3-142 jokes about a people; T3-143 a joke's limits argued; T3-182 bigotry in the room's own talk answered; T3-146 and T3-177 covering and calling for swastikas. T3-154 takes victory claimed or rivals called defeated; T3-050 mockery with no victory claimed; T3-155 a salute after the fight. T3-099 needs the bigger room's size in the words; T3-078 kinship in the words. Visitors' help counts toward T3-011; requests received toward T3-084.
- G20. The canvas condition: a joke with the canvas in the words is T3-031; with none, T3-017, and April Fools play with nothing posted as true goes to a placed T3-017 or is left out. T3-016 takes the event, its rules, the heat map and why subs make pictures. A glitch used to place more is T3-088, coped with T3-074, explained T3-016. A figure worked out with a reason or a correction is T3-018; a bare name for a neighbour's figure T3-052; a mock reading kept up as a joke T3-031. T3-105 keeps records; T3-057 remakes them as wallpapers, memes or copypasta. A bare title naming r/place shows no act.
- The level rule as applied. A theme alone at its level is kept, even after a theme with more concepts was dropped at a higher level for not leading it on placements (cmu t05 keeps T3-018 at one concept after T3-009 at two; russia t13 keeps T3-050 after a top tie).
What I doubt
- The three-concept floor is my choice. J let me choose. A theme of mine with exactly three concepts still overrides two agreeing readers (trees t07's stoner talk, T3-017; portugal t38's copypasta, T3-057). Class 3 still keeps my one-concept themes when they lead their level, which is most of packet 6's 145 named_neither.
- The level rule past a dropped theme. Keeping a one-concept theme alone at a lower level after a two-concept theme was dropped above it follows the rule's words, but it can keep a smaller act and drop a larger one.
- The words or the thread. I read the canvas condition from the concept's words. In bakchodi t19 I counted a correction of a bot's joke in a post about the canvas as canvas talk; in oneshot t11 and wholesomememes t23 I did not count side talk under a canvas post. The line is mine.
- What I knew and the words did not say. In serbia t04 I wrote "the 1999 war on the town's refinery" from 'Pančevo, proleće 1999' and 'gori rafinerija nafte'; the words give the date and the burning, not the war. In leagueoflegends t05 and kerbalspaceprogram t02 I read a sub change from the concepts' own words ('R/eEKapey+lKCV7UBLGIK7YMvL6gk=', 'the memeification', the banner). In 4chan t22 I did not take reader B's word that the board merger was the site's April Fools joke.
- T3-052 when the room has no mark. shitredditsays t03 placed T3-052 on a survey of the whole canvas; the test names pictures "around the room's mark".
- Unresolved rose to 49. Most are G20's bare titles and room jokes with no canvas in the words, as in packet 1. I did not push them to a placement.
Slips
- After a compaction, I read the chunk 13 file and fetched tests before re-reading the head and logging the reconciliation line; the line was logged before any write.
- A chunk 6 diary line conflated two items ('BASH ... filthy blue tiles' and purplecorner t02); a later line corrected it.
- The QB4-003 revisit was first logged as 63 lines read, 45 re-ruled and 18 kept; the chunk 7 log corrected it to 64, 45 and 19, with four slips outside the list.
- Five rulings had cut a fourth placed theme with three concepts at the limit of three, against the bag test; each was re-ruled as a bag (utaustin t05, japan t05, loliconsunite t02, lebanon t02, pcmasterrace t10). After packet 6, chibears t10 had left reader A's named T3-050 unweighed; re-ruled.
- The chunk 17 dry run refused item 423 for T3-130 with no concept; the draft was fixed before the append.
- The guard refused
cut -cafter a helper script once; the command was re-run without it. A word the guard refuses appeared once in a Bash command. - Rewriting
adjudication_report.md, I shortened the packet 1 to 5 boundary paragraphs andvalidate.pyfound 10 pairs with no paragraph; they were restored from the B4a-05 text. The last Edit to the report and the validator run that checked it went in one turn.
Content named
National, political, hate and slur content is named in packet 6's whys as the words give it, for example: 'Turkish scum DEUS VULT' and 'Mission remove kebab' (lithuania t09); 'REMOVE KEBAB' and 'CRUSADE against the infidel' (CKCrusaders t06); 'momo nigger chinky' and 'Designated Shitting Streets' (bakchodi t03); 'Porkistanis' and 'the paki flag is completely bhagwa now' (bakchodi t04); 'Islamic loving fucks' and 'burned by bhagwa' (bakchodi t18); 'dhotiwalas' and 'Katus' (pakistan t16); 'Hitler did nothing wrong' (texas t15) and 'Hitler hat nichts falsch gemacht' (kerbalspaceprogram t02); 'make the reich happen' (germany t05); 'Germany needs more lebensraum' (unitedkingdom t08); 'extra-jurisdictional excursions into Mexican living space' (ukplace t04); the 4chan flag 'basiert auf der Reichskriegsflagge', 'Operation Annexion' and 'Nacht und Nebel Aktion' (de t11); 'can we make France fascist?' (de t13); a Nazi flag and 'a huge racist flag' (eagles t15); the swastika petitions and calls (achievement_hunter t02, roosterteeth t11); 'heil harley' at a swastika (homestuck t12); 'white is right' and r/WhiteRights (EraseThePlace t08); 'jontron is a white supremacist' (h3h3productions t47); the call to put MH17 back on the Russian flag (thenetherlands t02); 'Hayır' above the Turkish flag (turkey t11); 'the fascist scourges' and the YPG and Rojava flags (kurdistan t04); 'teach WORST KOREA a lesson' (stlouisblues t03); 'greedy french people' (egypt t02); 'vastaškim moderatorima' (croatia t07); 'raça mestre feup' (portugal t38); 'solo nosotros italianos somos los ladrones' and Trump's wall (mexico t17); 'your going to elect a fascist' (france t11); the canvas called fit for Finns with autism (suomi t25); 'Faggot', 'Bullfags', 'Gay Unicorn' and the homophobic slur in costa_rica t10.
The next packet is packet 7: 480 items, the rest of G20 and G21. Its conflicts pass runs first.
validate.py B4, after packet 6:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 2808: {'genuine-joint': 1348, 'scheme-ambiguous': 421, 'reader-error': 133, 'author-error': 482, 'author-disagrees': 186, 'item-is-a-bag': 238}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 2808, outstanding 480
coder conflicts 62
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
Packet 7, ruled at B4a-07 (2026-10-13)
The PI's message for this leg: rule packet 7 (480 items, the rest of
G20 and G21), the last packet, conflicts pass first, under J's rulings
(1) and (2), the also_present ruling of 09:09 Berlin, the
answers to QB4-002 and QB4-003, and the lone-B1 rule I chose under J's
answer of 12:28 Berlin. I read QB4-003's answer with
mem.py asks before the first write. Every packet 7 item was
ruled under all of these from its first ruling; nothing in the packet
waited on an answer.
Before the first item:
- The conflicts pass read packet 7's notes alone and added CC-063 to CC-072 (72 lines now). The one that explains most splits is CC-063: the room's account of its finished work written as one practice (celebrating, crediting, thanking, saving, mourning, telling).
- Three boundaries were ruled once in
boundaries.md("Packet 7"): T3-009|T3-073 (B2's pair 9), T3-009|T3-043 (B2's pair 14) and T3-029|T3-073, with the pairs below five applied as met.
The figures
All 480 items are ruled, in 20 blind chunks
(out/_adjudication-B4/packet-07/rulings-NN.jsonl), with two
corrections (corrections-01.jsonl).
packet-07/summary.md holds the figures, and
adjudication_report.md is now the full report over the
seven packets. In brief:
- Taxonomy: genuine-joint 303, author-error 89, scheme-ambiguous 30, author-disagrees 22, reader-error 19, item-is-a-bag 17.
- Counts: unresolved 24 (5.0%); named_neither 108 (22.5%), every one from my B1 alone, none beyond the placements; 77 of the 108 place three themes.
- Fields that failed: must_show 25, discriminators 4,
must_not_show 1, decide_when_both 0. Most failed sentences do not say
whose work, whose picture or which room's feeling they mean: T3-052's
must_show4, T3-009's 3, T3-164's 3, T3-037's, T3-111's and T3-117's 2 each. - Agreement: before 0.500 mean Jaccard and 0.650 primary match; after 0.669 and 0.731. Not a reliability figure. Items 1 to 53 (the rest of G20) 0.544 before, 0.663 after; items 54 to 480 (G21) 0.495 and 0.670.
- Class 4 (118): the readers' list taken in 91 (3 bags), a B1 theme kept in 18 (1 bag), each with three concepts or more, unresolved 9.
- Boundary tags: T3-009|T3-043 62, T3-009|T3-073 29, T3-029|T3-073 18, T3-009|T3-117 10, T3-073|T3-105 8, T3-009|T3-038 5, T3-054|T3-111 5, T3-057|T3-105 3, T3-018|T3-031 3, T3-009|T3-104 3, T3-105|T3-156 3, T3-031|T3-135 2, T3-009|T3-026 2, T3-038|T3-065 2.
- Checks:
b4_own_support_check.py0;b4_lone_b1_check.py --packets 7: 18 kept lone B1 themes, all with three concepts or more;b4_bag_named_check.py --packets 7flagged 8 lines, each already weighed in its why, none changed;b4_both_readers_dropped.py(new): 5 lines, each a theme with no concept of its own, none dropped by the level rule. - Mapping:
assign_final.jsonlrewritten: 7,844 lines (class 1 2,566, class 2 1,990, ruled 3,288, pending 0). - All seven packets: 3,288 rulings; genuine-joint 1,651, author-error 571, scheme-ambiguous 451, item-is-a-bag 255, author-disagrees 208, reader-error 152; unresolved 185 (5.6%); named_neither 757 (23.0%); agreement before 0.491, after 0.646.
Readings first applied in packet 7
Each is named in its rulings' whys and in
boundaries.md:
- Themes both readers placed. A theme both readers placed, with a concept of its own, is not dropped by the level rule on a placement count only my B1 tips (kanye t28, msu t11). Two earlier rulings were corrected under it or for a miscount (ChronoTrigger t06, mindcrack t11).
- The clone canvas. The rebuild, the calls to it and its progress count toward T3-054; acts it does not name (the timer, a chat) toward their own themes (catholicism t09; twice t18 scheme-ambiguous).
- The room's own work. "The work" in T3-073 and T3-058 is the room's own (uvic t04, destiny t08, pathofexile t17, hungary t07).
- A report that names the attacker. The report leads (T3-073); T3-087 takes who is behind the damage or why (nbaspurs t13, overwatch t14).
- T3-082 takes only a mark the room did not know of (mysterydungeon t08, MiamiHurricanes t06).
- T3-111 does not reach a standing community's new project (forsen t11, paladins t21).
- Cleaned copies of the final canvas after the lock are records, T3-105.
- T3-156 takes only a mark from the canvas; theme or header art the words do not tie to the canvas is T3-017 (fivenightsatfreddys t14, trees t12); flairs with no canvas mark are T3-185 (THE_R t04).
Defects for stage C1, from packet 7
Logged here and in adjudication_report.md; the scheme is
untouched:
- T3-003's discriminator against T3-043 speaks only of crediting others; T3-043's discriminator against T3-003 sends parts claimed after the work to T3-043. They should say the same thing.
- T3-073's and T3-058's
must_showdo not say "the room's own work". - T3-054's
must_showagainst T3-038's and T3-002's: no field says which takes calls and progress on a later canvas. - T3-111's "the canvas sub's or chat's future" and a standing community's new project.
- T3-087's discriminator against T3-058 and one person traced after the close (T3-058 takes only a room or group).
- T3-117's "regret at the end" and a late reader's regret or question.
- T3-021's "cleaning stray ones" and a cleaned copy after the lock.
- T3-164's
must_showand attachment to a flag, a creed read into a mark, or solidarity of unknown origin. - T3-009's "the work said to have lasted to the end" against T3-073's "what survived".
- T3-052's "Pictures around the room's mark" and a picture whose owner or place the words do not give.
- Single sentences: T3-154's "implied rivals", T3-044's newcomers,
T3-156's discriminator against T3-031, T3-038's discriminator against
T3-009, T3-131's, T3-127's, T3-011's and T3-082's
must_show, T3-029's discriminator against T3-183, T3-017'smust_not_show, and T3-063'smust_showfor a post that is not a canvas post (CC-004).
What I doubt
- My B1 against two agreeing readers. Under the lone-B1 rule a theme of mine with three concepts stood against both readers in 18 class 4 items. Several rest on a reading of mine about the words: that Kekistan is another room's work (destiny t08), that theme and header art is not from the canvas (fivenightsatfreddys t14, trees t12), that alarms call the room to the fight (overwatch t14). A stranger may not read them so.
- The clone-canvas reading is mine. T3-054's
must_shownames the rebuild; T3-038's and T3-002's also take progress and calls. I chose T3-054 and logged the defect. - "The act its words lead with." I used it to place a concept that does two acts, beyond the T3-009|T3-043 pair where it was written (DCFU t03, Goodboye t11, portugal t29, Rainbow6 t16, nbaspurs t13). It decides some rulings on word order.
- Fragment quotes and coders' labels. Where a concept's quote is a fragment ('Two wars', 'Ended 3am on a weekday'), I read the coder's label with it (dwarffortress t11, straya t10, cirkeltrek t10, twice t17); where the quote is whole and says less than the label, I read the words (SquareSpiral t14's request offer was left out). The line is mine.
- Three themes in class 3. 77 of the 108 named_neither rulings place three themes: my B1 adds a third act beside the two the readers split on, often one concept alone at its level (TransFlagPlace t13's T3-132). The level rule allows it; it is still my pull.
- Sad faces. Whether ':(' after an account voices
grief decided several T3-029|T3-073 rulings. I followed T3-029's
decide_when_bothand let the account lead where the sad face trails (geometrydash t07, rangers t13).
Slips
- Two packet 7 rulings were wrong when first written and were
corrected through
--replace: mindcrack t11 (T3-029's placements miscounted) and ChronoTrigger t06 (T3-157, placed by both readers, dropped on a count only my B1 tipped). - After the first compaction I drafted rulings-02 from memory and checked every id and quote against chunk-02 before the dry run.
- After the second compaction I fetched four tests and read the rest of chunk 14 before re-reading the head and the stage file; the reconciliation line was logged before any write.
- Two items carried the boundary T3-031|T3-135 with no paragraph until
the packet summary showed it; the paragraph was added to
boundaries.mdbefore the summary was written. - The first draft of the full report listed europe t21's T3-073 among packet 7's author-disagrees themes; europe t21 is a bag. Corrected before the validator ran.
Content named
National, political, hate and slur content is named in packet 7's whys as the words give it, for example: 'Fuck the Falcons!', 'shit tier AFC peeps' and Mexico's flag offered for destruction (falcons t05); /pol/'s 'hate-fueled' attack, 't-slurs, mentally ill jokes' and 'transphobic or bigoted' (TransFlagPlace t13); 'the german menace' and 'German tyranny' (stlouisblues t05); 'Deus vult!' and 'Second Blue World Order' (thebluecorner t10); 'Ni🅱️🅱️a' and the Kekistani flag (dankmemes t16); 'ZULUL' and 'must have been too racist to remove him' (forsen t07); 'Scroll up faggot.', 'Pinochet Snek' and 'fight the commies' (anarcho_capitalism t13); the swastika drawn on Doc (ethoslab t06); 'Fuck /r/Denmark' and 'FUCK THE DANES!!' (frankocean t12); 'Turkish clay' and 'Defending against Armenia felt like a war' (turkey t14); Brexit and 'cunts and leave' (italy t14); the penis over Argentina's sun, SABAFU for BRICS, 'devolve o ouro', the German '7 a 1' and 'Senna's death might be our 9/11' (brasil t09); 'The fucking swedes man!' and '40 people with 100 accounts and scripts running' (overwatch t14); 'sromotną porażkę butnych germanów' (polska t08); 'Fuckin Seppos' and 'G'Day Cunts' (straya t10); 'los bots de Chávez' (argentina t15); 'comunisti', Aldo Moro and the Piave (theitalyplace t15); 'what a shitty country it's become lately', 'China dipped their finger' and 'It's China trying to invade us' (philippines t10); 'peniss', 'poniggs' and 'communist propaganda' (mylittlepony t15); 'pinches admins mecos' and 'nuestros heroes caidos en guerra' (mexico t16); 'VOOR VORST EN VADERLAND' and 'annexatie' (cirkeltrek t10); 'consuming smaller communities' and 'United Kinodom' (europe t21); the upside-down Philippine flag as a war flag (philippines t12); 'fucking heathens' and 'black void from 4chan' (Rainbow6 t16); 'that ghey ass pink OSU' (wallstreetbets t14); 'the sabotage of the trans-flag or the pride-rainbow' (chess t13).
All seven packets are ruled. The next step of stage B4 is B4b, the blind sample's build.
validate.py B4, after packet 7:
stage B4:
leg: adjudication
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
warn RETURN-B4.md is not yet written; the build leg owes it, and this leg was read as an adjudication leg because neither RETURN-B4.md, a stage-B4 manifest entry nor _packets-B4/ exists
0 errors (0 distinct shapes), 1 warnings
The blind sample, built at B4b (2026-10-13)
The PI's message for this leg (14:22Z) carries J's rulings for it:
- The sample is 500 items, 250 drawn uniformly from the analysed set and 250 from the adjudicated items, by a recorded seed, the two strata reported apart and never pooled (J, 12 October). This replaces §10's fifty and fifty.
- Two fresh DeepSeek V4.1 Flash readers per item, on the reader route
arm.jsonsets for B4, for comparability with B2 and B3. - A second arm on the same packets: OpenAI gpt-6-astra at medium effort, two replications, run on J's computer by the Codex orchestrator from a copy of my packets, reported apart and never pooled. No Claude reader.
- The packets are built once, for both arms. Both arms are declared here and in the manifest entry. Nothing else in §10 changes: no ruling, ledger, note or hint in any packet.
Declared before the draw
- What it measures. Transmission after revision
(FLEET.md): whether fresh readers holding only the frozen scheme reach
the settled line. It is not reliability and is never called that. The
settled line is each item's standing placement in
assign_final.jsonlas at the B4a-07 close. No packet carries it. - Stratum U, uniform. 250 items drawn uniformly at
random, without replacement, from the analysed set: the 7,844
second-order themes of
assign_final.jsonl. It says whether the scheme decides the ordinary item. About 42% of the analysed set was adjudicated, so U will hold adjudicated items; they stay in U and are reported in U. - Stratum A, adjudicated. 250 items drawn uniformly
at random, without replacement, from the 3,288 ruled items of
disagreements.jsonlthat U did not take. It says whether my rulings can be reached by a stranger. Drawing A from what U left keeps the strata disjoint, so each item is served once and counts in one stratum only. - What stays in the frame. Items with an unresolved ruling stay; the check leg excludes their readings from the fresh-against-settled denominator and says how many (§12). Gold and pilot items stay as corpus items; nothing marks them.
- No redraw. No drawn item is swapped out for any reason.
- The seed: 20261013. U is
random.Random("20261013:U").sampleover the analysed set sorted by room and theme id. A israndom.Random("20261013:A").sampleover the ruled items U did not take, in the same order. The serving order israndom.Random("20261013:order").shuffleof the 500, with the strata mixed, so no packet shows a stratum. The script isout/_analysis/b4b_sample.py. It writesout/sample-B4.jsonl, which holds each item's stratum, sits outside the packets folder and is never served. - Arm 1, the fleet's readers. DeepSeek V4.1 Flash,
two fresh readers per item, one dispatch, each packet to two readers,
never the same reader for both readings of an item. The route is the one
arm.jsonsets for B4; my platform file lists "@preset/cheap x2 via gateway".CONTROL/arm.jsonis outside what I may read, so the served model, route, effort and decoding are taken from the dispatch's_fleet_raw/B4/arm.jsonat the check. - Arm 2, J's second arm. OpenAI gpt-6-astra at medium
effort, two replications, run by the Codex orchestrator on J's computer
from a copy of
out/_packets-B4/, under the sameRETURN-B4.md. Reported apart; never pooled with arm 1. - The comparisons. For each arm, each reading is compared with the settled line on its own: 500 items × 2 readings = 1,000 comparisons, a rate over readings, reported per stratum (500 each). The two readers' agreement with each other is reported beside it, per stratum. Strata, arms and the two kinds of figure are never pooled.
- The agreement definition: stage B2's, unchanged
(
notes-B2.md, "which stages B3 and B4 reuse unchanged"). Two placement sets agree by their Jaccard index;["T3-004"]against["T3-004","T3-011"]scores 0.5, partial agreement. Alpha is Krippendorff's alpha with distance 1 − Jaccard, over items run at more than one reader; chance correction is over sets, the expected disagreement computed from all the placement sets of the comparison, pooled. Exact agreement on the primary is reported beside, never in place. Scoring reads pass 1 only, as at B3. - Exemplars: none. Stage B3 served none (its manifest entry: "none served").
- No bag flags. B3's packets marked some items as flagged bags from my B1 grouping. Here a flag would show the reader something of my reading, so no item is marked. A reader may still return a bag under the return specification.
- The packets
(
out/_analysis/b4b_packets.py, intoout/_packets-B4/):- The shared pages come from
scheme_final.jsonlthroughtools/packets.py'sscheme_pages:index.mdandG01.mdtoG21.md, no exemplars, each under 50 KB. - Item packets carry fleet ids only (J), rendered by stage B2's
renderer (
b2_packets_fleet.py): the heading with the room and the fleet theme id, the label, the note, and each concept under its fleet id with the participants' words.tools/packets.py B4writes room ids, the fault behind QB3-003, so the builder is a script on B2's renderer, as at B2 and B3. - No sibling block (as
packets.py B4and stage B2), no bag flag, no stratum, no ruling, no reader's line and no hint that the items were decided. Packets are namedS05-NN, aspackets.py B4names them. Each holds a title, the brief with its own item count, the items and the end line. - Caps: at most 15 items a packet (J's cap at B2 and B3) and every packet file under 50 KB (§10 and FLEET.md), cut consecutively from the serving order so that the largest packet is as small as the caps allow.
- One item of the analysed set exceeds the ceiling on its own:
leagueoflegends t02, 89,162 bytes rendered
(
out/_analysis/b4b_item_sizes.py; the next largest is 48,324). If the draw takes it, it is served alone in a packet of its own under B2's and B3's shape (at most 180,000 bytes of item text, J). That is the one exception, declared here before the draw. MANIFEST.jsongives per packet the items, bytes, item bytes, sha256, count key and excludes, andcodes_by_itemforfleet.py's citation check. It names no stratum.- The build stops on a room id in an id position, a canvas field, or a broken cap other than the declared exception.
- The shared pages come from
RETURN-B4.mdas at B3. It holds rule 0 in the contract's words, the prediction line, the return line, the multiplacement record, the second pass, the end marker and the confirm line, with B3's fields. It changes only where the packets differ: no sibling block and no flagged bag; the batch is the packet name; the replicate is as given with the reader id. Keeping B3's task lets the figures stand beside B3's.- The manifest entry on stage A1's schema (both arms,
the seed, decoding, reader counts) is appended to
run_manifest.jsonbefore the first packet leaves.
The draw
out/_analysis/b4b_sample.py --write, seed 20261013, as
declared. out/sample-B4.jsonl holds 500 lines (sha256
2fe441cd…); the record is out/_analysis/b4b_sample.json.
The next table gives the two strata.
| stratum | items | rooms | class 1 | class 2 | class 3 | class 4 | class 5 | ruled | unresolved | gold | pilot |
|---|---|---|---|---|---|---|---|---|---|---|---|
| U, uniform | 250 | 204 | 87 | 53 | 81 | 28 | 1 | 110 | 3 | 2 | 2 |
| A, adjudicated | 250 | 202 | 0 | 0 | 180 | 63 | 7 | 250 | 15 | 2 | 2 |
- Stratum A was drawn from the 3,178 ruled items U did not take; the strata are disjoint.
- leagueoflegends t02, the one item over the ceiling alone, was not drawn, so the declared exception does not arise.
- The settled line is
assign_final.jsonlat sha256 d3506a88… (disagreements.jsonlec740989…). The check leg reads these files, not anything in the packets. - No item was redrawn.
The build
RETURN-B4.mdis RETURN-B3.md's specification with the changes declared above. Its rule 0 is the contract's current wording. RETURN-B3.md had carried the wording from before J's amendment of 11 October (thealso_presentrecord and the concepts behind a placement), while B3's index page, built byscheme_pagesfrom the contract, already carried the amended rule. So B3's readers saw two wordings, and B4's readers see one. The builder refused to build until RETURN-B4.md matched the contract (out/_analysis/b4b_rule0_diff.py). The fields a reader returns are unchanged from B3.- The packets
(
out/_analysis/b4b_packets.py --write, inout/_packets-B4/):index.mdandG01.mdtoG21.md, byte for byte the pages served at B3, the largest 33,636 bytes.- 34 packets,
S05-01toS05-34, cut consecutively from the serving order. They hold 10 to 15 items and run 21,280 to 49,994 bytes; 34 is the fewest the caps allow. The largest item is 25,636 bytes. MANIFEST.json: 500 lines due, withcodes_by_itemfor each packet.out/_analysis/b4b_order.jsonrecords which items each packet holds. It sits outside the packets folder.
- Fleet ids only. nyjets t11 is in the sample; its coder note names c0104, which is served under its fleet id with the words unchanged, as at B3. No room-id-like string stands in participants' words in these packets.
- The check
(
out/_analysis/b4b_packets_check.py): 0 errors.- The folder holds only the 22 pages, the 34 packets and
MANIFEST.json. - Each packet is under 51,200 bytes, ends with the end line, and agrees with its MANIFEST entry and its brief's count.
- The 500 items are served once each, in the serving order, and each heading's fleet id translates back to its room.
- Each item's concept lines are exactly its
codes_by_item. - No packet holds a third-order id, a room id in an id position or a canvas field.
- 22 lines carry a word that could hint at a decision ("ruling", "settled", "disagree", "unresolved"). I read all 22: each is a coder's label or note or the participants' words ("once we settled down", "I disagree", "ruling that logos are art", a note's "unresolved search for responsibility"). None speaks of my rulings.
- The folder holds only the 22 pages, the 34 packets and
- The manifest. Entry 12 of
run_manifest.json(stage B4, leg B4b;out/_analysis/b4b_manifest.py) declares:- arm 1, DeepSeek V4.1 Flash, two readers per item on the route
arm.jsonsets for B4, 68 agents; - arm 2, OpenAI gpt-6-astra at medium effort, two replications by the Codex orchestrator on J's computer, 68 agents;
- decoding as each arm's dispatch sets it; the seed and its three streams; 500 items, 34 packets and 1,000 comparisons an arm;
- the caps; no exemplars, bag flags or sibling blocks;
- the sha256 of the scheme,
RETURN-B4.md(0c1fb067…), the sample and the settled line.
- arm 1, DeepSeek V4.1 Flash, two readers per item on the route
- The manifest, corrected.
validate.py B4found that entry 12 carried the reader count only inside each arm, with non_agentsat the top. I did not edit it. Entry 13 (out/_analysis/b4b_manifest2.py) is a copy withn_agents2 (two fresh readers per item in each arm; 68 reader sessions an arm) and asupersedesfield naming entry 12, which stays in the file. - The validator's warnings. Eight files mention
"ruling" or "unresolved". I read all 13 lines:
G01.md(T3-093'smust_show, "jokes about ruling") andG14.md(six lines on T3-162, "a host ruling on requests") are the frozen scheme's words, served byte for byte at B3.- S05-02, S05-10, S05-13, S05-17, S05-19 and S05-33 hold coders' labels and notes and participants' words.
- None speaks of my rulings. The scheme is frozen and the coders' words are served as written, so the warnings stand as read.
- What the dispatch needs. Arm 1:
out/_packets-B4/andout/RETURN-B4.md, each packet to two fresh readers. Arm 2: a copy of the same folder and the sameRETURN-B4.md. The check leg will read the returns from_fleet_raw/B4/, translate them back throughfleet_ids.jsonl, and score each arm and each stratum apart.
What I doubt
- The disjoint strata are my reading of J's ruling. "250 drawn uniformly from the analysed set and 250 from the adjudicated items" could also mean two independent draws that may share items. I drew A from what U left so that no item is read twice and counted in both strata. U still holds 110 ruled items, about the 42% the analysed set holds, and they are reported in U.
- The task differs from B3's in three ways the stage requires: no sibling block, no bag flags, and rule 0 in one wording. A difference between the B4 and B3 figures may come partly from these, not only from the scheme.
- Two arms on one packet set. Arm 2's readers are a different model family, run outside the fleet's dispatch. Their figures say whether the written instrument decides for another architecture. They are never pooled with arm 1's.
Slips
- My first manifest entry put the reader count only inside each arm; the validator caught it, and entry 13 supersedes it.
- A diary line named G01's warning theme with a placeholder in place of its id; the next line corrected it to T3-093.
The build leg closes with done.sh B4 --cut packets-out.
The dispatch is not mine. The next launch of stage B4 is the check
leg.
validate.py B4, at the build's close:
stage B4:
leg: build
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
warn _packets-B4/G01.md mentions a ruling, an adjudication or the gold key; no hint that these items were decided before reaches a blind reader (section 10). Read the packet. [8 lines with this shape; first: G01.md]
0 errors (0 distinct shapes), 8 warnings
Stratum R, the other 18 unresolved items (B4b-p2, 2026-10-13)
J's answer at 16:43 Berlin, after the PI told him that 18 of the 185
unresolved items were already in the draw (15 in A, 3 in U): "draw other
18". The PI reads it as follows (message of 14:49Z): draw 18 more of the
unresolved items that sample-B4.jsonl does not hold, by a
recorded seed, as a third stratum reported apart and never pooled with U
or A. It is diagnostic: whether fresh readers converge where I found
that no placement's test takes the concepts. It does not resolve those
items. The 500 items and the 34 packets stay as built, and both arms
read the new packets.
Declared before the draw
- The frame. The unresolved rulings of
disagreements.jsonl(185 items) thatsample-B4.jsonldoes not hold: 167 items, sorted by room and theme id. - The draw. 18 items, uniformly at random, without
replacement:
random.Random("20261013:R").sampleover the frame. The serving order of the 18 israndom.Random("20261013:R-order").shuffle. The seed is the sample's, 20261013, with two new streams. Scriptout/_analysis/b4b_sample_R.py. It writes a sibling record,out/sample-B4-R.jsonl(stratum R, orders 501 to 518), and leavessample-B4.jsonlas it stands. No redraw. - The 18 already drawn (3 in U, 15 in A) stay in their strata. As declared for B4b, their readings leave the fresh-against-settled denominator and are counted.
- What R measures, and its denominator. R has no
settled line to compare against: each of its items is unresolved, and
its line in
assign_final.jsonlstays as it is. For each arm the check reports, over R's 18 items and 36 readings:- the two readers' agreement with each other (mean Jaccard, primary match beside it), and alpha on the 18 by stage B2's definition;
- for each item, whether the two readers' primaries meet;
- whether the fresh placements fall among the placements the item already had (reading A, reading B, my B1) or outside them. The same diagnostic for the 18 unresolved items already in U and A is reported beside R, by stratum, never pooled with R or with each other. No fresh reading changes a ruling.
- The packets. Same §10 rules as the 34, in
out/_packets-B4/beside them: fleet ids only, on B2's renderer, the same brief and end line, at most 15 items, each file under 50 KB, no sibling block, bag flag, stratum or ruling. The cut is chosen so that the largest packet is as small as the caps allow. The names run on from the 34:S05-35and following. The exception declared for B4b carries over: an item over the ceiling alone would be served alone under B2's and B3's shape. - The records.
MANIFEST.jsongains the new packets' entries; the 34 entries stay as they are. The manifest as it stood is kept first asout/_analysis/packets-B4_MANIFEST_before_R.json.out/_analysis/b4b_order_R.jsonrecords each R packet's items.run_manifest.jsongains an entry that supersedes entry 13 and names stratum R, its seed streams, 36 packets and 518 items.
The draw
out/_analysis/b4b_sample_R.py --write, as declared.
- Records.
out/sample-B4-R.jsonlholds 18 lines, orders 501 to 518, sha256 1d0c75a6…; the record isout/_analysis/b4b_sample_R.json.sample-B4.jsonlis unchanged (2fe441cd…). - The frame. 167 items. The other 18 unresolved items are already drawn: 3 in U and 15 in A, listed in the record.
- Stratum R. 18 items from 18 rooms, by class: 3 nine, 4 eight, 5 one. None is a gold or pilot item.
- Why each item is unresolved.
- 13 are scheme-ambiguous with no placement: T3-001's
must_showor discriminators five, and T3-023, T3-139, T3-005, T3-052, T3-113, T3-192, T3-029 and T3-164 one each. - 5 are author-disagrees. One is a class 5 bare title (kuwait t09). The other four are class 4 items where the lone-B1 rule left my theme out and the readers' test took nothing: touhou t18, shield t07, austria t12, yogscast t11.
- 13 are scheme-ambiguous with no placement: T3-001's
- Where they came from. By adjudication packet: 1 seven, 2 two, 4 three, 6 four, 7 two.
- For the check.
out/_analysis/b4b_R_list.py(read-only) lists each item's reading A, reading B and my B1, so the check can tell whether the fresh placements fall among them.
The next table gives the 18 in serving order, with the placements each had.
| order | item | class | reading A | reading B | my B1 |
|---|---|---|---|---|---|
| 501 | touhou t18 | 4 | T3-064 | T3-064 | T3-057 |
| 502 | wholesomememes t14 | 3 | T3-017 | T3-001 | T3-017 |
| 503 | kpop t13 | 3 | T3-139 | T3-050 | T3-005 |
| 504 | katawashoujo t02 | 3 | T3-048 | T3-023 | T3-023, T3-043 |
| 505 | habs t13 | 3 | T3-050 | T3-052 | T3-005 |
| 506 | shield t07 | 4 | T3-034 | T3-034 | T3-002 |
| 507 | 49ers t03 | 3 | T3-001 | T3-023 | T3-031 |
| 508 | GuildWars2 t07 | 4 | T3-048 | T3-048 | T3-001 |
| 509 | kuwait t09 | 5 | T3-002 | T3-017 | none |
| 510 | danganronpa t19 | 4 | T3-048 | T3-048 | T3-001 |
| 511 | wallstreetbets t17 | 3 | T3-018 | T3-026 | T3-052 |
| 512 | romania t18 | 4 | T3-113 | T3-113 | T3-031 |
| 513 | berserk t02 | 3 | T3-031 | T3-048 | T3-001 |
| 514 | austria t12 | 4 | T3-001 | T3-001 | T3-048 |
| 515 | dallasstars t01 | 3 | T3-192 | T3-146 | T3-031, T3-050 |
| 516 | opticgaming t12 | 3 | T3-029 | T3-183 | T3-029 |
| 517 | AcePlace t13 | 4 | T3-164 | T3-164 | T3-123 |
| 518 | yogscast t11 | 4 | T3-121 | T3-121 | T3-031 |
In 8 of the 18 items the two B3 readers agreed and I still found that their test takes nothing (class 4). Those are the items where fresh readers converging on the same theme would most test my reading.
The build
- The packets.
out/_analysis/b4b_packets_R.py --writeuses the B4b builder's renderer, brief, end line and checks. It wroteS05-35(8 items, 8,204 bytes) andS05-36(10 items, 5,947 bytes) intoout/_packets-B4/beside the 34. They carry fleet ids only; no room-id-like string stands in participants' words. - Before writing, the builder checked that the 34
packets matched their MANIFEST sha256 and that no
S05-35existed. - The manifest file.
MANIFEST.jsonwas first kept asout/_analysis/packets-B4_MANIFEST_before_R.json, then given the two new entries only: 36 entries, 518 lines due.out/_analysis/b4b_order_R.jsonrecords the R packets' items. - The check.
out/_analysis/b4b_packets_check2.pyruns the B4b check over both sample records together and adds a test that B4b's 34 entries are unchanged. It found 0 errors: 518 items served once each in order, each translating back to its room. The R packets add no line with a word that could hint at a decision. One coder's note inS05-36says a single-code theme "preserves rather than resolves that ambiguity". That is the coder's word about the coder's own grouping, served as at B3, not a mark of my ruling. - The run manifest. Entry 14 of
run_manifest.json(out/_analysis/b4b_manifest3.py) supersedes entry 13, which stays in the file. It records:- 518 items in 36 packets (8 to 15 items, 5,947 to 49,994 bytes) and stratum R with its seed streams and sha256;
n_agents2, with 72 reader sessions an arm;- for each arm, 1,000 settled-line comparisons for U and A, and R's 36 readings scored only for the readers' own agreement and convergence.
- The arms are as declared at B4b: both read
S05-35andS05-36.
What I doubt
- R packets hold unresolved items only. A reader
cannot know that, but they are thin items (titles, single replies, April
Fools play with no canvas in the words). A reader of
S05-36meets ten such items together, while a reader of the 34 meets them one at a time among ordinary items. If R's readers agree less than U's readers on similar items, the packet's make-up may be part of the reason. - Eighteen items are few. R's figures say where fresh readers land on these items; they cannot estimate a rate for the 185.
validate.py B4, at B4b-p2's close:
stage B4:
leg: build
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
warn _packets-B4/G01.md mentions a ruling, an adjudication or the gold key; no hint that these items were decided before reaches a blind reader (section 10). Read the packet. [8 lines with this shape; first: G01.md]
0 errors (0 distinct shapes), 8 warnings
Stratum R, all 185 unresolved items (B4b-p3, 2026-10-13)
J corrected the PI's reading at 17:10 Berlin: "No. There were some 180that were un resolved. They should all be in r". Stratum R holds all 185 unresolved items, not a draw of 18 (the PI's message of 15:11Z). This replaces the B4b-p2 declaration of R's frame and size. The rest of that declaration stands: R is diagnostic, reported apart, never pooled with U or A, and no fresh reading changes a ruling. Nothing has been dispatched; both arms wait for this build.
Declared before the build
- R's members: all 185 unresolved rulings of
disagreements.jsonl.- 18 already in R: drawn at B4b-p2 and served in
S05-35andS05-36, orders 501 to 518, as built. - 149 added now: the unresolved items neither R nor the 500 holds (185 − 18 in R − 18 in U and A).
- 18 already in U (3) and A (15): these count in R from the same readings, as the PI reads it. No arm reads any item twice, and U and A stay as drawn.
- The PI's "add the 167" counts the 18 in U and A among them. 167 = 185 − 18 in R; 149 of the 167 are served anew, and 18 are read once, in their U or A packets.
- 18 already in R: drawn at B4b-p2 and served in
- Reading the 18 twice: one reason, kept once until J
rules.
- The reason. The packet context differs. The 167 items read in R packets meet only unresolved items. The 18 in U and A were read among ordinary items. Reading those 18 again in R packets would give R one context throughout and would let the two contexts be compared on the same items.
- Against it. It would have one arm read an item twice, with different reader sessions, and the readings could not count in both strata without a rule for which counts.
- What I do. Following the PI, I keep the 18 once. R's figures are reported whole over 185 and split by where the item was read: R packets, 167; U and A packets, 18.
- No draw, one order. Every unresolved item is taken,
so there is no sampling seed. The 149 are served in the order
random.Random("20261013:R-all-order").shufflegives over them sorted by room and theme id, orders 519 to 667. - The R record.
out/sample-B4-R.jsonl(18 lines, B4b-p2) is kept asout/sample-B4-R.superseded-B4b-p2.jsonland rewritten with all 185 members.- Each line gives the item's stratum ("R"), its order, and where it is
read: R packets for the 167, or "U" or "A" for the 18, whose order there
is null because their reading sits under their U or A order in
sample-B4.jsonl. - Each line also gives the class and the taxonomy, and how the item joined: drawn at B4b-p2, added at B4b-p3, or already in U or A.
- Each line gives the item's stratum ("R"), its order, and where it is
read: R packets for the 167, or "U" or "A" for the 18, whose order there
is null because their reading sits under their U or A order in
- R's denominator, per arm. 185 items, 370 readings,
185 reader pairs. The diagnostic is the one declared at B4b-p2:
- the readers' agreement with each other (mean Jaccard, primary beside it) and alpha by stage B2's definition;
- whether primaries meet;
- whether fresh placements fall among reading A's, reading B's and my B1's placements or outside them. It is reported over all 185 and split by the context above. There is no settled-line comparison for R. The 18 in U and A still leave U's and A's fresh-against-settled denominators as declared at B4b. Their readers' agreement with each other is reported in U and A as drawn and in R, each stratum apart.
- The packets. The 149 go into
out/_packets-B4/beside the 36, under the same §10 rules: fleet ids, B2's renderer, the same brief and end line, at most 15 items, each file under 50 KB, no sibling block, bag flag, stratum or ruling, and the largest packet as small as the caps allow. Names run on fromS05-37. The exception for an item over the ceiling alone carries over (leagueoflegends t02, if it is among the 149, is served alone under B2's and B3's shape). - The other records.
MANIFEST.jsongains the new entries only; the 36 entries stay. The manifest as it stood is kept first asout/_analysis/packets-B4_MANIFEST_before_R_all.json.out/_analysis/b4b_order_R_all.jsonrecords the new packets' items.run_manifest.jsongains an entry that supersedes entry 14 and names R's 185 members, its order stream, and the packet and line counts.
The record
out/_analysis/b4b_R_all.py --write.
- Files.
out/sample-B4-R.jsonlnow holds 185 lines; the B4b-p2 record (18 lines) is kept asout/sample-B4-R.superseded-B4b-p2.jsonl. The run's record isout/_analysis/b4b_sample_R_all.json.sample-B4.jsonlis unchanged. - Where R's items are read. 167 in R packets: the 18
drawn at B4b-p2 (orders 501 to 518) and the 149 added (orders 519 to
667, in the order of
Random("20261013:R-all-order")). 3 in U and 15 in A, with order null and counted from the same readings. - R's make-up. By class: 3 seventy-one, 4 seventy-eight, 5 thirty-six. By taxonomy: scheme-ambiguous 114, author-disagrees 71. By adjudication packet: 1 sixty-six, 2 nineteen, 3 nine, 4 twelve, 5 six, 6 forty-nine, 7 twenty-four.
- One gold item is among R's 185 and stays as a corpus item, as declared at B4b.
- leagueoflegends t02 is not among the 149, so the declared exception does not arise.
The build
- The packets.
out/_analysis/b4b_packets_R_all.py --writeuses the B4b builder's renderer, brief, end line and checks. It wroteS05-37toS05-46intoout/_packets-B4/beside the 36: 10 packets, the fewest the caps allow, of 14 or 15 items and 7,619 to 14,070 bytes. The largest item is 2,937 bytes. Fleet ids only; no room-id-like string stands in participants' words. - Before writing, the 36 packets matched their
MANIFEST sha256 and no
S05-37existed. - The manifest file.
MANIFEST.jsonwas first kept asout/_analysis/packets-B4_MANIFEST_before_R_all.json, then given the ten new entries only: 46 entries, 667 lines due.out/_analysis/b4b_order_R_all.jsonrecords the new packets' items. - The check.
out/_analysis/b4b_packets_check3.pyfound 0 errors:- 667 items served once each, in orders 1 to 667, each translating back to its room;
- the 18 R lines read in U and A are U's and A's own items and are not served again;
- the 34 entries of B4b and the 36 of B4b-p2 are unchanged.
- Two new lines with the word "unresolved", both in
S05-45, are coders' notes on what an absent image or video leaves open ("leaves the meaning of space unresolved"). They are the coders' words, served as at B3, and say nothing of my rulings. - The run manifest. Entry 15 of
run_manifest.json(out/_analysis/b4b_manifest4.py) supersedes entry 14, which stays. It records:- R's 185 members, its order stream, the R record's sha256 and its superseded copy;
- 667 items served in 46 packets (8 to 15 items, 5,947 to 49,994 bytes);
n_agents2, with 92 reader sessions an arm;- R's 370 readings an arm (334 from R packets, 36 from U and A packets), scored only for the readers' own agreement and convergence.
- The arms are as declared at B4b. Both read all 46 packets. Nothing has been dispatched.
What I doubt
- Packet context is now R's main confound. The 167 R items read in R packets meet only unresolved items, ten R packets in a row of thin material. The 18 in U and A were read among ordinary items. I report R whole and split by context, but the split compares 167 items with 18, so it cannot settle how much the context matters. Reading the 18 again in R packets would settle it on the same items. I name that reason here and keep them once until J rules.
- R has no settled line. Its readers' agreement with each other can be high on a placement no earlier reading or ruling made, and that would not resolve the item. R says whether strangers converge, not whether they are right.
Slips
- The B4b-p3 declaration and its diary line were written in one turn, as parallel calls. The edit had answered before I read the log's output, but the rule is to log a write only after the tool answers.
validate.py B4, at B4b-p3's close:
stage B4:
leg: build
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
warn _packets-B4/G01.md mentions a ruling, an adjudication or the gold key; no hint that these items were decided before reaches a blind reader (section 10). Read the packet. [9 lines with this shape; first: G01.md]
0 errors (0 distinct shapes), 9 warnings
Stratum R, the 18 from U and A read again in R packets (B4b-p4, 2026-10-13)
J at 17:21 Berlin, on the B4b-p3 build: "We should have 685 in total" (the PI's message of 15:26Z). That is 250 in U, 250 in A and all 185 unresolved items in R. The PI's reading at 17:10, that the 18 unresolved items in U and A count in R from their U and A readings, was wrong. This replaces what the B4b-p3 declaration said of those 18. The rest of it stands: R is all 185 unresolved rulings, diagnostic, reported apart and never pooled with U or A, and no fresh reading changes a ruling. Nothing has been dispatched.
Declared before the build
- The 18 join R as R's own items. The 3 unresolved items in U and the 15 in A are R's items, served again in R's own packets. U and A stay as drawn: their 500 items, their 34 packets and their orders 1 to 500 do not change.
- Each arm reads these 18 items twice, once in their
U or A packet and once in an R packet, in different reader sessions.
- Each reading counts only in the stratum of the packet it came from. The U or A reading is scored against the settled line as declared at B4b, where an unresolved settled item leaves that denominator and is counted. The R reading is scored as R's.
- No reading counts in two strata, and the two readings of one item are never pooled.
- 685 lines due per reader set: 500 in U and A, 185 in R. They hold 667 distinct items; the 18 are the only items served twice.
- No draw, one order. The 18 are sorted by room and
theme id, then served in the order
random.Random("20261013:R-ua-order").shufflegives, orders 668 to 685. - The R record.
out/sample-B4-R.jsonl(185 lines, B4b-p3) is kept asout/sample-B4-R.superseded-B4b-p3.jsonland rewritten.- All 185 lines are read in R packets, orders 501 to 685.
- A new field
also_ingives "U" or "A" for the 18 and null for the other 167. The 18 lines get their order, read_in "R" and a newjoinedtext; the 167 lines change in nothing else.
- R's denominator, per arm. 185 items, 370 readings,
all from R packets, so R is read in one context throughout.
- The diagnostic is the one declared at B4b-p2: the readers' agreement with each other by stage B2's definition, primary beside it; whether primaries meet; whether fresh placements fall among reading A's, reading B's and my B1's placements.
- The B4b-p3 split of R by reading context is withdrawn.
- On the 18 only, R's readings are set beside the same arm's U or A readings of the same items: whether the readers' agreement with each other and their placements differ between the two packet contexts. This is a side note on 18 items, reported apart.
- The packets. The 18 go into
out/_packets-B4/beside the 46, under the same §10 rules: fleet ids, B2's renderer, the same brief and end line, at most 15 items, each file under 50 KB, no sibling block, bag flag, stratum or ruling, and the largest packet as small as the caps allow. Names run on fromS05-47. No packet says that an item is served elsewhere. The exception for an item over the ceiling alone carries over if it arises. - The other records.
MANIFEST.jsongains the new entries only; the 46 entries stay. The manifest as it stands is kept first asout/_analysis/packets-B4_MANIFEST_before_R_ua.json.out/_analysis/b4b_order_R_ua.jsonrecords the new packets' items.- A new read-only check,
out/_analysis/b4b_packets_check4.py, allows exactly the 18 repeats: each served once in orders 1 to 500 and once in orders 668 to 685, and no other item served twice. run_manifest.jsongains an entry that supersedes entry 15 and names the 685 lines, the order stream, and the packet counts.
The record
out/_analysis/b4b_R_ua.py --write.
- Files.
out/sample-B4-R.jsonlholds 185 lines, all read in R packets, orders 501 to 685. The B4b-p3 record (185 lines) is kept asout/sample-B4-R.superseded-B4b-p3.jsonl. The run's record isout/_analysis/b4b_sample_R_ua.json.sample-B4.jsonlis unchanged. - The 18 from U and A take orders 668 to 685 in the
order of
Random("20261013:R-ua-order"), withalso_in"U" for 3 and "A" for 15. By class: 3 three, 4 nine, 5 six. By taxonomy: scheme-ambiguous 7, author-disagrees 11. None is a gold or pilot item. - The other 167 lines gain
also_innull and change in nothing else; the script compares each with its B4b-p3 line before writing.
The build
- The packets.
out/_analysis/b4b_packets_R_ua.py --writeuses the B4b builder's renderer, brief, end line and checks. It wroteS05-47(8 items, 4,576 bytes) andS05-48(10 items, 4,318 bytes) beside the 46: the fewest packets the caps allow. The largest item is 1,474 bytes. Fleet ids only; no room-id-like string stands in participants' words. - Before writing, the 46 packets matched their
MANIFEST sha256, no
S05-47existed, each of the 18 was among the 500 in the stratum itsalso_innames, and none was served inS05-35toS05-46. - The manifest file.
MANIFEST.jsonwas first kept asout/_analysis/packets-B4_MANIFEST_before_R_ua.json, then given the two new entries only: 48 entries, 685 lines due.out/_analysis/b4b_order_R_ua.jsonrecords the new packets' items. - The check.
out/_analysis/b4b_packets_check4.pyfound 0 errors:- 685 items served in orders 1 to 685, 667 of them distinct, each translating back to its room;
- exactly the 18 are served twice, each once in orders 1 to 500 and once in orders 668 to 685;
- the earlier entries of B4b (34), B4b-p2 (36) and B4b-p3 (46) are unchanged.
- Hint words. The check lists 24 lines with a word
that could hint at a decision, the same 24 as at B4b-p3.
S05-47andS05-48add none. - The run manifest. Entry 16 of
run_manifest.json(out/_analysis/b4b_manifest5.py) supersedes entry 15, which stays. It records:- R's 185 members, all read in R packets, the order stream "20261013:R-ua-order", the R record's sha256 and both superseded copies;
- 685 lines due in 48 packets (8 to 15 items, 4,318 to 49,994 bytes), 667 distinct items;
n_agents2, with 96 reader sessions an arm;- R's 370 readings an arm, all from R packets, and the side note on the 18 beside their U or A readings.
- The arms are as declared at B4b. Both read all 48 packets. Nothing has been dispatched.
What I doubt
- R is now read in one context, and it is a thin one.
All 185 R items sit in fourteen packets,
S05-35toS05-48, that hold only unresolved items. That removes the B4b-p3 split, but R's figures still describe unresolved items read among unresolved items. They cannot be set beside U's or A's figures as a measure of the items alone. - The side note on the 18 mixes two causes. Each arm reads each of the 18 in two packets, in different reader sessions. A difference between the two readings is the packet context's and the reader's together. With 18 items and two readers in each packet, it is a side note, not a measure of context.
validate.py B4, at B4b-p4's close:
stage B4:
leg: build
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
warn _packets-B4/G01.md mentions a ruling, an adjudication or the gold key; no hint that these items were decided before reaches a blind reader (section 10). Read the packet. [9 lines with this shape; first: G01.md]
0 errors (0 distinct shapes), 9 warnings
The check (B4c, 2026-10-13)
The PI's message of 17:08Z says the readers left their files.
- Arm 1. DeepSeek V4.1 Flash at medium effort through
fleet.py:out/_fleet_raw/B4/, 96 valid returns, reader ids r1 and r2. The DeepSeek readers had no instructions beyond the message. - Arm 2. OpenAI gpt-6-astra at medium effort, two
replications per packet, run by the Codex orchestrator on J's computer
from byte-identical copies of the same messages:
out/_fleet_raw/B4-openai-astra/, 96 valid returns as oa1 and oa2. The one exception isS05-27replicate 1, which is oa3: oa1 failedfleet.py's code check (a concept of another item) and stays on file asoa1.raw.txt, and an earlier oa3 process died with no reply and is kept underinterrupted-oa3-20261013T1650Z. The OpenAI readers ran under Codex's built-in instructions, recorded by hash in_control/isolation-PASS.json, with no tools. The handler wrote the arm's.jsonlfiles withfleet.py's own validator. - J's rulings. The arms are reported apart and never pooled. Strata U, A and R are reported apart. R holds all 185 unresolved items, so its 18 items that are also in U or A are read twice.
Declared before any figure
- The settled line.
assign_final.jsonlat sha256 d3506a88…, as at B4a-07. At this leg's start it,disagreements.jsonl(ec740989…),sample-B4.jsonl(2fe441cd…) andsample-B4-R.jsonl(acfb4169…) are unchanged. A settled set is the line'sthird_order; an unresolved line's set is empty.- No fresh reading changes a ruling. "The placements final" is this file as it stands.
- Where a paragraph below finds that the settled line moved something it should not have, that goes to the handback as a finding for stage C1. It is not re-ruled here, because a ruling changed after seeing the test's readings would be fitted to the test.
- What is read.
- Arm 1: each packet's
r1.jsonlandr2.jsonl, with their meta (validtrue). - Arm 2: each packet's
oa1.jsonlandoa2.jsonl; forS05-27replicate 1,oa3.jsonl. Noraw.txtis scored, and nothing underinterrupted-oa3-…is read. - Each
.jsonlis checked against itsraw.txt: the item lines of the raw reply must equal the.jsonl's lines. For arm 2, eachraw.txtmust matchSHA256SUMS. - Replicates: r1 and oa1 (oa3 for
S05-27) are replicate 1; r2 and oa2 are replicate 2.
- Arm 1: each packet's
- The assembly, keyed on packet and cell.
out/_analysis/b4c_assemble.pywrites every pass-1 reading of both arms and all strata, in room ids, toout/_analysis/b4c_readings.jsonl, and the second pass toout/_analysis/b4c_pass2.jsonl.- A pass-1 item line is keyed on its packet and position. The item at
that cell is the one the order records (
b4b_order.json,b4b_order_R.json,b4b_order_R_all.json,b4b_order_R_ua.json) give. - The typed
T2-id is a label. It must translate back throughfleet_ids.jsonlto the cell's item, and the typed room must be that item's room. - Concept ids translate back and must be the item's own
(
codes_by_item). - A line that does not resolve is refused by name, and its reading counts as missing.
- Lines carrying
revisesare the second pass: kept apart, never scored. The prediction lines are kept apart.
- A pass-1 item line is keyed on its packet and position. The item at
that cell is the one the order records (
- Three files, never pooled.
reassign.jsonl: arm 1's 1,000 readings of U and A, the comparison §12 names. It uses the validator's words: stratum "uniform" (U) or "adjudicated" (A); outcome agrees, disagrees-contested, disagrees-unanimous or disagrees-unresolved.reassign-openai-astra.jsonl: arm 2's 1,000 readings of U and A, with the same fields.readings-R-B4.jsonl: both arms' readings of R's 185 items, 740 lines, each with its arm. R has no settled line, so there is no outcome.
- The outcome of one reading.
- agrees: the fresh set equals the settled set (Jaccard 1).
- disagrees-contested: it does not, and the item is in
disagreements.jsonl. These are classes 3, 4 and 5: the fleet split; or the fleet agreed outside my B1 grouping; or I had no B1 grouping. - disagrees-unanimous: it does not, and the item is not in
disagreements.jsonl. These are classes 1 and 2: the two B3 readers agreed and their list stood. - disagrees-unresolved: the settled line is unresolved. These readings leave the denominator and are counted.
- Each line also carries its Jaccard against the settled set, whether the primaries match, the two B3 readers' placements and my B1 grouping.
- The figures, per arm and per stratum.
- Fresh against settled: mean Jaccard over the readings whose settled line is resolved. The exact rate (the agrees share) and the primary match rate stand beside it.
- The readers' agreement with each other: mean Jaccard over items,
primary match beside it, and Krippendorff's alpha, by stage B2's
definition (
b2_score.py'sjacandalpha), over all the stratum's items. - Beside them: the B3 readers' agreement on the same items
(
b3_classes.jsonl); B3's corpus agreement, 0.786, and alpha, 0.782; the stability floor, 0.807 (stability-B2.md); B2's gold fidelity, 0.624; B3's gold fidelity, 0.645. - The two rates §12 asks to compare: the share of readings that disagree, on contested items and on unanimous items. For each disagrees-contested reading, whether it equals one of the B3 readers' sets or my B1 grouping, that is, the same split again.
- Class 2 on a row of its own. A class 2 item's
settled line is my whole B1 grouping. The two B3 readers agreed on a
proper subset of it. The rest are my B1 themes, placed under the B1
scheme and never placed by a reader or adjudicated.
- U is reported whole (250 items) and split three ways: class 1, class 2, and U's adjudicated items (classes 3 to 5).
- For class 2, the figure is also given against the themes the settled
line places with concepts (
support_by_theme), which are the B3 readers' list.
- Per family.
- Fresh against settled counts an item in the family of the settled line's first theme.
- The readers' agreement with each other uses B3's rule: an item counts in the family of each reader's primary.
- Families with fewer than 10 items in a stratum are shown but not ranked. The worst families are ranked on fresh against settled, per arm and stratum, among families with 10 items or more.
- The unanimous items a fresh reader placed
elsewhere. Every item with a disagrees-unanimous reading in
either arm is named in
transmission-after-revision-B4.mdwith a paragraph. The paragraph gives what the fleet placed, the settled line, and what each arm's readers placed. It then says which of §12's two readings holds, judged from the item's concepts against the scheme's fields: either the fleet shared an assumption the scheme does not license, or the settled line moved something it should not have. Each is logged in the diary. - Stratum R, as declared at B4b-p2 and B4b-p4. Per
arm, over 185 items:
- the readers' agreement with each other (Jaccard, primary match) and alpha;
- whether the two primaries meet;
- whether each fresh set falls among the item's earlier placements (reading A, reading B, my B1): all its themes among them, some, or none.
- On the 18 with
also_in, R's readings beside the same arm's U or A readings: the readers' agreement in each packet context, and the mean Jaccard of each R reading against each U or A reading of the same item.
- The second pass is not scored. The share of second-pass lines marked changed is reported per arm.
- The licence. Wherever a figure appears, it says that the readers share an architecture with me (arm 1 is the fleet's model; arm 2 is another model family, run under Codex's built-in instruction), so the figure bounds whether the written instrument decides, not whether it is right. "Reliability" appears only in the sentence that denies it.
- Safe stops come after each section of the check:
the assembly, the comparison files, the figures, the paragraphs, R.
.pauseis checked at each.
The assembly
out/_analysis/b4c_assemble.py --write.
- Files.
out/_analysis/b4c_readings.jsonlholds 2,739 pass-1 readings in room ids: arm 1 U 499, A 500, R 370; arm 2 U 500, A 500, R 370.b4c_pass2.jsonlholds 2,740 second-pass lines andb4c_predictions.jsonl192 prediction lines. The record isout/_analysis/b4c_assemble.json. - Integrity. All 192 accepted returns'
.jsonllines equal the JSON lines of theirraw.txt. All 96 of arm 2'sraw.txtfiles matchSHA256SUMS. Every cell's item matchesMANIFEST.jsonand the four order records. - Arm 1's reissues.
fleet.pyrefused 10 returns and reissued them to new reader ids. Five cited a concept not among the item's codes, four listed analso_presenttheme with fewer than three concepts, and one held a line that was not JSON. Every packet has exactly two accepted returns. Where reissues replaced readers, readings 1 and 2 are the accepted pair by reader number. This amends the declaration's "r1 and oa1 are replicate 1"; no figure depends on the labels, because every figure treats an item's two readings alike. - Arm 2's reissue.
S05-27replicate 1 is oa3, as the PI said. The handler'sREISSUE-VALIDATION.jsonshows that oa1 cited C0436497 for T2-85354, a concept of another item. - One line refused, under the declared rule. In
S05-23, reader r8 typed position 3's room as "r/traaaaaaannnnnnnns"; the item is traaaaaaannnnnnnnnns t02. Its T2- id and its cell both named that item, so the reading was identifiable, but the declaration requires the typed room to match. So arm 1 has 999 readings, and that item has one reading. These are the two validator warnings onreassign.jsonl: 999 readings, and one item without two.
The comparison and the figures
out/_analysis/b4c_compare.py --write wrote
reassign.jsonl (arm 1, 999 readings),
reassign-openai-astra.jsonl (arm 2, 1,000) and
readings-R-B4.jsonl (740), with every figure in
out/_analysis/b4c_figures.json.
out/_analysis/b4c_extra.py gives the two figures beside
them: U without class 2, and U with class 2 scored against the placed
themes. out/transmission-after-revision-B4.md holds the
figures, the per-family tables and the paragraphs. In brief:
- Fresh against settled (mean Jaccard, exact rate in brackets): arm 1 U 0.657 (0.452), A 0.544 (0.287); arm 2 U 0.622 (0.431), A 0.554 (0.321).
- The readers' agreement with each other (Jaccard, alpha): arm 1 U 0.781, 0.776; A 0.664, 0.658. Arm 2 U 0.872, 0.869; A 0.804, 0.801. The B3 readers on the same items: U 0.781, 0.775; A 0.514, 0.505.
- U split (arm 1, arm 2): class 1 0.930, 0.802; class 2 against the settled line 0.491, 0.502, and against the placed themes 0.786, 0.610; U's adjudicated items 0.517, 0.535; U without class 2 0.703, 0.655.
- Gold. Stage B2's gold fidelity, 0.624, on the same model at the same effort, is lower than arm 1's U figure by 0.033.
- The worst families on fresh against settled: G14 is among the three worst for both arms in both strata.
- Stratum R (Jaccard, alpha): arm 1 0.623, 0.606; arm 2 0.862, 0.851; B3 readers 0.543. Primaries meet in 116 and 159 of 185. Readings wholly outside the earlier placements: 104 and 134 of 370.
- The 18 read twice. Arm 1 agrees within a packet (0.741, 0.796) about as well as across packets (0.787). Arm 2 agrees within a packet (0.889, 0.861) far better than across packets (0.653).
The unanimous items a fresh reader placed elsewhere
- The items. 79 items have a disagrees-unanimous reading in either arm: 62 in arm 1, 74 in arm 2; 28 of class 1 and 51 of class 2.
- The reading.
out/_analysis/b4c_unanimous_packets.pyrendered each item's concepts, the fleet's and my B1's placements, the settled line, the four fresh sets and the scheme's fields for every theme named (out/_analysis/b4c_unanimous/chunk-01.mdto-08.md). I read each and wrote one paragraph (paragraphs-01.mdto-08.md).b4c_transmission_append.pyappended the paragraphs to the figures file. Each chunk's verdicts are in the diary. - The verdict test, fixed after chunk 1 and applied to all 79. "The fleet's shared assumption" requires a field of the scheme that contradicts the fleet's placement. A theme added on concepts the settled line leaves uncarried is "rule 0 applied differently". crystalclear t01's verdict was changed to fit, and logged.
- The tally
(
out/_analysis/b4c_unanimous_tally.py): the fleet's shared assumption 25, the settled line keeps my B1 themes 22, rule 0 applied differently 24, the scheme does not decide 6, the fresh reading misses a field 2. - A limit of the reading. The read packets carried
the fresh readers' sets but not their
whytexts, becausereassign.jsonldoes not keep them. The verdicts rest on the concepts read against the fields.
The placements final
assign_final.jsonl stands as B4a-07 left it: sha256
d3506a88…, 7,844 lines, nothing pending. The check revised no ruling, as
declared. The findings that bear on the settled line go to stage C1
through handback-B4.md:
- the class 2 items that keep B1 themes no reader placed;
- the unanimous items where a field contradicts the fleet's placement.
What I doubt
- The 79 verdicts are mine. I made them after seeing where the fresh readers landed. I wrote the scheme and I settled the line. The verdict test is fixed in writing, but each reading of a field is still my own.
- Arm 2's agreement is an upper bound. Its two replications read byte-identical messages under one built-in instruction, and on the 18 items read twice they agree within a packet far more than across packets. Its alpha should not be read as two independent readers.
- Class 2 carries my B1 themes into the settled line. In U, 22 of the 53 class 2 items keep themes that no reader of the fleet or of either arm placed. The 1,990 class 2 items of the corpus were kept by the same rule. I do not extrapolate from 53 to 1,990, but stage C1 should know the settled line holds such themes.
- Stratum A was selected on the fleet's split, so the rise from the fleet's 0.514 to the fresh readers' 0.664 and 0.804 is partly regression toward the corpus mean.
- B4's task differs from B3's by the sibling block, the bag flags and one rule 0 wording, as noted at B4b. A difference between the arms' figures and B3's is not the scheme's alone.
Slips
- The diary line after the assembly said "no .pause" before the check had answered. The check agreed.
- crystalclear t01's verdict was written under a loose test and corrected when the test was fixed (logged).
- A Read call went to a path I had made up, outside the run folder. The permission setting refused it, and nothing was read.
- Two sentences of the figures file were wrong in draft and corrected before the paragraphs were appended (logged). One said all 18 class 2 "fleet" items placed a B1 theme or its sibling; 13 did. The other listed T3-039 among G14's themes; it is G13's.
validate.py B4, at B4c's close. The two warnings on
reassign.jsonl are the refused line explained under "The
assembly". The validator's "unanimous-but-disagreed 112" counts arm 1's
disagrees-unanimous readings, not items; they fall on 62 items.
stage B4:
leg: check
settled items 7844 = assignment_items_expected
rulings 3288: {'genuine-joint': 1651, 'scheme-ambiguous': 451, 'reader-error': 152, 'author-error': 571, 'author-disagrees': 208, 'item-is-a-bag': 255}
classes 1: 2566, 2: 1990, 3: 2393, 4: 837, 5: 58; contested (3, 4, 5) 3288, ruled 3288, outstanding 0
coder conflicts 72
blind readings 999 ({'adjudicated': 500, 'uniform': 499}), rule-2 items in the uniform stratum 53, unanimous-but-disagreed 112
warn _packets-B4/G01.md mentions a ruling, an adjudication or the gold key; no hint that these items were decided before reaches a blind reader (section 10). Read the packet. [9 lines with this shape; first: G01.md]
warn reassign.jsonl has 999 readings; five hundred items by two readers is one thousand (J, 2026-10-12), unless notes-B4.md says why not
warn reassign.jsonl: 1 items do not have exactly two readings (['traaaaaaannnnnnnnnns/t02'] ...); two fresh readers per item
0 errors (0 distinct shapes), 11 warnings