@openrig/cli 0.4.6 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/guidance/CULTURE-default.md +19 -0
- package/daemon/assets/guidance/openrig-start.md +20 -5
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +34 -22
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +11 -14
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +95 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +175 -105
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
- package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux-transport.js +8 -1
- package/daemon/dist/adapters/cmux-transport.js.map +1 -1
- package/daemon/dist/adapters/cmux.d.ts +9 -0
- package/daemon/dist/adapters/cmux.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux.js +21 -0
- package/daemon/dist/adapters/cmux.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +20 -4
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
- package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.js +100 -28
- package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +2 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +14 -0
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +12 -10
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +3 -2
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -1
- package/daemon/dist/domain/hosts/read-through.js +1 -1
- package/daemon/dist/domain/hosts/read-through.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +8 -5
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +3 -12
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +55 -13
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +23 -0
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/projection-lane.d.ts +7 -0
- package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
- package/daemon/dist/domain/projection-lane.js +28 -0
- package/daemon/dist/domain/projection-lane.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +19 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +46 -6
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +14 -10
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +33 -12
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +77 -4
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +152 -16
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/fleet-compose.js +1 -1
- package/daemon/dist/domain/review/fleet-compose.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +92 -67
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/review/proof-io.d.ts +2 -0
- package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
- package/daemon/dist/domain/review/proof-io.js +38 -0
- package/daemon/dist/domain/review/proof-io.js.map +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +15 -2
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +22 -1
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +57 -20
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +17 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +44 -0
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
- package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
- package/daemon/dist/domain/slices/qitem-membership.js +60 -0
- package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +157 -11
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.js +422 -45
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +71 -3
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +12 -11
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +61 -28
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +27 -10
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +74 -33
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts +3 -0
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +28 -0
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +10 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +26 -0
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +4 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/routes/mission-control.js +1 -1
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts +7 -0
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +6 -1
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +5 -1
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +9 -2
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +21 -10
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +141 -135
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/sessions.js +2 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts.map +1 -1
- package/daemon/dist/routes/slices.js +48 -38
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +62 -33
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +25 -11
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
- package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +2 -1
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +2 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
- package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
- package/daemon/specs/agents/shared/agent.yaml +5 -8
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +13 -1
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
- package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
- package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +25 -8
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +0 -5
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +1 -6
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
- package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
- package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
- package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
- package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +12 -2
- package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
- package/dist/bin-wrapper.d.ts.map +1 -1
- package/dist/bin-wrapper.js +3 -1
- package/dist/bin-wrapper.js.map +1 -1
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts +33 -0
- package/dist/cli-error.d.ts.map +1 -0
- package/dist/cli-error.js +94 -0
- package/dist/cli-error.js.map +1 -0
- package/dist/commands/config-init-workspace.js +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +17 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +24 -10
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/proof.js +1 -1
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +16 -2
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +103 -24
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +122 -0
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.js +2 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +118 -24
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts +37 -0
- package/dist/commands/slack.d.ts.map +1 -0
- package/dist/commands/slack.js +274 -0
- package/dist/commands/slack.js.map +1 -0
- package/dist/commands/ui.d.ts +1 -0
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +2 -0
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/up.js +1 -1
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +3 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +45 -14
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +6 -1
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +15 -6
- package/dist/host-registry.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.js +98 -0
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +57 -20
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
- package/dist/lib/scope-templates/bug-fix.md +1 -1
- package/dist/lib/scope-templates/implementation-prd.md +1 -1
- package/dist/lib/scope-templates/mission-notes.md +7 -2
- package/dist/lib/scope-templates/mission-placeholder.md +1 -1
- package/dist/lib/scope-templates/mission-progress.md +1 -1
- package/dist/lib/scope-templates/mission-release.md +1 -1
- package/dist/lib/scope-templates/placeholder.md +1 -1
- package/dist/lib/scope-templates/proof.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +1 -1
- package/dist/lib/scope-templates/research.md +1 -1
- package/dist/lib/scope-templates/slice-progress.md +1 -1
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +2 -2
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/slack/config.d.ts +41 -0
- package/dist/slack/config.d.ts.map +1 -0
- package/dist/slack/config.js +60 -0
- package/dist/slack/config.js.map +1 -0
- package/dist/slack/inbound.d.ts +75 -0
- package/dist/slack/inbound.d.ts.map +1 -0
- package/dist/slack/inbound.js +133 -0
- package/dist/slack/inbound.js.map +1 -0
- package/dist/slack/message.d.ts +26 -0
- package/dist/slack/message.d.ts.map +1 -0
- package/dist/slack/message.js +60 -0
- package/dist/slack/message.js.map +1 -0
- package/dist/slack/outbound.d.ts +39 -0
- package/dist/slack/outbound.d.ts.map +1 -0
- package/dist/slack/outbound.js +52 -0
- package/dist/slack/outbound.js.map +1 -0
- package/dist/slack/queue-bridge.d.ts +56 -0
- package/dist/slack/queue-bridge.d.ts.map +1 -0
- package/dist/slack/queue-bridge.js +114 -0
- package/dist/slack/queue-bridge.js.map +1 -0
- package/dist/slack/secrets.d.ts +21 -0
- package/dist/slack/secrets.d.ts.map +1 -0
- package/dist/slack/secrets.js +73 -0
- package/dist/slack/secrets.js.map +1 -0
- package/dist/slack/slack-api.d.ts +49 -0
- package/dist/slack/slack-api.d.ts.map +1 -0
- package/dist/slack/slack-api.js +110 -0
- package/dist/slack/slack-api.js.map +1 -0
- package/dist/slack/state-store.d.ts +62 -0
- package/dist/slack/state-store.d.ts.map +1 -0
- package/dist/slack/state-store.js +132 -0
- package/dist/slack/state-store.js.map +1 -0
- package/package.json +1 -1
- package/ui/dist/assets/{index-zrFqS7gL.js → index-DkNi0RT8.js} +184 -184
- package/ui/dist/assets/index-N-SdPj-I.css +32 -0
- package/ui/dist/index.html +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
- package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +0 -86
- package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +0 -158
- package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
- package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -113
- package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
- package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
- package/ui/dist/assets/index-CFqxa0zW.css +0 -32
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rig-bundles-and-shareable-artifacts
|
|
3
|
+
description: Use when authoring or installing a rig bundle (packaged, shareable artifact that instantiates an opinionated OpenRig topology + workflow), reasoning about the bundle vs extension boundary, or auditing a bundle for portability. Covers the 4 failure modes that prevent bundles from working anywhere but the operator's machine, and the inspect-before-install discipline.
|
|
4
|
+
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- bundle create
|
|
7
|
+
- bundle inspect
|
|
8
|
+
- bundle install
|
|
9
|
+
openrig:
|
|
10
|
+
stage: factory-approved
|
|
11
|
+
sibling_skills:
|
|
12
|
+
- rig-lifecycle
|
|
13
|
+
- topology-mutation-and-seat-management
|
|
14
|
+
- seat-scaling-and-specialization
|
|
15
|
+
- cross-host-rig-commands
|
|
16
|
+
- sidecar-operator
|
|
17
|
+
- specification-system
|
|
18
|
+
- extension-and-user-workspace
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Rig Bundles and Shareable Artifacts
|
|
22
|
+
|
|
23
|
+
A **rig bundle** is a packaged, shareable artifact that can instantiate
|
|
24
|
+
an opinionated OpenRig topology and workflow. It may include:
|
|
25
|
+
|
|
26
|
+
- rig specs
|
|
27
|
+
- agent specs
|
|
28
|
+
- workflow specs
|
|
29
|
+
- startup files
|
|
30
|
+
- skills or skill references
|
|
31
|
+
- operating-mode declarations
|
|
32
|
+
- proof expectations
|
|
33
|
+
- supporting fragments
|
|
34
|
+
|
|
35
|
+
**Shareable artifact** is broader than bundle: specs, bundles, skills,
|
|
36
|
+
workflows, and extensions can all be shared. A bundle is the packaged
|
|
37
|
+
form for "load this topology and way of working."
|
|
38
|
+
|
|
39
|
+
## Use this when
|
|
40
|
+
|
|
41
|
+
- Authoring a bundle from a proven lab pattern
|
|
42
|
+
- Installing a bundle (`rig bundle install <path>`)
|
|
43
|
+
- Inspecting a bundle before install (`rig bundle inspect <path>`)
|
|
44
|
+
- Reasoning about bundle vs extension boundary (bundle declares topology + workflow; extension adds behavior)
|
|
45
|
+
- Auditing a bundle for portability — does it work on a clean OpenRig environment, or only the author's machine?
|
|
46
|
+
|
|
47
|
+
## Don't use this when
|
|
48
|
+
|
|
49
|
+
- The work is a one-off topology you won't reuse. Specs alone are sufficient.
|
|
50
|
+
- The intent is to add runtime behavior (commands, views, dashboards). Use `extension-and-user-workspace`, not bundles.
|
|
51
|
+
- You want to ship a workflow as a daemon feature. Bundle is the path *before* daemon promotion.
|
|
52
|
+
|
|
53
|
+
## The bundle vs extension boundary (load-bearing)
|
|
54
|
+
|
|
55
|
+
| Concept | Declares | Example |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| **Bundle** | Rig shape + workflow ("load this topology and way of working") | A Velocity Team bundle |
|
|
58
|
+
| **Extension** | Behavior added to user workspace/runtime | A custom command, view, or dashboard |
|
|
59
|
+
|
|
60
|
+
Don't confuse them. A bundle is *opinionated content*; an extension is
|
|
61
|
+
*added behavior*. Both can be shareable artifacts, but they're
|
|
62
|
+
structurally distinct.
|
|
63
|
+
|
|
64
|
+
## Failure modes (4)
|
|
65
|
+
|
|
66
|
+
1. **A bundle works only on the operator's machine** because paths, providers, or credentials are implicit. Bundles must be self-describing for a clean OpenRig environment.
|
|
67
|
+
2. **A bundle includes too much local state and becomes a backup archive instead of a reusable artifact.** Bundle is the *intended shape*, not the current state of one specific install.
|
|
68
|
+
3. **A bundle declares topology but omits proof expectations or workflow mode.** Topology alone doesn't tell users what "working as advertised" means.
|
|
69
|
+
4. **Users cannot inspect what a bundle will create before installing it.** `rig bundle inspect` must show what will be created without side effects.
|
|
70
|
+
|
|
71
|
+
## Proof standard
|
|
72
|
+
|
|
73
|
+
Proof should:
|
|
74
|
+
|
|
75
|
+
1. Install the bundle into a **clean OpenRig environment**
|
|
76
|
+
2. Instantiate it
|
|
77
|
+
3. Verify the expected seats and workflow mode
|
|
78
|
+
4. Run a small smoke proof that the topology behaves as advertised
|
|
79
|
+
|
|
80
|
+
## Bundle path → product
|
|
81
|
+
|
|
82
|
+
Bundles are how proven lab patterns become reusable product experiences:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
local dogfood pattern
|
|
86
|
+
→ bundle (with manifest, parameterization, proof expectations)
|
|
87
|
+
→ installed by another user on clean OpenRig
|
|
88
|
+
→ opinionated workflow shipped without becoming a daemon feature
|
|
89
|
+
→ if dependable, graduate parts into core daemon
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
This is also how OpenRig can ship opinionated workflows **without making
|
|
93
|
+
every workflow a daemon feature.**
|
|
94
|
+
|
|
95
|
+
## See also
|
|
96
|
+
|
|
97
|
+
- `extension-and-user-workspace` skill — sibling primitive for user-owned behavior added to runtime; bundle vs extension boundary
|
|
98
|
+
- `specification-system` skill — rig specs / agent specs / workflow specs that bundles package
|
|
99
|
+
- `agent-starters` skill — bundles can include or reference Agent Starters
|
|
100
|
+
- `composable-priming-packs` skill — bundles can package priming packs
|
|
101
|
+
- `openrig-user` skill — `rig bundle create / inspect / install` CLI surface
|
|
@@ -2,18 +2,27 @@
|
|
|
2
2
|
name: rig-lifecycle
|
|
3
3
|
description: Use when reasoning about the rig lifecycle operations family (create / start / stop / resume / restore / snapshot / release / unclaim / destroy), reading or trusting `rig ps` / lifecycle projections after recovery, or designing proof for a lifecycle scenario. Covers the 4 failure modes (auto-restore creates partial rig; projections report healthier than reality; provider auth treated as impl work; resume succeeds for one runtime fails another) plus the restore-honesty rule (failed resume is FAILED loudly — no auto fresh fallback).
|
|
4
4
|
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- destroy
|
|
7
|
+
- down
|
|
8
|
+
- ps
|
|
9
|
+
- release
|
|
10
|
+
- restore
|
|
11
|
+
- restore-check
|
|
12
|
+
- resume
|
|
13
|
+
- snapshot
|
|
14
|
+
- unclaim
|
|
15
|
+
- up
|
|
5
16
|
openrig:
|
|
6
17
|
stage: factory-approved
|
|
7
|
-
last_verified: "2026-05-04"
|
|
8
|
-
distribution_scope: product-bound
|
|
9
|
-
source_evidence: |
|
|
10
|
-
Lifecycle Reboot/Recovery Scenario Matrix (Tier 1 complete; Tier 2
|
|
11
|
-
human-gated). Codex auth-refusal surfaces as attention_required.
|
|
12
18
|
sibling_skills:
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
19
|
+
- topology-mutation-and-seat-management
|
|
20
|
+
- seat-scaling-and-specialization
|
|
21
|
+
- cross-host-rig-commands
|
|
22
|
+
- sidecar-operator
|
|
23
|
+
- rig-bundles-and-shareable-artifacts
|
|
24
|
+
- specification-system
|
|
25
|
+
- extension-and-user-workspace
|
|
17
26
|
---
|
|
18
27
|
|
|
19
28
|
# Rig Lifecycle
|
|
@@ -53,7 +62,7 @@ states.
|
|
|
53
62
|
|
|
54
63
|
**Failed resume is FAILED loudly.** No automatic fresh fallback. Fresh
|
|
55
64
|
launch is **explicit follow-up only.** This is enforced architecturally
|
|
56
|
-
at the daemon level (per `
|
|
65
|
+
at the daemon level (per `architecture.md` §7 rule 15).
|
|
57
66
|
|
|
58
67
|
The locked restore-outcome vocabulary:
|
|
59
68
|
|
|
@@ -112,5 +121,7 @@ different claims; don't conflate.
|
|
|
112
121
|
|
|
113
122
|
- `openrig-user` skill — CLI surface for `rig up / down / restore / etc.`
|
|
114
123
|
- `openrig-operator` skill — operator-level discipline for OpenRig itself
|
|
115
|
-
- `seat-continuity-and-handover` skill — occupant-creation modes for restore (`resume` / `rebuild` / `fresh` / `failed`)
|
|
124
|
+
- `seat-continuity-and-handover` skill — sub-primitive: occupant-creation modes for restore (`resume` / `rebuild` / `fresh` / `failed`)
|
|
125
|
+
- `session-source-fork` skill — `forked` continuity outcome for fork-based restore
|
|
126
|
+
- `permission-and-capability-preflight` skill — provider-auth blocker → escalation path
|
|
116
127
|
- `openrig/docs/as-built/architecture/lifecycle-snapshot-restore.md` (product reference doc) — daemon enforcement of restore-honesty rule
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: session-source-fork
|
|
3
|
+
description: |
|
|
4
|
+
Use when authoring a rig spec member or `rig expand` payload that needs to start a new managed seat from a prior runtime conversation source — `session_source: { mode: fork, ref: { kind, value } }`. v1 supports `mode: fork` with `ref.kind: native_id` for Claude and Codex. The new seat persists a NEW post-fork token; the parent token is NEVER written onto the new seat. NOT for restoring an existing seat or for artifact-backed mental-model rebuild.
|
|
5
|
+
metadata:
|
|
6
|
+
openrig:
|
|
7
|
+
stage: factory-approved
|
|
8
|
+
sibling_skills:
|
|
9
|
+
- claude-compaction-restore
|
|
10
|
+
- mental-model-ha
|
|
11
|
+
- scope-recovery
|
|
12
|
+
- session-compaction-and-restore
|
|
13
|
+
- agent-startup-and-context-ingestion
|
|
14
|
+
- agent-starters
|
|
15
|
+
- composable-priming-packs
|
|
16
|
+
- seat-continuity-and-handover
|
|
17
|
+
- claude-compact-in-place
|
|
18
|
+
- pre-maintenance-agent-preservation
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# session_source Fork
|
|
22
|
+
|
|
23
|
+
`session_source` is a **member-level OpenRig field** that declares how a
|
|
24
|
+
newly-launched managed seat should derive its initial conversation
|
|
25
|
+
continuity from a prior runtime conversation source.
|
|
26
|
+
|
|
27
|
+
v1 supports one mode: **`fork`** — start a *new* managed seat from a
|
|
28
|
+
prior native runtime conversation source without claiming the original
|
|
29
|
+
seat continued.
|
|
30
|
+
|
|
31
|
+
The schema is runtime-neutral; implementation is runtime-specific (Claude
|
|
32
|
+
and Codex have their own native fork commands).
|
|
33
|
+
|
|
34
|
+
## Use this when
|
|
35
|
+
|
|
36
|
+
- Authoring a rig spec member that should fork from a prior session
|
|
37
|
+
- Authoring a `rig expand` payload with `session_source`
|
|
38
|
+
- Reasoning about whether to use `fork` vs `rebuild` vs `resume` vs `fresh` for a new seat
|
|
39
|
+
- Composing fork + handover (seat-handover-over-fork) — see `seat-continuity-and-handover` skill
|
|
40
|
+
|
|
41
|
+
## Don't use this when
|
|
42
|
+
|
|
43
|
+
- The seat is being **restored**, not created. Restore continues an existing managed seat. Fork creates a new seat.
|
|
44
|
+
- The continuity is **artifact-backed mental-model rebuild** (packet-derived understanding, not native runtime continuity). Use `mode: rebuild` (see `seat-continuity-and-handover` for the rebuild surface) — do NOT collapse fork into artifact-backed reentry; the distinction is load-bearing.
|
|
45
|
+
- The runtime is `terminal`. Terminal runtime rejects `session_source`.
|
|
46
|
+
|
|
47
|
+
## The shape (canonical YAML)
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
members:
|
|
51
|
+
- id: reviewer-2
|
|
52
|
+
runtime: claude-code # or "codex"; not valid on terminal
|
|
53
|
+
agent_ref: specs/agents/reviewer.yaml
|
|
54
|
+
profile: reviewer
|
|
55
|
+
cwd: .
|
|
56
|
+
session_source:
|
|
57
|
+
mode: fork
|
|
58
|
+
ref:
|
|
59
|
+
kind: native_id # v1 fork mode supports native_id only
|
|
60
|
+
value: "0b0165d7-cb4d-4650-90de-15c0a1ede9e6"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Rules:
|
|
64
|
+
- `mode` v1 only valid value: `fork`.
|
|
65
|
+
- `ref.kind` v1 supports `native_id` only. Schema rejects `artifact_path`, `name`, `last`, and `artifact_set` pre-launch with explicit deferred/weaker/wrong-mode error messages (see `packages/daemon/src/domain/rigspec-schema.ts` validateSessionSourceFork). Adapter-level refusal exists as defensive handling but should not be reachable in v1 because schema rejects first.
|
|
66
|
+
- `value` required for `ref.kind: native_id` in v1 (the only schema-accepted kind). Future-state value semantics for `artifact_path` / `name` / `last` are not active in v1 because schema rejects those kinds pre-launch.
|
|
67
|
+
- `rig expand` accepts the same shape so dynamically-added members can carry session-source attribution.
|
|
68
|
+
|
|
69
|
+
The primitive does NOT introduce a new top-level command. It flows
|
|
70
|
+
through existing rig spec and expansion pathways.
|
|
71
|
+
|
|
72
|
+
## State model
|
|
73
|
+
|
|
74
|
+
`session_source` is a **launch-time input**, not a long-lived stateful field:
|
|
75
|
+
|
|
76
|
+
1. **Declared** — present in member config or expansion payload
|
|
77
|
+
2. **Resolved** — at launch time, OpenRig resolves the `ref` against the runtime
|
|
78
|
+
3. **Realized** — runtime fork succeeds; new managed seat receives a **NEW** native continuity token (Claude session id or Codex thread id). OpenRig persists that NEW token. **Parent token is NEVER written onto the new seat.**
|
|
79
|
+
4. **Failed** — resolution or fork failed; seat not launched as a fork; clear error names the resolution step that failed
|
|
80
|
+
|
|
81
|
+
Once realized, `session_source` is essentially history. Restoring the
|
|
82
|
+
seat later is `restore` of the new seat, not re-fork-from-parent.
|
|
83
|
+
|
|
84
|
+
## Failure modes (5)
|
|
85
|
+
|
|
86
|
+
1. **Source session id not found** — runtime cannot resolve `native_id`. **Action**: emit error naming runtime + missing id; do NOT silently launch fresh. (Future-state note: when `artifact_path` is supported in a follow-up slice, it could become a candidate fallback for Claude; in v1 schema rejects `artifact_path` pre-launch so no fallback path exists.)
|
|
87
|
+
2. **Source artifact path missing** *(out of v1 scope)* — would apply once `ref.kind: artifact_path` becomes schema-accepted. v1 schema rejects this kind pre-launch.
|
|
88
|
+
3. **Unsupported runtime/kind combination** *(largely pre-empted in v1 by schema rejection)* — schema rejects all non-`native_id` kinds upfront. Adapter-level refusal exists as defensive handling but is not reached in v1.
|
|
89
|
+
4. **Fork launch failed after source resolution** — runtime command (`claude --resume <parent> --fork-session` or `codex fork <id>`) returned non-zero or hung. Preserve runtime stderr; do not record new seat as launched; do not write parent token onto seat.
|
|
90
|
+
5. **Persistence inconsistency** — fork succeeded but seat-token persistence cannot record new continuity token. **Internal failure**: seat is not considered launched until new token is durably written.
|
|
91
|
+
|
|
92
|
+
## Honest UX rule (verbatim)
|
|
93
|
+
|
|
94
|
+
The primitive must NOT report "restored the original agent" or "resumed
|
|
95
|
+
the original seat" or "snapshot." The correct framing is **"forked from
|
|
96
|
+
source session"** / **"started from prior conversation source."**
|
|
97
|
+
|
|
98
|
+
Negative-grep over adapter source confirms ZERO `restored` / `resumed` /
|
|
99
|
+
`snapshot` strings in fork code paths.
|
|
100
|
+
|
|
101
|
+
## Hard boundaries (do-not list; verbatim)
|
|
102
|
+
|
|
103
|
+
- **Do NOT introduce a new top-level command** (e.g., `rig fork`). The primitive flows through existing spec/expansion pathways.
|
|
104
|
+
- **Do NOT report "restored" / "resumed the original seat" / "snapshot"** in any UX surface.
|
|
105
|
+
- **Do NOT couple `session_source` to AgentSpec.** It's a member-level launch-time input.
|
|
106
|
+
- **Do NOT change `restore` semantics.** `session_source` creates a seat; `restore` continues an existing managed seat.
|
|
107
|
+
|
|
108
|
+
## Adapter command shape (shipped v1)
|
|
109
|
+
|
|
110
|
+
| Runtime | Command shape |
|
|
111
|
+
|---|---|
|
|
112
|
+
| Claude (`mode: fork` + `ref.kind: native_id`) | `claude --resume <parent-id> --fork-session` |
|
|
113
|
+
| Codex (`mode: fork` + `ref.kind: native_id`) | `codex... fork <parent-id>` |
|
|
114
|
+
| Terminal | Rejected at schema level |
|
|
115
|
+
|
|
116
|
+
Mutual exclusion between `resumeToken` (restore path) and `forkSource`
|
|
117
|
+
(fork path) is enforced at three layers in the daemon.
|
|
118
|
+
|
|
119
|
+
## Continuity outcome literals
|
|
120
|
+
|
|
121
|
+
| Outcome | When |
|
|
122
|
+
|---|---|
|
|
123
|
+
| `forked` | Fork succeeded; new seat has new native token; parent never written onto new seat |
|
|
124
|
+
| `fresh` | Fresh launch (no `session_source` declared) |
|
|
125
|
+
| `resumed` | Restore of existing managed seat |
|
|
126
|
+
| `failed` | Resolution or fork failed |
|
|
127
|
+
|
|
128
|
+
For `seat handover over fork` composition, the binding outcome is
|
|
129
|
+
independent (see `seat-continuity-and-handover` skill).
|
|
130
|
+
|
|
131
|
+
## Active-daemon caveat (live-runtime gap)
|
|
132
|
+
|
|
133
|
+
2026-04-30 live scale-out dogfood found: source checkout contained fork
|
|
134
|
+
support, but active daemon was running from a pre-fork commit. **Verify
|
|
135
|
+
the active daemon/runtime commit contains the fork path before live
|
|
136
|
+
proof.** Isolated daemon proof at the target commit can prove the
|
|
137
|
+
feature safely; live forked scale-out remains unproven until the active
|
|
138
|
+
daemon parity is verified.
|
|
139
|
+
|
|
140
|
+
## Currently shipped (v1) vs deferred
|
|
141
|
+
|
|
142
|
+
Shipped at openrig `c7b6df1` (2026-04-30):
|
|
143
|
+
- Schema accept/reject for full Honest Refusal Matrix
|
|
144
|
+
- Codec roundtrip (serialize → parse → normalize preserves `session_source` faithfully)
|
|
145
|
+
- Expansion path through `rig expand` member-input
|
|
146
|
+
- Adapter command shape for Claude + Codex `native_id`
|
|
147
|
+
- Persistence honesty (seat's `resume_token` is the NEW post-fork token; parent token NEVER written)
|
|
148
|
+
- Honest UX literal contract (`continuityOutcome: forked`)
|
|
149
|
+
|
|
150
|
+
Deferred:
|
|
151
|
+
- Tier 2 real-runtime fork proof (disposable Tart VM cycle, human-gated)
|
|
152
|
+
- Claude `artifact_path` mode (schema currently refuses with deferred message)
|
|
153
|
+
- Provenance columns (`parent_native_id` / `created_via` for queryable RSI consumer)
|
|
154
|
+
- Cross-host fork (source on host A, new seat on host B) — depends on `cross-host-rig-commands`
|
|
155
|
+
|
|
156
|
+
## See also
|
|
157
|
+
|
|
158
|
+
- `seat-continuity-and-handover` skill — sibling occupant-creation primitives (resume / fork / rebuild / fresh) + seat-binding (handover composes with fork)
|
|
159
|
+
- `agent-starters` skill — composes session_source fork into named reusable starting points
|
|
160
|
+
- `cross-host-rig-commands` skill — multi-host fork (deferred)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specification-system
|
|
3
|
+
description: Use when authoring rig specs, agent specs, workflow specs, startup/context fragments, operating-mode declarations, or designing the user spec library. Covers the 4 failure modes (spec instantiates topology but not workflow/mode; spec depends on local paths and fails on another host; agents modify specs as one-off files instead of preserving reusable intent; validation proves YAML shape but not whether topology can run) and the validation-vs-runtime-realization distinction.
|
|
4
|
+
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- agent
|
|
7
|
+
- bundle
|
|
8
|
+
- spec
|
|
9
|
+
- specs
|
|
10
|
+
openrig:
|
|
11
|
+
stage: factory-approved
|
|
12
|
+
sibling_skills:
|
|
13
|
+
- rig-lifecycle
|
|
14
|
+
- topology-mutation-and-seat-management
|
|
15
|
+
- seat-scaling-and-specialization
|
|
16
|
+
- cross-host-rig-commands
|
|
17
|
+
- sidecar-operator
|
|
18
|
+
- rig-bundles-and-shareable-artifacts
|
|
19
|
+
- extension-and-user-workspace
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Specification System
|
|
23
|
+
|
|
24
|
+
The declarative primitive family for OpenRig intent: **rig specs, agent
|
|
25
|
+
specs, workflow specs, startup/context fragments, operating-mode
|
|
26
|
+
declarations, and the user spec library that stores and reuses them.**
|
|
27
|
+
|
|
28
|
+
Specs are how humans and agents describe **repeatable topology and
|
|
29
|
+
behavior** without re-explaining it in chat. They are also shareable
|
|
30
|
+
artifacts: a user should be able to publish a spec or spec family so
|
|
31
|
+
another user can instantiate the same rig shape, role structure, or
|
|
32
|
+
workflow pattern.
|
|
33
|
+
|
|
34
|
+
**Without a dependable spec primitive, OpenRig depends on manual
|
|
35
|
+
startup prompts and tribal memory.** That blocks repeatability, product
|
|
36
|
+
demos, rig bundles, and autonomous rig construction.
|
|
37
|
+
|
|
38
|
+
## Use this when
|
|
39
|
+
|
|
40
|
+
- Authoring a RigSpec / AgentSpec / workflow spec
|
|
41
|
+
- Designing a startup/context fragment
|
|
42
|
+
- Reasoning about spec-library lifecycle (validation, sharing, upgrade semantics)
|
|
43
|
+
- Auditing a spec for portability (does it run on another host?)
|
|
44
|
+
- Distinguishing spec vs bundle vs extension cleanly
|
|
45
|
+
|
|
46
|
+
## Don't use this when
|
|
47
|
+
|
|
48
|
+
- The work is one-off and won't be reused. Manual rig assembly is fine for one-shot work.
|
|
49
|
+
- The intent is to package a topology + workflow as a shareable artifact. That's `rig-bundles-and-shareable-artifacts`.
|
|
50
|
+
- The intent is to add runtime behavior. That's `extension-and-user-workspace`.
|
|
51
|
+
|
|
52
|
+
## Failure modes (4)
|
|
53
|
+
|
|
54
|
+
1. **A spec can instantiate a topology but not the workflow or operating mode needed to use it.** Topology is necessary but not sufficient — workflow and operating mode must be declared too.
|
|
55
|
+
2. **A shared spec depends on local paths or hidden startup fragments and fails on another host.** Specs must be self-describing for portability.
|
|
56
|
+
3. **Agents modify specs as one-off files instead of preserving reusable user/library intent.** Specs are reusable; treating each instance as one-off destroys the primitive's value.
|
|
57
|
+
4. **Validation proves YAML shape but not whether the declared topology can actually run.** Structural validation is not enough; runtime realization is the real proof.
|
|
58
|
+
|
|
59
|
+
## Proof standard
|
|
60
|
+
|
|
61
|
+
Proof should:
|
|
62
|
+
|
|
63
|
+
1. Author a spec
|
|
64
|
+
2. Validate it (structural)
|
|
65
|
+
3. Install it (into spec library)
|
|
66
|
+
4. Instantiate it on a **clean OpenRig environment**
|
|
67
|
+
5. Show **both structural validation AND runtime realization**
|
|
68
|
+
|
|
69
|
+
Validation alone is insufficient.
|
|
70
|
+
|
|
71
|
+
## Spec / bundle / extension boundary
|
|
72
|
+
|
|
73
|
+
| Concept | Declares | Example |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| **Spec** | Topology / role / workflow shape (declarative intent) | `rig.yaml`, `agent.yaml`, `workflow.yaml` |
|
|
76
|
+
| **Bundle** | Spec(s) + supporting fragments packaged for shareable instantiation | A Velocity Team bundle |
|
|
77
|
+
| **Extension** | Runtime behavior added to user workspace | RigX command, custom view |
|
|
78
|
+
|
|
79
|
+
Don't conflate them. The contract should distinguish spec, bundle, and
|
|
80
|
+
extension cleanly.
|
|
81
|
+
|
|
82
|
+
## Currently shipped surfaces
|
|
83
|
+
|
|
84
|
+
OpenRig already has:
|
|
85
|
+
|
|
86
|
+
- RigSpec / AgentSpec authoring (`agent.yaml`, `rig.yaml` formats; see `openrig-architect` skill)
|
|
87
|
+
- Workflow specs (markdown/YAML files, daemon read-through cache via `workflow_specs` table; see `workflow-runtime` skill)
|
|
88
|
+
- Bundle/spec command surface (`rig bundle / spec / agent / specs ls/show/preview/add/sync/remove/rename`)
|
|
89
|
+
- Spec library (filesystem-backed at `packages/daemon/specs/` + `~/.openrig/specs/` per cli-reference.md)
|
|
90
|
+
|
|
91
|
+
Not yet shipped:
|
|
92
|
+
- Spec library lifecycle (validation, sharing, upgrade) treated as a first-class primitive
|
|
93
|
+
- Cross-host spec sharing
|
|
94
|
+
- Marketplace / public registry
|
|
95
|
+
|
|
96
|
+
## See also
|
|
97
|
+
|
|
98
|
+
- `openrig-architect` skill — RigSpec / AgentSpec authoring discipline
|
|
99
|
+
- `workflow-runtime` skill — workflow spec authoring + transactional-scribe contract
|
|
100
|
+
- `rig-bundles-and-shareable-artifacts` skill — bundle is the packaged form of specs
|
|
101
|
+
- `extension-and-user-workspace` skill — extensions add runtime behavior; specs declare intent
|
|
102
|
+
- `openrig/docs/reference/rig-spec.md` (product reference doc) — RigSpec format specification
|
|
103
|
+
- `openrig/docs/reference/agent-spec.md` (product reference doc) — AgentSpec format specification
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: topology-mutation-and-seat-management
|
|
3
|
+
description: Use when changing a rig while it is alive — `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.
|
|
4
|
+
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- adopt
|
|
7
|
+
- attach
|
|
8
|
+
- bind
|
|
9
|
+
- discover
|
|
10
|
+
- expand
|
|
11
|
+
- launch
|
|
12
|
+
- ps
|
|
13
|
+
- release
|
|
14
|
+
- remove
|
|
15
|
+
- shrink
|
|
16
|
+
- unclaim
|
|
17
|
+
- up
|
|
18
|
+
- whoami
|
|
19
|
+
openrig:
|
|
20
|
+
stage: factory-approved
|
|
21
|
+
sibling_skills:
|
|
22
|
+
- rig-lifecycle
|
|
23
|
+
- seat-scaling-and-specialization
|
|
24
|
+
- cross-host-rig-commands
|
|
25
|
+
- sidecar-operator
|
|
26
|
+
- rig-bundles-and-shareable-artifacts
|
|
27
|
+
- specification-system
|
|
28
|
+
- extension-and-user-workspace
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
# Topology Mutation and Seat Management
|
|
32
|
+
|
|
33
|
+
The ability to change a rig **while it is alive**: expand, shrink,
|
|
34
|
+
launch, remove, discover, bind, adopt, and attach seats or sessions.
|
|
35
|
+
Seat management includes the **stable identifiers, edges, roles, and
|
|
36
|
+
startup context** that make those mutations coherent.
|
|
37
|
+
|
|
38
|
+
**OpenRig should be easy to reach for.** A user should be able to add
|
|
39
|
+
capacity, retire capacity, adopt an existing session, or attach a
|
|
40
|
+
terminal **without rebuilding the whole topology.** If mutation is
|
|
41
|
+
rarely tested, users avoid it and the product collapses back into
|
|
42
|
+
static launch scripts.
|
|
43
|
+
|
|
44
|
+
## Use this when
|
|
45
|
+
|
|
46
|
+
- Adding capacity to a running rig (`rig expand <rig> <pod-fragment-path>`)
|
|
47
|
+
- Removing capacity (`rig shrink` / `rig remove`)
|
|
48
|
+
- Launching/relaunching a node in a running rig (`rig launch`)
|
|
49
|
+
- Binding a discovered session into an existing logical node (`rig bind`)
|
|
50
|
+
- Adopting a topology + binding live sessions (`rig adopt`)
|
|
51
|
+
- Attaching a shell or agent into a rig node (`rig attach --self`)
|
|
52
|
+
|
|
53
|
+
## Don't use this when
|
|
54
|
+
|
|
55
|
+
- The rig is being created fresh from scratch — use `rig up` (lifecycle, not mutation)
|
|
56
|
+
- The intent is to scale specifically (add specialized capacity) — use `seat-scaling-and-specialization` skill
|
|
57
|
+
- The intent is occupant replacement on a stable seat — use `seat-continuity-and-handover` skill
|
|
58
|
+
|
|
59
|
+
## Failure modes (4)
|
|
60
|
+
|
|
61
|
+
1. **A newly created seat lacks the queue, startup context, or role files it needs to operate.** Topology mutation creates the seat, but the seat needs more than a tmux session to be useful.
|
|
62
|
+
2. **Edges and permissions are not updated when a seat is added or removed.** Topology references go stale; later workflows route to nonexistent seats.
|
|
63
|
+
3. **Adopt/bind succeeds at the tmux/session layer but not at the OpenRig identity layer.** The session is attached but `rig whoami` doesn't know about it; downstream consumers see partial state.
|
|
64
|
+
4. **Shrink/remove leaves stale topology references that later workflows route into.** Cleanup is part of the operation, not an afterthought.
|
|
65
|
+
|
|
66
|
+
## Proof standard
|
|
67
|
+
|
|
68
|
+
Proof must cover **mutation while a rig is active**, not just in a
|
|
69
|
+
clean test fixture. The useful matrix:
|
|
70
|
+
|
|
71
|
+
| Operation | What to verify |
|
|
72
|
+
|---|---|
|
|
73
|
+
| Add seat | New seat has queue, startup context, role; `rig whoami` resolves it |
|
|
74
|
+
| Remove seat | Stale references cleaned; edges/permissions updated |
|
|
75
|
+
| Adopt existing session | tmux session bound at OpenRig identity layer; `rig whoami` reports correctly |
|
|
76
|
+
| Attach observer terminal | External CLI attachment recorded |
|
|
77
|
+
| Verify topology projections after each move | `rig ps --nodes` reflects current truth, not pre-mutation cache |
|
|
78
|
+
|
|
79
|
+
A clean-fixture proof is necessary but not sufficient. Live-rig proof
|
|
80
|
+
catches the failure modes that fixture-mode misses.
|
|
81
|
+
|
|
82
|
+
## Why important strategically
|
|
83
|
+
|
|
84
|
+
The current coordination experiments repeatedly need new queues,
|
|
85
|
+
watchdogs, humans, and test seats — which makes this family
|
|
86
|
+
**strategically important.** Seat continuity work will eventually
|
|
87
|
+
separate stable seat identity from runtime occupant identity (see
|
|
88
|
+
`seat-continuity-and-handover`).
|
|
89
|
+
|
|
90
|
+
## Currently shipped surfaces
|
|
91
|
+
|
|
92
|
+
Per `cli-reference.md` v0.2.0:
|
|
93
|
+
|
|
94
|
+
- `rig expand <rig-id> <pod-fragment-path>` (with optional `session_source`)
|
|
95
|
+
- `rig shrink <rigId> <podRef>`
|
|
96
|
+
- `rig launch <rigId> <nodeRef>`
|
|
97
|
+
- `rig remove <rigId> <nodeRef>`
|
|
98
|
+
- `rig discover [--draft]`
|
|
99
|
+
- `rig bind <discoveredId> --rig <rigId> (--node <id> | --pod <ns> --member <name>)`
|
|
100
|
+
- `rig adopt <path> --bind <logicalId=tmuxSessionOrDiscoveryId>`
|
|
101
|
+
- `rig attach --self --rig <rigId> --node <logicalId>`
|
|
102
|
+
- `rig unclaim <sessionRef>` / `rig release <rigId>`
|
|
103
|
+
|
|
104
|
+
## Active proof gap (current)
|
|
105
|
+
|
|
106
|
+
The 2026-04-30 topology mutation add-seat proof pass is **active**.
|
|
107
|
+
Product Lab shaped it; planner authored `IMPLEMENTATION.md`; driver
|
|
108
|
+
landed the smallest honest CLI retry-guidance patch for failed
|
|
109
|
+
`rig expand` recovery. **Remaining proof is the Section B disposable-rig
|
|
110
|
+
runtime matrix, blocked on operator posture** and owned by
|
|
111
|
+
`orch-lead@your-rig`.
|
|
112
|
+
|
|
113
|
+
## See also
|
|
114
|
+
|
|
115
|
+
- `openrig-user` skill — CLI surface for `rig expand / shrink / launch / remove / bind / adopt / attach`
|
|
116
|
+
- `seat-scaling-and-specialization` skill — when to add specialized capacity vs generic
|
|
117
|
+
- `seat-continuity-and-handover` skill — replacing an occupant on a stable seat (different shape than topology mutation)
|
|
118
|
+
- `cross-host-rig-commands` skill — cross-host topology mutation (deferred)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: watchdog
|
|
3
|
+
description: Use when configuring `rig watchdog` policies, authoring wake/refocus/alignment-checkpoint messages, or choosing the right intervention level for a stale-owner situation. The 3-level continuity-check stack (wake / refocus / alignment-checkpoint), the discipline that prevents cadence pollution and bureaucracy theater, and the artifact-pool loop-edge pattern for evidence-aware waking.
|
|
4
|
+
metadata:
|
|
5
|
+
openrig:
|
|
6
|
+
stage: factory-approved
|
|
7
|
+
sibling_skills:
|
|
8
|
+
# Sibling sweep 2026-07-19 audit: superseded control-plane-* family
|
|
9
|
+
# dropped (control-plane-watchdog now redirects HERE); kept the
|
|
10
|
+
# genuinely adjacent set.
|
|
11
|
+
- queue-handoff
|
|
12
|
+
- workflow-runtime
|
|
13
|
+
- alignment-trace
|
|
14
|
+
- looping-workflows
|
|
15
|
+
- intake-routing
|
|
16
|
+
- human-in-the-loop
|
|
17
|
+
- status-not-chat-orchestrator
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Watchdog
|
|
21
|
+
|
|
22
|
+
Continuity checks are timed or evidence-triggered interventions that
|
|
23
|
+
keep an agent workflow from going idle, drifting, or entering needless
|
|
24
|
+
bureaucracy. They operationalize the alignment-trace doctrine.
|
|
25
|
+
|
|
26
|
+
## Use this when
|
|
27
|
+
|
|
28
|
+
- **Authoring a watchdog policy** for a long-running rig (artifact-pool
|
|
29
|
+
edges, stale-owner detection, periodic reminders).
|
|
30
|
+
- **Choosing the intervention level** for a stale-owner situation: is
|
|
31
|
+
this a wake, a refocus, or an alignment checkpoint?
|
|
32
|
+
- **Drafting wake/refocus/alignment-checkpoint message text** that
|
|
33
|
+
prevents cadence pollution and bureaucracy theater.
|
|
34
|
+
- **Deciding cadence** — scan vs wake intervals, conservative vs
|
|
35
|
+
aggressive nudging.
|
|
36
|
+
|
|
37
|
+
## Don't use this when
|
|
38
|
+
|
|
39
|
+
- The agent is actively working and closing artifacts. Prefer no-op.
|
|
40
|
+
- The intervention is masking bad startup or workflow design — fix the
|
|
41
|
+
underlying cause, don't compensate via watchdog.
|
|
42
|
+
- The work has a clear next-action handoff already in queue. Use queue
|
|
43
|
+
nudges instead of a watchdog policy.
|
|
44
|
+
|
|
45
|
+
## The 3-level intervention stack
|
|
46
|
+
|
|
47
|
+
| Level | Goal | When | What it does |
|
|
48
|
+
|---|---|---|---|
|
|
49
|
+
| **Wake** | Restart motion | Owner appears idle, stale, blocked, or missing a next handoff | Small liveness nudge — does NOT reframe the work |
|
|
50
|
+
| **Refocus** | Correct drift | Output shows mode drift, approval regression, weak stop-condition reasoning | Medium alignment nudge — re-centers on role, north star, current approved workstream, coordination mode, stop conditions; does NOT interrupt valid work |
|
|
51
|
+
| **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full alignment-trace before proceeding |
|
|
52
|
+
|
|
53
|
+
`cron`, timers, and `rig watchdog` are scheduling substrates. They
|
|
54
|
+
should NOT imply that every tick means the same semantic action. The
|
|
55
|
+
intervention level is chosen by evidence, not cadence.
|
|
56
|
+
|
|
57
|
+
## Current best practice for refocus message text
|
|
58
|
+
|
|
59
|
+
A well-shaped refocus message:
|
|
60
|
+
|
|
61
|
+
- Starts with: **finish current action first**.
|
|
62
|
+
- Names the intervention kind: wake, refocus, or alignment checkpoint.
|
|
63
|
+
- Names the current approved workstream or says none is known.
|
|
64
|
+
- Says what continuity means: continue, verify, hand off, or explicitly park.
|
|
65
|
+
- Names stop conditions: scope/risk/posture changes, failed gate, contradictory evidence, or no continuity chain naming a sensible next step.
|
|
66
|
+
- Does NOT convert itself into a fresh approval gate.
|
|
67
|
+
- Does NOT wake delivery seats unless an approved workflow exists and the owner is stale.
|
|
68
|
+
|
|
69
|
+
## Failure modes (7; verbatim)
|
|
70
|
+
|
|
71
|
+
1. Cadence is too frequent and pollutes the workstream.
|
|
72
|
+
2. Watchdog wakes the wrong seat instead of the stale owner.
|
|
73
|
+
3. Refocus text is too rule-shaped and creates brittle behavior.
|
|
74
|
+
4. Watchdog compensates for bad startup or workflow design instead of revealing it.
|
|
75
|
+
5. Refocus is misread as a new top-priority task and interrupts the current action.
|
|
76
|
+
6. Refocus becomes bureaucracy theater: an already-approved workflow stops for re-approval.
|
|
77
|
+
7. Repeated static nudges teach agents to answer the reminder instead of progressing the artifact.
|
|
78
|
+
|
|
79
|
+
## Artifact-pool loop edges (the first evidence-aware pattern)
|
|
80
|
+
|
|
81
|
+
The first evidence-aware watchdog use that should remain small and
|
|
82
|
+
explicit:
|
|
83
|
+
|
|
84
|
+
- **Consumer-pool wake**: if a ready artifact exists, wake the consumer loop head.
|
|
85
|
+
- **Producer-edge repair**: if upstream completion exists but the downstream artifact is missing, wake the producer loop head.
|
|
86
|
+
|
|
87
|
+
**Scan cadence and wake cadence are separate.** Worked example (from the
|
|
88
|
+
RSI v2 mission, now archived — the numbers are era-specific, the
|
|
89
|
+
scan-vs-wake separation is the durable rule): scan every 30 seconds, wake
|
|
90
|
+
at most every 600 seconds while work remains actionable.
|
|
91
|
+
|
|
92
|
+
This is not a generic workflow engine. It's a guardrail against cold
|
|
93
|
+
pools and missing edge artifacts.
|
|
94
|
+
|
|
95
|
+
## Two surfaces: rigx watchdog (config-layer) and rig watchdog (daemon-shipped)
|
|
96
|
+
|
|
97
|
+
| Surface | Status | Policies |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| `rigx watchdog` (config-layer dogfood) | Tmux-backed loops; coexists with daemon | Static periodic-reminder + artifact-pool-ready + edge-artifact-required (per-RSI-loop) |
|
|
100
|
+
| `rig watchdog` (daemon-shipped, v0.2.0 Phase C) | SQLite-backed scheduler; survives daemon restart | `periodic-reminder` / `artifact-pool-ready` / `edge-artifact-required` / `workflow-keepalive` (Phase D — reads workflow_instances directly) |
|
|
101
|
+
|
|
102
|
+
Daemon `rig watchdog` is the active host coordination surface for new
|
|
103
|
+
work. History records only loud evaluations (`sent` / `terminal`);
|
|
104
|
+
quiet skip reasons are NOT recorded — POC parity so agents are not
|
|
105
|
+
woken about scheduler polls.
|
|
106
|
+
|
|
107
|
+
## Future shape (current limit)
|
|
108
|
+
|
|
109
|
+
The mature primitive should be evidence-aware: inspect durable
|
|
110
|
+
queue/workflow state, pane activity, transcript/context growth, and
|
|
111
|
+
known workstream frontier; classify the intervention as no-op / wake /
|
|
112
|
+
refocus / alignment-checkpoint; prefer no-op for active owners; render
|
|
113
|
+
message text from the active orientation graph instead of hard-coding
|
|
114
|
+
static policy.
|
|
115
|
+
|
|
116
|
+
Until queue substrate, activity state, and lifecycle evidence are fully
|
|
117
|
+
productized at this level of granularity: keep config-layer use small
|
|
118
|
+
and explicit, prefer one workflow watchdog plus targeted exception
|
|
119
|
+
handling over many per-seat nag loops.
|
|
120
|
+
|
|
121
|
+
## See also
|
|
122
|
+
|
|
123
|
+
- `alignment-trace` skill — the doctrine this primitive operationalizes; full and light trace templates
|
|
124
|
+
- `queue-handoff` skill — durable handoff via queue items; watchdog is complementary (watchdog wakes; queue routes)
|
|
125
|
+
- `looping-workflows` skill — operating discipline for self-driving rig-shaped loops; uses watchdog policies for loop edges
|