Skip to content

Implementation Status — What's Deployed vs. Planned

Implementation Status — What’s Deployed vs. Planned

Section titled “Implementation Status — What’s Deployed vs. Planned”

!!! abstract “Why this doc exists” The whitepaper describes a target architecture with 16 companion docs and hundreds of capabilities across safety, security, observability, self-healing, memory, and more. Without a single source of truth for “what’s real vs. planned”, readers (including future-you) have to piece it together from retraction callouts, “TL;DR — deployed but largely unexercised” admonitions, and context. This doc is the flat answer: every named capability, its current status, a link to its whitepaper section, and a link to the tracking ticket (if any).

StatusMeaning
DeployedWorking in production today. Verified by repo inspection, cluster state, or smoke test.
PartialDeployed but with a named gap (e.g., memory pipeline is live but SAVE doesn’t work). Honestly acknowledged in the linked whitepaper section.
PlannedHas a concrete ticket or pair-mode session scheduled. Known scope.
DeferredNamed in the whitepaper as wanted-eventually but not scheduled. Trigger-based (e.g., “adopt when X happens”).
RejectedConsidered, documented rationale, explicitly not doing. Lives in the tool-choices ADR rejection list.
pie title Capabilities by status
    "Deployed" : 17
    "Partial" : 7
    "Planned" : 32
    "Deferred" : 9
    "Rejected" : 13
View Mermaid source
pie title Capabilities by status
    "Deployed" : 17
    "Partial" : 7
    "Planned" : 32
    "Deferred" : 9
    "Rejected" : 13

Total tracked: 78 capabilities across 11 domains. Deployed + partial: 24 (31%). Planned + deferred: 41 (53%). The whitepaper is a multi-month-to-year vision, not a today snapshot. Partial-status rows are the honest-gap flags — they exist because reality isn’t as tidy as the design.

2026-04-21 update: Priority 1 of the whats-next whitepaper has landed ACs 1–4 of 5 (dangerous-command guard, git worktrees per task, GUARD_BLOCKED event projection, GitHub App 1h tokens with no PAT fallback). AC 5 (default-deny egress Cilium L7) is the remaining slice — it is the heaviest and needs cluster-side Cilium capability verification before starting. Four Safety/Security rows flipped from Planned → Deployed; one new row added below (GUARD_BLOCKED event type + projection).

Each table: capability → current status → whitepaper section → ticket / PR / repo evidence → notes.

