Engineering Rig¶
The Engineering Rig takes GitHub issues from backlog to merged PR with minimal human intervention. Event-driven, scale-to-zero, full lifecycle visibility.
Current Status¶
| Component | Status | Where |
|---|---|---|
| rig-conductor API | Running | Dell k3s, rig-conductor namespace |
| rig-conductor Bot | Running | Dell k3s, Rig Agent Runtime instance |
| Dev-E (Node) | Scale-to-zero | Dell k3s, dev-e namespace |
| Dev-E (Dotnet) | Scale-to-zero | Dell k3s, dev-e namespace |
| Dev-E (Python) | Scale-to-zero | Dell k3s, dev-e namespace |
| Review-E | Scale-to-zero | Dell k3s, review-e namespace |
| iBuild-E | Running | Mac Mini M4, launchd |
| KEDA | Running | Dell k3s, keda namespace |
| Valkey | Running | Dell k3s, rig-conductor namespace |
| PostgreSQL (Marten) | Running | Dell k3s, rig-conductor namespace |
| Dashboard | Live | rig-conductor.dashecorp.com |
Pipeline¶
Issue labeled "agent-ready"
→ GitHub webhook → rig-conductor
→ Reads .rig-agent.yaml → routes to dev-e-{stack}
→ KEDA wakes agent (0→1 in ~25s)
→ Agent implements → PR created
→ rig-conductor routes to Review-E → KEDA wakes
→ Review-E approves → rig-conductor merges
→ Issue done. Agents scale back to 0.
Full details: Architecture
Agents¶
| Agent | Role | Stack | Scaling |
|---|---|---|---|
| rig-conductor | Orchestrator — webhooks, events, merge, dashboard | .NET API | Always on |
| Dev-E (Node) | Implements issues — JS/TS repos | Rig Agent Runtime :node |
KEDA 0→1 |
| Dev-E (Dotnet) | Implements issues — C# repos | Rig Agent Runtime :dotnet |
KEDA 0→1 |
| Dev-E (Python) | Implements issues — Python repos | Rig Agent Runtime :python |
KEDA 0→1 |
| Review-E | Reviews all agent PRs | Rig Agent Runtime :node |
KEDA 0→1 |
| iBuild-E | iOS/macOS tasks (Xcode) | Mac Mini M4 | Always on |
| Human devs | Any AI tool via rig-tools |
Local machine | N/A |
Repos¶
| Repo | Visibility | Purpose |
|---|---|---|
| rig-agent-runtime | Public | Agent runtime, Dockerfiles, Helm chart |
| rig-conductor | Private | .NET API, event store, webhooks, dashboard |
| rig-gitops | Private | FluxCD manifests, KEDA, k8s config |
| rig-tools | Private | Developer hooks, workflow sync, install.sh |
| infra | Private | Terraform — GitHub, Cloudflare, GCP |
Key Features¶
- Event-driven — all coordination via webhooks + Valkey streams, no polling
- Scale-to-zero — KEDA signal list pattern, zero cost when idle
- Multi-stack — Node, .NET, Python images with runtime tool install
- Full visibility — dashboard with event timeline, execution logs, cost tracking
- Human integration —
rig-toolshooks report to same pipeline as AI agents - rig-conductor merges — waits for CI, checks labels, squash merges via API
- Iteration loop — Review-E requests changes → Dev-E fixes → re-review → merge
Event Store¶
PostgreSQL with Marten. 32 event types tracking the full lifecycle:
ISSUE_APPROVED → ISSUE_ASSIGNED → WORK_STARTED → BRANCH_CREATED → PR_CREATED → CI_PASSED/CI_FAILED → REVIEW_ASSIGNED → REVIEW_PASSED/REVIEW_DISPUTED → MERGED → ISSUE_DONE
Plus: HEARTBEAT, TOKEN_USAGE, AGENT_STUCK, ESCALATED, HUMAN_GATE_TRIGGERED
Execution Logs¶
Per-issue run history stored in Marten:
- Turns, tokens (in/out/cache-read/cache-write), cost, duration
- Step breakdown (assigned, implement, review, merge)
- PR link, agent ID, model used
- Retention: 30 days raw logs, 90 days summaries
Getting Started¶
New developer onboarding¶
Creating work for the rig¶
Monitoring¶
- Dashboard: rig-conductor.dashecorp.com
- Discord:
#tasksfor real-time updates
Infrastructure¶
| Resource | Value |
|---|---|
| Host | Dell k3s (100.95.212.93 via Tailscale) |
| GitOps | FluxCD via rig-gitops |
| Event Store | PostgreSQL 16 + Marten |
| Streams | Valkey (Redis) |
| Scaling | KEDA 2.16 |
| LLM Auth | 1-year Claude Max OAuth token |
| Resources | 1m CPU / 1Mi mem requests (all pods) |