# Topology Mutation And Seat Management

Use when changing a rig while it is alive, `rig grow` / `rig expand` / `rig shrink` /...

- Repository: https://github.com/mvschwarz/openrig (8541 stars)
- Category: Business
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add mvschwarz/openrig --skill topology-mutation-and-seat-management -g -a claude-code -y`
Codex: `npx skills add mvschwarz/openrig --skill topology-mutation-and-seat-management -g -a codex -y`
Cursor: `npx skills add mvschwarz/openrig --skill topology-mutation-and-seat-management -g -a cursor -y`
Gemini CLI: `npx skills add mvschwarz/openrig --skill topology-mutation-and-seat-management -g -a gemini-cli -y`

## Description

Use when changing a rig while it is alive, `rig grow` / `rig expand` / `rig shrink` / `rig launch` / `rig remove` / `rig discover` / `rig bind` / `rig adopt` / `rig attach`. Covers the 4 failure modes (newly created seat lacks queue/startup/role; edges and permissions not updated; adopt/bind succeeds at tmux but not OpenRig identity; shrink/remove leaves stale topology references) and the rule that mutation must work while the rig is active, not just in clean fixtures.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Topology Mutation and Seat Management

The ability to change a rig **while it is alive**: expand, shrink,
launch, remove, discover, bind, adopt, and attach seats or sessions.
Seat management includes the **stable identifiers, edges, roles, and
startup context** that make those mutations coherent.

**OpenRig should be easy to reach for.** A user should be able to add
capacity, retire capacity, adopt an existing session, or attach a
terminal **without rebuilding the whole topology.** If mutation is
rarely tested, users avoid it and the product collapses back into
static launch scripts.

## Use this when

- Adding seats to a running rig (`rig grow <rig-id> <member...>` for the simple case, a fragment with `rig expand` or `rig add` otherwise; see below)
- Removing capacity (`rig shrink` / `rig remove`)
- Launching/relaunching a node in a running rig (`rig launch`)
- Binding a discovered session into an existing logical node (`rig bind`)
- Adopting a topology + binding live sessions (`rig adopt`)
- Attaching a shell or agent into a rig node (`rig attach --self`)

## Adding seats: `rig grow` first, a fragment when you need more

`rig grow <rig-id> <member...>` adds one or more seats to a running rig without
writing YAML. Each seat gets the default agent spec and its `default` profile.
Check `rig grow --help` on your installed version; at the time of writing:

- `--pod <pod>`: the target pod; inferred when the rig has one pod
- `--new-pod <pod>`: create a new pod for the seats (not together with `--pod`)
- `--runtime <runtime>`: one runtime for every named seat (default `claude-code`)
- `--cwd <path>`: one working directory for every named seat (default: the current directory)
- `--json`: output for agents

The rest: https://github.com/mvschwarz/openrig/blob/HEAD/packages/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md
