Lock in the CCVS inter-turn surface design as final shipped state — UserPromptSubmit codex-findings-surface.py is the minimum-viable, lifecycle-correct, idempotent surface for closing the silent-WARN

Decision

Lock in the CCVS inter-turn surface design as final shipped state — UserPromptSubmit codex-findings-surface.py is the minimum-viable, lifecycle-correct, idempotent surface for closing the silent-WARN gap

Rationale

First-principles decomposition (thought d683c3f0) confirmed: the irreducible problem is “Codex writes to disk, Claude reads only on BLOCK or Stop”; the irreducible requirement is “hook fires between turns AND can inject context”; only UserPromptSubmit satisfies both. Minimum-complexity satisfies — no daemon, no IPC, no polling; filesystem .surfaced markers are sufficient idempotency. Three challenged assumptions all fell: PostWrite is wrong lifecycle phase, threshold-lowering is orthogonal axis, complex coordinator unnecessary. Premortem mitigations are all in the code (3500-char cap, 5s timeout, 24h freshness, keyword gate for daily summary). Confidence remains high because the design is provably the minimum surface — anything simpler doesn’t fire inter-turn, anything more complex isn’t earning its complexity.

Alternatives Rejected

Outcome

Pending