8806de1628
Store 2 (Fixes): ConceptCompilerProjection already tracked the unconfirmed(validatedFixes>=1)/falsified(contradicted)/confirmed(promoted) lifecycle as data, but only confirmed (>=threshold) clusters were ever delivered. unconfirmedFixEntries reactively matches the CURRENT retry's classKey against that state and injects a soft one-shot hint (below threshold) or steer-away (contradicted) before hard promotion — wired into stage context build in SessionOrchestratorExecution.kt. Store 3 (Plan-shapes): already shipped as SessionOrchestratorPlanPatterns.kt (deterministic keyword-Jaccard over eventStore.allEvents(), no embedder needed) — confirmed complete, no new code required. FileReadTool hot-path extension to Store 1: a whole-file read now primes the cross-session ObservationStore (when wired) the same way the write path already does, so a later describeCached lookup for the same content hash is warm even if the file was only read, not written, this session.