| The inner circuit |
| Review↔fix controller | per push | verified weighted error + confidence trajectory | fix worker re-dispatch | budget 3–8 → named-finding escalation |
| Review-loop watchdog | 10 min | push/review timestamps in fix cycles | nudge dead channels, re-trigger lost reviews (SHA-dedup) | 2 nudges → needs-human |
| Eval gate | per output | judge rubric score | regenerate with feedback | 2 retries → escalate with transcript |
| Workers & dispatch |
| Worker-timeout healer | 10 min | timeouts via Loki, 9 root-cause classes | WAL checkpoint · cancel · CPU throttle | acts ≥ 2 timeouts, per-cause cooldown |
| Progress liveness | per sweep | rising tool calls, not wall clock | alive / stalled (5 min) / dead (30 min) verdicts | feeds healer & preemption |
| Dispatch reconciliation | 5 min | ack without PR/branch | reconcile or re-dispatch | unreconcilable → escalate |
| Implementation resume | 15 min | 'implementing' with no PR, no worker | re-dispatch until a PR exists | then human |
| Stuck-issue observer | 15 min | dispatched ticket silent ≥ 90 min | exactly one re-dispatch | 1 re-dispatch → needs-human + page |
| Merge & cascade |
| Project cascade | 10 min | wave completion + system health | unblock next wave | health red → block + page |
| Acceptance gate | on cascade | exit code of the epic's acceptance command | label + gate epic closure | infra failure → blocked, terminal until human |
| Closure gate | on close | acceptance criteria of bot-closed issues | bounded reopen | 1 reopen → needs-human |
| Merge-readiness shepherd | 6 h | approved-but-blocked PRs | branch update, re-trigger CI | true conflict → named files + needs-human |
| Transport & deploy |
| Webhook reconciler | 10 min | GitHub delivery status | redelivery | 4 attempts → single page |
| Infrastructure watchdog | 5 min | HTTP/TCP health, OAuth expiry, inodes | alert → triage → self-heal | unresolved → page |
| Deploy drift monitor | hourly | live DAGs vs deploy manifest | drift alert | 0 out-of-band edits tolerated |
| Post-deploy canary | after deploy | live canary checks | FAIL verdict | page; a deploy proves itself in prod |
| Merge-reached-production | hourly | main HEAD vs deployed commit + smoke checks | reconciliation alert | silent deploy block → loud failure |
| Meta & grounding |
| DAG-failure observer | 30 min | FAILED runs + diagnosis classifier | retry infra flakes · ticket code errors · page auth | 3 tickets, 5 retries per sweep; never itself |
| Coherence auditor | 4 h | contradictions across the dashboard's own payloads | propose only | human or meta-observer disposes |
| Meta-observer | event + 4 h | every needs-human escalation | resolve resolvable classes, brief the rest | 1 re-dispatch → human; modes off/dry_run/active |
| Post-merge outcomes | daily | reverts, CI failures, hotfixes after merge | outcome log + benchmark proposal | revert → page |
| Confidence calibration | weekly | Brier score, reliability per decile | empirical recalibration mapping | overconfidence gap > 0.25 → page |