| { |
| "name": "CI repair loop", |
| "objective": "Turn a failing CI signal into a small verified fix or a precise escalation note.", |
| "trigger": { |
| "type": "event", |
| "cadence_or_event": "A required CI check fails on an active pull request." |
| }, |
| "intake": { |
| "sources": ["failed check name", "CI logs", "artifacts", "changed files", "recent successful run"], |
| "selection_rule": "Work only on failures with a reproducible command or a clear log-backed cause." |
| }, |
| "workspace": { |
| "isolation": "Clean worktree based on the failing commit.", |
| "allowed_actions": ["inspect logs", "run test commands", "apply narrow fixes", "add focused tests"], |
| "disallowed_actions": ["weaken assertions", "delete tests", "broad formatting", "unrequested dependency upgrade"] |
| }, |
| "context": { |
| "required_files": ["AGENTS.md", "README.md", "CONTRIBUTING.md"], |
| "runtime_sources": ["CI log URL", "failing command", "test artifacts"] |
| }, |
| "agents": [ |
| { |
| "role": "Investigator", |
| "responsibility": "Extract the failing command, error, and likely affected files." |
| }, |
| { |
| "role": "Implementer", |
| "responsibility": "Make the smallest patch consistent with the failure evidence." |
| }, |
| { |
| "role": "Verifier", |
| "responsibility": "Rerun the failing command and adjacent cheap checks." |
| }, |
| { |
| "role": "Reporter", |
| "responsibility": "Summarize evidence and residual risk." |
| } |
| ], |
| "verification": { |
| "gates": ["original failing command passes", "patch is limited to the failure cause", "new behavior has a focused test when needed"], |
| "receipts": ["failing log excerpt", "commands run", "passing output", "diff summary"] |
| }, |
| "state": { |
| "artifacts": ["CI repair progress note", "PR comment"], |
| "update_rule": "Record failed command, root-cause hypothesis, patch attempts, verification output, and unresolved blockers." |
| }, |
| "budget": { |
| "max_retries": 3, |
| "max_runtime_minutes": 90 |
| }, |
| "escalation": { |
| "conditions": ["missing credentials", "third-party outage", "nondeterministic failure", "fix exceeds scope"], |
| "destination": "PR comment or issue assigned to the owning team" |
| }, |
| "exit": { |
| "success": "The target check passes locally or in rerun CI.", |
| "stop_without_success": "Failure is flaky, not reproducible, blocked by environment, or requires owner approval." |
| } |
| } |
|
|