Skip to content

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 integrationrig-tools hooks 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_APPROVEDISSUE_ASSIGNEDWORK_STARTEDBRANCH_CREATEDPR_CREATEDCI_PASSED/CI_FAILEDREVIEW_ASSIGNEDREVIEW_PASSED/REVIEW_DISPUTEDMERGEDISSUE_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

git clone git@github.com:Stig-Johnny/rig-tools.git
cd rig-tools && ./install.sh

Creating work for the rig

gh issue create --repo Stig-Johnny/<repo> --title "feat: ..." --label "agent-ready"

Monitoring

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)