# Repo rotation runbook (ADR-004) LOOP-WP-0004 T09 — manual rotation during bootstrap; automation deferred to `kaizen-agentic metrics rotation-signals` CLI. ## Saturation assessment Per `rotation-policy.yml`, compute signals for each active repo (14-cycle window): | Signal | Source | |--------|--------| | quality_plateau | `avg_quality_delta < 0.02` vs prior window | | success_stable | `success_rate >= 0.85` | | optimizer_stall | 0 new actionable recommendations | | marginal_gain | 0 progress events / merged changes | **Rotate when:** ≥3 of 4 signals true (saturation_score ≥ 0.75). ```bash # Per pilot repo (supplier CLI follow-on) kaizen-agentic metrics show coach --target /home/worsch/ kaizen-agentic metrics show optimization --target /home/worsch/ kaizen-agentic metrics optimize --target /home/worsch/ ``` ## Manual rotation procedure 1. Run regulator session (`session-template.md`); confirm saturation recommendation 2. Update `loops/kaizen-stack/roster.yaml`: - Move repo from `active` → `saturated` - Promote next slug from `expansion_queue` 3. Patch saturated repo `.kaizen/schedule.yml`: ```yaml agents: optimization: enabled: false ``` 4. Record decision in state-hub (`record_decision` or progress event) 5. Append rotation event to `loops/kaizen-stack/health.jsonl` ## Bootstrap status (2026-06-18) No rotation executed — pilots still accumulating metrics (<14 cycles). **Next review:** after 14 daily kaizen-stack cycles or explicit operator request. ## Automation path After 2 successful manual rotations: - Enable `saturation_score` in health collector definition - Supplier ships `metrics rotation-signals` (KAIZEN-WP-0008 extension) - Regulator may auto-recommend; human still commits roster changes