Status-sync contract, one file that keeps Claude Science current (no manual relay)
The spec Claude Code wrote on 2026-07-10 for the one-file status channel between itself and Claude Science. Committed to the repo as written.
Reproduced from the project folder as it was left in July 2026. Formatting was converted for the site and long dashes were replaced; the words and numbers are unchanged. File names and figures refer to the project repo, which is not published.
Problem: Claude Science's only view into the box is the Drive share. Today its status arrives as prose Casey pastes by hand. This contract replaces that with one machine-readable file Claude Code overwrites each loop, at a FIXED Drive location, so Claude Science pulls and parses it itself in any network window.
What to add (small, one file)
Write confident hallucination program/STATUS.json, a single file, overwritten in
place every collection loop (do NOT create dated copies; a stable path = stable Drive
file id = Claude Science can pin it). Keep it well under 10 MB (it's a few KB) so the
Drive connector can pull it. An example with the exact schema ships alongside this spec
as STATUS.example.json.
One-time: after the first write, send Claude Science the file's Drive id so it can pin it and skip title-search on every pull.
Schema (keys Claude Science reads)
updated_at,loop, freshness. Ifupdated_athasn't moved, nothing changed.phases{}, per-arm state (armed|running|done|failed) + progress counters. Phase 0 carriesentities_done/total,claims_so_far,done_marker,outdir.pull_manifest[], the important part. One row per data product Claude Science might pull. Each row:product,drive_path,ready(true ONLY when every slice is uploaded),sliced,positions,n_claims/n_layers_plus1/hidden,labels_file,row_index,notes. Claude Science pulls a product only whenready:true, this is the signal that replaces "Casey, tell me when it's up."analysis_numbers{}, canonical metrics so the two agents never cite divergent numbers (e.g. the 0.943-concat vs 0.932-mean reconciliation).blockers[], anything waiting on a network/quota window.changelog[], append-only events; Claude Science diffs against its last pull.
Rules that make it collision-free
- Overwrite one file, never touch Claude Science's artifacts or workspace.
ready:trueis a promise: set it only after the LAST slice of a product finishes uploading, so a partial pull is impossible.- Data products stay in probe_pack sliced format (
L{LL}_{pos}_part{K}.npy+row_index.csv), each slice < 10 MB, otherwise Claude Science can't pull them at all. - Raw generated biographies (Phase 0) are irreplaceable, list their Drive path in the
manifest too (
labels_file/araw_genentry), not just the activations.
What this eliminates
Casey no longer pastes status. Claude Science, each network window: pull STATUS.json →
read changelog/pull_manifest → pull any newly-ready product → run analysis. The only
messages left are decisions, not relays.