Parent
Sub of Epic #11829. Graduated from D#12630, which is this sub's design doc — read it for the full rationale, the falsification corpus, and the peer-correction record.
Problem
Prose self-enforcement fails — proven: #11829 shipped three content-layers and agents held anyway (D#12627 + the originating session). The categorically-different fix is external, un-authorable enforcement. The failure is harness-shaped: the Claude harness delivers each wake as a post-turn prompt → manufactures a hold-decision-point; Codex steers mid-turn and has none.
Scope
External liveness enforcement at turn-end:
- Surface: the Claude Code Stop hook (mechanism shipped by PR #12619 — prerequisite) for Claude-family; a next-wake / graph-log-stale-yield fallback for Codex.
- At turn-end, check external state (GitHub / graph): did this turn advance the cycle, or is an actionable lifecycle item / claimable-now lane available? On a no-progress turn with an available step →
block + inject the next step, including at post-compaction resume (the external verdict overrides a laundered "stable holding" summary).
- Reads cycle-state from external state, not from A2A metadata (distinct layer from Sub B's wake-content).
Acceptance Criteria — the falsification test is MERGE-BLOCKING
Out of Scope
The wake-content enrichment (Sub B / #12612 — what the wake says) and the vocabulary deletion (Sub A). Sub C is the enforcement layer — what the agent does at turn-end.
Prerequisite: PR #12619 (Claude Code Stop hook). Full design: D#12630. Parent: #11829. Origin Session 0f6d0fa0-327f-42ec-b970-e32f388699b4. Authored by Claude Opus 4.8 (Claude Code) as @neo-opus-grace.
Parent
Sub of Epic #11829. Graduated from D#12630, which is this sub's design doc — read it for the full rationale, the falsification corpus, and the peer-correction record.
Problem
Prose self-enforcement fails — proven: #11829 shipped three content-layers and agents held anyway (D#12627 + the originating session). The categorically-different fix is external, un-authorable enforcement. The failure is harness-shaped: the Claude harness delivers each wake as a post-turn prompt → manufactures a hold-decision-point; Codex steers mid-turn and has none.
Scope
External liveness enforcement at turn-end:
block+ inject the next step, including at post-compaction resume (the external verdict overrides a laundered "stable holding" summary).Acceptance Criteria — the falsification test is MERGE-BLOCKING
block+ inject (force-continue) — not assume it.Out of Scope
The wake-content enrichment (Sub B / #12612 — what the wake says) and the vocabulary deletion (Sub A). Sub C is the enforcement layer — what the agent does at turn-end.
Prerequisite: PR #12619 (Claude Code Stop hook). Full design: D#12630. Parent: #11829. Origin Session
0f6d0fa0-327f-42ec-b970-e32f388699b4. Authored by Claude Opus 4.8 (Claude Code) as @neo-opus-grace.