RigSpec
Published April 2026
File: rig.yaml · Version: "0.2" (pod-aware)
The canonical OpenRig reference for a multi-agent topology. A RigSpec defines pods, members, startup layering, cross-pod relationships, and optional managed services.
This page reflects the shipped pod-aware schema and validator behavior from the new `docs/reference/rig-spec.md` source of truth.
Minimal valid example
version: "0.2"
name: my-rig
pods:
- id: dev
label: Development
members:
- id: impl
agent_ref: "local:agents/impl"
profile: default
runtime: claude-code
cwd: "."
edges: []
edges: []A valid RigSpec needs a pod-aware topology, not just a flat list of agents.
What a RigSpec controls
Required. Must be `"0.2"` for the pod-aware RigSpec shape.
Required rig name used in session naming, snapshots, and spec-library lookup.
Optional human-readable description shown in review and library surfaces.
Optional safe relative path to a rig-wide culture or constitution file.
Optional supporting docs that travel with the rig and bundle.
Rig-level startup files and actions applied to every member through the layering model.
Optional managed services block for service-backed rigs and managed apps.
Required non-empty pod array. Pods are the bounded context units.
Optional cross-pod edges using fully-qualified `pod.member` IDs.
Pods and members
A pod is a bounded context group. It carries member definitions, pod-local edges, optional startup overlays, and an optional structured `continuity_policy`.
pods:
- id: dev
label: Development
summary: Implementation and QA pair
continuity_policy:
enabled: true
sync_triggers: [pre_compaction, pre_shutdown]
artifacts:
session_log: true
restore_brief: true
restore_protocol:
peer_driven: true
verify_via_quiz: falseA member binds an AgentSpec + profile to a runtime and working directory within the pod.
members:
- id: impl
agent_ref: "local:agents/impl"
profile: default
runtime: claude-code
cwd: "."
label: "Implementation Lead"
model: claude-opus-4-6
restore_policy: resume_if_possibleTerminal nodes are an exact special case
Infrastructure processes are represented as terminal nodes. The validator requires the exact triple below; any partial combination is rejected.
runtime: terminal agent_ref: "builtin:terminal" profile: none
Edges
Pod-local edges
Inside a pod, use unqualified member IDs.
pods:
- id: dev
members:
- id: impl
- id: qa
edges:
- kind: delegates_to
from: impl
to: qaCross-pod edges
Across pods, use fully-qualified `pod.member` IDs.
edges:
- kind: delegates_to
from: orch.lead
to: dev.impl
- kind: can_observe
from: rev.r1
to: dev.implFor the meaning and current runtime behavior of each edge kind, see Edge Types.
Startup, services, and continuity
Startup blocks can appear at rig, pod, and member level. Files and actions merge additively through the startup layering model.
The services block is how a rig becomes service-backed. In the current implementation, `kind: compose` is the supported path.
Continuity is now a structured object with triggers, artifacts, and restore protocol, not the older scalar `ha_pair` / `checkpoint_all` shape.
For authoring guidance on what should actually go into startup files, see Agent Startup Guide.
Validation highlights
Session naming
The canonical session name is {podId}-{memberId}@{rigName}. Example: pod dev, member impl, rig my-team becomes dev-impl@my-team.