CapabilityStatusWhitepaper sectionEvidenceNotes
rig-conductor event store (Marten/Postgres)Deployedarchitecture-current.mdrig-conductor namespace live29 event types defined (latest: GUARD_BLOCKED, PR #90), projections live. Public catalog at /events.md.
POST /api/events endpointDeployedarchitecture-current.mddashecorp/rig-conductorProduction-active
Assignment dispatch (GET /api/assignments/next)Deployedtrust-model.mdSource in MartenEventStorePriority + FIFO only, no capacity check
Review claim endpoint (GET /api/reviews/next)DeployedVerified exists at Program.cs:804README was stale about this
Per-consumer cursor projectionPlannedarchitecture-proposed-v2.mdPhase 3Replaces the earlier “per-pod capacity” framing
Agent subscription registry (YAML in rig-gitops)Plannedarchitecture-proposed-v2.mdPhase 3Topology validation at deploy time
Bounded-loop sentinel (ReviewLoopExceeded)Plannedarchitecture-proposed-v2.mdPhase 4Caps Dev-E/Review-E ping-pong
Escalation severity routing + StaleHeartbeatServicePlannedarchitecture-proposed-v2.md + self-healing.mdPhase 4
Error budget projectionPlannedobservability.md, self-healing.mdPhase 5
Attestation projectionPlannedsecurity.mdPhase 5Per-change cryptographic chain materialized
CapabilityStatusWhitepaper sectionEvidenceNotes
Dev-E (Node variant, active)Deployedarchitecture-current.mdapps/dev-e/rig-agent-helmrelease.yamlPrimary runtime, cron-dispatched every 5 min
Dev-E (dotnet variant)Partialarchitecture-current.mdHelmRelease exists, cron.enabled: falseFunctionally dormant. See cleanup recommendation.
Dev-E (python variant)Partialarchitecture-current.mdHelmRelease exists, likely dormant like dotnetSame shape as dotnet variant
Review-EDeployedarchitecture-current.mdapps/review-e/rig-agent-helmrelease.yaml
Spec-E (intake refiner)Plannedtrust-model.md, development-process.mdPhase 7Clarifier gate at issue intake
Architect-E (interface shaper)Plannedtrust-model.mdPhase 7High bar role for T2 interface design
Dev-E repair-dispatch modePlannedself-healing.mdPhase 7Not a separate agent — a Dev-E dispatch mode
CapabilityStatusWhitepaper sectionEvidenceNotes
Dangerous-command guardDeployedsafety.md, example-first-story.mdrig-agent-runtime/hooks/pretool-guard.sh; PRs #97, #98, #99Shipped 2026-04-20. 43 test cases. Activated by default via baked-in ~/.claude/settings.json. Blocks sudo / rm -rf system paths / git push —force / git reset —hard / destructive SQL / cluster-scope kubectl delete / package installers / chmod 777 / curl|sh. No override flag.
Git worktrees per agent taskDeployedarchitecture-proposed-v2.mdrig-agent-runtime/hooks/task-workspace.sh; PR #101Shipped 2026-04-21. Bare clone at _bare/<owner>/<repo>.git reused across tasks; worktree at tasks/<task-id>/<repo>/ per task. 17 test cases. Task prompt in stream-consumer.js now uses task-workspace create.
Default-deny egress NetworkPolicyPlannedsafety.md, security.mdPhase 0 (but needs Cilium L7)Heaviest AC left on rig-docs #57. Cilium L7 capability needs cluster-side verification first.
Hook reliability spoolPlannedarchitecture-proposed-v2.mdPhase 1At-least-once event delivery
StuckGuard middleware (5 patterns)Plannedsafety.md, architecture-proposed-v2.mdPhase 2OpenHands + Goose + Sweep convergence
Human Prime SessionStart hookPlannedarchitecture-proposed-v2.mdPhase 1For humans using Claude Code locally
CaMeL trust separation (privileged + quarantined)Plannedsafety.mdPhase 6Only prompt-injection defense with a formal guarantee
Schema-validated tool use (Pydantic / Instructor)Plannedsafety.mdNot yet tied to a phase; continuous as tools are added
CapabilityStatusWhitepaper sectionEvidenceNotes
SOPS + age + Flux inline decryptionDeployedsecurity.md, docs/sops.md.sops.yaml at repo root + every Kustomization uses decryption.provider: sopsThe right answer all along (verified via three rounds of retraction)
GitHub App installation tokens (1h TTL)Deployedsecurity.mdrig-agent-runtime/src/github-token.js; rig-gitops PR #119; rig-agent-runtime PR #103Shipped 2026-04-21. 1h installation tokens minted from App PEM, refreshed every 50 min. No PAT fallback when App mint fails (fail loud). GITHUB_PERSONAL_ACCESS_TOKEN env var removed from dev-e and review-e pods; SealedSecret key still present, prune at next rotation.
Sigstore image signing (cosign, keyless)Plannedsecurity.mdPhase 4
SLSA v1.0 L3 build provenancePlannedsecurity.mdPhase 4Via slsa-framework/slsa-github-generator
Gitsign commit signing (agent commits)Plannedsecurity.mdPhase 4Out-of-band CI verification, GitHub “Verified” gotcha documented
Kyverno admission policiesPlannedsecurity.md, trust-model.mdPhase 4Native Sigstore verification
Two-attestor T3 Kyverno policyPlannedsecurity.md, limitations.mdPhase 4Structural limit on 1-person rigs acknowledged
Cilium L7 egress allowlistPlannedsecurity.md, safety.mdPhase 0 (prerequisite to phase 2)Biggest ROI prompt-injection defense
cert-manager + trust-managerPlannedsecurity.md, tool-choices.mdTable stakes, non-controversial
Bitwarden human vaultDeployedtool-choices.mdIn team workflow
Mandatory 2FA on GitHubDeployedOrganization policyNot in whitepaper but worth tracking
CapabilityStatusWhitepaper sectionEvidenceNotes
OpenTelemetry CollectorPartialobservability.mdDeployed for rig-conductorAgents not yet emitting OTel GenAI spans
Claude Code native OTel emissionPlannedobservability.md, provider-portability.mdPhase 2Set CLAUDE_CODE_ENABLE_TELEMETRY=1 in agent pods
Langfuse self-hosted (or Phoenix on 8GB VM)Plannedobservability.mdPhase 2Conditional on VM size — Phoenix if we stay on 8GB
Local PrometheusPartialobservability.mdkube-prometheus-stack deployedNot yet source of truth for Flagger gates (Flagger not deployed yet)
Grafana Cloud Free ingestPlannedobservability.mdPhase 2OTel Collector → managed
SLO burn-rate alerts (Honeycomb pattern)Plannedobservability.md, self-healing.mdPhase 5
Cost dashboard (per-agent, per-task)Partialobservability.md, cost-framework.mdBasic cost tracking exists (TokenUsageProjection)No LiteLLM proxy yet, so no hard enforcement
CapabilityStatusWhitepaper sectionEvidenceNotes
TokenUsage event + projectionDeployedcost-framework.mdsrc/ConductorE.Api/Adapters/MartenProjections.csAggregates per agent × repo
LiteLLM proxyPlannedcost-framework.md, tool-choices.mdPhase 2Hard ceiling for per-key budgets
Per-agent virtual keys + budget capsPlannedcost-framework.mdPhase 2Depends on LiteLLM proxy
Pre-flight cost prediction (cheap model)Plannedcost-framework.mdPhase 2Haiku or local Ollama for estimation
Circuit breaker on 529 stormsPlannedcost-framework.mdPhase 2
Prompt caching (stable system prompts)Plannedcost-framework.mdPhase 2Claude Code does this automatically
Cross-provider fallback routing (LiteLLM fallback_models)Deferredprovider-portability.mdAdopt when we have multiple providers configured
CapabilityStatusWhitepaper sectionEvidenceNotes
Flagger canary deploysPlannedself-healing.mdPhase 5Flux-native progressive delivery
flagd + OpenFeature kill switchesDeferredself-healing.md, tool-choices.mdYAGNI — env vars + Kustomize cover today
pgroll expand/contract migrationsPlannedself-healing.md, tool-choices.mdPhase 5With inspectable SQL trail hedge
Reproduction harness (ephemeral namespace)Plannedself-healing.mdPhase 5 (Stage 2)Frontier work, honest
Repair-dispatch Dev-E modePlannedself-healing.mdPhase 5 (Stage 2)Confidence thresholds are calibration-gated
Kill-switch → rollback → forward-fix priority orderPlannedself-healing.md, principles.md (principle 3)Phase 5Principle says reversible before irreversible
Post-incident learning loopPlannedself-healing.mdPhase 5 (Stage 4, aspirational)
CapabilityStatusWhitepaper sectionEvidenceNotes
Nightly golden suite + regression casesPlannedquality-and-evaluation.mdPhase 2~$3-8/night, the regression gate
Weekly SWE-bench Pro subsetPlannedquality-and-evaluation.mdPhase 2~$20-40/week, trend line
Quarterly LiveCodeBenchDeferredquality-and-evaluation.mdCut first if budget tightens
Property-based test generation (Hypothesis)Plannedquality-and-evaluation.md, safety.mdPhase 2Label-gated, not every PR
LLM-as-judge sampling (10% T0, 100% T2)Plannedquality-and-evaluation.mdPhase 2
DORA metrics adapted to agentsPlannedquality-and-evaluation.mdPhase 2Lead time, CFR, rework rate, rollback rate
Inspect AI (UK AISI)Deferredtool-choices.mdEmerging pick, validate in Era 2
CapabilityStatusWhitepaper sectionEvidenceNotes
Model drift: 20-prompt canary suitePlanneddrift-detection.mdPhase 6Per-provider
Prompt drift: golden-suite regression on prompt changesPlanneddrift-detection.md, quality-and-evaluation.mdPhase 2Blocks merge on regression
Code drift: Flux reconciliation eventsPartialdrift-detection.mdFlux detects, not yet alerted-on
Config drift: Flux + kube-diffPartialdrift-detection.mdFlux detects
Kyverno policy drift detectorPlanneddrift-detection.mdPhase 4P0/P1 alerts for T3 policies
Memory drift: repeat-query canaryDeferredmemory.mdFifth channel, not yet in drift-detection.md
CapabilityStatusWhitepaper sectionEvidenceNotes
Postgres + pgvector storageDeployedmemory.mdThe conductor’s Postgres podCo-located with Marten
HNSW + GIN indexesDeployedmemory.mdSchema in rig-memory-mcp/db.js
OpenAI text-embedding-3-small embeddings (optional)Deployedmemory.mdOPENAI_API_KEY injectedSilent fallback to BM25-only if missing
search_memories MCP toolDeployedmemory.mdrig-memory-mcpHybrid vector + BM25
write_memory MCP toolPartialmemory.mdWorks when calledAgents rarely call it
save_pattern (auto via ### Learnings scrape)Partialmemory.mdPipeline existsBroken — agents don’t emit the section
mark_used (hit counter)Partialmemory.mdTool existsAgents don’t call it — metric is 0%
compact_repoPartialmemory.mdTool existsNo cron triggers it
Session-start memory LOADDeployedmemory.md[Stream] Loaded memory for <repo> in logs
4-tier scope enforcement (session/task/repo/global)Plannedmemory.mdAspirational today; soft-tagging in practice
hit_used real metric (citation-enforced or LLM-judge)Plannedmemory.mdCurrent metric is fiction
Advisor handoff protocolDeployedmemory.mdPR #71Prompt-level only, zero enforcement
Memory-write gate (validated writes + attestation)Plannedmemory.md (security section)Memory poisoning defense
Memory TTL pruning cronPlannedmemory.mdexpires_at column exists, no job
Memory compaction cronPlannedmemory.mdcompact_repo exists, no trigger
CapabilityStatusWhitepaper sectionEvidenceNotes
k3s on single GCP VM (8 GB)Deployedarchitecture-current.md, tool-choices.mdinvotek-k3s
KEDA event-driven autoscalingDeployedarchitecture-current.mdScaledObject per agent
FluxCD GitOpsDeployedarchitecture-current.mdrig-gitops → cluster
GitHub Actions + GHCRDeployedPer-repo CI, images published
Cloudflare Tunnel (rig-conductor.dashecorp.com)Deployedarchitecture-current.mdapps/cloudflared/
Discord agent channels + webhooksDeployedarchitecture-current.mdrig-conductor event listener posts
CapabilityStatusWhitepaper sectionEvidenceNotes
AGENTS.md cross-tool standardDeployedprovider-portability.md, architecture-current.mdAll repos import from rig-gitops/AGENTS.md
TaskSpec format (YAML)Plannedtrust-model.md, development-process.mdEra 2
Spec Kit .specify/ for multi-PR workDeferreddevelopment-process.md, provider-portability.mdAdopt for changes bigger than a single PR
Tier-classifier (T0/T1/T2/T3 policy engine)Plannedtrust-model.mdpolicy/blast-radius.yaml
Autonomy tier promotion projectionPlannedtrust-model.md, quality-and-evaluation.md20 successful runs, zero rollbacks pattern
Weekly 30-min quality review ritualPlanneddevelopment-process.mdMost load-bearing ritual
Process SLOs (PR lead time, rework rate, etc.)Planneddevelopment-process.mdIncluding T2 approval turnaround
Mermaid CI check on every PR touching .mdDeployed.github/workflows/mermaid-check.ymlShipped in rig-gitops#54

Rejected (explicitly considered and not pursuing)

Section titled “Rejected (explicitly considered and not pursuing)”
CapabilitySource of rejectionWhy
HashiCorp Vaulttool-choices.mdBSL license, IBM ownership, 3-node HA operational cost; OpenBao is the fork we’d adopt if we ever needed Vault-class
SealedSecretstool-choices.md retraction logNever deployed; SOPS was always the pick
Argo Rollouts (with Flux)tool-choices.md, self-healing.mdFights Flux field reconciliation; Flagger is Flux-native
Unleash (OSS)tool-choices.mdReached OSS EOL 2025-12-31
LaunchDarklytool-choices.mdSaaS-only, overkill for 1-2 person team
Dopplertool-choices.mdSaaS-only, Doppler outage = our deploy outage
Keptntool-choices.mdCNCF-archived 2025-09-03
Reshape (Postgres migrations)tool-choices.mdSingle-author project, bus factor 1
microVMs (Firecracker/e2b/Daytona)tool-choices.mdWrong threat model for internal rig
Full self-hosted LGTM stack on 8GBtool-choices.md, observability.mdMemory-starves the rig
HSM-backed PGP signingtool-choices.mdKeyless Sigstore is better for our threat model
OPA Gatekeepertool-choices.mdRego operational cost; Kyverno YAML wins at small team
Pr-workflow-guard (Gastown pattern)architecture-proposed-v2.mdBlocks gh pr create — opposite of our PR-based model

Today (v1 — manual):

  1. On new ticket: add a row to the relevant domain table with Status: Planned and a link to the ticket
  2. On PR merge: update the row — PlannedDeployed (or Partial if known gap). Update Evidence column with the merge commit SHA or live resource path
  3. On retraction: update status. Add an honest note if the capability was reduced in scope
  4. Weekly review ritual (development-process.md): include a 5-minute status-doc scan. Is anything stale? Any ticket that’s moved past its status? Any capability without a row that should have one?
  5. Monthly: validate Evidence column for 5 random deployed rows — kubectl get, grep the repo, or similar. Catches doc-vs-reality drift.

A GitHub Action that queries issues with whitepaper:* labels, aggregates by domain, regenerates the tables in this doc, commits back. Requirements:

  • Label convention: every issue implementing a whitepaper capability gets a label like whitepaper:safety/stuck-guard (domain / capability slug)
  • Front-matter source: a capabilities.yaml that lists all capabilities with their canonical whitepaper-section link, so rows persist even when no issue exists
  • Action: cron-weekly or on-issue-update, merges the live GitHub Issues state into the YAML, regenerates the markdown tables

Effort estimate: ~1-2 days. Worth it when this doc has accumulated enough content that manual maintenance starts slipping — probably after 40+ tracked capabilities reach Deployed/Partial status.

Live status from cluster state + rig-conductor event store, not from this doc. “Capability X is Deployed” verified by presence of the resource (HelmRelease exists, Kyverno policy applied, Flagger Canary running). Drift between claimed and actual state surfaces as an alert. This is the full-fidelity version; worth pursuing once the rig can reliably inspect itself.

  • Not a roadmap. The roadmap lives in index.md’s Phase 0-7 Gantt. This doc tracks status per capability; the roadmap sequences them.
  • Not a substitute for the whitepaper. Each row links to the authoritative whitepaper section. The status tells you whether it’s real; the whitepaper tells you what it is and why.
  • Not a change log. Retractions and evolutions live in each doc’s own retraction log (especially tool-choices.md). This doc is a snapshot of current reality.