@openrig/cli 0.6.6 → 0.6.8
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/README.md +97 -28
- package/daemon/assets/claude-team-permissions.cjs +262 -0
- package/daemon/assets/onboarding/02-self-and-competent-action.md +20 -13
- 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/hooks/scripts/refocus-health.cjs +41 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -12
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +13 -2
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -4
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +24 -13
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +42 -0
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +6 -0
- package/daemon/assets/skills/rigs/SKILL.md +133 -0
- package/daemon/context-packs/help/help.md +48 -19
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +239 -43
- package/daemon/context-packs/reference/getting-started.md +356 -212
- package/daemon/context-packs/reference/instance-layout.md +5 -0
- package/daemon/context-packs/reference/manifest.yaml +4 -1
- package/daemon/context-packs/reference/rig-spec.md +48 -20
- package/daemon/context-packs/reference/whats-new.md +96 -0
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +13 -2
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +6 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +3 -0
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +19 -12
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +17 -16
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +2 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/SKILL.md +31 -4
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +24 -13
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +42 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +6 -0
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts +1 -1
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +23 -13
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +17 -0
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +2 -2
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
- package/daemon/dist/adapters/kernel-authority.js +29 -11
- package/daemon/dist/adapters/kernel-authority.js.map +1 -1
- package/daemon/dist/adapters/pi-readiness.d.ts +15 -0
- package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-readiness.js +90 -0
- package/daemon/dist/adapters/pi-readiness.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner-protocol.js +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runner.js +13 -2
- package/daemon/dist/adapters/pi-runner.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +9 -6
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +4 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/096_rig_install_root.d.ts +3 -0
- package/daemon/dist/db/migrations/096_rig_install_root.d.ts.map +1 -0
- package/daemon/dist/db/migrations/096_rig_install_root.js +5 -0
- package/daemon/dist/db/migrations/096_rig_install_root.js.map +1 -0
- package/daemon/dist/db/migrations/097_thread_part_map.d.ts +3 -0
- package/daemon/dist/db/migrations/097_thread_part_map.d.ts.map +1 -0
- package/daemon/dist/db/migrations/097_thread_part_map.js +20 -0
- package/daemon/dist/db/migrations/097_thread_part_map.js.map +1 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts +7 -0
- package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
- package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
- package/daemon/dist/domain/agent-activity-store.d.ts +12 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +55 -30
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts +1 -1
- package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +6 -4
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-install-context.d.ts +2 -2
- package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-install-context.js +16 -3
- package/daemon/dist/domain/bundle-install-context.js.map +1 -1
- package/daemon/dist/domain/bundle-types.d.ts +1 -1
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.d.ts +5 -0
- package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
- package/daemon/dist/domain/chat-repository.js +8 -0
- package/daemon/dist/domain/chat-repository.js.map +1 -1
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +5 -4
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.d.ts +3 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
- package/daemon/dist/domain/claude-activity-hooks.js +8 -1
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +34 -2
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +195 -107
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +4 -2
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +5 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +23 -6
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +57 -11
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +4 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +2 -0
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/destination-resolver.js +7 -4
- package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -1
- package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-readiness.js +23 -6
- package/daemon/dist/domain/gateway/human-readiness.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +2 -2
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +2 -2
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/capabilities.js +3 -1
- package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/channel-map.d.ts +39 -0
- package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/slack/channel-map.js +114 -0
- package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts +7 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/config.js +19 -2
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +24 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +105 -3
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.d.ts +7 -0
- package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/message.js +36 -0
- package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +2 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +7 -2
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +35 -3
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +34 -7
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +268 -51
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +17 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +107 -24
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +2 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +40 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-routing.js +22 -2
- package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +14 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js +27 -0
- package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -1
- package/daemon/dist/domain/generated-file-hygiene.js +7 -4
- package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
- package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
- package/daemon/dist/domain/managed-blocks.js +5 -2
- package/daemon/dist/domain/managed-blocks.js.map +1 -1
- package/daemon/dist/domain/markdown-address.d.ts.map +1 -1
- package/daemon/dist/domain/markdown-address.js +23 -6
- package/daemon/dist/domain/markdown-address.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +50 -3
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +2 -2
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +30 -4
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +1 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/pane-binding-observation.d.ts +1 -0
- package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -1
- package/daemon/dist/domain/pane-binding-observation.js +3 -1
- package/daemon/dist/domain/pane-binding-observation.js.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.d.ts +6 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +12 -0
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +54 -15
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +11 -9
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +15 -12
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-nudge-text.d.ts +4 -0
- package/daemon/dist/domain/queue-nudge-text.d.ts.map +1 -0
- package/daemon/dist/domain/queue-nudge-text.js +35 -0
- package/daemon/dist/domain/queue-nudge-text.js.map +1 -0
- package/daemon/dist/domain/queue-repository.d.ts +7 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +50 -20
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +2 -2
- package/daemon/dist/domain/queue-retention.js +4 -4
- package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wait-backoff.js +6 -2
- package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
- package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
- package/daemon/dist/domain/queue-waiting.js +7 -2
- package/daemon/dist/domain/queue-waiting.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +15 -2
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +29 -6
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +5 -2
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/daemon/dist/domain/reply-to-choice.d.ts +6 -2
- package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
- package/daemon/dist/domain/reply-to-choice.js +9 -6
- package/daemon/dist/domain/reply-to-choice.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.d.ts +5 -1
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +17 -3
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +17 -11
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +3 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +13 -4
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +6 -0
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +8 -4
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +19 -4
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-activity-service.js +16 -6
- package/daemon/dist/domain/seat-activity-service.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +9 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/session-jsonl.d.ts.map +1 -1
- package/daemon/dist/domain/session-jsonl.js +10 -4
- package/daemon/dist/domain/session-jsonl.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +16 -21
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +70 -37
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/skill-audit.d.ts +19 -0
- package/daemon/dist/domain/skill-audit.d.ts.map +1 -1
- package/daemon/dist/domain/skill-audit.js +97 -5
- package/daemon/dist/domain/skill-audit.js.map +1 -1
- package/daemon/dist/domain/skill-catalog.d.ts +11 -0
- package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
- package/daemon/dist/domain/skill-catalog.js +145 -12
- package/daemon/dist/domain/skill-catalog.js.map +1 -1
- package/daemon/dist/domain/skill-mirror-drift.d.ts +6 -1
- package/daemon/dist/domain/skill-mirror-drift.d.ts.map +1 -1
- package/daemon/dist/domain/skill-mirror-drift.js +23 -12
- package/daemon/dist/domain/skill-mirror-drift.js.map +1 -1
- package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-repository.js +12 -32
- package/daemon/dist/domain/snapshot-repository.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +4 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +14 -7
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +9 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.d.ts +4 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/terminal-service.js +23 -11
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +21 -9
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +2 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/usage-samples-store.js +2 -2
- package/daemon/dist/domain/usage-samples-store.js.map +1 -1
- package/daemon/dist/domain/usage-series.d.ts.map +1 -1
- package/daemon/dist/domain/usage-series.js +42 -10
- package/daemon/dist/domain/usage-series.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
- package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/watchdog-due.d.ts +17 -0
- package/daemon/dist/domain/watchdog-due.d.ts.map +1 -0
- package/daemon/dist/domain/watchdog-due.js +45 -0
- package/daemon/dist/domain/watchdog-due.js.map +1 -0
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.js +3 -7
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +15 -5
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +1 -1
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-step-trail-log.d.ts +6 -0
- package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-step-trail-log.js +11 -0
- package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +22 -1
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js +1 -1
- package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
- package/daemon/dist/gateway-slack-surface.d.ts +1 -0
- package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
- package/daemon/dist/gateway-slack-surface.js +2 -1
- package/daemon/dist/gateway-slack-surface.js.map +1 -1
- package/daemon/dist/index.d.ts +1 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +7 -7
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/agent-images.js +5 -5
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/bootstrap-failure-response.d.ts +13 -0
- package/daemon/dist/routes/bootstrap-failure-response.d.ts.map +1 -0
- package/daemon/dist/routes/bootstrap-failure-response.js +52 -0
- package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -0
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +23 -36
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/chat.d.ts.map +1 -1
- package/daemon/dist/routes/chat.js +16 -1
- package/daemon/dist/routes/chat.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +2 -0
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.js +2 -2
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/seat.js +13 -13
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.js +11 -11
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/skills.d.ts.map +1 -1
- package/daemon/dist/routes/skills.js +15 -7
- package/daemon/dist/routes/skills.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +15 -2
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/terminal.d.ts.map +1 -1
- package/daemon/dist/routes/terminal.js +6 -4
- package/daemon/dist/routes/terminal.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +5 -56
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +32 -7
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js +9 -1
- package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +10 -10
- package/daemon/docs/reference/agent-startup-guide.md +7 -2
- package/daemon/docs/reference/bundle-formats.md +6 -4
- package/daemon/docs/reference/chain-file-convention.md +2 -2
- package/daemon/docs/reference/developing.md +1 -1
- package/daemon/docs/reference/edge-types.md +1 -1
- package/daemon/docs/reference/getting-started.md +356 -212
- package/daemon/docs/reference/help.md +48 -19
- package/daemon/docs/reference/instance-layout.md +5 -0
- package/daemon/docs/reference/non-interruptive-mode.md +7 -4
- package/daemon/docs/reference/project-workspace.md +2 -2
- package/daemon/docs/reference/publishing-a-rig-bundle.md +15 -10
- package/daemon/docs/reference/refocus-channel.md +14 -2
- package/daemon/docs/reference/rig-bundle.md +39 -19
- package/daemon/docs/reference/rig-spec.md +48 -20
- package/daemon/docs/reference/rosters.md +2 -1
- package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +1 -1
- package/daemon/docs/reference/sdlc-conventions.md +4 -2
- package/daemon/docs/reference/slack-app-setup.md +69 -9
- package/daemon/docs/reference/topology-naming.md +74 -0
- package/daemon/docs/reference/whats-new.md +96 -0
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +6 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +3 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +19 -12
- package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +17 -16
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +2 -0
- package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +60 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +105 -19
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +5 -2
- package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +44 -0
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts.map +1 -1
- package/dist/cli-error.js +11 -3
- package/dist/cli-error.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/commands/agent-image.js +2 -2
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +5 -4
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +21 -1
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +12 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +14 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +42 -0
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/gateway.d.ts.map +1 -1
- package/dist/commands/gateway.js +4 -3
- package/dist/commands/gateway.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +114 -8
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/package.d.ts.map +1 -1
- package/dist/commands/package.js +6 -3
- package/dist/commands/package.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +6 -5
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/proof.js +1 -1
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +6 -3
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +6 -4
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/scope.js +6 -6
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/setup.d.ts +6 -15
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +121 -332
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +12 -1
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/slack.d.ts +5 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +143 -6
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/stream.js +1 -1
- package/dist/commands/stream.js.map +1 -1
- package/dist/commands/terminal.d.ts +33 -0
- package/dist/commands/terminal.d.ts.map +1 -1
- package/dist/commands/terminal.js +30 -12
- package/dist/commands/terminal.js.map +1 -1
- package/dist/commands/tui.js +4 -4
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/workflow-follow.d.ts +1 -1
- package/dist/commands/workflow-follow.d.ts.map +1 -1
- package/dist/commands/workflow-follow.js +4 -3
- package/dist/commands/workflow-follow.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +30 -18
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.js +1 -1
- package/dist/config-store.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +4 -2
- package/dist/front-door.js.map +1 -1
- package/dist/herdr-launch-config.d.ts +3 -0
- package/dist/herdr-launch-config.d.ts.map +1 -0
- package/dist/herdr-launch-config.js +37 -0
- package/dist/herdr-launch-config.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/launch-plan-guard.d.ts +27 -0
- package/dist/launch-plan-guard.d.ts.map +1 -0
- package/dist/launch-plan-guard.js +73 -0
- package/dist/launch-plan-guard.js.map +1 -0
- package/dist/lib/bundle-source.d.ts +2 -0
- package/dist/lib/bundle-source.d.ts.map +1 -1
- package/dist/lib/bundle-source.js +12 -1
- package/dist/lib/bundle-source.js.map +1 -1
- package/dist/lib/context-git.d.ts +2 -0
- package/dist/lib/context-git.d.ts.map +1 -1
- package/dist/lib/context-git.js +55 -5
- package/dist/lib/context-git.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +3 -2
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +97 -9
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +28 -24
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/provider-auth.d.ts +32 -0
- package/dist/provider-auth.d.ts.map +1 -0
- package/dist/provider-auth.js +128 -0
- package/dist/provider-auth.js.map +1 -0
- package/dist/terminal-window.d.ts +19 -0
- package/dist/terminal-window.d.ts.map +1 -0
- package/dist/terminal-window.js +513 -0
- package/dist/terminal-window.js.map +1 -0
- package/package.json +2 -2
- package/tui/dist/commands/registry.js +2 -2
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/config/config-model.d.ts.map +1 -1
- package/tui/dist/config/config-model.js +1 -0
- package/tui/dist/config/config-model.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +5 -0
- package/tui/dist/connections/connections-model.d.ts.map +1 -1
- package/tui/dist/connections/connections-model.js +1 -1
- package/tui/dist/connections/connections-model.js.map +1 -1
- package/tui/dist/daemon-client.d.ts +5 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/workflow-model.d.ts.map +1 -1
- package/tui/dist/execution/workflow-model.js +3 -1
- package/tui/dist/execution/workflow-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +3 -1
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/main.js +39 -15
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/page-read.js +1 -1
- package/tui/dist/page-read.js.map +1 -1
- package/tui/dist/pending-address.d.ts +7 -0
- package/tui/dist/pending-address.d.ts.map +1 -0
- package/tui/dist/pending-address.js +11 -0
- package/tui/dist/pending-address.js.map +1 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +10 -6
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.js +4 -4
- package/tui/dist/socket-server.d.ts +3 -1
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +6 -0
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +40 -13
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/stylize.js +1 -1
- package/tui/dist/stylize.js.map +1 -1
- package/tui/dist/terminals/open-window.d.ts +5 -0
- package/tui/dist/terminals/open-window.d.ts.map +1 -0
- package/tui/dist/terminals/open-window.js +55 -0
- package/tui/dist/terminals/open-window.js.map +1 -0
- package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
- package/tui/dist/terminals/terminal-model.js +16 -17
- package/tui/dist/terminals/terminal-model.js.map +1 -1
- package/tui/dist/types.d.ts +16 -1
- package/tui/dist/types.d.ts.map +1 -1
- package/ui/dist/assets/{index-HHSvwF97.js → index-D5n8EwkG.js} +1 -1
- package/ui/dist/index.html +1 -1
|
@@ -76,8 +76,10 @@ The authority lookup is `product-journey-sdlc.md#resolve-the-selected-path`.
|
|
|
76
76
|
Bring work with evidence that its promised user outcome actually works.
|
|
77
77
|
|
|
78
78
|
For a release mission, `mission.yaml` also names the Git strategy before build
|
|
79
|
-
work starts: the branch/ref that is cumulative integration truth
|
|
80
|
-
|
|
79
|
+
work starts: the branch/ref that is cumulative integration truth
|
|
80
|
+
(`arrangement.source.integration_ref`, the ref `rig view show execution` tests
|
|
81
|
+
a candidate's folding against; `main` when unset), its base, and when that
|
|
82
|
+
truth is reconciled to main. Continuous integration to main and a
|
|
81
83
|
release-line fold followed by one explicit merge are both valid; leaving the
|
|
82
84
|
choice implicit is not.
|
|
83
85
|
|
|
@@ -63,9 +63,10 @@ groups:
|
|
|
63
63
|
a member of, and reading channel details.
|
|
64
64
|
`rig slack verify` checks these.
|
|
65
65
|
- **Feature scopes**: `files:read` (download attachments people send), `files:write` (upload
|
|
66
|
-
attachments to Slack),
|
|
67
|
-
warns when one of these is missing (if Slack returns
|
|
68
|
-
them, so a READY from verify does not prove attachments
|
|
66
|
+
attachments to Slack), `app_mentions:read` (receive @-mentions of the app), and `reactions:read`
|
|
67
|
+
(receive emoji reactions). `rig slack verify` warns when one of these is missing (if Slack returns
|
|
68
|
+
the granted scopes) but does not require them, so a READY from verify does not prove attachments,
|
|
69
|
+
mentions or reactions will work.
|
|
69
70
|
|
|
70
71
|
If a feature scope was not granted, the effect differs by feature:
|
|
71
72
|
|
|
@@ -75,12 +76,22 @@ If a feature scope was not granted, the effect differs by feature:
|
|
|
75
76
|
the failure appears only in the daemon log (`rig daemon logs`).
|
|
76
77
|
- **Mentions** (`app_mentions:read`): Slack does not deliver `app_mention` events to the app.
|
|
77
78
|
Only `rig slack verify` warns that the scope is missing; nothing reports the missing events.
|
|
79
|
+
- **Reactions** (`reactions:read`): Slack does not deliver `reaction_added` events, so a reaction
|
|
80
|
+
on an ask doesn't reach the asking agent. A reply in the ask's thread still does.
|
|
78
81
|
|
|
79
|
-
So after installing, compare the granted scopes Slack shows for the app with all
|
|
82
|
+
So after installing, compare the granted scopes Slack shows for the app with all seven scopes that
|
|
80
83
|
`rig slack manifest --json` lists.
|
|
81
84
|
|
|
82
|
-
The app subscribes to messages in public channels it is a member of (`message.channels`)
|
|
83
|
-
mentions of the app (`app_mention`). It does not request
|
|
85
|
+
The app subscribes to messages in public channels it is a member of (`message.channels`), to
|
|
86
|
+
mentions of the app (`app_mention`), and to emoji reactions (`reaction_added`). It does not request
|
|
87
|
+
direct-message or private-channel access.
|
|
88
|
+
|
|
89
|
+
A reaction added to an ask reaches the agent that asked, as a note naming who reacted and with
|
|
90
|
+
which emoji; the agent decides what it means. Every message OpenRig posted for the ask counts:
|
|
91
|
+
its first message, a long ask's numbered parts, and an ask posted as a reply in a thread. A
|
|
92
|
+
reaction on any other message, including a person's reply in the thread, is ignored. An app created from an older manifest has neither the `reactions:read` scope nor the
|
|
93
|
+
`reaction_added` event: add both under **OAuth & Permissions** and **Event Subscriptions**, then
|
|
94
|
+
reinstall the app to the workspace.
|
|
84
95
|
|
|
85
96
|
The manifest also turns on **Interactivity**, so the human can answer a decision's structured
|
|
86
97
|
questions by clicking a button (`rig queue create --human-questions-file`). In Socket Mode the
|
|
@@ -101,11 +112,59 @@ part of OpenRig.
|
|
|
101
112
|
- `rig slack status` shows what is still missing, without contacting Slack.
|
|
102
113
|
- `rig slack verify` checks the granted baseline scopes and channel membership with Slack.
|
|
103
114
|
|
|
115
|
+
## One channel per rig or seat (optional)
|
|
116
|
+
|
|
117
|
+
By default every human-bound item posts to the one channel from `rig slack setup --channel`.
|
|
118
|
+
To follow each rig separately, post a rig's items, or a single seat's, to its own channel:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
rig slack channel-map set my-rig C0EXAMPLE1
|
|
122
|
+
rig slack channel-map set pr@my-rig C0EXAMPLE2
|
|
123
|
+
rig slack channel-map list
|
|
124
|
+
rig slack channel-map remove pr@my-rig
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- **Which channel an item posts to.** The item's seat is matched exactly first (`pr@my-rig`),
|
|
128
|
+
then its rig (`my-rig`). Anything unmapped posts to the default channel, so a config
|
|
129
|
+
without a map behaves exactly as before. Aggregate delivery digests have no single seat and
|
|
130
|
+
always post to the default channel.
|
|
131
|
+
- **Threads.** Updates, `--reply-to` and later notifications for an item stay in its thread.
|
|
132
|
+
With a map configured, if a seat's channel has changed since the thread was opened, the
|
|
133
|
+
next post opens a new thread in the seat's current channel, and `--reply-to` records the
|
|
134
|
+
fallback as `root-other-channel`. With no map, threads behave exactly as before: an item's
|
|
135
|
+
next notification reuses its open thread in whatever channel that thread was posted in.
|
|
136
|
+
- **Changing the map.** A change applies to new posts. A post already in flight (one being
|
|
137
|
+
retried after a failure or an unconfirmed send) finishes in the channel and thread it started
|
|
138
|
+
in, and its retry checks that channel first so it is not posted twice. This includes adding
|
|
139
|
+
the first map: a post first tried before any map existed finishes in the default channel.
|
|
140
|
+
Without a map, OpenRig records nothing about a post's channel, so if the default channel
|
|
141
|
+
changes while a post is being retried, the retry goes to the new default channel (as it always
|
|
142
|
+
has); that also applies to a post first tried before the map was added.
|
|
143
|
+
- **Rate limits on posts.** When Slack rate-limits a post and asks for a pause of 10 seconds or
|
|
144
|
+
less, OpenRig waits that long and retries the post once. A longer pause, or a second refusal,
|
|
145
|
+
is left to the retry of retained posts.
|
|
146
|
+
- **Replies and new messages.** A reply in an item's thread reaches that item's seat, in any
|
|
147
|
+
channel. To answer it in the same thread, the seat sends `rig queue create --human-intent update
|
|
148
|
+
--reply-to <the inbound reply's row>`. A message the human starts (or a reply in a thread OpenRig does not know) goes to
|
|
149
|
+
the connector's inbound destination, whichever channel it is in. Missed-message recovery
|
|
150
|
+
(below) covers the default channel only.
|
|
151
|
+
|
|
152
|
+
Invite the app to every mapped channel (`/invite @OpenRig`). `rig slack verify` checks
|
|
153
|
+
membership in the default channel and every mapped channel, and reports NOT ready until the
|
|
154
|
+
app is in all of them. A saved change reaches a running connector when it next rewires:
|
|
155
|
+
`rig slack disable` then `rig slack enable`, or a daemon restart. The TUI's Connections page
|
|
156
|
+
says whether the running configuration matches the file.
|
|
157
|
+
|
|
158
|
+
The map is stored as `channelMap` in `slack-connector.json`, as a list of `{ "match", "channel" }`
|
|
159
|
+
entries. Saving refuses any other field. A field written by a newer OpenRig is ignored when the
|
|
160
|
+
connector reads the file, and `rig slack status` names it. Private channels and direct messages
|
|
161
|
+
are not supported targets.
|
|
162
|
+
|
|
104
163
|
## Reconnect recovery and status
|
|
105
164
|
|
|
106
165
|
The daemon scans available top-level messages in the configured channel after a
|
|
107
166
|
Socket Mode connection and on its existing five-minute retry cadence. Recovered
|
|
108
|
-
|
|
167
|
+
tasks say **Recovered after a gap** and show the original Slack posting time.
|
|
109
168
|
They use the same sender admission, routing, attachment handling, fixed identity
|
|
110
169
|
and dead-letter path as live messages. A durable dead letter is custody of a
|
|
111
170
|
failed delivery, not successful delivery.
|
|
@@ -121,8 +180,9 @@ not covered by that margin. A corrupt or unreadable checkpoint leaves recovery u
|
|
|
121
180
|
and preserves the existing file; live inbound continues.
|
|
122
181
|
|
|
123
182
|
Each pass admits at most four pages, 100 entries and 15 seconds of work, with a
|
|
124
|
-
five-second history-request ceiling.
|
|
125
|
-
|
|
183
|
+
five-second history-request ceiling. Work already started on a message, such as
|
|
184
|
+
an attachment transfer, is not cancelled by these limits or by a stop, and a new
|
|
185
|
+
pass waits for it to finish. Rate limits retain Slack's Retry-After across restart.
|
|
126
186
|
Transport and server failures use a five-second backoff unless Slack supplies Retry-After.
|
|
127
187
|
When Slack reports a plan history limit, recovery still lands the available page
|
|
128
188
|
and advances normally, retaining an older-history limitation in status across restarts.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Naming rigs, pods and seats
|
|
2
|
+
|
|
3
|
+
Names tell people and agents what a team does and who does each part. Use the
|
|
4
|
+
team's purpose for the rig, a domain for each pod, and a role for each seat.
|
|
5
|
+
These are authoring conventions, not additional parser restrictions.
|
|
6
|
+
|
|
7
|
+
## What each name means
|
|
8
|
+
|
|
9
|
+
| Level | Meaning | Example |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Fleet | A group of OpenRig instances | Your development fleet |
|
|
12
|
+
| Instance | One daemon and its rigs; several instances can share a machine | The instance selected by a registered host route |
|
|
13
|
+
| Rig | A team or project purpose | `starter`, `workshop`, `factory`, or your project's name |
|
|
14
|
+
| Pod | A domain or shared context | `orch`, `dev`, `review`, `research`, `sre` |
|
|
15
|
+
| Seat (member) | A role within that pod | `lead`, `advisor`, `build`, `qa`, `design`, `review` |
|
|
16
|
+
|
|
17
|
+
The logical seat ID is `pod.member`: `dev.build`. Its session address is
|
|
18
|
+
`pod-member@rig`: `dev-build@workshop`. A cross-instance command also selects the
|
|
19
|
+
registered host route; a display label is not a route. Discover actual addresses
|
|
20
|
+
with `rig ps --nodes` and host routes with `rig host list` before sending work.
|
|
21
|
+
|
|
22
|
+
Runtime, model and account belong in configuration. Changing a provider does not
|
|
23
|
+
change the role's name. Keep machine and instance identifiers stable rather than
|
|
24
|
+
renaming them whenever their workload changes.
|
|
25
|
+
|
|
26
|
+
## How the software teams grow
|
|
27
|
+
|
|
28
|
+
| Team | Logical seats |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| Starter | `dev.build`, `dev.review` |
|
|
31
|
+
| Workshop | `orch.lead`, `dev.build`, `dev.qa`, `dev.review` |
|
|
32
|
+
| Factory | `orch.lead`, `orch.advisor`, `dev.build`, `dev.qa`, `dev.design`, `review.r1`, `review.r2` |
|
|
33
|
+
|
|
34
|
+
Starter and Factory are built-in teams. Workshop is a
|
|
35
|
+
[bundle](https://github.com/mvschwarz/openrig-world/tree/main/rigs/workshop).
|
|
36
|
+
The built-in specs live under `packages/daemon/specs/rigs/launch/` in the product
|
|
37
|
+
source. Runtime presets keep these logical names.
|
|
38
|
+
|
|
39
|
+
Workshop's one code reviewer is `dev.review`; Factory has an independent review
|
|
40
|
+
pod with `review.r1` and `review.r2`. Both are intentional. A small team does not
|
|
41
|
+
need every pod or role from a larger one.
|
|
42
|
+
|
|
43
|
+
## Name a new team
|
|
44
|
+
|
|
45
|
+
Start with the outcome, then group its work by domain. For a team studying a
|
|
46
|
+
dataset, `research.analyst` and `research.synthesizer` describe useful roles.
|
|
47
|
+
For operating a service, `sre.admin` describes the domain and responsibility.
|
|
48
|
+
Use a project-specific rig name when that helps distinguish two teams.
|
|
49
|
+
|
|
50
|
+
Avoid a generic operation such as `check` as the pod name: it does not say whether
|
|
51
|
+
the team owns software quality, research validation or service health. Put the
|
|
52
|
+
role in its domain, such as `dev.qa`. This is a rule for choosing new names, not a
|
|
53
|
+
word blacklist or a demand that all teams share one roster.
|
|
54
|
+
|
|
55
|
+
Use the same IDs in the rig spec, edges, workflow targets, configuration presets,
|
|
56
|
+
startup instructions and terminal views. Validate those references together.
|
|
57
|
+
See [RigSpec](rig-spec.md) and [publishing a bundle](publishing-a-rig-bundle.md).
|
|
58
|
+
|
|
59
|
+
## Existing identities and retained references
|
|
60
|
+
|
|
61
|
+
An existing team's address remains its actual address until it is deliberately
|
|
62
|
+
migrated. Changing a label does not rename a seat or move its conversation, queue
|
|
63
|
+
or work. Preserve those records and verify the new routes when doing a migration;
|
|
64
|
+
do not edit a database or restart a team just to make a display match an example.
|
|
65
|
+
|
|
66
|
+
`first-project` is the compatibility name for Starter; it is not a second team
|
|
67
|
+
template. Existing-name safeguards still apply. See
|
|
68
|
+
[getting started](getting-started.md) before using the alias.
|
|
69
|
+
|
|
70
|
+
The `factory-rsi` bundle is a retained reference with original workflow-bound
|
|
71
|
+
addresses, including `build.implementer` and `check.qa`. It is distinct from the
|
|
72
|
+
current built-in Factory and is not the naming template for a new team. Old
|
|
73
|
+
release notes, pinned bundles, run records and compatibility tests keep the
|
|
74
|
+
identities they describe.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# What changed in OpenRig 0.6.8
|
|
2
|
+
|
|
3
|
+
This note is for an agent on an install that was just upgraded to 0.6.8. It lists only what behaves differently from
|
|
4
|
+
0.6.7 and what to do about it. For everything OpenRig can do, read the capability map:
|
|
5
|
+
`rig context get onboarding-width/public-what-you-can-do.md`. Each release replaces this file, so
|
|
6
|
+
`rig context get reference/whats-new.md` describes the installed version once the upgraded daemon is running. Without
|
|
7
|
+
a running daemon, read `$OPENRIG_HOME/reference/whats-new.md`. The daemon refreshes that copy when it starts, so right
|
|
8
|
+
after an upgrade it can still hold the previous version's note.
|
|
9
|
+
|
|
10
|
+
## Skills from the managed catalog
|
|
11
|
+
|
|
12
|
+
- **A skill with uncommitted changes in the catalog now blocks only itself.** Before, one edited skill made the whole
|
|
13
|
+
catalog unavailable to work-install, launch and restore preflight. Now that skill is skipped and named, and the
|
|
14
|
+
remaining clean skills stay available for projection.
|
|
15
|
+
- **Read the warning, don't retry.** `catalog_skill_skipped` names a skill nobody selected; `selected_skill_skipped`
|
|
16
|
+
names the selector and the folder. The fix is to commit or restore that folder's content in the catalog, then run the
|
|
17
|
+
projection again.
|
|
18
|
+
- **A selected skipped skill makes the inspection commands exit 1.** `rig context work-install --runtime <runtime>`
|
|
19
|
+
and `rig skill loadout --runtime <runtime>` inspect by default. Use `--apply-skills` with work-install or `--apply`
|
|
20
|
+
with skill loadout to project the remaining clean skills. Read the warnings and projection result; exit 1 alone does
|
|
21
|
+
not say whether files were changed. With `--json`, skipped skills are in `skillLoadout.skipped` or
|
|
22
|
+
`loadout.skipped`, respectively.
|
|
23
|
+
- **A seat keeps the copy it already has** of a skipped skill, unchanged. After the catalog change is committed or
|
|
24
|
+
restored, the next applied projection can refresh it. No seat receives the skipped skill's uncommitted files, and
|
|
25
|
+
launch only warns about the skip.
|
|
26
|
+
- **An uncommitted `catalog.yaml` still makes the whole catalog unavailable,** because it changes every selection.
|
|
27
|
+
|
|
28
|
+
## Launch plans
|
|
29
|
+
|
|
30
|
+
- **`rig launch <rig> <seat> --plan` previews one seat's launch** without launching it, locally or with `--host`. Use
|
|
31
|
+
it before starting a single seat, as `--seats … --plan` already allowed for several.
|
|
32
|
+
- **A plan is never sent to a daemon older than 0.5.9,** which would ignore the flag and launch. If `rig launch --plan`
|
|
33
|
+
refuses for that reason, restart or upgrade that daemon. If it exits non-zero saying the daemon may have acted, check
|
|
34
|
+
`rig ps --nodes -A` before retrying.
|
|
35
|
+
|
|
36
|
+
## Slack
|
|
37
|
+
|
|
38
|
+
- **Answer a person's thread reply in that thread.** When someone replies inside a thread OpenRig opened, answer with
|
|
39
|
+
`rig queue create --human-intent update --reply-to <the inbound reply's row>`, and the answer posts in that thread.
|
|
40
|
+
A top-level message is still answered top-level.
|
|
41
|
+
- **A short rate limit is waited out.** When Slack asks for a pause of 10 seconds or less, OpenRig waits and retries the
|
|
42
|
+
post once. A longer pause is still left to the usual retry of retained messages.
|
|
43
|
+
|
|
44
|
+
## Managed compaction
|
|
45
|
+
|
|
46
|
+
- **A quiet seat is restored after `/compact`.** The turn boundary, the restore request and the read-depth
|
|
47
|
+
audit now reach a Claude seat that takes no turn after compacting. Before, they waited for the seat's next turn,
|
|
48
|
+
so a seat with nothing to do could sit unrestored. Each stage still waits until the seat's screen shows it idle.
|
|
49
|
+
|
|
50
|
+
## Workflows
|
|
51
|
+
|
|
52
|
+
- **Validate before you run.** `rig workflow validate` reports `step_cannot_finish` when no allowed exit can finish a
|
|
53
|
+
step or route onward, and such a workflow cannot be instantiated. Allow `done` or an exit with a route onward. In a
|
|
54
|
+
dependency graph, `handoff` can also finish a sink without a next step. A spec that validated on 0.6.7 may need a
|
|
55
|
+
correction.
|
|
56
|
+
|
|
57
|
+
## The TUI
|
|
58
|
+
|
|
59
|
+
- **Type whole commands on an empty command line.** The footer toggle is now `F`, and in a selected Scopes view the
|
|
60
|
+
mini-requirements and narrative keys are `M` and `N`, so `find`, `feed`, `mission`, `narrative` and `needs` reach the
|
|
61
|
+
command line intact.
|
|
62
|
+
- **`j` and `k` move the selection down and up** when the command line is empty. With text on the line they're ordinary
|
|
63
|
+
letters.
|
|
64
|
+
|
|
65
|
+
## Smaller changes
|
|
66
|
+
|
|
67
|
+
- **A Claude seat launched with `--remote-control`** confirms its identity instead of staying "identity not confirmed".
|
|
68
|
+
- **`rig down` still saves its recovery snapshot** when finding one seat's resume details fails.
|
|
69
|
+
- **A wake for a handed-off task shows its summary** on one line, so read it to see what the task is for.
|
|
70
|
+
- **`rig scope audit` accepts slice folders numbered 100 and above.** `rig proof add --file` keeps a leading UTF-8
|
|
71
|
+
byte-order mark.
|
|
72
|
+
- **Building from source no longer needs POSIX shell tools** for the CLI and TUI output. It hasn't been run on Windows
|
|
73
|
+
yet; WSL2 is still the way to run OpenRig there.
|
|
74
|
+
- **A topology naming reference** explains how to name a team's pods and seats: `rig context get
|
|
75
|
+
reference/topology-naming.md`.
|
|
76
|
+
|
|
77
|
+
## What to stop doing
|
|
78
|
+
|
|
79
|
+
- **Stop treating a non-zero work-install exit as proof that nothing changed.** Read the skipped-skill warnings and
|
|
80
|
+
projection result. Inspection alone changes no skill files; an applied projection can update clean skills while
|
|
81
|
+
reporting a skipped one.
|
|
82
|
+
- **Stop scripting around the TUI's single-letter keys.** Type the command whole.
|
|
83
|
+
- **Stop assuming a workflow that validated on 0.6.7 can finish.** Validate it again on 0.6.8.
|
|
84
|
+
|
|
85
|
+
## Known gaps in 0.6.8
|
|
86
|
+
|
|
87
|
+
- **Not yet checked on a real machine:** the full first install from nothing, on Mac, Linux and Windows.
|
|
88
|
+
- **Only one selected lifecycle-help command has been checked in a live Claude session;** source and parser coverage
|
|
89
|
+
is broader. If a help command still asks, report it.
|
|
90
|
+
- **Codex team seats aren't asked before lifecycle commands yet.**
|
|
91
|
+
- **The send gate trusts the most recently recorded hook.** If hooks are recorded out of order, it can hold a send for
|
|
92
|
+
a question that's already answered, or miss one that's waiting. `rig capture` shows the real screen.
|
|
93
|
+
- **A Codex seat whose permission request was approved automatically can still read "needs input".**
|
|
94
|
+
- **A launched team still writes its skills into its working folder.**
|
|
95
|
+
- **After a restart, `rig status` shows `Kernel: skipped` whatever the kernel seats' state.** Read them with
|
|
96
|
+
`rig ps --nodes --rig kernel --full`.
|
|
@@ -92,6 +92,12 @@ the human (a pending human decision, or a row parked on the human), since a
|
|
|
92
92
|
reply in that thread would answer the decision. In every such case the
|
|
93
93
|
`--verify` result says `threaded: false` with the reason.
|
|
94
94
|
|
|
95
|
+
To answer a reply the human typed inside one of your threads, `--reply-to` the
|
|
96
|
+
row their reply landed as. The update posts in that thread unless one of the
|
|
97
|
+
cases above applies, and `--verify` reports it the same way. A message the
|
|
98
|
+
human started at the top level of the channel has no thread yet, so the answer
|
|
99
|
+
posts as a new message.
|
|
100
|
+
|
|
95
101
|
A **decision** with a few clear choices can carry `--human-questions-file <path>`:
|
|
96
102
|
a JSON array of 1–4 questions, each
|
|
97
103
|
`{"id", "question", "options": [{"id", "label", "recommended"?}]}` with 2–4
|
|
@@ -39,6 +39,9 @@ the format you will author. Load the selected paths from public onboarding;
|
|
|
39
39
|
consult additional skills when their triggers apply. A design task does not
|
|
40
40
|
require reading the whole command library.
|
|
41
41
|
|
|
42
|
+
- Read `topology-naming.md` before choosing new identities: rig = purpose, pod =
|
|
43
|
+
domain, member = role. Keep names stable across runtime choices and match every
|
|
44
|
+
edge, preset and workflow target to the declared IDs.
|
|
42
45
|
- Read the relevant sections of `rig-spec.md` and `agent-spec.md` before writing
|
|
43
46
|
those declarations. Consult `agent-startup-guide.md` for startup/loadout work
|
|
44
47
|
and `edge-types.md` when selecting relationships. Resolve the installed
|
|
@@ -57,7 +57,7 @@ These are auto-delivered to every rig; their name+description are already in you
|
|
|
57
57
|
- **loading-addressable-markdown** — a task names Markdown as `path#h2-slug` or `path#h2-slug/h3-slug` outside the context-pack library.
|
|
58
58
|
- **session-compaction-and-restore** — preparing for, or recovering from, compaction (any runtime). The write- and read-side protocol.
|
|
59
59
|
- **queue-handoff** — you're passing durable work to another seat or ending your turn. The queue is the work ledger, not chat.
|
|
60
|
-
- **refocusing** — a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
|
|
60
|
+
- **refocusing** — invoke as `refocusing` when a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
|
|
61
61
|
- **seat-continuity-and-handover** — handing your seat's work across a restart or to another owner.
|
|
62
62
|
- **orienting-to-an-inherited-seat** — you just inherited an existing seat through a planned handover and need to verify its identity, state, and testimony.
|
|
63
63
|
- **retiring-and-inheriting-a-seat** — you're planning a seat transition and need to retire the current occupant into a fresh successor without losing continuity.
|
|
@@ -51,7 +51,7 @@ or `codex login` once when that selected login is missing. No credential copying
|
|
|
51
51
|
unused provider prerequisite or silent model/provider fallback.
|
|
52
52
|
|
|
53
53
|
Read the compatible getting-started guide's **Choose your providers** and
|
|
54
|
-
**
|
|
54
|
+
**Start the kernel and check its state** sections before launch. The choice selects
|
|
55
55
|
the two project agents. Kernel auto-boot independently uses available
|
|
56
56
|
authenticated accounts, so it may use both even when the project uses one.
|
|
57
57
|
Do not add an unused-provider login gate or manual kernel setup to this path.
|
|
@@ -63,7 +63,8 @@ Show the chosen team, resolved runtimes/models and exact
|
|
|
63
63
|
retain `gpt-6-astra`; Claude seats use the configured native default without an
|
|
64
64
|
OpenRig model override. Confirm that model with the user and its availability;
|
|
65
65
|
verify the native session's actual model before consequential work. Use the
|
|
66
|
-
chosen rig name in owner/checker addresses
|
|
66
|
+
chosen rig name in owner/checker addresses (in the starter, `dev-build@<rig>` and
|
|
67
|
+
`dev-review@<rig>`) throughout the same task and return.
|
|
67
68
|
|
|
68
69
|
## Establish the working agreement
|
|
69
70
|
|
|
@@ -79,16 +80,21 @@ model turns, but delivered wakes and resumed work **can spend tokens**. Prefer
|
|
|
79
80
|
an event-driven wait to frequent empty reminders. Wakes cannot answer a user
|
|
80
81
|
question, clear a permission prompt or guarantee progress.
|
|
81
82
|
|
|
82
|
-
**Ask once before launching or assigning work
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
**Ask once before launching or assigning work.** For a team with no permission
|
|
84
|
+
policy, seat choice or named Codex profile, recommend keeping the team default:
|
|
85
|
+
Claude team seats run ordinary `rig` commands, project reads and common tests
|
|
86
|
+
without prompts, and lifecycle commands such as `rig up` and `rig down` still
|
|
87
|
+
ask. Only if they want more, offer: “Remember these selected OpenRig commands in
|
|
88
|
+
your native settings for this project?” **Yes** / **No — keep the team default**.
|
|
89
|
+
Reuse an existing explicit choice for this scope.
|
|
90
|
+
Explain that a remembered allowance can cover all `rig` verbs, but Claude team
|
|
91
|
+
seats still ask before lifecycle commands, at personal project scope unless the
|
|
92
|
+
user explicitly chooses user-wide sessions. It is not global YOLO or permission
|
|
93
|
+
to invent work.
|
|
88
94
|
On an actual Yes, follow [Applying a permission policy](#find-the-compatible-permission-guide)
|
|
89
95
|
to add existing native rules, preserve stricter/unrelated settings, and verify
|
|
90
|
-
the target conversation. No or no answer leaves settings alone and
|
|
91
|
-
|
|
96
|
+
the target conversation. No or no answer leaves settings alone and keeps the
|
|
97
|
+
team default. Remember the explicit choice and exact additions in the
|
|
92
98
|
existing onboarding context; “Undo the OpenRig command allowances added by this
|
|
93
99
|
setup” removes only those additions. Broader access remains a separate opt-in.
|
|
94
100
|
|
|
@@ -102,8 +108,9 @@ or explicitly reports none. Preserve work and custody before a supported stop.
|
|
|
102
108
|
|
|
103
109
|
Choose the team size separately from the coordination method above:
|
|
104
110
|
|
|
105
|
-
1. **Use the two-agent starter.** Keep the
|
|
106
|
-
while that pair meets the workload. The
|
|
111
|
+
1. **Use the two-agent starter.** Keep its builder (the owner) and independent
|
|
112
|
+
reviewer (the checker) while that pair meets the workload. The builder can
|
|
113
|
+
implement and coordinate.
|
|
107
114
|
2. **Add one or two seats to the running rig.** This is the usual next step.
|
|
108
115
|
Follow [Grow the running team](references/worked-example.md#grow-the-running-team)
|
|
109
116
|
for `rig grow` commands, readiness/context/work
|
package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md
CHANGED
|
@@ -86,8 +86,8 @@ permissions, supplies a missing product decision or authorizes more work.
|
|
|
86
86
|
|
|
87
87
|
## Permissions at the point of work
|
|
88
88
|
|
|
89
|
-
Before the first task, ask the agent to configure your choice: keep
|
|
90
|
-
remember selected commands, or deliberately select broader access. Use
|
|
89
|
+
Before the first task, ask the agent to configure your choice: keep the team
|
|
90
|
+
default, remember selected commands, or deliberately select broader access. Use
|
|
91
91
|
`rig context get skills/applying-a-permission-policy/SKILL.md`, or the
|
|
92
92
|
[compatible source/package paths](../SKILL.md#find-the-compatible-permission-guide).
|
|
93
93
|
The agent handles setup and verifies the actual conversation; the user need not
|
|
@@ -120,25 +120,26 @@ rig grow --help
|
|
|
120
120
|
|
|
121
121
|
Set `RIG_ID` to the `rigId` for the running `starter`, and `PROJECT_ROOT`
|
|
122
122
|
to the absolute code repository. Verify its existing `dev` pod and choose unused
|
|
123
|
-
member names.
|
|
123
|
+
member names. Here `parser` owns CSV parsing and `cli` owns the command interface.
|
|
124
|
+
When the user has authorized the added capacity and cost, run:
|
|
124
125
|
|
|
125
126
|
```sh
|
|
126
|
-
rig grow "$RIG_ID"
|
|
127
|
+
rig grow "$RIG_ID" parser cli --pod dev --runtime codex --cwd "$PROJECT_ROOT" --json
|
|
127
128
|
rig ps --nodes --rig starter --json
|
|
128
129
|
```
|
|
129
130
|
|
|
130
|
-
For one builder, omit `
|
|
131
|
-
with addresses `dev-
|
|
131
|
+
For one builder, omit `cli`. The expected new logical IDs are `dev.parser` and `dev.cli`,
|
|
132
|
+
with addresses `dev-parser@starter` and `dev-cli@starter`; use the actual
|
|
132
133
|
returned identities. The command adds and launches the named seats.
|
|
133
134
|
|
|
134
135
|
To put those seats in a **new** pod instead, choose this alternative once, with an
|
|
135
|
-
unused pod
|
|
136
|
+
unused domain pod such as `data`; do not run both examples for the same desired capacity:
|
|
136
137
|
|
|
137
138
|
```sh
|
|
138
|
-
rig grow "$RIG_ID"
|
|
139
|
+
rig grow "$RIG_ID" parser cli --new-pod data --runtime codex --cwd "$PROJECT_ROOT" --json
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
That alternative produces `
|
|
142
|
+
That alternative produces `data.parser`/`data.cli` and corresponding `data-...`
|
|
142
143
|
addresses. `--pod` and `--new-pod` are mutually exclusive. With one existing pod,
|
|
143
144
|
`--pod` can be inferred; select it explicitly when the intended target matters.
|
|
144
145
|
The runtime defaults to `claude-code` and cwd defaults to the caller's current
|
|
@@ -153,7 +154,7 @@ agent specs, use the optional Architect path below and `rig expand --help`.
|
|
|
153
154
|
Inspect each node's status/error and native pane. Confirm existing seats and work
|
|
154
155
|
remain present; a created node is not readiness. Partial results can leave nodes
|
|
155
156
|
persisted. After a timeout, reconcile topology before retrying. Fix the reported
|
|
156
|
-
cause, then use `rig launch "$RIG_ID" dev.
|
|
157
|
+
cause, then use `rig launch "$RIG_ID" dev.parser` only for an already-created seat that
|
|
157
158
|
failed to start. That command does not create a missing seat.
|
|
158
159
|
|
|
159
160
|
New seats do not inherit the owner's conversation or task. Record the agreed
|
|
@@ -163,8 +164,8 @@ checks, next owner and stopping condition. Then deliver the context instruction,
|
|
|
163
164
|
for example for the first builder:
|
|
164
165
|
|
|
165
166
|
```sh
|
|
166
|
-
rig send dev-
|
|
167
|
-
rig capture dev-
|
|
167
|
+
rig send dev-parser@starter "Read $PROJECT_ROOT/SPEC.md and the addressed sources in $PROJECT_ROOT/.openrig/factory/TASK-A.md. Run rig whoami --json and rig queue list --owned --json in your own seat; report your identity, scope and any native readiness/permission blocker. Await the bounded queue assignment."
|
|
168
|
+
rig capture dev-parser@starter
|
|
168
169
|
```
|
|
169
170
|
|
|
170
171
|
Read the actual reply and pane; resolve startup/login/permission prompts under the
|
|
@@ -174,7 +175,7 @@ the coordinator creates the distinct agreed task (or hands off an existing owned
|
|
|
174
175
|
task instead of duplicating it):
|
|
175
176
|
|
|
176
177
|
```sh
|
|
177
|
-
rig queue create --destination dev-
|
|
178
|
+
rig queue create --destination dev-parser@starter \
|
|
178
179
|
--body-file "$PROJECT_ROOT/.openrig/factory/TASK-A.md" \
|
|
179
180
|
--summary 'Implement the agreed independent change A' --json
|
|
180
181
|
```
|
|
@@ -191,7 +192,7 @@ working agreement and assigned work, not the seat's name or default agent label.
|
|
|
191
192
|
| Seat in this example | Deliberately agreed responsibility |
|
|
192
193
|
| --- | --- |
|
|
193
194
|
| `dev-build@starter` | Initially implements and coordinates; can become the dedicated orchestrator, selecting outcomes, separating tasks, owning integration and retaining next-work custody. |
|
|
194
|
-
| `dev-
|
|
195
|
+
| `dev-parser@starter`, `dev-cli@starter` | Implement distinct authorized tasks and return exact candidates/evidence. Neither silently edits the other's files or folds both candidates without integration ownership. |
|
|
195
196
|
| `dev-review@starter` | Retains independent judgment under the project's review policy. The implementer does not count its own check as independent review. |
|
|
196
197
|
|
|
197
198
|
This is one progression, not a required four-seat layout. One extra builder may
|
|
@@ -240,8 +241,8 @@ YAML authoring is optional; ordinary growth uses the commands above.
|
|
|
240
241
|
### Remove capacity deliberately
|
|
241
242
|
|
|
242
243
|
When a seat is no longer needed, preserve its work and next owner first.
|
|
243
|
-
`rig remove "$RIG_ID" dev.
|
|
244
|
-
removes the whole optional
|
|
244
|
+
`rig remove "$RIG_ID" dev.parser` removes that seat; `rig shrink "$RIG_ID" data`
|
|
245
|
+
removes the whole optional data pod. These end the affected sessions. Removal
|
|
245
246
|
refuses active work unless you explicitly select a live `--fallback <live-seat>`
|
|
246
247
|
to receive it. Check the exact targets, handoff and returned outcomes; do not use
|
|
247
248
|
fallback to discard an obligation or remove seats merely because they look idle.
|
|
@@ -239,6 +239,8 @@ host in front of you.
|
|
|
239
239
|
mechanism; this skill does not rewrite launchers.
|
|
240
240
|
11. Record the observed result, remaining local preservation decisions, and the
|
|
241
241
|
exact rollback runtime and backup.
|
|
242
|
+
12. Read what changed in the new version, `rig context get reference/whats-new.md`,
|
|
243
|
+
and tell your user anything in it that changes how they work.
|
|
242
244
|
|
|
243
245
|
## Stop and hand back when
|
|
244
246
|
|
|
@@ -21,3 +21,63 @@ When the goal is done, close the operator's row with the result.
|
|
|
21
21
|
|
|
22
22
|
`rig down` and `rig seat stop` end agents' sessions and any work in progress, and `rig up <spec>` on a stopped team's
|
|
23
23
|
name replaces it with a new team. Don't run them unless the person asked; check `rig ps --nodes` first.
|
|
24
|
+
|
|
25
|
+
## Publish the team's roster
|
|
26
|
+
|
|
27
|
+
A roster tells anyone who uses `rig roster find` who to ask on this team and why. Write one the first time you start,
|
|
28
|
+
alongside the goal, and never replace one that exists:
|
|
29
|
+
|
|
30
|
+
1. Take the rig's name from `rig whoami --json` (`identity.rigName`). It is `factory` unless this team was launched
|
|
31
|
+
under another name; `<rig>` below means that name. If it is null, the rig name is unavailable: skip the roster
|
|
32
|
+
for now and try again when identity is available.
|
|
33
|
+
2. Run `rig roster list`. If it shows a roster with id `<rig>`, stop here.
|
|
34
|
+
3. The file is `<workspace.root>/rosters/<rig>.json`; `rig config get workspace.root` gives the root. If the file
|
|
35
|
+
exists, stop here too. Create the `rosters/` folder if it is missing.
|
|
36
|
+
4. Run `rig ps --nodes --rig <rig> --json --fields canonicalSessionName,hostSelfId`. It gives each seat's exact address
|
|
37
|
+
and the host that serves it.
|
|
38
|
+
5. Match `orch-lead` (you) to lead, `orch-advisor` to advisor, `dev-build` to builder, `dev-qa` to QA,
|
|
39
|
+
`dev-design` to designer, and `review-r1` and `review-r2` to the two reviewers, using the actual addresses from step 4.
|
|
40
|
+
Write the file with those addresses and hosts, today's date, and yourself as curator (format: OpenRig's
|
|
41
|
+
`$OPENRIG_HOME/reference/rosters.md`):
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"version": 1,
|
|
46
|
+
"id": "<rig>",
|
|
47
|
+
"name": "Factory",
|
|
48
|
+
"purpose": "Plan, build, design and check software in this repository as a full team",
|
|
49
|
+
"curator": { "seat": "<your address>", "host": "<your host>" },
|
|
50
|
+
"updated_at": "<YYYY-MM-DD>",
|
|
51
|
+
"members": [
|
|
52
|
+
{ "seat": "<lead>", "host": "<host>", "capabilities": ["planning", "routing work"],
|
|
53
|
+
"engagement": ["consult", "delegate"], "use_when": "Deciding what to build next, or who should take a piece",
|
|
54
|
+
"why": "Leads this team, talks to the person and routes the work" },
|
|
55
|
+
{ "seat": "<advisor>", "host": "<host>", "capabilities": ["product intent", "ideas"],
|
|
56
|
+
"engagement": ["consult"], "use_when": "Shaping an idea, or checking that work still serves the goal",
|
|
57
|
+
"why": "The lead's idea and intent partner" },
|
|
58
|
+
{ "seat": "<builder>", "host": "<host>", "capabilities": ["implementation"],
|
|
59
|
+
"engagement": ["delegate"], "use_when": "A planned piece needs building",
|
|
60
|
+
"why": "Builds the changes the lead routes to it" },
|
|
61
|
+
{ "seat": "<QA seat>", "host": "<host>", "capabilities": ["testing", "verification"],
|
|
62
|
+
"engagement": ["review"], "use_when": "A change needs its checks run and reported",
|
|
63
|
+
"why": "Runs the checks a change calls for and says what each one proved" },
|
|
64
|
+
{ "seat": "<designer>", "host": "<host>", "capabilities": ["product design", "user experience"],
|
|
65
|
+
"engagement": ["consult", "review"], "use_when": "A change affects what people see or how they use it",
|
|
66
|
+
"why": "Designs and reviews the user-facing side" },
|
|
67
|
+
{ "seat": "<reviewer 1>", "host": "<host>", "capabilities": ["code review"],
|
|
68
|
+
"engagement": ["review"], "use_when": "A change needs an independent review",
|
|
69
|
+
"why": "One of two independent reviewers" },
|
|
70
|
+
{ "seat": "<reviewer 2>", "host": "<host>", "capabilities": ["code review"],
|
|
71
|
+
"engagement": ["review"], "use_when": "A change needs an independent review",
|
|
72
|
+
"why": "The second independent reviewer; ask both for important changes" }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
6. Run `rig roster list` to see it listed, then tell the person in one line.
|
|
78
|
+
|
|
79
|
+
Running this again, after `rig seat continue` or a restore, changes nothing. When a seat takes on a capability worth
|
|
80
|
+
asking it about, add it to that seat's `capabilities` and set `updated_at` to today; starting again never replaces the
|
|
81
|
+
file.
|
|
82
|
+
|
|
83
|
+
Need expertise your team lacks? `rig roster find <topic>` lists who to ask and why.
|