# Corpus-wide PASS 1 workflow

The production command is `diary corpus transcribe`. It uses the preserved 34
owner-approved pages as read-only completed anchors and derives the exact missing
work set from repository state. The accepted pages 41–60 retain their historical
pilot candidates and are separately derived into owner-approved edition files;
they are not regenerated for provenance uniformity.

The default production settings are four shard workers, 20 physical pages per
shard, and `gpt-5.6-luna` with high reasoning through the ChatGPT-authenticated
`codex exec` CLI. No API key, SDK, or per-token API workflow exists.

Each shard is sequential. A page failure is preserved and quarantined, and the
worker continues where bounded OCR context remains safe. Run resumption reuses a
valid page from the same run; the shared content-addressed cache can also avoid a
duplicate model invocation when every material input hash matches.

After every worker is exhausted, model execution stops. The finalizer builds the
295-page state index, reconciles adjacent blocks across all boundaries, validates
the canonical pages and owner baseline, checks duplicated boundary text, creates
the seeded clean-page QC sample, writes human and JSON reports, and generates the
static review index. Corpus completion never implies owner approval of new model
candidates.

Important outputs for run `RUN_ID` are:

- `corpus/runs/RUN_ID/run-manifest.json`
- `corpus/runs/RUN_ID/canonical/pages/`
- `corpus/runs/RUN_ID/quarantine/`
- `corpus/runs/RUN_ID/reconciliation.json`
- `corpus/runs/RUN_ID/validation.json`
- `corpus/runs/RUN_ID/report/corpus-report.md`
- `corpus/runs/RUN_ID/report/corpus-report.json`
- `corpus/runs/RUN_ID/report/qa-queue.json`
- `corpus/runs/RUN_ID/review/index.html`

## Completed production run

Run `20260808T220440Z-corpus` produced 295 valid PageEditions: 34 preserved
owner-approved anchors and 261 new Luna/high candidates. Of the new pages, 237
validated on the first transcription attempt and 24 validated after the single
permitted transcription repair. Every repair corrected the same deterministic
invariant: an internal physical line had been marked `block_end` before the last
line in its logical part.

One page-160 Codex invocation timed out. The timeout also exposed a backend
artifact-writing bug because `TimeoutExpired` supplied byte strings. The initial
command and failure remain preserved; process-group cleanup and byte decoding
were added, and a targeted resumable retry produced a valid candidate. The final
corpus has no quarantined pages. This was an infrastructure retry, not a
transcription-repair attempt.

Whole-corpus reconciliation produced 152 reciprocal links, no duplicate boundary
text findings, and 16 explicitly unresolved continuation boundaries for QA. The
new candidates remain `model_candidate`; corpus completion does not promote them
to owner-approved authority.
