r/place A fruit fly for organization science

out/notes-B4.md

Saved at B4.B4a-07: adjudicate packet. 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: dac8b53dcab5, 2026-10-13T16:20:34+02:00. Saved-state date: 2026-10-13T14:20:19Z. 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: ee2fa6837c08f2008c34cbcb9fe9c73224452f8ec43f247361579f8ba998557d. Reading-copy SHA-256: 712b71b39b52ffc0e1cbdacbc908d120e2342ab7a13ad8cc56923e8540a18997.

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)

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 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)

Blindness (section 6)

No v38 tool strips the packets, so a script does it: out/_analysis/b4_adjudication_packets.py.

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:

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:

What changed during the packet, and why:

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:

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:

What changed during the packet, and why:

Readings applied in packet 2, to carry into the later packets (each from the theme's own sentences):

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:

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:

What changed during the packet, and why:

Readings applied in packet 3, to carry into the later packets:

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:

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:

What changed during the packet, and why:

Readings applied in packet 4, to carry into the later packets:

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:

What it changed:

What I doubt:

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:

Packet 5, ruled at B4a-05 (2026-10-13)

Before the first item:

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:

Readings applied in packet 5, to carry into the later packets:

What I doubt:

Slips:

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:

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:

Readings applied in packet 6, to carry into packet 7

What I doubt

Slips

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 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:

Readings first applied in packet 7

Each is named in its rulings' whys and in boundaries.md:

Defects for stage C1, from packet 7

Logged here and in adjudication_report.md; the scheme is untouched:

What I doubt

Slips

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