CI autopilot worker/runtime - detects GitHub Actions failures and inventories queued repair issues via a Python agent
ci-autopilot packages the worker/runtime side of the platform. It monitors GitHub Actions workflows, detects failures, and exposes them through an issue queue. The current Python worker is deliberately read-only: it inventories queued issues on a self-hosted runner. Autonomous repair dispatch and queue state transitions are not implemented yet.
The agent (agent/poll_once.py) is a Python 3.12 stdlib-only program that polls the issue queue and lists queued repair tasks for operator visibility. No external dependencies are required.
autopilot-coreis the control plane for org-level scheduling, rollout, and PR governance.ci-autopilotis the worker/runtime implementation for runner execution and read-only queue polling.autopilot-demois the demonstration target used to show the runtime and control plane working together.
flowchart LR
A["GitHub Actions\nfailure detected"] --> B["autopilot-failure-intake\n(intake workflow)"]
B --> C["Issue queue\n(runner-offline label)"]
C --> D["agent/poll_once.py\n(Python 3.12)"]
D --> E["Operator visibility\n(read-only inventory)"]
E -. "future guarded dispatcher" .-> F["PR-only repair path"]
Core components:
- autopilot-failure-intake.yml - Intake workflow triggered on
workflow_runfailure events; creates a queued issue - autopilot-create-issue.yml - Creates GitHub issues via
actions/github-scriptwhen monitored workflows fail - fixer.yml - Runs the read-only
agent/poll_once.pyqueue inventory on the self-hosted Windows runner - agent/poll_once.py - Python 3.12 stdlib agent; validates repository input and inventories the issue queue
- runner-smoke-test.yml - Smoke tests the self-hosted runner on demand
- runner-health.yml - Scheduled and on-demand runner health check
- Deliberately small runtime surface: Python 3.12 stdlib-only agent for easier audit and rebuild.
- Clear separation of concerns: issue intake and governance stay in the control plane; worker execution and future guarded repair dispatch stay on the worker boundary.
- Self-hosted runner model supports enterprise network boundaries, managed toolchains, and least-privilege token handling.
- Queue-driven intake creates an auditable handoff between CI failure detection and operator review.
# Prerequisites: Python 3.12 and authenticated GitHub CLI
$env:GH_TOKEN = gh auth token
python -m agent.poll_onceThe worker only reads and lists queued issues. It does not execute issue content, mutate repositories, or dispatch Codex.
For full runner registration, service setup, and local development instructions see the Setup Guide wiki page.
- Read docs/control-plane.md for the issue-queue contract with
autopilot-core. - Use docs/runner-setup.md to provision the worker host.
- Use docs/operations.md and docs/troubleshooting.md for day-2 support.
| Source | Description |
|---|---|
| docs/architecture.md | System architecture and design goals |
| docs/runner-setup.md | Runner registration and service setup |
| docs/operations.md | Day-2 operations runbook |
| docs/security.md | Security posture and access model |
| docs/control-plane.md | Failure intake and issue control plane |
| docs/troubleshooting.md | Lightweight troubleshooting guide |
| GitHub Pages | Professional docs landing page |
Wiki: Home | Setup Guide | Architecture | Configuration Reference
Part of the Coding-Autopilot-System ecosystem alongside the adjacent autopilot repos: autopilot-core | autopilot-demo