# 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 in `assign_raw.jsonl` sit on those keys. The 1,210 duplicates' second copies are dropped as well; they are no corpus reading.
- **What `assign_final.jsonl` reads.** Only the corpus copies, as `b3_classes.jsonl` does: 15,688 lines, two per item. No line of `assign_final.jsonl` carries an agent or a replicate.
- **Count.** The drop removes placements, not themes. `assign_final.jsonl` holds one line for each of the 7,844 items, which is `counts.py`'s `assignment_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 `confidence` and `why`.** Neither is a prior. A "clear" reading against an "arguable" one counts for nothing in the ruling. A reader's `why` points at material, and I check what it points at against the item's concepts. The ruling rests on the concepts read against the scheme's `must_show`, `must_not_show`, `decide_when_both` and 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_neither` true, and the `why` says 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 `unresolved` true. 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 carries `boundary_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-bag` or `genuine-joint` apply 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 and `unresolved` true, with `author-disagrees` where both readers agreed. A split is ruled by the split.
- **`reader-error` is suspected last.** It is never given where both readers made the same miss.
- **Concepts behind each theme placed.** `support_by_theme` is taken from the reader line that placed the theme: its `support`, or its multiplacement record's `support_additional` for 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 under `also_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.py` resolves. A `scheme-ambiguous` ruling 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`, `bag` and `also_present`.
- **The item's material** is rendered from the store as `mem.py theme` gives it: the label, the coder's `theme_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 tagged `source: "b1_grouping_kept"`.
- **A ruled item:** the ruling.
- **A contested item not yet ruled:** `third_order` empty and `status: "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.jsonl` was 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_show` begins "Canvas posts handled under the sub's standing rules". `b4_rule_append.py` gained a `--replace` mode. It rewrites the named items in place, marks each line `revised` with the UTC time, and keeps the old file as `disagreements.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).
- **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.jsonl` was 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_show` names "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_show` gives "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's `must_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 with `out/_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_show` failures 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.jsonl` was 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.md` where 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 their `must_not_show` timing; T3-026's `decide_when_both` already decides the pair, so six draft lines were changed before the write.
- **T3-170 for members' own misclicks (from item 430).** Its `must_show` names "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 check `out/_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 new `out/_analysis/b4_br_tag_draft.py`); a row comparison against the superseded ledger shows only the tag, the `revised` stamp 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_show` failures are the homeland flag's repair on T3-021's `must_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.jsonl` was 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 under `also_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 --replace` wrote 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 as `disagreements.superseded-<time>.jsonl`. `b4_own_support_check.py` found no theme without a concept of its own after any part. `b4_rerule_list.py` returns 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 whose `must_show` takes 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 own `also_present` named, which QB4-002 admits.
- **The correction.** Four `--replace` parts from `out/_adjudication-B4/rerule-ap-B4a-05/draft-apNN-named.jsonl`; old ledgers `disagreements.superseded-20261013T072151Z.jsonl`, `-072154Z`, `-072158Z`, `-072202Z`. `b4_rerule_draft.py` now 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_present` lists 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 `--replace` lines; old ledger `disagreements.superseded-20261013T081847Z.jsonl`).
- **Mapping:** `assign_final.jsonl` rewritten (class 1 2,566, class 2 1,990, ruled 2,308, pending 980). The summaries of packets 1 to 4 were rerun after the `also_present` correction.

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's `decide_when_both` keeps 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.jsonl` was 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.py` ran in one turn. All applied; later edits went one at a time.
- One diary line said I had asked J before `mem.py ask` ran; 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's `must_show` (4); T3-004's `must_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.jsonl` rewritten (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 -c` after 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 and `validate.py` found 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_show` 4, 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.py` 0; `b4_lone_b1_check.py --packets 7`: 18 kept lone B1 themes, all with three concepts or more; `b4_bag_named_check.py --packets 7` flagged 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.jsonl` rewritten: 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_show` do not say "the room's own work".
- T3-054's `must_show` against 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_show` and 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's `must_not_show`, and T3-063's `must_show` for 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_show` names 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_both` and 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.md` before 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
```
