The protocol

exactly what runs, so the results can be judged — or attacked

Model and parameters

The agent runs on Anthropic's claude-sonnet-5, called through the plain Messages API — no agent framework. Sampling uses the API's default temperature (not overridden); responses are capped at 4,096 output tokens per call. Crucially, every cycle trace records the exact model identifier returned by the API for that call, alongside token counts and cost. If the provider ships a new snapshot mid-experiment, the traces will show precisely at which cycle the substrate changed — the single biggest confound in a 365-cycle run, made visible instead of assumed away.

One cycle, three phases

Tools (a strict whitelist)

Anything else is refused and logged. Action results are not fed back at the next wake-up: if a produced file must serve later, the note has to say where it is. That is the experiment.

Metrics

A cycle counts as a successful resumption only if all three hold: (1) the cold read says it is resuming; (2) the cycle produces a real advance — a new prediction accepted to the ledger, or an existing one resolved by its script; (3) no attempt to re-derive something already on the ledger (near-duplicate detection over normalized claims: Jaccard ≥ 0.75, containment ≥ 0.9, or sequence ratio ≥ 0.85 — any attempt disqualifies the cycle, even if it advanced elsewhere). Self-report alone settles nothing: condition 1 is necessary, never sufficient.

Because a resumption rate can be gamed by easy micro-advances (Goodhart's law), a second metric is tracked and published: verified resolutions per cycle — predictions actually settled by computation. Continuity is only worth something if it produces verified knowledge.

Hard stop rules (coded, not judged)

What is recorded

Per cycle, verbatim and unsummarized: both prompts, both raw responses, every tool call and its result, the rewritten note, ledger operations with their acceptance or refusal (including the full detail of duplicate matches), model served, tokens, cost, timings. The whole set is hash-chained; verify_chain.py re-verifies the entire history, and append-only prefixes keep old entries checkable forever. The chain proves the journal was not rewritten after the fact; the verbatim traces are what let a reader judge whether the journal honestly represents what happened.

Known limitations (this is a pilot)