--- id: ADR-003 title: Loop Cadence Ramp Policy status: accepted date: "2026-06-18" --- # ADR-003 โ€” Loop Cadence Ramp Policy ## Status Accepted ## Context Self-improvement loops need fast feedback while mechanics are unproven, but hourly fleet-wide execution creates task noise and operator fatigue. A explicit ramp policy is required before activity-core definitions are enabled. ## Decision All first-order loops (LOOP-WP-0001โ€“0003) follow a **three-phase cadence ramp** governed by the second-order loop (LOOP-WP-0004): | Phase | Cron | Entry | Exit (promote) | |-------|------|-------|----------------| | **bootstrap** | hourly | loop workplan `active` | 3 consecutive successful E2E cycles; `manual_rescues == 0` | | **stabilize** | daily | bootstrap exit + regulator approval | 14 daily cycles; `false_positive_rate < 0.2` | | **operate** | weekly | stabilize exit + regulator approval | โ€” (demote on sustained noise) | ### Demotion triggers (any one) - `false_positive_rate > 0.4` over 3 cycles - `manual_rescues >= 2` in 24 hours - Operator override (documented in state-hub decision) ### Authority - **Promotions:** LOOP-WP-0004 regulator session recommends; human commits `cadence.yml` - **Demotions:** regulator may create urgent task; human commits within 24h - **No autonomous cron changes** without a committed `cadence.yml` update ### Bootstrap batching (LOOP-WP-0003) Hourly registry hygiene uses **round-robin** (3 repos/hour), not full-fleet scan. ## Consequences - activity-core definitions ship with `enabled: false` until bootstrap smoke passes - Initial hourly crons are **time-boxed**; regulator must schedule first promotion review - Supplier ADR-005 weekly defaults are overridden by engagement `cadence.yml` during bootstrap ## Related - `INTENT.md` ยง Cadence Ramp Policy - `LOOP-WP-0004-loop-regulator.md` - `docs/decisions/DEC-002-event-vs-sweep-quality.md`