Summary
When a Ralph Loop is active on a repo, CI failures on Ralph Loop PRs should be automatically diagnosed and fixed by the agent — without requiring manual intervention from Marc.
Current behavior
check_suite.completed events are globally skipped. CI failures on Ralph Loop PRs require Marc to manually notice and request a fix.
Desired behavior
When check_suite.completed fires with a failure on a branch belonging to an active Ralph Loop:
- Check if ralph-loop is active on that repo (open issue with
ralph-loop label)
- If active: Diagnose the failure:
- Run the project's CI commands locally (see CI Commands table in agent config)
- If local build passes → CI is an infrastructure problem (quota, flaky runner). Mark PR as "CI-clean locally, merge ready" and notify Marc briefly.
- If local build fails → Spawn a fix worker to resolve the actual code errors, push fix, re-trigger CI.
- If not active: Skip as before (no change to existing behavior)
Implementation notes
- This should be added to the Ralph Loop section in the agent's system prompt / skill
- The
check_suite.completed handler needs a conditional branch:
if ralph-loop active on repo:
→ diagnose + auto-fix
else:
→ skip (existing behavior)
- The software-architect skill should document this as a default capability when activating a Ralph Loop
- Applies to ALL projects when Ralph Loop is active (spacebot, mycelium, mitbeziehung.de, etc.)
Acceptance Criteria
Summary
When a Ralph Loop is active on a repo, CI failures on Ralph Loop PRs should be automatically diagnosed and fixed by the agent — without requiring manual intervention from Marc.
Current behavior
check_suite.completedevents are globally skipped. CI failures on Ralph Loop PRs require Marc to manually notice and request a fix.Desired behavior
When
check_suite.completedfires with a failure on a branch belonging to an active Ralph Loop:ralph-looplabel)Implementation notes
check_suite.completedhandler needs a conditional branch:Acceptance Criteria
check_suite.completedhandler checks for active ralph-loop before skipping