The coder's reading tool: it serves the rendered corpus in order and logs every service.
What it holds
Verbs header, windows [n],
thread ID, item ID, state and
audit. windows serves the next threads as
triage windows (or whole when short), in batches of about 20,000
characters. A cursor advances on serving. Every service goes to
out/_read.jsonl, and the index to
out/_read_index.json. audit compares what was
served with what emit.thread(read=...) declared. In v32 it
refuses a branch-B lead's raw read until step5_counter is
recorded.
Who writes it, and when
The instrument's author. Copied into every run and batch. The coder calls it from the first step; the lead calls it in step 5.
Why it exists
Its docstring gives three properties: everything it returns is "a
verbatim slice of corpus.txt"; read "becomes derived
instead of declared", so what the coder was shown "is a fact about the
run rather than a claim in it"; and "it resumes", because state lives in
the log.
Where
Checked against: read.py, AGENT.v32.md, TOOLS-SPEC.md