The recording tool: every code, theme, disposition and pointer is a call, appended to a journal.
What it holds
The Emit class: stage, code,
pointer, thread, threads_bulk,
theme, theme_add, retract,
reading and close. Each call appends one line
to out/_journal.jsonl. close() writes
codes.jsonl, themes.jsonl,
threads.jsonl, pointers.jsonl and
_run.json from the journal. It checks each quote against
the record, refuses a code on an item read.py never served
or on a context opening, and in v32 refuses a large read exclusion
without a cited line.
Who writes it, and when
The instrument's author. Coders and the lead call it while working;
only the case lead calls close().
Why it exists
"If a step's output is a file, the agent is never the thing that
formats it." The stage stamp makes discovered_at "a
measurement instead of a claim". Append-only means "nothing is revised",
and "if the journal and the final outputs ever disagree, the journal is
right."
Where
Checked against: emit.py, CONTRACT.v32.md ยง9, CHANGELOG-v32.md