Authoritative source, reproduced unchanged. Exact Markdown · Agent copy with resolved links. These instructions govern research runs, not checkpoint interviews.
Stage D2. The return: the labelers in Codex, and the verdict fleet.
The dispatch and the check leg of the return. Two
things run outside your session, and you are launched only when both
have left their files. The adaptation handler runs one resumed original
case lead per room, retaining its Codex history and matching files; the
handoff task is delivered in a separate return folder alongside its
original workspace, without another room's private history, holding the
room's coder documents, MODEL.md, LADDER.md
and VOCABULARY.json, and returning model-D.md
and adaptations.jsonl into
DROPS/D/<sub>/ with run.json (the
labeler's model and session id); the handler runs
ingest.py --check <sub> after each room, has the
failing rule repaired, keeps returning rooms before any limit, marks a
room unreturned in DROPS/D/UNRETURNED.tsv only
when it cannot return it, and writes DROPS/D/DONE with the
counts. The verdict fleet runs on the reader route, the dispatch sending
packets to the routine readers, from verdict-D/, two
readers per room, returning into _fleet_raw/D2v/ and
validated against RETURN-D2v.md, with reissues for what
fails the schema; when reissues are exhausted fleet.py
stops and the packets are rebuilt (FLEET §1). Neither reads your files.
When both have returned, the harness runs ingest.py D and
relaunches you for the check leg with one line: the labelers and the
readers left their files.
Check leg. Model: as arm.json sets.
Steps: D2a, the check, once both the
labelers and the verdict fleet have returned. Each leg is named by its
step (STANDING §2).
Safe stops: after each section of the check leg. 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 D2 --pause (STANDING §2).
Startup packet: _head.md, this file,
SCHEMA-adaptations.md, FLEET.md, the last five
diary entries, validate.py --open D2.
Reads allowed: ingest.py's report;
adaptations.jsonl by count and by the views, never as a
list; verdicts-D.jsonl; _fleet_raw/D2v/;
DROPS/D/UNRETURNED.tsv and DONE; sampled
model-D.md files by query; prior.md §8.
Forbidden: adjudicating a line (that is D3); editing a
return; re-running a labeler or a reader; editing the task template or
the criterion mid-return; EXPECTATIONS.jsonl against the
ledger (that is stage E1).
Outputs: adaptations.jsonl (ingested,
validated); verdicts-D.jsonl; ingest-D.md;
_views/rooms-x-elements.tsv (generated);
rooms/<sub>/model-D.md and verdict-D
copied from the drops; notes-D2.md; the D2 counts in
RUN.json; a run_manifest.json entry for the
labelers' model and the readers' model; handback-D2.md.
1. What ingest did
ingest.py D validated every line against SCHEMA §4: the
schema (a known op, its required fields, no extra fields); the model
version against handoff-D/VERSION, with element ids in
VOCABULARY.json and not withdrawn; concept ids in the
room's codes.jsonl and not retracted, transition ids in the
room's forest; how one sentence under forty words;
portability (no census subreddit name and no proper name from the room's
lines in your lexicon-A1.md in condition,
statement or how, except in
relation), a failing line kept with
portable: false and a particular by construction; the end
marker matching the line count and model-D.md ending with
its marker. It lifted every source node through
assignments_final.jsonl at the model version (second-order
theme, third-order theme, fourth-order theme, dimension,
null where never placed), computed kind and
portable, stamped origin and
labeler_run, checked that every adaptation's element
appears in the room model, and compiled the ledger; it reported per room
what failed and why, and the handler reissued what it could. A room with
nothing to adapt returned one none line with evidence for
the fit; silence is a missing return, not a verdict.
You read ingest-D.md: rooms returned, lines accepted,
lines flagged by rule, rooms unreturned with the handler's
reason, the distribution of lines per room and of ops, the share of
portable: false, the share of none rooms, the
share of unplaced source themes (the lines D3 may mint from).
ingest.py wrote the counts of accepted, reissued and
unreturned rooms into RUN.json (SCHEMA §4), copied the room
models and verdicts beside the notes, and marked every room it rejected
unreturned; check the counts against the report, since stage D4
reconciles every room against them.
2. The verdicts
verdicts-D.jsonl: one line per room from the fleet, with
each reader's themes, sentence and cannot_tell_under, at
R = 2; where the two readers differ, the room is listed for
D3 to rule with the criterion in front of it, and the disagreement rate
is reported, by verdict pair. Report cannot-tell by
threshold (coded-share, off-platform,
both), and check each against the room's concept count and
off-platform pointers on the line: one the numbers do not support is
listed for D3 beside the splits. The figure bounds whether the written
criterion decides a room, never whether the model is right (FLEET §2);
say so where it appears. The labeler's grade from
model-D.md sits beside the verdict in the same file and
never replaces it; the cross-table of grade against verdict is reported
here and again at E1.
3. What you check by sampling
Ten model-D.md files drawn by seed, stratified on
verdict: does the room model cite element ids where the model applies,
[absent <id>] where it did not apply and was not
needed, and [new: ...] where no element covers what the
room did; does every adaptation's element appear in it; does every claim
carry a concept citation from the room's own codes; does the prose read
as the room's organizing in the model's words rather than as a summary
of the model; does the grade's sentence name what the ledger names.
Every quote you carry into notes-D2.md goes through
cite.py. What you find goes in notes-D2.md
and, where it is a defect in the task template, the return specification
or the criterion, in handback-D2.md for the operator: none
of the three is edited mid-return, and a labeler is never re-run by
you.
4. Verbal before numeric
No verdict and no line is revisited because of a count. A share that
looks bad (many does-not-compose, many particulars, a thin
ledger) is a fact to report; D3 assesses fixed-global fit, local
adequacy and shared composition separately against
prior.md. Repeated corrections and a sparse ledger alone
establish neither failure nor success.
Moments to log
The ingest report read, with the rule that flagged most lines; the
RUN.json counts written; the verdict disagreement rate and
the cannot-tell lines the numbers do not support; each
sampled room model and what it showed; each defect sent to
handback-D2.md.
Final message
Counts: rooms returned, reissued, unreturned, lines accepted and
flagged by rule, lines per room, ops by kind, none rooms,
non-portable share, unplaced-source share, verdicts by value with the
disagreement rate, cannot-tell by threshold, the labeler
grade against the fleet verdict as a cross-table, the labelers' model
and the readers' model from the manifest. A return value.
Close
done.sh D2 --cut adaptations-in: the adaptations and
verdicts have arrived and nothing is yet ruled on them, the moment D3's
rulings are measured from; gen_views.py builds the element
views and the wiki pages; handback-D2.md; the head; the
closing diary line.