@openrig/cli 0.5.2 → 0.5.3
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/plugins/openrig-core/hooks/claude.json +36 -0
- package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
- package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
- package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
- package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
- package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
- package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
- package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
- package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
- package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
- package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
- package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
- package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
- package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
- package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
- package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
- package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
- package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
- package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
- package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
- package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
- package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
- package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
- package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
- package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
- package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
- package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
- package/daemon/context-packs/world/install/04-ontology.md +790 -0
- package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
- package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
- package/daemon/context-packs/world/install/manifest.yaml +125 -0
- package/daemon/context-packs/world/install/reference-material.md +125 -0
- package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +7 -4
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +2 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +10 -2
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +27 -7
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/daemon/dist/adapters/yolo-mode.js +21 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +171 -2
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
- package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
- package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
- package/daemon/dist/domain/markdown-address.d.ts +56 -0
- package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
- package/daemon/dist/domain/markdown-address.js +188 -0
- package/daemon/dist/domain/markdown-address.js.map +1 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
- package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
- package/daemon/dist/domain/permission-drift-observer.js +6 -1
- package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
- package/daemon/dist/domain/process-census.d.ts +25 -0
- package/daemon/dist/domain/process-census.d.ts.map +1 -0
- package/daemon/dist/domain/process-census.js +47 -0
- package/daemon/dist/domain/process-census.js.map +1 -0
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +5 -26
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +31 -57
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +39 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +19 -3
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
- package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
- package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
- package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +39 -23
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +22 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +32 -2
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +8 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +116 -0
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/shell-classifier.d.ts +23 -0
- package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
- package/daemon/dist/domain/shell-classifier.js +36 -0
- package/daemon/dist/domain/shell-classifier.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
- package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
- package/daemon/dist/domain/spec-validation-advisory.js +38 -0
- package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +38 -1
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
- package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
- package/daemon/dist/domain/topology-defaults-installer.js +92 -0
- package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
- package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
- package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-rotation.js +61 -3
- package/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +9 -2
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +3 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +39 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +205 -0
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +11 -0
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +55 -0
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +12 -3
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
- package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
- package/daemon/dist/seat-recap-store-surface.js +6 -0
- package/daemon/dist/seat-recap-store-surface.js.map +1 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +37 -6
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/chain-file-convention.md +115 -0
- package/daemon/docs/reference/legacy-topology-migration.md +53 -0
- package/daemon/docs/reference/refocus-channel.md +80 -0
- package/daemon/docs/reference/sdlc-conventions.md +24 -0
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
- package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
- package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
- package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
- package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
- package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
- package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
- package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
- package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +8 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +353 -48
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/proof.d.ts.map +1 -1
- package/dist/commands/proof.js +70 -12
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +5 -0
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +25 -1
- package/dist/commands/transcript.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +279 -26
- package/dist/commands/walk.js.map +1 -1
- package/dist/config-store.d.ts +15 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +35 -1
- package/dist/config-store.js.map +1 -1
- package/dist/lib/scope/logical-checkbox.d.ts +26 -0
- package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
- package/dist/lib/scope/logical-checkbox.js +65 -0
- package/dist/lib/scope/logical-checkbox.js.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.js +24 -0
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
- package/dist/lib/topology-trace.d.ts +36 -0
- package/dist/lib/topology-trace.d.ts.map +1 -0
- package/dist/lib/topology-trace.js +91 -0
- package/dist/lib/topology-trace.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
- package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
- package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
- package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +171 -2
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
- package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
- package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
- package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +64 -29
- package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
- package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
- package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
- package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
- package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +22 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +32 -2
- package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
- package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
- package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
- package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
- package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
- package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
- package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +39 -0
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/seat.js +11 -0
- package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
- package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +37 -6
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/package.json +6 -1
- package/package.json +1 -1
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openrig-upgrade
|
|
3
|
+
description: Use when upgrading the OpenRig CLI/daemon on a host with running rigs, especially when preserving tmux-backed agent sessions through a daemon restart or documenting hot-upgrade SOP evidence.
|
|
4
|
+
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- capture
|
|
7
|
+
- daemon adopt-state
|
|
8
|
+
- daemon start
|
|
9
|
+
- daemon status
|
|
10
|
+
- daemon stop
|
|
11
|
+
- down
|
|
12
|
+
- ps
|
|
13
|
+
- restore-check
|
|
14
|
+
- snapshot
|
|
15
|
+
- up
|
|
16
|
+
- upgrade backup
|
|
17
|
+
- upgrade preflight
|
|
18
|
+
- upgrade promote-runtime
|
|
19
|
+
- upgrade verify
|
|
20
|
+
- version
|
|
21
|
+
openrig:
|
|
22
|
+
stage: factory-approved
|
|
23
|
+
sibling_skills:
|
|
24
|
+
- openrig-user
|
|
25
|
+
- openrig-operator
|
|
26
|
+
- openrig-builder
|
|
27
|
+
- openrig-architect
|
|
28
|
+
- forming-an-openrig-mental-model
|
|
29
|
+
- ai-dev-workflows
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# OpenRig Upgrade
|
|
33
|
+
|
|
34
|
+
## Core Principle
|
|
35
|
+
|
|
36
|
+
OpenRig has two different failure domains:
|
|
37
|
+
|
|
38
|
+
- **Agent process plane:** Claude/Codex/terminal seats running inside tmux.
|
|
39
|
+
- **Management plane:** the OpenRig daemon, CLI, SQLite DB, transcripts, node inventory,
|
|
40
|
+
send/capture APIs, restore metadata, and migrations.
|
|
41
|
+
|
|
42
|
+
A hot daemon upgrade is possible when the continuity seats remain alive in tmux and
|
|
43
|
+
the new daemon restarts against the same DB and transcript root. Do not run
|
|
44
|
+
`rig down` on continuity rigs unless the goal is a disruptive restore test; `rig down`
|
|
45
|
+
kills OpenRig-launched tmux sessions.
|
|
46
|
+
|
|
47
|
+
## Preferred Live-Cutover Operator Mode
|
|
48
|
+
|
|
49
|
+
For live production daemon cutovers, prefer an **out-of-band upgrade operator**:
|
|
50
|
+
a temporary host-local tmux seat outside the managed OpenRig topology, spawned
|
|
51
|
+
from the lifecycle/runtime-upgrade agent's current mental model.
|
|
52
|
+
|
|
53
|
+
Why: the managed rig stays in the agent process plane while a disposable sidecar
|
|
54
|
+
mutates the management plane. The sidecar inherits enough context to avoid a
|
|
55
|
+
cold handoff, but it is not inside the failure domain it is modifying.
|
|
56
|
+
|
|
57
|
+
Use this when all are true:
|
|
58
|
+
|
|
59
|
+
- the upgrade mutates the live daemon, CLI wrapper, DB, runtime worktree, tmux
|
|
60
|
+
lifecycle, or active control-plane truth;
|
|
61
|
+
- continuity seats should keep working during the upgrade;
|
|
62
|
+
- a lifecycle/runtime-upgrade seat has already prepared the packet or owns the
|
|
63
|
+
needed context;
|
|
64
|
+
- the human has granted an `operator auto window`.
|
|
65
|
+
|
|
66
|
+
In this SOP, `operator auto window` means a bounded operator-authorized upgrade lane. It does not
|
|
67
|
+
mean standing Codex `auto_review`, `--full-auto`, or approval-bypass mode. Use
|
|
68
|
+
`security-and-consequence-boundary-policy` skill for the current
|
|
69
|
+
security and consequence-boundary policy.
|
|
70
|
+
|
|
71
|
+
Do not use this pattern as a standing orchestration seat. The sidecar exists for
|
|
72
|
+
one cutover and then closes after handback.
|
|
73
|
+
|
|
74
|
+
### Sidecar Contract
|
|
75
|
+
|
|
76
|
+
The in-rig lifecycle/runtime-upgrade seat owns packet preparation and final
|
|
77
|
+
interpretation. The out-of-band sidecar owns only execution inside the approved
|
|
78
|
+
window.
|
|
79
|
+
|
|
80
|
+
Sidecar starter prompt shape:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
You are the host-local OpenRig runtime upgrade operator, outside the managed rig
|
|
84
|
+
topology. Execute the approved daemon-only cutover only after explicit human
|
|
85
|
+
approval. First read the upgrade preflight artifact and runtime-upgrade
|
|
86
|
+
decision. Prove you are outside the topology before mutation. Never run rig
|
|
87
|
+
down. Preserve tmux topology. Stop/start only the daemon, verify protected rigs,
|
|
88
|
+
write cutover evidence, unblock downstream artifacts only when the blocker is
|
|
89
|
+
truly closed, and rollback to <previous-wrapper-or-commit> if needed.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Required handback:
|
|
93
|
+
|
|
94
|
+
- write the live cutover evidence under the lifecycle evidence shelf;
|
|
95
|
+
- include proof that the sidecar was outside the topology/failure domain it
|
|
96
|
+
mutated;
|
|
97
|
+
- update any blocked downstream dogfood/runtime task only when the blocking
|
|
98
|
+
condition is truly closed;
|
|
99
|
+
- preserve caveats as downstream material instead of using them to reopen a
|
|
100
|
+
closed cutover gate;
|
|
101
|
+
- report back to the in-rig lifecycle/runtime-upgrade seat or orch surface with
|
|
102
|
+
daemon provenance, topology verification, caveats, rollback state, and one
|
|
103
|
+
compact paragraph of operator judgment about ambiguous choices;
|
|
104
|
+
- close the sidecar after the original lifecycle owner has absorbed the result.
|
|
105
|
+
|
|
106
|
+
Stop conditions for the sidecar:
|
|
107
|
+
|
|
108
|
+
- preflight or runtime-upgrade decision is missing;
|
|
109
|
+
- human approval is absent or narrower than the requested cutover;
|
|
110
|
+
- protected topology is already degraded beyond the packet's expected caveats;
|
|
111
|
+
- target runtime cannot be verified by process path, port listener, and command
|
|
112
|
+
evidence;
|
|
113
|
+
- any step would require `rig down` or destructive DB restore without a new
|
|
114
|
+
explicit human decision.
|
|
115
|
+
|
|
116
|
+
Generic primitive: this upgrade specialization composes over the
|
|
117
|
+
`sidecar-operator` skill (the underlying out-of-band-operator pattern;
|
|
118
|
+
this skill is the upgrade-specific specialization).
|
|
119
|
+
|
|
120
|
+
## What Changed On 2026-04-27
|
|
121
|
+
|
|
122
|
+
Initial belief:
|
|
123
|
+
|
|
124
|
+
- All rigs had to be down before daemon restart.
|
|
125
|
+
- Live upgrade was research-gated because DB migrations might break session/node
|
|
126
|
+
state while sessions were running.
|
|
127
|
+
- A parallel isolated daemon/adoption path looked necessary before production use.
|
|
128
|
+
|
|
129
|
+
Observed result:
|
|
130
|
+
|
|
131
|
+
- A daemon-only hot cutover preserved the live `example-seat` tmux
|
|
132
|
+
sessions.
|
|
133
|
+
- The old daemon was stopped without running `rig down`.
|
|
134
|
+
- The new source-pinned daemon started against the same production DB.
|
|
135
|
+
- `rig ps --nodes --json`, `rig capture`, and `rig restore-check` could inspect the
|
|
136
|
+
still-running Velocity seats after restart.
|
|
137
|
+
|
|
138
|
+
The simpler model is now preferred for tmux-backed continuity rigs: snapshot and
|
|
139
|
+
back up state, stop only the daemon, start the new daemon, then verify that live
|
|
140
|
+
sessions are still observable and manageable.
|
|
141
|
+
|
|
142
|
+
## Proven Hot Path
|
|
143
|
+
|
|
144
|
+
Use this as the canonical first-choice workflow for a host where continuity rigs
|
|
145
|
+
are tmux-backed and the operator wants non-disruptive daemon upgrade.
|
|
146
|
+
|
|
147
|
+
0. **Spawn the out-of-band operator when live cutover is required.**
|
|
148
|
+
The sidecar must be host-local and outside the managed topology being
|
|
149
|
+
upgraded. Keep the lifecycle/runtime-upgrade owner inside the rig so it can
|
|
150
|
+
continue to observe, ask questions, and absorb the handback.
|
|
151
|
+
|
|
152
|
+
1. **Choose continuity targets.**
|
|
153
|
+
Name the exact rigs that must remain live. Everything else is source material.
|
|
154
|
+
Do not let "nice to resume later" rigs expand the success criteria.
|
|
155
|
+
|
|
156
|
+
2. **Freeze active work.**
|
|
157
|
+
Get continuity seats to a stable/idle checkpoint. Record resume commands if
|
|
158
|
+
available.
|
|
159
|
+
|
|
160
|
+
3. **Inventory with filters.**
|
|
161
|
+
Do not dump full `rig ps` output on this host. Use filtered JSON:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
rig ps --nodes --json \
|
|
165
|
+
| jq -r 'map(select(.rigName=="<rig>")) | sort_by(.canonicalSessionName)[] | "\(.canonicalSessionName) \(.sessionStatus) \(.startupStatus) \(.resumeToken // "none")"'
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
4. **Take a non-destructive snapshot of each continuity rig.**
|
|
169
|
+
This records rollback/recovery metadata without killing tmux sessions:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
rig snapshot <rigId>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Verify the snapshot payload in SQLite has the expected nodes, sessions,
|
|
176
|
+
checkpoints, and resume tokens.
|
|
177
|
+
|
|
178
|
+
5. **Create a post-snapshot SQLite backup.**
|
|
179
|
+
Use SQLite's online backup API while the daemon is live. Then run
|
|
180
|
+
`PRAGMA integrity_check` on the backup and verify it contains the continuity
|
|
181
|
+
snapshot.
|
|
182
|
+
|
|
183
|
+
6. **Prepare a clean runtime artifact.**
|
|
184
|
+
Prefer a dedicated clean source worktree pinned to a commit:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
git worktree add --detach /path/to/openrig-runtime-<shortsha> <commit>
|
|
188
|
+
cd /path/to/openrig-runtime-<shortsha>
|
|
189
|
+
PATH=/path/to/node22/bin:$PATH npm ci
|
|
190
|
+
PATH=/path/to/node22/bin:$PATH npm run build
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Use even/LTS Node. The 2026-04-27 upgrade used Node `v22.22.1`.
|
|
194
|
+
|
|
195
|
+
7. **Stop only the daemon.**
|
|
196
|
+
First try:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
rig daemon stop
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
If the daemon state file is missing but the PID is known and verified as the
|
|
203
|
+
OpenRig daemon, gracefully terminate that PID:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
kill -TERM <daemonPid>
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Do not use `kill -9` unless recovering from a wedged process with human
|
|
210
|
+
approval. Do not run `rig down` on continuity rigs.
|
|
211
|
+
|
|
212
|
+
8. **Start the pinned daemon against the same production DB.**
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
PATH=/path/to/node22/bin:$PATH \
|
|
216
|
+
node packages/cli/dist/index.js daemon start \
|
|
217
|
+
--port 7433 \
|
|
218
|
+
--host 127.0.0.1 \
|
|
219
|
+
--db ~/.openrig/openrig.sqlite
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
9. **Verify management continuity.**
|
|
223
|
+
Required checks:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
rig daemon status
|
|
227
|
+
lsof -nP -iTCP:7433 -sTCP:LISTEN
|
|
228
|
+
rig ps --nodes --json | jq -r 'map(select(.rigName=="<rig>")) | ...'
|
|
229
|
+
rig capture --rig <rig> --lines 1 --json
|
|
230
|
+
rig restore-check --rig <rig>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Success means the daemon is healthy, continuity sessions remain running/ready,
|
|
234
|
+
capture works, transcripts are present, and `restore-check` reports no red
|
|
235
|
+
blockers.
|
|
236
|
+
|
|
237
|
+
10. **Align the default CLI with the new daemon.**
|
|
238
|
+
If `rig` is a wrapper, make sure it delegates to the new CLI. On the
|
|
239
|
+
2026-04-27 host this meant repointing the rigx real CLI via
|
|
240
|
+
`~/.openrig/bin/rig-real-17812d5`.
|
|
241
|
+
|
|
242
|
+
11. **Write evidence and hand back.**
|
|
243
|
+
The sidecar writes a cutover evidence packet with daemon provenance,
|
|
244
|
+
protected topology counts, representative capture/restore checks, smoke
|
|
245
|
+
results, caveats, and rollback state. Then it notifies the original in-rig
|
|
246
|
+
lifecycle/runtime-upgrade owner. Do not rely on chat as the only proof.
|
|
247
|
+
|
|
248
|
+
## 2026-04-27 Proof Point
|
|
249
|
+
|
|
250
|
+
Continuity target:
|
|
251
|
+
|
|
252
|
+
- `example-seat`
|
|
253
|
+
|
|
254
|
+
Pinned daemon:
|
|
255
|
+
|
|
256
|
+
- commit `17812d5d3bfe53dfdc5e202b1da3e8c91e2f4e54`
|
|
257
|
+
- subject `feat(agents): make runtime config spec-driven`
|
|
258
|
+
- committed `2026-04-26T18:30:08-07:00`
|
|
259
|
+
- runtime worktree `~/code/projects/openrig-runtime-17812d5`
|
|
260
|
+
|
|
261
|
+
Evidence:
|
|
262
|
+
|
|
263
|
+
- Velocity snapshot `01KQ84D3AF9YW6FQCM9SVSM5EG`
|
|
264
|
+
- post-snapshot DB backup
|
|
265
|
+
`db-backup/openrig-post-velocity-snapshot-20260427T185003Z.sqlite`
|
|
266
|
+
- backup integrity `ok`
|
|
267
|
+
- old daemon PID `62828`, Node 25 global npm install
|
|
268
|
+
- new daemon PID `39708`, Node 22 source runtime
|
|
269
|
+
- post-cutover `example-seat`: 4/4 seats `running` / `ready`
|
|
270
|
+
- `rig restore-check --rig example-seat`: `RESTORABLE WITH CAVEATS`,
|
|
271
|
+
`20 green | 9 yellow | 0 red`, `RECOVERY: NOT NEEDED`
|
|
272
|
+
|
|
273
|
+
Important caveat: this proves hot daemon cutover for tmux-backed Claude seats on
|
|
274
|
+
this host and commit range. It does not prove that arbitrary migrations,
|
|
275
|
+
non-tmux runtimes, service-backed rigs, or dead sessions can be recovered without
|
|
276
|
+
separate testing.
|
|
277
|
+
|
|
278
|
+
## 2026-05-02 Proof Point
|
|
279
|
+
|
|
280
|
+
Continuity targets:
|
|
281
|
+
|
|
282
|
+
- `kernel`
|
|
283
|
+
- `openrig-discovery`
|
|
284
|
+
- `openrig-dogfood`
|
|
285
|
+
- `openrig-lifecycle`
|
|
286
|
+
- `openrig-maintenance`
|
|
287
|
+
- `openrig-product-lab`
|
|
288
|
+
- `example-rig`
|
|
289
|
+
- `example-seat`
|
|
290
|
+
|
|
291
|
+
Pinned daemon:
|
|
292
|
+
|
|
293
|
+
- commit `6af2754824a07291562622ac019b68615fc41abe`
|
|
294
|
+
- runtime worktree `~/code/projects/openrig-runtime-6af2754`
|
|
295
|
+
- wrapper `~/.openrig/bin/rig-real-6af2754`
|
|
296
|
+
|
|
297
|
+
Pattern proven:
|
|
298
|
+
|
|
299
|
+
- lifecycle/runtime-upgrade prepared the decision and preflight artifacts;
|
|
300
|
+
- a host-local tmux sidecar (`host-upgrade-operator-6af2754`) was spawned
|
|
301
|
+
outside the managed topology with the current operator context;
|
|
302
|
+
- the sidecar stopped only the daemon, using verified PID fallback after
|
|
303
|
+
`rig daemon stop` refused due to missing daemon state;
|
|
304
|
+
- the sidecar started the target daemon on port `7433`, repointed the
|
|
305
|
+
config-layer wrapper default, verified protected topology, ran targeted
|
|
306
|
+
Agent Starter smoke/tests, wrote evidence, and unblocked Dogfood;
|
|
307
|
+
- Velocity delivery continued working throughout the cutover.
|
|
308
|
+
|
|
309
|
+
Evidence:
|
|
310
|
+
|
|
311
|
+
- preflight:
|
|
312
|
+
(internal upgrade-preflight evidence, 2026-05-01)
|
|
313
|
+
- live cutover:
|
|
314
|
+
(internal live-cutover evidence, 2026-05-02)
|
|
315
|
+
|
|
316
|
+
Important caveat: live `rig up --plan --json` accepted valid `starter_ref`
|
|
317
|
+
specs and rejected forbidden compositions, but plan-mode output did not emit the
|
|
318
|
+
`resolve_starter.detail.starterContent` stage expected by the Dogfood proof bar.
|
|
319
|
+
This is a product/dogfood caveat, not an upgrade failure.
|
|
320
|
+
|
|
321
|
+
## Brittle Edges Observed On 2026-04-27
|
|
322
|
+
|
|
323
|
+
Detailed field note:
|
|
324
|
+
|
|
325
|
+
(internal upgrade-brittleness field note, 2026-04-27)
|
|
326
|
+
|
|
327
|
+
Operator lessons from the daemon upgrade:
|
|
328
|
+
|
|
329
|
+
- `rig down` kills OpenRig-launched tmux sessions. Do not use it as a snapshot
|
|
330
|
+
primitive when resumability depends on keeping sessions alive.
|
|
331
|
+
- Old daemon/CLI combinations can be partially functional even when newer health
|
|
332
|
+
checks fail. A `/healthz` mismatch blocked `rig down --snapshot` even though
|
|
333
|
+
other daemon APIs still worked.
|
|
334
|
+
- `rig daemon stop` can fail when the daemon state file is missing. Operators
|
|
335
|
+
need a verified PID fallback, but the product should reconcile daemon state
|
|
336
|
+
automatically.
|
|
337
|
+
- If the sidecar has an operator auto window and `rig daemon stop` refuses only
|
|
338
|
+
because state is stale, a verified graceful PID termination is acceptable:
|
|
339
|
+
identify the daemon PID, verify its runtime path, send graceful `TERM`, and
|
|
340
|
+
verify the port is gone before starting the target daemon.
|
|
341
|
+
- CLI and daemon provenance can drift. Repointing or verifying the default
|
|
342
|
+
`rig` wrapper is part of the upgrade, not an afterthought.
|
|
343
|
+
- Raw `rig ps` is too noisy on this host. Use filtered JSON until the product
|
|
344
|
+
has compact first-class inventory views.
|
|
345
|
+
- Snapshot and backup verification is too manual. The SOP currently depends on
|
|
346
|
+
checking snapshot rows, resume tokens, SQLite backups, and integrity by hand.
|
|
347
|
+
|
|
348
|
+
Separate follow-on note, not part of the daemon-upgrade SOP:
|
|
349
|
+
|
|
350
|
+
(internal add-node-brittleness field note, 2026-04-27)
|
|
351
|
+
|
|
352
|
+
## Disruptive Restore Path
|
|
353
|
+
|
|
354
|
+
Use disruptive restore when the goal is to test recovery from killed sessions, or
|
|
355
|
+
when hot upgrade is blocked by incompatible migrations or corrupted management
|
|
356
|
+
state.
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
rig snapshot <rigId>
|
|
360
|
+
rig down <rigId>
|
|
361
|
+
# upgrade daemon/CLI
|
|
362
|
+
rig up <rigName>
|
|
363
|
+
rig restore-check --rig <rigName>
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
Expected restore results:
|
|
367
|
+
|
|
368
|
+
| Result | Meaning | Action |
|
|
369
|
+
|---|---|---|
|
|
370
|
+
| `fully_restored` | All nodes resumed or rebuilt | Resume normal work |
|
|
371
|
+
| `partially_restored` | Some nodes succeeded, some failed | Inspect failed nodes and relaunch manually |
|
|
372
|
+
| `failed` | Zero nodes restored | Check daemon logs, snapshot integrity, provider tokens |
|
|
373
|
+
| `not_attempted` | Pre-restore blockers | Fix blockers before retrying |
|
|
374
|
+
|
|
375
|
+
Do not confuse this path with hot upgrade. `rig down` is intentionally
|
|
376
|
+
disruptive.
|
|
377
|
+
|
|
378
|
+
## Stop Conditions
|
|
379
|
+
|
|
380
|
+
Do not proceed with hot upgrade if:
|
|
381
|
+
|
|
382
|
+
- continuity targets are mid-task and cannot checkpoint;
|
|
383
|
+
- continuity target tmux sessions are missing before upgrade;
|
|
384
|
+
- no verified DB backup exists after continuity snapshots;
|
|
385
|
+
- the target runtime cannot build under an even/LTS Node version;
|
|
386
|
+
- the daemon migration plan is known to rewrite session/binding semantics in a
|
|
387
|
+
way that has not been tested;
|
|
388
|
+
- disk space or DB integrity checks fail;
|
|
389
|
+
- the operator cannot identify the current daemon PID and runtime source.
|
|
390
|
+
|
|
391
|
+
## Rollback
|
|
392
|
+
|
|
393
|
+
Rollback means restoring the previous daemon runtime and, if necessary, the DB
|
|
394
|
+
backup.
|
|
395
|
+
|
|
396
|
+
For source runtime:
|
|
397
|
+
|
|
398
|
+
1. Stop the new daemon.
|
|
399
|
+
2. Start the previous runtime or npm/global daemon.
|
|
400
|
+
3. Verify `/healthz`, filtered continuity inventory, and `rig capture`.
|
|
401
|
+
4. Restore the DB backup only if migration or DB corruption is confirmed. Do not
|
|
402
|
+
replace the DB just because continuity sessions are still live but management
|
|
403
|
+
projection is degraded.
|
|
404
|
+
|
|
405
|
+
For npm runtime:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
npm install -g @openrig/cli@<previous-version>
|
|
409
|
+
rig daemon stop
|
|
410
|
+
rig daemon start
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Roadmap: Better Hot Upgrades
|
|
414
|
+
|
|
415
|
+
The product should make the proven manual path boring and explicit.
|
|
416
|
+
|
|
417
|
+
Needed product surfaces:
|
|
418
|
+
|
|
419
|
+
- `rig upgrade preflight`:
|
|
420
|
+
daemon PID/runtime source, CLI source, DB path, migration plan, active rigs,
|
|
421
|
+
continuity targets, tmux liveness, disk space, DB integrity, backup target,
|
|
422
|
+
and rollback runtime.
|
|
423
|
+
- `rig daemon adopt-state` or equivalent:
|
|
424
|
+
recover a healthy daemon on a port when `daemon.json` is missing.
|
|
425
|
+
- `rig upgrade backup`:
|
|
426
|
+
online SQLite backup plus integrity and snapshot-presence verification.
|
|
427
|
+
- `rig upgrade promote-runtime <commit|artifact>`:
|
|
428
|
+
start from a clean worktree or packaged artifact under an even/LTS Node.
|
|
429
|
+
- `rig upgrade verify --rig <name>`:
|
|
430
|
+
filtered inventory, capture, transcript, restore-check, and honest continuity
|
|
431
|
+
classification.
|
|
432
|
+
- CLI/daemon provenance:
|
|
433
|
+
`rig version --json` should report CLI path, daemon path, commit/package
|
|
434
|
+
version, Node version, DB path, and started-at.
|
|
435
|
+
- Wrapper alignment:
|
|
436
|
+
rigx/default `rig` should clearly show which real CLI it delegates to.
|
|
437
|
+
- Compact inventory:
|
|
438
|
+
first-class `rig ps --rig <name> --nodes --compact` or equivalent, so
|
|
439
|
+
operators do not need ad hoc `jq` for routine safety checks.
|
|
440
|
+
|
|
441
|
+
Research still needed:
|
|
442
|
+
|
|
443
|
+
1. Migration-bearing hot upgrade on a throwaway rig.
|
|
444
|
+
2. Hot upgrade with non-critical live Codex seats.
|
|
445
|
+
3. Hot upgrade with service-backed rigs.
|
|
446
|
+
4. Adoption/reconciliation when daemon DB says sessions are running but tmux has
|
|
447
|
+
partially drifted.
|
|
448
|
+
5. Automated rollback on daemon startup failure or migration failure.
|
|
449
|
+
|
|
450
|
+
## Operator Summary
|
|
451
|
+
|
|
452
|
+
Hot upgrade rule:
|
|
453
|
+
|
|
454
|
+
**Snapshot continuity rigs, back up the DB, stop only the daemon, start the new
|
|
455
|
+
daemon against the same DB, then verify live tmux sessions through filtered
|
|
456
|
+
management surfaces.**
|
|
457
|
+
|
|
458
|
+
Disruptive restore rule:
|
|
459
|
+
|
|
460
|
+
**Use `rig down` only when testing or accepting session teardown.**
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
|
|
2
|
+
# Package-time projection of a canonical skill; regenerated every build.
|
|
3
|
+
name: "openrig-upgrade"
|
|
4
|
+
version: "0.5.3"
|
|
5
|
+
purpose: "Use when upgrading the OpenRig CLI/daemon on a host with running rigs, especially when preserving tmux-backed agent sessions through a daemon restart or documenting hot-upgrade SOP evidence."
|
|
6
|
+
files:
|
|
7
|
+
- path: "SKILL.md"
|
|
8
|
+
role: "instruction"
|
|
9
|
+
summary: "Use when upgrading the OpenRig CLI/daemon on a host with running rigs, especially when preserving tmux-backed agent sessions through a daemon restart or documenting hot-upgrade SOP evidence."
|
|
@@ -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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
|
|
2
|
+
# Package-time projection of a canonical skill; regenerated every build.
|
|
3
|
+
name: "rig-bundles-and-shareable-artifacts"
|
|
4
|
+
version: "0.5.3"
|
|
5
|
+
purpose: "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."
|
|
6
|
+
files:
|
|
7
|
+
- path: "SKILL.md"
|
|
8
|
+
role: "instruction"
|
|
9
|
+
summary: "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."
|