An Opus-perspective semantic re-audit (reading state-machine semantics,
event-sourcing invariants, and baseline together rather than grep-style
structural checks) surfaced two issues the prior seven rounds missed.
O2 [P1] §5.4 + §20.4: removed the event-less `starting → running` status
transition. The prior R1-02 fix eliminated the same-event atomicity error
but left a second status-machine arc that (a) has no basis in baseline
(event-registry §3 says agent.started inserts status = running OR starting,
with no second transition) and (b) had WorkerManager UPDATE agents.status
directly, bypassing the event log and violating runtime-semantics §3
(all same-session domain updates go through BEGIN→insert events row→
project→COMMIT). agents.status is now written only by agent.* projection;
worker.ready handshake is clarified as a live IPC signal, not a status write.
O1 [P2] §5.4: MemoryRepository (an orphan name appearing exactly once,
never defined in §4.3/§11.3/contracts/code-view) corrected to
LearnedMemoryStore, matching §11.3 and the §21.3 traceability matrix.
Detailed design re-frozen with these corrections.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>