← all features · evolve-loop explainers

Chronicle

Closing the lesson-to-action gap: what the loop learned yesterday must shape what it plans today.

How it works today

cycle outcomesdossiers · failures · recurrences
digest writerrecurrence.BuildIndex → WriteDigest
run workspaceseeded at cycle start
scout + triage promptsrecent_outcomes block

At cycle start, a digest of the last N cycles — what shipped, what failed, what keeps recurring — is written into the run workspace (best-effort: a digest failure warns, never blocks). At the enforce stage the digest is injected into scout and triage prompts, positioned after the stable prompt prefix so LLM caching stays warm. Planning now sees history.

Why it exists, and how it got built

The canonical meta-defect of this repo: retrospectives kept writing precise diagnoses — "7th occurrence of this pattern" — into lesson files that no planning phase ever read. Signals were captured and then rotted. The chronicle campaign is the delivery mechanism:

Cycle(s)SliceStory
698 → 702 PASSs2 digest writer (recurrence/digest.go)The crash orphan: the Jul-11 power loss killed cycle 698 mid-scan; the recovered fleet re-picked the task and landed it in its first healthy wave
725 PASSs3 prompt wiring (cyclerun seeding, scout/triage injection)A digest nobody reads changes nothing — this slice makes it planning input
queueds6 escalation boundary · s7 historian · recurrence ledgerRepeated patterns should escalate weights automatically — the fleet-lane-provisioning-split FAIL ×4 is the standing test case
Live proof of the gap — the very week chronicle landed, three fresh instances appeared: a consumed-without-landing queue item, ~70 stale P0 failure echoes in carryover, and a task failing four times on one unrepaired acceptance gap. The digest makes these visible at plan time; the ledger (next slice) makes them act.

Generated by /evo:explain · sources: loop logs, cycle dossiers, ship commits, campaign plans.