r/place A fruit fly for organization science

out/RETURN-B3.md

Saved at B3.B3b: check. This reading copy substitutes participant identifiers in saved text; it is not a new interview response. Reading Markdown.

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

Source commit: 25b2a8e4a123, 2026-10-12T23:18:58+02:00. Saved-state date: 2026-10-12T21:18:42Z. Catalogue close receipt Commit date and saved-state date are distinct.

Original GitHub file. Original SHA-256: 1aeb4a7c958276875769132547a2ab6f293cba92b8c123398437149738c43b92. Reading-copy SHA-256: 1aeb4a7c958276875769132547a2ab6f293cba92b8c123398437149738c43b92.

RETURN-B3: the return specification for the stage B3 fleet

Frozen with the stage file. The packet builder serves it, the brief cites it, and the validator's schema is read from it.

Rule 0, in the contract's words

Rule 0. Single placement, exception on the record. A second-order theme carries one third-order theme: the one whose gate its material satisfies best; where more than one gate is satisfied, the theme's decide_when_both field decides. A second placement only where one cannot carry the material, and never silently: it needs its own distinct supporting concept, a written why_not_one in terms of what the single placement would fail to carry, a named dispensable one, and a line in multiplacement_log.jsonl. Three at most; beyond three, place one and record item-is-a-bag. An unjustified extra is a defect. The log is a measurement: recurring (primary, additional) pairs are boundaries the scheme has not drawn, and stage C1 reads that table first.

How you read

Read the index page whole first. Open a family's page before you place anything into it, and list the families you opened in families_opened. Your batch opens with a sibling block for each of its rooms: the labels of all that room's second-order themes, so you can see what a theme is not. Then the items, interleaved across rooms, each numbered by position. Some items are marked as flagged bags: place them from the concepts, not from the coder's grouping. Your packet is complete in itself.

What you return, in this order

1. The prediction line, first, before any placement: the pair of third-order themes you expect to find hardest to tell apart in this batch, and one sentence why.

{"agent": "a017", "predicted_confusion": ["T3-007", "T3-011"], "why": "one sentence"}

2. The return line, one JSON line per item, in position order, and nothing else between the lines.

3. The multiplacement record, on the same line, inside multiplacement_log:

{"sub": "...", "theme_id": "T2-.....", "key": "<sub>/<theme_id>", "batch": "B017", "agent": "a017", "replicate": 2, "position": 23, "primary": "T3-007", "additional": "T3-011", "why_not_one": "what this material carries that T3-007's gate does not reach", "why_this_one": "what in the material satisfies T3-011's gate, and its distinct supporting concept", "support_primary": ["C0781518"], "support_additional": ["C0781527"], "dispensable": "which of the two you would drop if forced to one, and what would be lost"}

Four rules on it:

4. The second pass. After your last item, read your whole batch again and write one line per position, in position order, after all your first lines and before the end marker, each naming the line it revises: {"pass": 2, "revises": 23, "batch": "B017", "agent": "a017", "third_order": ["T3-007"], "changed": false, "why_changed": null}. When you would now place the item differently, changed is true, third_order holds the new placement and why_changed says what made you change it. The second pass never overwrites the first: your first lines stand as written.

5. The end marker and the confirmation.

{"sub": "...", "theme_id": "T2-.....", "batch": "B017", "agent": "a017", "replicate": 2, "position": 23, "third_order": ["T3-007"], "multi": false, "why": {"T3-007": "what about THIS theme put it here rather than its nearest neighbour"}, "confidence": "clear|arguable", "read": "whole|theme-block", "exemplar_read": null, "families_opened": ["G03", "G09"], "bag": false, "t_start": "...", "t": "...", "support": ["C0781518"], "also_present": {}, "multiplacement_log": []}
END-OF-RETURN

After your last line, write the end marker END-OF-RETURN on a line of its own. Confirm that you reached the end of the packet by writing that marker; a return without it is a partial return and is reissued.