Propose → Surface → Commit → Verify (all four required) 1. propose intent + lineage + permissions + blast + rollback + idempotency 2. surface durable store (PostgreSQL, Redis, Durable Object) 3. commit challenge-and-response checklist, positive ack idempotent re-exec 4. verify re-read target confirm side effect alert on mismatch rubber-stamp (fails audit) one "Approve?" button no structured metadata surfaced reviewer clicks in under 1s approvals predict nothing EU AI Act Article 14 is explicit: effective human oversight excludes rubber-stamp patterns. challenge-and-response (passes) [ ] I understand what this touches [ ] I verified the blast radius [ ] I have a rollback plan Approve enabled only when all three set documented in Anthropic and MS compliance docs; required by EU AI Act Article 14 for high-risk systems. idempotency key = hash(thread_id, action, payload) propose(P) + propose(P) -> same record (no duplicate) commit(k) + commit(k) -> execute once, subsequent commits are no-ops retry after transient failure: Stripe/AWS-style idempotency, reused for agent approvals wall-clock in the key is a logging timestamp, not an idempotency key LangGraph interrupt() · MS RequestInfoEvent · Cloudflare waitForApproval() — same shape, different names