r/place A fruit fly for organization science

Authoritative source, reproduced unchanged. Exact Markdown · Agent copy with resolved links. These instructions govern research runs, not checkpoint interviews.

Stage D1. The return: the build.

Model: as arm.json sets for this stage (your platform file lists the model and effort). Legs: one. Fleet: none here; D2 runs them. You never run a labeler or a reader and never call a model.

Steps: D1a, one leg: handoff.py writes the folder once per version. Each leg is named by its step (STANDING §2).

Safe stops: before handoff.py runs (it writes the folder once, so a pause after it is a close). At a safe stop, check for .pause (ls .pause); if it is there, log where to pick up, your working hypothesis and the next room or item (mem.py log "<hypothesis>; next: <item>" --kind pause), and close with done.sh D1 --pause (STANDING §2).

Startup packet: _head.md, this file, FLEET.md, SCHEMA-adaptations.md, the last five diary entries, validate.py --open D1. The adaptation shelf arrives (METHOD.md).

Reads allowed: model/ at its frozen hash; account.md; implications-C5.md; propositions.jsonl; assignments_final.jsonl; _views/data-structure.tsv; _wiki/; the last story_rooms-pN.jsonl; prior.md, into which you write §7 and §8 here; rooms.jsonl for each room's concept count and off-platform pointers; mem.py room --size; the rooms' coder documents through the verbs. Forbidden: writing any adaptation or verdict yourself; reading DROPS/; serving the canvas, a room note, your notes or another room to any task or packet (rule 7).

Outputs: handoff-D/ with RETURN-D.md, VOCABULARY.json, VERSION, MODEL.md, LADDER.md, tasks/<sub>/TASK.md and the room's documents, tasks/index.tsv, HANDLER.md; verdict-D/ with RETURN-D2v.md and the verdict packets; prior.md §7 and §8; notes-D1.md; handback-D1.md.

prior.md §7 and §8 first. Before you build anything, and before any adaptation is seen, write the distance weights and grades for stage D4 (§7) and the concept floor and the off-platform threshold for cannot-tell (§8), each with one line on why that figure. §7 carries two lines in the form distance.py reads: w = <third>, <fourth>, <dimension>, <target> (the weight of a meeting at each level) and g = <same op>, <same kind>, <different kind>, <opposite> (the grades). You set them now because the model is fixed and no room has yet answered it. done.sh records prior.md's hash at D1's close (out/_closes/prior-D1.sha256), and stage D4 refuses weights that changed without a departure (rule 10).

The model is fixed. Nothing here changes an element, an arrow, a fourth-order theme or a dimension. What a room does to the model is written against the model by a labeler and ruled on at D3; a change after C5 is a D3 amendment under rule 11, logged with the adaptation lines that caused it. This is the test the loop prepared for: stage C2 read rooms against every telling of the story, and the rooms its last story could not tell are the first ones to watch. List them in notes-D1.md from story_rooms-pN.jsonl before you build anything, so that D3 can count how they fared. The return is Eisenhardt's replication only if something is predicted before it is seen; EXPECTATIONS.jsonl is that prediction, and it is written here, before any return exists.

1. The handoff folder (SCHEMA §9)

handoff.py D builds it from your inputs; you check it and write what the script cannot. Before you run it, write the two files only you can write: MODEL-D1.md (the model as prose with ids, below) and EXPECTATIONS-D1.jsonl (below). The script copies them in, projects the rest from model/, the scheme, fourth/, dimensions.jsonl, assignments_final.jsonl, the store and the coder documents, writes VERSION, hashes the folder into handoff-D.sha256 and RUN.json, and prints the payload distribution for §3. It will not overwrite a built folder.

2. The verdict fleet's packets

handoff.py D writes them too, into verdict-D/ (--verdict-only rebuilds them alone): per room, the model as prose with ids, the room's second-order themes with their placements, the room's concepts the model did not use (those of themes placed nowhere, and a seeded sample of those no element cites), the verdict criterion from FLEET.md §3 verbatim, and none of the coder's prose (no case.md, no theme notes), no other room, under the 50 KB ceiling with the end marker and the line telling the reader to confirm it reached it. The concept floor and the off-platform threshold for cannot-tell are read from prior.md into the specification, and each packet states the room's concept count and off-platform pointers from rooms.jsonl beside them, so that the reader does not estimate what the store already holds; every verdict carries the count (contract §5).

RETURN-D2v.md, frozen with this file, and RETURN-D2v.schema.json, which fleet.py checks every line against (tools/dreturn.py): the verdict, the themes and the unused concepts it rests on, one sentence, the end marker. The return line:

{"sub": "...", "reader": "r1", "verdict": "composes|composes-with-residue|does-not-compose|cannot-tell",
 "themes": ["t03", "t07"], "concepts": ["c0041"], "residue": ["t11"],
 "cannot_tell_under": "coded-share|off-platform|both|null",
 "sentence": "one sentence, in the criterion's terms", "served": "<sha256 of the packet>"}

The reader's id is the name of its return file (ingest.py sets it). residue lists the themes or concepts with no element and is null unless the verdict is composes-with-residue; cannot_tell_under names the threshold and is null otherwise. R = 2 readers per room, so that a disagreement is visible (FLEET §1). A verdict is one value and is a reading with a reason, never a profile, a score or a coordinate: stage D4 projects it onto the branches afterwards and never clusters on it.

3. The payload, measured

Before the folder is hashed, write in notes-D1.md the distribution of task payloads and of verdict packets (median, p90, largest, from tasks/index.tsv), the ceiling declared for MODEL.md and what it cut from account.md. No stage carries a budget (contract §4): a room whose documents exceed what one labeler session can hold is not cut, not split and not read by you; name it in notes-D1.md and handback-D1.md, and the handler returns it whole or marks it unreturned with the reason. The tokens go to RUN.json through done.sh.

4. What you check

Every task resolves every id it names against VOCABULARY.json; no task and no packet holds a canvas field, a room note or another room's material; every room of the analysed set has a task, an index.tsv row and a verdict packet; MODEL.md fits the declared ceiling; EXPECTATIONS.jsonl has a line per room and sits outside both served folders; VERSION equals the harness's hash of model/; the folder is hashed and the hash is in notes-D1.md and RUN.json. A room whose task could not be built goes to handback-D1.md with why; you do not invent a document.

Moments to log

The story-miss rooms listed; the ceiling declared; each expectation line written that departs from a plain reading of implications-C5.md, with why; the payload distribution; the folder built and hashed; any room whose task could not be built and why.

Final message

Counts: tasks built, verdict packets built, elements and arrows in the vocabulary, the MODEL.md ceiling, expectations written (instantiate and absent, by element), rooms not-testable-here on any element, story-miss rooms carried, the largest payload; the folder's hash and VERSION. A return value.

Close

Stop here. done.sh D1 --cut packets-out; handback-D1.md; the head; the closing diary line. Your session ends. The labelers run in Codex and the verdict fleet on the reader route without you, and nothing of the return (D1 to D3) runs on your model until D2 is launched as the check leg, told that the labelers and the readers left their files in DROPS/D/ and _fleet_raw/D2v/.