@openrig/cli 0.5.2 → 0.5.4
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/.claude-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- 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 +152 -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 +26 -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 +31 -9
- 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 +41 -2
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +58 -18
- 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/daemon-db-path.d.ts.map +1 -1
- package/daemon/dist/daemon-db-path.js +50 -2
- package/daemon/dist/daemon-db-path.js.map +1 -1
- 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/plugin-discovery-service.d.ts +16 -0
- package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/daemon/dist/domain/plugin-vendor-service.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/queue-repository.d.ts +3 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +50 -2
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/reconciler.js +6 -1
- package/daemon/dist/domain/reconciler.js.map +1 -1
- 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/rig-repository.d.ts +4 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +9 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +71 -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/running-name-guard.d.ts +52 -0
- package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/daemon/dist/domain/running-name-guard.js +34 -0
- package/daemon/dist/domain/running-name-guard.js.map +1 -0
- 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/seat-lifecycle-service.d.ts +97 -0
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/daemon/dist/domain/session-transport.d.ts +16 -5
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +155 -16
- 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 +39 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.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/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +29 -24
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigspec.js +20 -6
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +69 -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 +52 -39
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.js +21 -2
- package/daemon/dist/routes/up.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/cli-error.js +1 -1
- package/dist/cli-error.js.map +1 -1
- package/dist/commands/broadcast.js +6 -0
- package/dist/commands/broadcast.js.map +1 -1
- 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 +363 -48
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +23 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +10 -0
- package/dist/commands/import.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/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +36 -13
- package/dist/commands/queue.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/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +88 -0
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +224 -20
- package/dist/commands/send.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/up.d.ts.map +1 -1
- package/dist/commands/up.js +8 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/walk.d.ts +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +293 -30
- 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 +41 -2
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +58 -18
- 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/daemon-db-path.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
- package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
- 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/plugin-discovery-service.d.ts +16 -0
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
- package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.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/queue-repository.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +50 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
- 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/rig-repository.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +13 -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 +71 -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/running-name-guard.d.ts +52 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
- package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
- 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/seat-lifecycle-service.d.ts +97 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +16 -5
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +155 -16
- 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 +39 -0
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js.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/queue.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +29 -24
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
- package/node_modules/@openrig/daemon/dist/routes/rigspec.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 +69 -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 +52 -39
- package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
- package/node_modules/@openrig/daemon/dist/routes/up.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,115 @@
|
|
|
1
|
+
# The Chain-File Convention (CE-v2)
|
|
2
|
+
|
|
3
|
+
**This document is the SSOT for chain files**: what they are named, what each
|
|
4
|
+
altitude carries, and how the leaf-to-root trace resolves. Both trees' walkers
|
|
5
|
+
consume the paths defined here. If a walker and this document disagree, one of
|
|
6
|
+
them has a defect — report it; do not fork the convention.
|
|
7
|
+
|
|
8
|
+
## The one rule
|
|
9
|
+
|
|
10
|
+
**One filename, identical at every altitude of a tree.** A reader orients by
|
|
11
|
+
walking from where they stand toward the root, reading the same-named file at
|
|
12
|
+
each level. No pointers to follow, no branching, no per-level names. Inventing
|
|
13
|
+
a level-specific name breaks every walker.
|
|
14
|
+
|
|
15
|
+
Chain files sit on **nodes** (an instance, a rig, a seat; a mission, a slice)
|
|
16
|
+
— never on shelves (`rigs/`, `seats/`, `missions/` are containment, not
|
|
17
|
+
nodes, and carry no chain file).
|
|
18
|
+
|
|
19
|
+
## Two trees, two questions
|
|
20
|
+
|
|
21
|
+
| tree | path shape | carries | ships? |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| **Topology** | instance → rig → seat | how work is done here | **yes** — generally applicable defaults ship in source |
|
|
24
|
+
| **Project** | project → mission → slice | what is being built | **no** — depends on what the user builds; see below |
|
|
25
|
+
|
|
26
|
+
### The topology tree
|
|
27
|
+
|
|
28
|
+
Rooted at the typed config key **`topology.root`** (resolution
|
|
29
|
+
`env OPENRIG_TOPOLOGY_ROOT > config file > derived default
|
|
30
|
+
$OPENRIG_HOME/topology`). Never hardcode the path — `rig config get
|
|
31
|
+
topology.root` is the answer on any machine. The instance altitude **is the
|
|
32
|
+
top of the root** (there is no instance directory to find; the root is the
|
|
33
|
+
instance):
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
<topology.root>/<NAME>.md # instance altitude
|
|
37
|
+
<topology.root>/rigs/<rig>/<NAME>.md # rig altitude
|
|
38
|
+
<topology.root>/rigs/<rig>/seats/<seat>/<NAME>.md # seat altitude
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**The pod level is deliberately skipped** (founder ruling, March 2026: agent
|
|
42
|
+
specs stay flat under the rig so any agent composes into any rig; pods felt
|
|
43
|
+
too restrictive — revisit someday, not now). Pod-class tactical content ships
|
|
44
|
+
as a rig-altitude file named for its audience (see "craft defaults" below).
|
|
45
|
+
|
|
46
|
+
Established chain names on the topology tree:
|
|
47
|
+
|
|
48
|
+
- `LEARNED.md` — what a POSITION has learned; never shared or shipped as-is.
|
|
49
|
+
A seat's LEARNED is identified by its PATH: the same seat name in two rigs
|
|
50
|
+
is two different files.
|
|
51
|
+
- `CULTURE.md` — norms layered into members at startup.
|
|
52
|
+
|
|
53
|
+
### The project tree
|
|
54
|
+
|
|
55
|
+
Rooted at the workspace keys (`workspace.root`, `workspace.slices_root`).
|
|
56
|
+
Chain names there: `SPEC.md` (intent in frontmatter composes up the chain;
|
|
57
|
+
specification is a leaf property), `PROOF.md`, `PROGRESS.md`.
|
|
58
|
+
|
|
59
|
+
**Project-tree context cannot ship.** It describes what *you* are building —
|
|
60
|
+
mission intent, slice specifications, proof contracts. No vendor can author it
|
|
61
|
+
in advance, and shipping a default would install someone else's project as
|
|
62
|
+
your context. The demo project carries a worked example to copy from; real
|
|
63
|
+
projects author their own. (Topology-tree context is the opposite: how a team
|
|
64
|
+
of agents runs well is largely general, which is why included rigs ship
|
|
65
|
+
defaults.)
|
|
66
|
+
|
|
67
|
+
## Legacy location and the advisory
|
|
68
|
+
|
|
69
|
+
Before this convention the topology tree lived at `~/.openrig/shared-docs/rigs/`
|
|
70
|
+
(founder ruling 2026-08-14: an arbitrary folder on one machine, not a product
|
|
71
|
+
path). That location **stays readable** as a per-level fallback so existing
|
|
72
|
+
rigs migrate instead of breaking — but every read that resolves there emits a
|
|
73
|
+
named advisory (`legacy-topology-read: …`) stating the legacy source, the
|
|
74
|
+
canonical destination under `topology.root`, and the config key. A silent
|
|
75
|
+
legacy read is a defect. The legacy literal lives in exactly one helper per
|
|
76
|
+
settings twin (`resolveLegacyTopologyRigsRoot`); walkers import it and carry
|
|
77
|
+
no path literal.
|
|
78
|
+
|
|
79
|
+
## The trace
|
|
80
|
+
|
|
81
|
+
`rig context trace --rig <rig> [--seat <seat>] --name <NAME>.md` performs the
|
|
82
|
+
walk: it prints each altitude root-first (general → specific), marks whether
|
|
83
|
+
content came from `topology.root`, the legacy tree (with the advisory on
|
|
84
|
+
stderr), or is absent, and needs no running daemon — orientation is exactly
|
|
85
|
+
when the daemon may be down. `--json` returns the structured result.
|
|
86
|
+
|
|
87
|
+
Your reads ARE the walk: a trace assembled from memory is a recitation that
|
|
88
|
+
reproduces the drift it was meant to catch. Run it; do not recall it.
|
|
89
|
+
|
|
90
|
+
## Shipped defaults and the curation path
|
|
91
|
+
|
|
92
|
+
Included rigs (product-team first) ship sensible-default chain files at the
|
|
93
|
+
rig, seat, and instance altitudes, installed under `topology.root` at rig-up.
|
|
94
|
+
A shipped default is a **starting point** the occupying team appends to — it
|
|
95
|
+
is never overwritten by a later rig-up (existing files win).
|
|
96
|
+
|
|
97
|
+
Adding a discovered best practice to the shipped defaults is deliberately
|
|
98
|
+
lightweight:
|
|
99
|
+
|
|
100
|
+
1. **Discovery** — the practice appears where it was earned: a seat's
|
|
101
|
+
`LEARNED.md`, a field note, a review observation.
|
|
102
|
+
2. **Curation** — someone judges it *generally applicable* (would it hold on a
|
|
103
|
+
stranger's machine, in a different project?). If it is project-specific it
|
|
104
|
+
stays at the altitude that earned it.
|
|
105
|
+
3. **Ship** — add it to the rig's default chain files in source
|
|
106
|
+
(`packages/daemon/specs/rigs/…/topology/`), with the motivating incident in
|
|
107
|
+
one line. It reaches new installs at the next release; running rigs pick it
|
|
108
|
+
up only via explicit delivery (see the refocus channel) — **editing a file
|
|
109
|
+
is not delivery to a running seat.**
|
|
110
|
+
|
|
111
|
+
## What this file does not cover
|
|
112
|
+
|
|
113
|
+
How chain files reach a RUNNING seat (the refocus channel) is specified in the
|
|
114
|
+
refocus documentation; quality bars for the work itself live in the rig's
|
|
115
|
+
operating-model skill and culture file.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Migrating a pre-convention rig's topology context
|
|
2
|
+
|
|
3
|
+
For rigs whose hand-authored context predates the chain-file convention and
|
|
4
|
+
lives at the legacy location (`~/.openrig/shared-docs/rigs/<rig>/`, or
|
|
5
|
+
`$OPENRIG_SHARED_DOCS_ROOT/rigs/<rig>/`). The parent-host reconciliation
|
|
6
|
+
campaign is the first consumer of this path. Nothing here is destructive: the
|
|
7
|
+
legacy tree is left in place, reads keep working throughout (the walker's
|
|
8
|
+
advisory-emitting fallback), and every copy is no-clobber.
|
|
9
|
+
|
|
10
|
+
## The path, with exact commands
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# 0. Know both roots — never hardcode either.
|
|
14
|
+
DEST="$(rig config get topology.root)"
|
|
15
|
+
SRC="${OPENRIG_SHARED_DOCS_ROOT:-$HOME/.openrig/shared-docs}/rigs"
|
|
16
|
+
|
|
17
|
+
# 1. BEFORE: prove the fallback is carrying this rig (expect ADVISORY lines
|
|
18
|
+
# on stderr for every level that resolves at the legacy location).
|
|
19
|
+
rig context trace --rig <rig> --seat <seat> --name LEARNED.md
|
|
20
|
+
|
|
21
|
+
# 2. Preview the migration (dry run — nothing moves).
|
|
22
|
+
rsync -av --ignore-existing --exclude 'state/' --dry-run "$SRC/<rig>/" "$DEST/rigs/<rig>/"
|
|
23
|
+
|
|
24
|
+
# 3. Migrate. --ignore-existing mirrors the installer's copy-if-absent law:
|
|
25
|
+
# anything already earned under topology.root is never overwritten.
|
|
26
|
+
mkdir -p "$DEST/rigs/<rig>"
|
|
27
|
+
rsync -av --ignore-existing --exclude 'state/' "$SRC/<rig>/" "$DEST/rigs/<rig>/"
|
|
28
|
+
|
|
29
|
+
# 4. AFTER: the same trace now resolves canonically — the advisories are gone.
|
|
30
|
+
rig context trace --rig <rig> --seat <seat> --name LEARNED.md
|
|
31
|
+
|
|
32
|
+
# 5. Do NOT delete the legacy tree in the same session. Archive it later,
|
|
33
|
+
# once every consumer (queue-state add-dirs, review artifacts, scripts)
|
|
34
|
+
# has been confirmed off it — reads through the fallback stay correct in
|
|
35
|
+
# the meantime, which is the point of fail-open.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## What migrates and what does not
|
|
39
|
+
|
|
40
|
+
- **Migrates:** the rig's chain files and seat directories — `LEARNED.md`,
|
|
41
|
+
`CULTURE.md`, craft files, `seats/<seat>/…`.
|
|
42
|
+
- **Stays (for now):** `state/` (queue-state add-dirs and live artifacts are
|
|
43
|
+
actively written by running seats; moving them under a live rig strands
|
|
44
|
+
writers — that cutover is its own change with its own receipt).
|
|
45
|
+
- **Never:** anything into a running seat's context. Migration moves files;
|
|
46
|
+
delivery to running seats is the refocus channel
|
|
47
|
+
(`docs/reference/refocus-channel.md`) — editing a file is not delivery.
|
|
48
|
+
|
|
49
|
+
## After migration
|
|
50
|
+
|
|
51
|
+
The next `rig up` of a spec shipping topology defaults installs them
|
|
52
|
+
copy-if-absent alongside the migrated content — earned context always wins
|
|
53
|
+
over a shipped default. Verify any doubt with the trace, not with memory.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# The Refocus Channel
|
|
2
|
+
|
|
3
|
+
**How orientation content reaches a RUNNING seat.** Editing a file is not
|
|
4
|
+
delivery: a running seat read its configuration at session start, and nothing
|
|
5
|
+
in its context re-reads disk on its own. The refocus channel closes that gap —
|
|
6
|
+
it is the mechanism that makes shipped chain files (see
|
|
7
|
+
`chain-file-convention.md`) live doctrine rather than boot-time decoration.
|
|
8
|
+
|
|
9
|
+
## The mechanism
|
|
10
|
+
|
|
11
|
+
`openrig-core` ships `hooks/scripts/refocus.cjs`, registered on both runtimes:
|
|
12
|
+
|
|
13
|
+
| event | Claude Code | Codex | why |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| SessionStart | ✓ | ✓ | fresh orientation |
|
|
16
|
+
| UserPromptSubmit | ✓ | ✓ | growth check at each turn boundary |
|
|
17
|
+
| Stop | ✓ | ✓ | catches the long single turn |
|
|
18
|
+
| PostCompact | ✓ | — (no compact hook) | a compacted seat's picture is lossy |
|
|
19
|
+
|
|
20
|
+
The firing signal is **transcript growth** — not turns (one turn can burn 200k
|
|
21
|
+
tokens across fifty tool calls) and not wall-clock (the failure is sustained
|
|
22
|
+
work, not elapsed time). Default threshold ~2.6MB of JSONL growth (≈300k
|
|
23
|
+
tokens); tune with `OPENRIG_REFOCUS_BYTES`. SessionStart and PostCompact
|
|
24
|
+
always fire. Otherwise the hook is a silent no-op, and it degrades to silence
|
|
25
|
+
on unrelated hook errors. A configured REF resolution failure instead degrades
|
|
26
|
+
loudly in the delivered payload while still completing the hook — a refocus
|
|
27
|
+
must never break a seat's turn.
|
|
28
|
+
|
|
29
|
+
Because the hook runs at the seat's own turn boundaries, delivery to a
|
|
30
|
+
RUNNING seat needs no relaunch, no operator action, and no message traffic:
|
|
31
|
+
the next prompt the seat processes carries the content. The latency bound is
|
|
32
|
+
"the seat's next turn," which is also the earliest moment new orientation
|
|
33
|
+
could have been acted on anyway.
|
|
34
|
+
|
|
35
|
+
## The content is configurable — and never project-specific in source
|
|
36
|
+
|
|
37
|
+
Resolution order:
|
|
38
|
+
|
|
39
|
+
1. `OPENRIG_REFOCUS_CONTENT_REF` — a path-like context-library ref resolved
|
|
40
|
+
through `rig context get`, so refocus receives the same assembled bytes as
|
|
41
|
+
on-demand pull. This wins when REF and FILE are both set.
|
|
42
|
+
2. `OPENRIG_REFOCUS_CONTENT_FILE` — an operator-authored file (per-seat or
|
|
43
|
+
per-rig via spec env).
|
|
44
|
+
3. `$OPENRIG_HOME/refocus/REFOCUS.md` — the instance's standing content.
|
|
45
|
+
4. The generic default baked into the hook: three project-neutral orientation
|
|
46
|
+
questions plus the pointer to the seat's topology chain
|
|
47
|
+
(`rig context trace … --name CRAFT.md`) and the LEARNED-ownership warning.
|
|
48
|
+
|
|
49
|
+
The hook names a resolved REF in the delivered payload. If REF resolution
|
|
50
|
+
fails, the payload starts with `REFOCUS CONTENT REF FAILED`, the exact ref, and
|
|
51
|
+
the resolver's reason, then continues with generic orientation. A broken ref
|
|
52
|
+
therefore stays visible without blocking the seat's session boundary. With REF
|
|
53
|
+
unset, the existing FILE and generic paths are unchanged.
|
|
54
|
+
|
|
55
|
+
Mission-, project-, or box-specific refocus text belongs in a context-library
|
|
56
|
+
entry or one of those FILES on the instance that needs it. **It must never be committed into product
|
|
57
|
+
source** — the shipped default carries no path, seat name, mission, or
|
|
58
|
+
practice that is not generally applicable. (The pre-promotion lab hook had
|
|
59
|
+
exactly this defect: a hardcoded per-box distillation-tool path. The
|
|
60
|
+
promotion removed it; the grep for project residue is part of the slice's
|
|
61
|
+
proof contract.)
|
|
62
|
+
|
|
63
|
+
This automatic hook path is additive to one-shot manual injection through
|
|
64
|
+
`rig send --context`; neither mode substitutes for the other.
|
|
65
|
+
|
|
66
|
+
## Relation to chain files
|
|
67
|
+
|
|
68
|
+
The chain files are the durable, altitude-addressed home of orientation
|
|
69
|
+
content; the refocus channel is its delivery schedule. A practice added to a
|
|
70
|
+
rig's `CRAFT.md` today reaches running seats through their next refocus
|
|
71
|
+
pointer, and future installs through the shipped defaults
|
|
72
|
+
(discovery → curation → ship, per the convention doc).
|
|
73
|
+
|
|
74
|
+
## What a refocus is NOT
|
|
75
|
+
|
|
76
|
+
A refocus corrects drift; it is not a wake (which restores liveness and must
|
|
77
|
+
not reframe work) and not a checkpoint (a deliberate phase-boundary pause).
|
|
78
|
+
Sending the heavy intervention when the light one was due is the most common
|
|
79
|
+
self-inflicted stall — the hook fires the light one automatically, which is
|
|
80
|
+
the point.
|
|
@@ -332,3 +332,27 @@ what it looks like now" evidence the agent stands behind — bounded, mapped
|
|
|
332
332
|
1:1 (or few:1) to deliverables. The fix-loop's full artifact history stays in
|
|
333
333
|
`proof/`, one drill-in down, NEVER in the primary view. The anti-pattern:
|
|
334
334
|
an append-only pile where the human can't tell final from superseded.
|
|
335
|
+
|
|
336
|
+
## Scratch-daemon hermeticity: the DB a scratch daemon opens is the one you named
|
|
337
|
+
|
|
338
|
+
*(Desk-ruled 2026-08-25, row qitem-20260825005846-7960f4dd; 0.5.3-era doctrine — a harness rule,
|
|
339
|
+
not product behavior.)*
|
|
340
|
+
|
|
341
|
+
A scratch daemon launch **strips the inherited environment's `OPENRIG_DB` and names an explicit
|
|
342
|
+
scratch DB path under the scratch `OPENRIG_HOME`** — both halves, every launch:
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
env -u OPENRIG_DB \
|
|
346
|
+
OPENRIG_HOME="$SCRATCH_HOME" \
|
|
347
|
+
OPENRIG_DB="$SCRATCH_HOME/openrig.sqlite" \
|
|
348
|
+
node <daemon entry> …
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
An inherited fleet DB reaching a scratch daemon is a **harness defect regardless of outcome** —
|
|
352
|
+
the scratch context read or wrote state it never owned, and whether anything visibly broke is
|
|
353
|
+
luck, not hermeticity.
|
|
354
|
+
|
|
355
|
+
**The discriminator that keeps this rule honest:** an explicit `OPENRIG_DB` still WINS by design
|
|
356
|
+
(`daemon-db-path.ts`; prior ruling 00c4ab76) — deliberate split-path configuration is legitimate
|
|
357
|
+
and untouched. This rule governs **inheritance into scratch contexts**, where nobody decided
|
|
358
|
+
anything: strip what you did not choose, then choose.
|
|
@@ -100,7 +100,7 @@ Negative-grep over adapter source confirms ZERO `restored` / `resumed` /
|
|
|
100
100
|
|
|
101
101
|
## Hard boundaries (do-not list; verbatim)
|
|
102
102
|
|
|
103
|
-
- **Do NOT introduce a
|
|
103
|
+
- **Do NOT introduce a DIVERGENT fork primitive.** The primitive flows through existing spec/expansion pathways. *(Update 2026-08-07: `rig fork <source-session>` has since shipped as a thin convenience verb that COMPOSES the existing agent-image fork path — this honors the boundary; it is not a divergent primitive. The rule now reads: no NEW fork mechanics outside the spec / expansion / agent-image pathways.)*
|
|
104
104
|
- **Do NOT report "restored" / "resumed the original seat" / "snapshot"** in any UX surface.
|
|
105
105
|
- **Do NOT couple `session_source` to AgentSpec.** It's a member-level launch-time input.
|
|
106
106
|
- **Do NOT change `restore` semantics.** `session_source` creates a seat; `restore` continues an existing managed seat.
|
|
@@ -10,7 +10,7 @@ metadata:
|
|
|
10
10
|
# genuinely adjacent set.
|
|
11
11
|
- queue-handoff
|
|
12
12
|
- workflow-runtime
|
|
13
|
-
-
|
|
13
|
+
- refocus
|
|
14
14
|
- looping-workflows
|
|
15
15
|
- intake-routing
|
|
16
16
|
- human-in-the-loop
|
|
@@ -22,7 +22,7 @@ metadata:
|
|
|
22
22
|
|
|
23
23
|
Continuity checks are timed or evidence-triggered interventions that
|
|
24
24
|
keep an agent workflow from going idle, drifting, or entering needless
|
|
25
|
-
bureaucracy. They operationalize the
|
|
25
|
+
bureaucracy. They operationalize the refocus doctrine.
|
|
26
26
|
|
|
27
27
|
## Use this when
|
|
28
28
|
|
|
@@ -49,7 +49,7 @@ bureaucracy. They operationalize the alignment-trace doctrine.
|
|
|
49
49
|
|---|---|---|---|
|
|
50
50
|
| **Wake** | Restart motion | Owner appears idle, stale, blocked, or missing a next handoff | Small liveness nudge — does NOT reframe the work |
|
|
51
51
|
| **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 |
|
|
52
|
-
| **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full
|
|
52
|
+
| **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full refocus before proceeding |
|
|
53
53
|
|
|
54
54
|
`cron`, timers, and `rig watchdog` are scheduling substrates. They
|
|
55
55
|
should NOT imply that every tick means the same semantic action. The
|
|
@@ -121,6 +121,6 @@ handling over many per-seat nag loops.
|
|
|
121
121
|
|
|
122
122
|
## See also
|
|
123
123
|
|
|
124
|
-
- `
|
|
124
|
+
- `refocus` skill — the doctrine this primitive operationalizes; full and light trace templates
|
|
125
125
|
- `queue-handoff` skill — durable handoff via queue items; watchdog is complementary (watchdog wakes; queue routes)
|
|
126
126
|
- `looping-workflows` skill — operating discipline for self-driving rig-shaped loops; uses watchdog policies for loop edges
|
|
@@ -43,6 +43,14 @@ This is the default loop for product work:
|
|
|
43
43
|
|
|
44
44
|
Skip no gates. If the task is ambiguous, resolve the ambiguity before editing.
|
|
45
45
|
|
|
46
|
+
**Chunk size points up — keep TDD's shape, not its ping-pong cadence (2026-08).** Frontier agents handle
|
|
47
|
+
large, long-horizon, goal-oriented chunks — an hour-plus of complex work — without fragmenting. So don't
|
|
48
|
+
default to tiny pieces: **keep TDD's *shape* (two sets of eyes, the guard structure, red before green)
|
|
49
|
+
but treat chunk size and cadence as a configured LEVER, not a habit.** Classic small back-and-forth
|
|
50
|
+
ping-pong is unnecessary overhead when the loop's own gates (QA, review, guards) already bound a larger
|
|
51
|
+
chunk's risk. The sweet spot is task-dependent, much larger than it used to be, and rising. See
|
|
52
|
+
`test-driven-development` for the shape that stays fixed.
|
|
53
|
+
|
|
46
54
|
## What the implementer must hand QA
|
|
47
55
|
|
|
48
56
|
Pre-edit proposal should include:
|
|
@@ -28,18 +28,18 @@ The orchestration pod is responsible for:
|
|
|
28
28
|
|
|
29
29
|
## Monitoring & intervention — keep the RIG self-running, not the ORCHESTRATOR busy
|
|
30
30
|
|
|
31
|
-
**North star:** your goal is a **self-running rig, not a busy orchestrator.** Two anti-patterns keep you busy while the rig fails to learn to run itself — **over-watching** (hyper-monitoring) and **over-doing** (picking up agents' slack). Both are governed by judgment below, not by a rule for every case. (
|
|
31
|
+
**North star:** your goal is a **self-running rig, not a busy orchestrator.** Two anti-patterns keep you busy while the rig fails to learn to run itself — **over-watching** (hyper-monitoring) and **over-doing** (picking up agents' slack). Both are governed by judgment below, not by a rule for every case. (Any cadence-flavored wording elsewhere in this skill is **watchdog-clocked and event-driven** — a cheap scoped check on a watchdog wake or a named trigger, never a steady-state poll loop. There is no literal instruction to poll panes or `rig ps` on a fixed cycle.)
|
|
32
32
|
|
|
33
33
|
### A. Monitoring intensity — proportional to stakes, bounded to the window
|
|
34
34
|
**Principle:** monitoring intensity tracks **stakes × how likely you are to need to intervene, bounded to the window where that's true.** Spend tight attention only where it changes what you do, only as long as the risk lasts, then return to default. (Same evidence-not-cadence rule the `watchdog` skill applies to intervention *level*, applied to *intensity*.) **Self-test: "Can I name the stakes AND the condition that ends this close-watch?"** If not, you're hyper-monitoring.
|
|
35
35
|
|
|
36
36
|
**Default (almost always) — token-efficient.** Steady-state your job is the **idle-without-handoff exception**: the queue handles normal handoff; you catch the agent who finished + went idle without closing/handing off.
|
|
37
|
-
- **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps --nodes --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state).
|
|
37
|
+
- **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps --nodes --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state). *(`rig ps --nodes` is YOUR rig's seats only — bare `rig ps` lists ALL rigs on the host; don't mistake a narrow node read for the whole world.)*
|
|
38
38
|
- **The watchdog is your clock** (`watchdog`): configure `rig watchdog` to wake you (~3 min); between wakes, idle (zero tokens) — no self-run sleep-loop re-reading panes at steady-state. Prefer one workflow-watchdog + targeted exception handling over many per-seat nag loops.
|
|
39
39
|
- **On each wake — cheap sweep:** `rig queue` + a *filtered* `rig ps` (see "Read cheap" below) first; ONLY for a seat that looks idle/suspicious, `rig capture <session>` last few lines (never a full pane, never huge chunks); **active owner → no-op.**
|
|
40
40
|
- **Read cheap — every status command has a token cost; project to the question.** The queue-first rule is about *where* status lives; this is about *how much you pay to read it*. The token bomb is the broad unfiltered dump, not the pane capture: an unfiltered fleet-wide `rig ps --nodes --json` emits ~77k tokens — for a one-rig or one-qitem question that is almost all waste, and at watchdog cadence it burns the shared account fast.
|
|
41
41
|
- **Scope the read to the question.** Specific item → `rig queue show <qitem> --json`. One rig's frontier → filter + project only the fields you need, e.g. `rig ps --nodes --json | jq '.[] | select(.rigName=="<rig>") | {session:.canonicalSessionName, state:.agentActivity.state, hasAssignedWork, pendingWorkCount}'` (prefer a native rig/session filter if one exists). Never pull whole-fleet JSON to answer a narrow rig/qitem question.
|
|
42
|
-
- **Pane capture / transcript = last resort for one named stale owner,** not a status-polling loop.
|
|
42
|
+
- **Pane capture / transcript = last resort for one named stale owner,** not a status-polling loop — **re-capturing an unchanged pane returns no new information and is the measured token-burn failure** (the unit of monitoring is an event — a wake, a queue transition, an activity signal — never elapsed time or a repeat count).
|
|
43
43
|
- **Context reads are task-scoped too:** read the skills the task needs; don't reload broad references or large files for a tiny queue update (compaction / named-skill rules excepted).
|
|
44
44
|
- **Notice-and-stop:** if any command emits unexpectedly huge output, that is a protocol miss — name it and correct the pattern immediately, don't absorb it as normal.
|
|
45
45
|
- **Self-test:** "Does this read return more than the decision in front of me needs?" If yes, narrow it before running.
|
|
@@ -92,6 +92,8 @@ When you dispatch work, give the receiving agent enough structure to act without
|
|
|
92
92
|
- what proof or verification you expect back
|
|
93
93
|
- which peer or pod they must involve before calling the work complete
|
|
94
94
|
|
|
95
|
+
**(0.5.0) Assign work *with* its context attached.** Rather than make the assignee grep for the as-built, compose a context pack and ride it on the handoff: `rig context compose --out packs/<brief> --from <files>`, then `rig queue create --destination <seat> --body-context packs/<brief> --summary "…"`. The pack's resolved content is snapshotted into the qitem (plus its ref for provenance), so the context survives compaction and is auditable. See `openrig-user` → "Context packs and paced delivery." (`rig context` composes; the queue delivers — the noun never sends.)
|
|
96
|
+
|
|
95
97
|
If design clarity is missing, route to design first.
|
|
96
98
|
If QA gating is required, say so explicitly in the assignment.
|
|
97
99
|
If reviewers should wait for a milestone, say what milestone triggers them.
|
|
@@ -99,7 +101,7 @@ If reviewers should wait for a milestone, say what milestone triggers them.
|
|
|
99
101
|
After delegating:
|
|
100
102
|
1. Let the assigned agent work.
|
|
101
103
|
2. Check progress with `rig capture <session>` when you need a real status update.
|
|
102
|
-
3. If an agent is stuck
|
|
104
|
+
3. If an agent is still stuck on your **next watchdog wake** (no progress signal since the last), investigate and redirect or unblock — the trigger is the wake / queue-transition / activity signal, **not a poll count or elapsed-time cycle.**
|
|
103
105
|
|
|
104
106
|
## Monitoring and unblock loop
|
|
105
107
|
|
|
@@ -111,27 +113,49 @@ When an agent looks stuck:
|
|
|
111
113
|
|
|
112
114
|
Do not call a blocked agent "in progress" forever.
|
|
113
115
|
|
|
114
|
-
##
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
- `
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
## Capacity — a seat is never the bottleneck (fork to unblock)
|
|
117
|
+
|
|
118
|
+
Seat capacity is **elastic**, so a blocked or overloaded lane is a **policy** problem, not a capacity
|
|
119
|
+
fact — *"the seat is busy"* is never a real constraint. You have **standing authority to fork any
|
|
120
|
+
agent** to unblock a lane; no escalation.
|
|
121
|
+
|
|
122
|
+
- **`rig fork <source-session>`** clones a live seat *with its context window* into a new seat (`--rig`
|
|
123
|
+
/ `--pod` to place it; it composes the shipped agent-image fork path). **Claude is supported today;
|
|
124
|
+
Codex fork is pending a research spike — don't rely on it until that lands.**
|
|
125
|
+
- **The pattern:** fork → the fork does the task → **salvage its result as markdown** → **retire the
|
|
126
|
+
fork** → return the rig to its spec's steady state. Short-lived forks are safe because seats carry
|
|
127
|
+
**distinguished names** (a fork is never mistaken for the seat it came from — see
|
|
128
|
+
`seat-continuity-and-handover`).
|
|
129
|
+
- **The ladder, and whose call each rung is:** fork an agent *(yours, standing)* → onboard a new seat
|
|
130
|
+
→ clone / stand up a whole rig → stand up a host on a VPS. **Rig- and host-level spin-up belong to
|
|
131
|
+
the oversight / owner altitude, not the orchestrator's** — fork is your rung.
|
|
132
|
+
- **What's actually scarce:** with seats elastic, the real constraints reduce to **humans** (the
|
|
133
|
+
owner's attention, the operator slot), **money** (provider limits — account switching is the relief
|
|
134
|
+
valve), and **compute** (host limits). Protect *those*; never let a lane sit blocked on a "busy seat."
|
|
135
|
+
|
|
136
|
+
See `session-source-fork` for the fork primitive's mechanics and `delegating-work` for choosing fork
|
|
137
|
+
vs. subagent vs. route-to-a-context-holder.
|
|
138
|
+
|
|
139
|
+
## Topology settlement
|
|
140
|
+
|
|
141
|
+
**Your rig's roster is a fact you READ, never one this skill asserts.** Get the actual team
|
|
142
|
+
from `rig ps --nodes --json` at settlement time — a skill that hardcodes a specific topology
|
|
143
|
+
goes stale exactly like a stale boot overlay, and a cleared or fresh seat has no context to
|
|
144
|
+
doubt it (field case: a seven-node demo roster taught as "the expected team" sent a
|
|
145
|
+
fourteen-seat rig's seats waiting for nodes that did not exist).
|
|
146
|
+
|
|
147
|
+
- Settle **what the current atom needs**, not the whole declared roster: dispatch when the
|
|
148
|
+
seats THIS work requires are up. **Never park the rig waiting for absent nodes** — a
|
|
149
|
+
wait-for-all-nodes instruction is a mechanical cause of premature parking.
|
|
150
|
+
- If the settled inventory contradicts your earlier assumption, correct course immediately
|
|
151
|
+
and use the actual nodes.
|
|
152
|
+
|
|
153
|
+
## Milestone routing — gates are CHOSEN, not universal
|
|
154
|
+
|
|
155
|
+
**The owner-ruled chooser law: default-light; the conveyor EARNS entry.** Gates are chosen
|
|
156
|
+
per atom at plan-lock by the target's tier (release-gated / shared contracts / heavy tier →
|
|
157
|
+
full gate; everything else → light peer check or none), never applied as a universal loop.
|
|
158
|
+
When the heavy tier IS chosen for launch-grade product work:
|
|
135
159
|
- do not let implementation start from pure intuition when product behavior is unclear
|
|
136
160
|
- do not let edits land before QA has approved a pre-edit proposal
|
|
137
161
|
- do not skip reviewer involvement once there is a real diff, a QA-approved working tree, or a meaningful architectural checkpoint
|
|
@@ -147,7 +171,15 @@ Ask for review:
|
|
|
147
171
|
|
|
148
172
|
## Keeping the team utilized
|
|
149
173
|
|
|
150
|
-
|
|
174
|
+
**Queue depth is your product — keep every worker's queue stocked.** An agent with an empty queue idles
|
|
175
|
+
the moment it finishes; an agent with a stocked queue pulls its next item and keeps producing. The
|
|
176
|
+
biggest utilization leak is **unstocked worker queues**, so your steady-state job is to keep work
|
|
177
|
+
flowing INTO each lane's queue *ahead of* demand. The worker side of this is the pull-after-handoff
|
|
178
|
+
circulation in `queue-handoff` (finish → hand the baton off → pull your own next item → idle only when
|
|
179
|
+
the queue is truly empty); your side is making sure there is always a next item to pull. Planners are
|
|
180
|
+
rarely blocked — keep their queues full; implementers are more sequential but still queueable.
|
|
181
|
+
|
|
182
|
+
On a watchdog wake, a cheap scoped `rig ps --nodes` surfaces a ready-but-idle agent (this is an event-driven check, not a poll loop). If one is idle:
|
|
151
183
|
- QA with no pending reviews should scan recent work for gaps
|
|
152
184
|
- reviewers with no assignment should review the newest meaningful progress
|
|
153
185
|
- designers with no open task should audit current flows and clarify ambiguous UX
|
|
@@ -168,9 +200,18 @@ Use the chatroom when:
|
|
|
168
200
|
|
|
169
201
|
Use `rig capture` and `rig transcript` when you need evidence, not guesses.
|
|
170
202
|
|
|
171
|
-
|
|
203
|
+
**Proactively reach the human on the named event classes — WORKS ≠ USED.** As an orchestrator you are
|
|
204
|
+
the **primary channel to the human**, and a channel nobody reaches for is useless. Surface — unprompted
|
|
205
|
+
— model-fallback boots, capacity / authority requests, security flags, acceptance / milestone moments,
|
|
206
|
+
human-addressed work blocked past its settle window, and idle / stall alarms. The named classes and the
|
|
207
|
+
how live in `messaging-the-human` → *the v0 event classes*; your job is to actually **use** the channel
|
|
208
|
+
across the lifecycle, not only when cornered.
|
|
209
|
+
|
|
210
|
+
## Implementation pair — gated workflow (when the gate is chosen)
|
|
172
211
|
|
|
173
|
-
|
|
212
|
+
**This loop applies when the atom's tier chose the full gate** (see Milestone routing — the
|
|
213
|
+
conveyor earns entry; it is not the default shape of all work). When it applies, the pair
|
|
214
|
+
follows this loop:
|
|
174
215
|
|
|
175
216
|
1. Impl sends a pre-edit proposal to QA
|
|
176
217
|
2. QA approves or rejects with specifics
|
|
@@ -186,7 +227,7 @@ The orchestrator does NOT relay messages between them. They communicate directly
|
|
|
186
227
|
- Impl skipping the gate (going straight to implementation without QA pre-approval)
|
|
187
228
|
- QA not actually reviewing (rubber-stamping)
|
|
188
229
|
|
|
189
|
-
|
|
230
|
+
On gated atoms, never send impl a "Go" without explicitly stating the FIRST action is to send a pre-edit to QA — impl will race through an entire task list if given a general "Go." On ungated atoms, a general "Go" is correct; do not smuggle the gate back in through dispatch phrasing.
|
|
190
231
|
|
|
191
232
|
## Dogfood fix loop
|
|
192
233
|
|
|
@@ -199,7 +240,7 @@ When QA is dogfooding (testing existing features), QA works solo with full auton
|
|
|
199
240
|
|
|
200
241
|
## Permission prompt handling
|
|
201
242
|
|
|
202
|
-
Permission prompts are the #1 mechanical blocker
|
|
243
|
+
Permission prompts are the #1 mechanical blocker — surface them on your watchdog wake (a scoped `rig ps` / queue check), never a steady-state poll loop.
|
|
203
244
|
|
|
204
245
|
For Codex (3-option prompts): select option 2 ("Yes, and don't ask again") to permanently approve the pattern.
|
|
205
246
|
For Claude (2-option): approve with Enter.
|
|
@@ -230,7 +271,7 @@ Rules:
|
|
|
230
271
|
2. Always say "finish what you're on first." Explicitly. Every time.
|
|
231
272
|
3. Frame as context updates, not directives.
|
|
232
273
|
4. Do not interrupt working agents. If an agent shows ANY sign of activity, do not send a message.
|
|
233
|
-
5.
|
|
274
|
+
5. Nudge only on confirmed idleness — evidence from your watchdog-clocked checks (no activity signal + settled queue state), never a fixed poll count or a "wait N cycles" loop.
|
|
234
275
|
|
|
235
276
|
## Destructive operations — hard rules
|
|
236
277
|
|