@openrig/cli 0.5.5 → 0.5.6
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/continuity/apprentice-cutover.md +19 -0
- package/daemon/assets/continuity/apprentice-prepare.md +17 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +81 -4
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +3 -3
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -9
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +82 -118
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +24 -25
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +5 -12
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +36 -117
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -6
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +1 -12
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +15 -0
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +4 -16
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +50 -7
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +29 -9
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +3 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +9 -4
- package/daemon/assets/vm-preview-fixtures/README.md +16 -38
- package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +4 -5
- package/daemon/context-packs/onboarding-width/manifest.yaml +4 -1
- package/daemon/context-packs/onboarding-width/public-reference-material.md +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +6 -13
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +98 -0
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +10 -0
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +118 -0
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +10 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +19 -75
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +2 -1
- package/daemon/context-packs/skills/core/watchdog/SKILL.md +4 -10
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +15 -21
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +4 -3
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +2 -1
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +2 -1
- package/daemon/context-packs/world-example/manifest.yaml +15 -2
- package/daemon/context-packs/world-example/your-world.md +19 -2
- package/daemon/context-packs/world-public/boundaries.md +33 -0
- package/daemon/context-packs/world-public/build-your-world.md +84 -0
- package/daemon/context-packs/world-public/claims.yaml +205 -0
- package/daemon/context-packs/world-public/manifest.yaml +59 -0
- package/daemon/context-packs/world-public/start-here.md +51 -0
- package/daemon/context-packs/world-public/verify-world.sh +522 -0
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
- package/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
- package/daemon/dist/context-pack-taxonomy-surface.js +6 -0
- package/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
- package/daemon/dist/db/all-migrations.d.ts +1 -1
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +8 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
- package/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
- package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
- package/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +44 -0
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -0
- package/daemon/dist/domain/active-occupant.js +72 -0
- package/daemon/dist/domain/active-occupant.js.map +1 -0
- package/daemon/dist/domain/agent-manifest.d.ts +6 -0
- package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +77 -15
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/agent-resolver.d.ts +11 -0
- package/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/agent-resolver.js +55 -0
- package/daemon/dist/domain/agent-resolver.js.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-context-packs-router.js +18 -0
- package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -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 +11 -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 +13 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
- package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
- package/daemon/dist/domain/continuity-policy-materializer.js +290 -0
- package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
- package/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
- package/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
- package/daemon/dist/domain/continuity-stack-packets.js +99 -0
- package/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
- package/daemon/dist/domain/execution-view.d.ts +39 -0
- package/daemon/dist/domain/execution-view.d.ts.map +1 -0
- package/daemon/dist/domain/execution-view.js +707 -0
- package/daemon/dist/domain/execution-view.js.map +1 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
- package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
- package/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
- package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/destination-resolver.js +52 -0
- package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
- package/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
- package/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/dispatcher.js +9 -2
- package/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +32 -1
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
- package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
- package/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
- package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/config.js +20 -4
- package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
- package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/inbound.js +60 -9
- package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
- package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
- package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
- package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
- package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
- package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts +6 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +6 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +41 -3
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +45 -48
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/parked-query.d.ts +1 -0
- package/daemon/dist/domain/parked-query.d.ts.map +1 -1
- package/daemon/dist/domain/parked-query.js +1 -0
- package/daemon/dist/domain/parked-query.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +12 -5
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
- package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
- package/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
- package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
- package/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
- package/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
- package/daemon/dist/domain/policies/delivery-deferral.js +153 -0
- package/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
- package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
- package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
- package/daemon/dist/domain/policies/types.d.ts +8 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +4 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +58 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
- package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
- package/daemon/dist/domain/provider/provider-signals.js +64 -0
- package/daemon/dist/domain/provider/provider-signals.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +7 -5
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +19 -32
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
- package/daemon/dist/domain/queue-pickup.js +5 -0
- package/daemon/dist/domain/queue-pickup.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +55 -18
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +387 -83
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/daemon/dist/domain/queue-retention.js +8 -2
- package/daemon/dist/domain/queue-retention.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +161 -24
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +10 -0
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +49 -11
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
- package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-ladder.js +187 -15
- package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +52 -3
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +1 -1
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +88 -15
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +37 -19
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +10 -9
- package/daemon/dist/domain/rig-expansion-service.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 +21 -3
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +74 -4
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +14 -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 +32 -4
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/scope/node-file.d.ts +8 -0
- package/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
- package/daemon/dist/domain/scope/node-file.js +18 -0
- package/daemon/dist/domain/scope/node-file.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +3 -3
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-capture.js +6 -0
- package/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +26 -4
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/view-projector.d.ts +5 -1
- package/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/daemon/dist/domain/view-projector.js +24 -0
- package/daemon/dist/domain/view-projector.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +112 -6
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-scheduler.js +3 -2
- package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/index.d.ts +9 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +24 -1
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +9 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +61 -1
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/gateway.js +1 -1
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +22 -11
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.js +38 -2
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-audit.js +6 -6
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/views.d.ts.map +1 -1
- package/daemon/dist/routes/views.js +4 -1
- package/daemon/dist/routes/views.js.map +1 -1
- package/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/daemon/dist/routes/watchdog.js +40 -3
- package/daemon/dist/routes/watchdog.js.map +1 -1
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +5 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +194 -5
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +4 -4
- package/daemon/docs/reference/agent-state-taxonomy.md +8 -13
- package/daemon/docs/reference/chain-file-convention.md +2 -2
- package/daemon/docs/reference/knowledge-maturity.md +123 -0
- package/daemon/docs/reference/lore-routing.md +173 -0
- package/daemon/docs/reference/mission-install.md +194 -0
- package/daemon/docs/reference/planning-dial.md +55 -0
- package/daemon/docs/reference/product-management-pass.md +139 -0
- package/daemon/docs/reference/release-boundary.md +88 -0
- package/daemon/docs/reference/sdlc-conventions.md +42 -69
- package/daemon/docs/reference/wave-sdlc.md +113 -0
- package/daemon/policies/builtin/standard.policy.md +3 -3
- package/daemon/policies/builtin/yolo.policy.md +7 -2
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +6 -13
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +98 -0
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +118 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +19 -75
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -10
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +15 -21
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +3 -3
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +1 -1
- package/daemon/substance-surfaces.json +8 -0
- package/dist/build-info.js +3 -3
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +6 -1
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.js +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +12 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/expand.d.ts.map +1 -1
- package/dist/commands/expand.js +9 -13
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/ps.d.ts +4 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +15 -7
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +40 -11
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts +2 -0
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +24 -2
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +4 -2
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +3 -0
- package/dist/commands/view.js.map +1 -1
- package/dist/commands/watchdog.d.ts.map +1 -1
- package/dist/commands/watchdog.js +64 -9
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/cross-host-target.js +1 -1
- package/dist/cross-host-target.js.map +1 -1
- package/dist/host-registry.d.ts +2 -2
- package/dist/host-registry.js +2 -2
- package/dist/lib/scope/scope-audit.d.ts +4 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +3 -3
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +8 -0
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +18 -0
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
- package/dist/lib/scope-templates/bug-fix.md +1 -1
- package/dist/lib/scope-templates/capability-delta.md +1 -0
- package/dist/lib/scope-templates/placeholder.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +1 -1
- package/dist/lib/scope-templates/research.md +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +6 -0
- package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js +8 -2
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +44 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +72 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +77 -15
- package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +11 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +55 -0
- package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +18 -0
- package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
- package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -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 +11 -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 +13 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +290 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +39 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +707 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +52 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +9 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +32 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +20 -4
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +60 -9
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +6 -0
- package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
- package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +41 -3
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +45 -48
- package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js +1 -0
- package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +12 -5
- package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +153 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +58 -0
- package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +64 -0
- package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +7 -5
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +19 -32
- package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +5 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +55 -18
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +387 -83
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +8 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +161 -24
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +10 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +49 -11
- package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +187 -15
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +52 -3
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +88 -15
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +37 -19
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +10 -9
- package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.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 +21 -3
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +74 -4
- package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +14 -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 +32 -4
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +8 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +18 -0
- package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +3 -3
- package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +6 -0
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +26 -4
- 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/view-projector.d.ts +5 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js +24 -0
- package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +112 -6
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -2
- package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
- package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.d.ts +9 -0
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.js +24 -1
- package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js +9 -0
- package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js +61 -1
- package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.js +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.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 +22 -11
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js +38 -2
- package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +6 -6
- package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/views.js +4 -1
- package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js +40 -3
- package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +5 -0
- package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +194 -5
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/package.json +5 -1
- package/package.json +1 -1
- package/tui/dist/demo-data.js +2 -2
- package/tui/dist/demo-data.js.map +1 -1
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +0 -92
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +0 -34
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +0 -23
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +0 -234
- package/daemon/context-packs/skills/core/attention-queue/SKILL.md +0 -264
- package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +0 -9
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +0 -264
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Apprentice handover — cutover fire stack
|
|
2
|
+
|
|
3
|
+
Purpose: turn the second context threshold into an **owned baton** for a named mechanic. The
|
|
4
|
+
notice may prepare and prove the cutover, but it must **never auto-rebind** the seat. The word of
|
|
5
|
+
the named owner remains the gate.
|
|
6
|
+
|
|
7
|
+
1. Confirm the prepare rung fired in an earlier evaluation pass and the successor is still the
|
|
8
|
+
exact accepted history and model.
|
|
9
|
+
2. Reconcile every deposit and enumerate standing-duty custody. A duty named in the deposit set
|
|
10
|
+
but absent from the custody table stops the cutover.
|
|
11
|
+
3. Record gate receipts G0–G3—gate, evidence, and worder—or the policy's declared simpler model.
|
|
12
|
+
4. Create or identify one accountable mechanic baton. Record one-active-walker ownership and
|
|
13
|
+
staged/submitted/consumed delivery boundaries.
|
|
14
|
+
5. The mechanic follows `seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md`:
|
|
15
|
+
fence, derive, quiesce, realize the exact token, commit provenance, self-check READY, then
|
|
16
|
+
unfreeze only after the effect receipt.
|
|
17
|
+
6. Preserve the predecessor's verbatim reach-back handle and pre-formed questions. Report
|
|
18
|
+
current seat identity, current generation, canonical tmux pane, duty acceptance, and usable
|
|
19
|
+
post-restore width in the final receipt.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Apprentice handover — prepare fire stack
|
|
2
|
+
|
|
3
|
+
Purpose: turn the first context threshold into a prepared successor without moving seat
|
|
4
|
+
authority. This is orchestration over existing verbs, never a second scheduler or workflow.
|
|
5
|
+
|
|
6
|
+
1. Create a **fresh**, staged, unbound successor and persist its exact provider history.
|
|
7
|
+
2. Run the **model-divergence gate** before installing anything. A fallback model or reused
|
|
8
|
+
history stops the stack because every later receipt would describe the wrong occupant.
|
|
9
|
+
3. Install the **world** and have the successor state the product outcome in its own words.
|
|
10
|
+
4. Install the **mission**, including the whole mission and its addressed primary sources.
|
|
11
|
+
5. Install the **position** from the seat chain and issue an explicit authority-free grant.
|
|
12
|
+
6. Derive the successor's layer-5 delta, verify it independently, then **introduce** incumbent
|
|
13
|
+
and apprentice to open a conversation grounded in real work.
|
|
14
|
+
|
|
15
|
+
The successor packet carries `orienting-to-an-inherited-seat`; the incumbent notice carries
|
|
16
|
+
`retiring-and-inheriting-a-seat`. Record delivery as staged, submitted, and consumed. No step in
|
|
17
|
+
this stack binds the successor into the live seat.
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
const fs = require("node:fs");
|
|
11
11
|
const path = require("node:path");
|
|
12
|
+
const crypto = require("node:crypto");
|
|
12
13
|
const { spawnSync } = require("node:child_process");
|
|
13
14
|
|
|
14
15
|
const DEFAULT_THRESHOLD = 2_600_000;
|
|
@@ -133,9 +134,65 @@ function renderTrace() {
|
|
|
133
134
|
try { size = fs.statSync(transcriptPath).size; } catch {}
|
|
134
135
|
|
|
135
136
|
const stateDir = path.join(home, "refocus");
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
|
|
138
|
+
// OPR.0.5.6.25 — state keys to the OCCUPANT, not the seat. A seat-keyed file made
|
|
139
|
+
// a fresh occupant inherit its predecessor's lastBytes (permanently zero growth on
|
|
140
|
+
// exactly the seats that swap) and its pending delivery. Identity derives from the
|
|
141
|
+
// hook family's own fields; the guarded expression never evaluates basename on an
|
|
142
|
+
// absent value. The legacy `${seat}.json` is NEVER read, imported, or rewritten —
|
|
143
|
+
// it stays on disk as diagnosis/migration material only.
|
|
144
|
+
const sanitize = (raw) => String(raw).replace(/[^A-Za-z0-9@._-]/g, "_");
|
|
145
|
+
const seatKey = sanitize(seat);
|
|
146
|
+
const firstString = (...vals) => {
|
|
147
|
+
for (const v of vals) if (typeof v === "string" && v.trim()) return v.trim();
|
|
148
|
+
return null;
|
|
149
|
+
};
|
|
150
|
+
const transcriptIdentity = input.transcript_path
|
|
151
|
+
? path.basename(input.transcript_path, ".jsonl")
|
|
152
|
+
: input.transcriptPath
|
|
153
|
+
? path.basename(input.transcriptPath, ".jsonl")
|
|
154
|
+
: null;
|
|
155
|
+
const identity = firstString(input.session_id, input.sessionId, transcriptIdentity);
|
|
156
|
+
|
|
157
|
+
// Bounded, deterministic, collision-stable key: lossy sanitization or truncation
|
|
158
|
+
// appends a stable short hash of the full pre-sanitization identity, so distinct
|
|
159
|
+
// identities stay distinct and every path stays inside the state directory.
|
|
160
|
+
const KEY_MAX = 64;
|
|
161
|
+
const keyFor = (raw) => {
|
|
162
|
+
const bounded = sanitize(raw).slice(0, KEY_MAX);
|
|
163
|
+
if (bounded === String(raw)) return bounded;
|
|
164
|
+
const suffix = crypto.createHash("sha256").update(String(raw)).digest("hex").slice(0, 8);
|
|
165
|
+
return `${bounded}__${suffix}`;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// No-identity diagnostic sentinel: an ACTIVE-EPISODE marker only — never a
|
|
169
|
+
// baseline, growth claim, pending, or fire. "#" is outside the key character
|
|
170
|
+
// class, so no derived identity path can ever collide with it. First missing
|
|
171
|
+
// event records and surfaces once; repeats stay silent; a valid-identity event
|
|
172
|
+
// clears the marker so a later distinct episode surfaces once again.
|
|
173
|
+
const sentinelFile = path.join(stateDir, `${seatKey}#no-identity-sentinel.json`);
|
|
174
|
+
if (identity === null) {
|
|
175
|
+
let sentinel = null;
|
|
176
|
+
try { sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8")); } catch {}
|
|
177
|
+
if (!sentinel || sentinel.activeEpisode !== true) {
|
|
178
|
+
try {
|
|
179
|
+
fs.mkdirSync(stateDir, { recursive: true });
|
|
180
|
+
fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: true, recordedAt: new Date().toISOString() }));
|
|
181
|
+
} catch {}
|
|
182
|
+
process.stderr.write(`refocus: no session identity and no transcript path for ${seat} — measurement unavailable this episode\n`);
|
|
183
|
+
}
|
|
184
|
+
process.exit(0);
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
const sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8"));
|
|
188
|
+
if (sentinel && sentinel.activeEpisode === true) {
|
|
189
|
+
fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: false, clearedAt: new Date().toISOString() }));
|
|
190
|
+
}
|
|
191
|
+
} catch {}
|
|
192
|
+
|
|
193
|
+
const stateFile = path.join(stateDir, `${seatKey}__${keyFor(identity)}.json`);
|
|
194
|
+
let state = null;
|
|
195
|
+
try { state = JSON.parse(fs.readFileSync(stateFile, "utf8")) || null; } catch {}
|
|
139
196
|
const persist = () => {
|
|
140
197
|
try {
|
|
141
198
|
fs.mkdirSync(stateDir, { recursive: true });
|
|
@@ -143,6 +200,26 @@ function renderTrace() {
|
|
|
143
200
|
} catch {}
|
|
144
201
|
};
|
|
145
202
|
|
|
203
|
+
if (state === null) {
|
|
204
|
+
// First observation for this occupant: the baseline is its OWN current size —
|
|
205
|
+
// growth accumulates from here; nothing is inherited. A zero-size read means
|
|
206
|
+
// the transcript is absent/unreadable, which is instrument absence, not a
|
|
207
|
+
// baseline: record zero only when that is what was genuinely measured.
|
|
208
|
+
state = { lastBytes: size, baselineAt: new Date().toISOString() };
|
|
209
|
+
persist();
|
|
210
|
+
} else if (size > 0 && size < Number(state.lastBytes || 0)) {
|
|
211
|
+
// Shrink clears pending and resets the baseline BEFORE due computation. The
|
|
212
|
+
// reset itself emits no refocus, and a stale pending can never ride through a
|
|
213
|
+
// reset into a delivery. Advisory once per reset episode: the reset moment is
|
|
214
|
+
// the dedupe (afterwards lastBytes === size), and the marker records in state.
|
|
215
|
+
delete state.pendingOn;
|
|
216
|
+
delete state.pendingAt;
|
|
217
|
+
state.lastReset = { at: new Date().toISOString(), fromBytes: Number(state.lastBytes || 0), toBytes: size };
|
|
218
|
+
state.lastBytes = size;
|
|
219
|
+
persist();
|
|
220
|
+
process.stderr.write(`refocus: transcript shrank for ${seat} — baseline reset, pending cleared\n`);
|
|
221
|
+
}
|
|
222
|
+
|
|
146
223
|
const lastBytes = Number(state.lastBytes || 0);
|
|
147
224
|
const grown = size > lastBytes ? size - lastBytes : 0;
|
|
148
225
|
const onDemand = enabled(process.env.OPENRIG_REFOCUS_NOW, false);
|
|
@@ -212,7 +289,7 @@ function renderTrace() {
|
|
|
212
289
|
},
|
|
213
290
|
});
|
|
214
291
|
process.stdout.write(output, () => {
|
|
215
|
-
state.lastBytes = size;
|
|
292
|
+
if (size > 0) state.lastBytes = size;
|
|
216
293
|
state.firedAt = new Date().toISOString();
|
|
217
294
|
state.firedOn = event;
|
|
218
295
|
delete state.pendingOn;
|
|
@@ -3,12 +3,12 @@ name: applying-a-permission-policy
|
|
|
3
3
|
description: "Use when a permission policy is attached to a rig/seat (rig.yaml permission_policy:), or a user asks you to apply one, and you must translate that harness-neutral policy into the target harness's LIVE permission config — Claude settings.json / Codex config.toml / Pi run flags. Agent-driven and interactive: you read the policy, ground yourself in YOUR harness version, show the diff, and ask before writing. NOT for defining policies (that's the policy spec) and NOT a set-and-forget updater."
|
|
4
4
|
metadata:
|
|
5
5
|
openrig:
|
|
6
|
-
stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2
|
|
6
|
+
stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2) + built-in SPEC FILES landed → skill translates FROM the spec (POINT-not-COPY). The two established criteria met 2026-08-04. Reviewed at push.
|
|
7
7
|
tested_against: # VERSION STAMP — the whole point; re-verify at every harness bump
|
|
8
8
|
claude_code: "2.1.220 — VM-CONFIRMED 2026-08-03 (all cells)"
|
|
9
9
|
codex: "0.120.0 — VM-CONFIRMED 2026-08-03 (sandbox_mode/approval_policy; on-failure deprecated-but-accepted)"
|
|
10
10
|
pi: "0.83.0 — VM-CONFIRMED 2026-08-03: --approve/--no-approve govern PROJECT-RESOURCE TRUST, NOT tool permissions; Pi has NO permission surface (see Pi leg)"
|
|
11
|
-
verification_status: "Live-verified 2026-08-03/04
|
|
11
|
+
verification_status: "Live-verified 2026-08-03/04. Claude 2.1.220 + Codex 0.120.0 config cells CONFIRMED live. Pi 0.83.0 divergence folded (flags = project-resource trust, not a permission gate). Cold-transfer rerun #1 blocked on the force_push/push_to_remote prefix collision → added the PREFIX-COLLISION rule. Cold-transfer rerun #2: TRANSFERS — all 5 gate checks pass (collision resolved deterministically without asking; single ordinary write confirmation; defaultMode floor written; Codex workspace-write/on-request; Pi compute-nothing). Blocking collision/floor defect CLOSED → gate cleared, 4.8-shippable (provisional-with-passing-cold-transfer). Non-blocking seam closed: the built-in SPEC FILES landed (arch-accepted, source:builtin) → skill translates FROM the spec, interim in-skill pinned summary retired (POINT-not-COPY). stage:ESTABLISHED 2026-08-04 — both criteria met."
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# Applying a permission policy
|
|
@@ -117,4 +117,4 @@ Built-ins ship read-only in the package (canonical names); copy-to-customize int
|
|
|
117
117
|
This skill TRANSLATES + APPLIES only. It does **not** define policies (the policy spec does) and does **not** enforce at the daemon (OpenRig is agnostic). Spec = *what* (neutral intent); this skill = *how, on this harness version* (the caveated, version-stamped translation).
|
|
118
118
|
|
|
119
119
|
---
|
|
120
|
-
*Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2,
|
|
120
|
+
*Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
|
|
File without changes
|
|
File without changes
|
|
@@ -263,17 +263,12 @@ For real depth, these are the load-bearing canonical docs:
|
|
|
263
263
|
| `openrig/docs/reference/agent-spec.md` | The AgentSpec YAML format — resources, profiles, imports |
|
|
264
264
|
| `openrig/docs/reference/agent-startup-guide.md` | The 7-layer startup layering model; delivery hints |
|
|
265
265
|
| the product taxonomy | Canonical vocabulary (read literally) |
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
266
|
+
| `openrig-operating-model` skill | Placement and operating-model guidance — topology and work trees, context altitude |
|
|
267
|
+
| `openrig-architect` skill | Rig and topology authoring |
|
|
268
268
|
| `https://agentskills.io/specification` | The cross-runtime skill standard |
|
|
269
269
|
|
|
270
|
-
If you're going to be authoring rigs,
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
If you're going to be doing skill work, read
|
|
274
|
-
the factory-design reference and the
|
|
275
|
-
`operating-the-skill-library` skill that lives in
|
|
276
|
-
`substrate/shared-docs/rigs/skill-library/agents/shared/skills/`.
|
|
270
|
+
If you're going to be authoring rigs, use the `openrig-architect` skill before
|
|
271
|
+
touching YAML.
|
|
277
272
|
|
|
278
273
|
---
|
|
279
274
|
|
|
@@ -1,134 +1,98 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: messaging-the-human
|
|
3
|
-
description:
|
|
4
|
-
When and who should send a message to the human operator, at
|
|
5
|
-
operator-human@your-rig — which routes straight to his Slack. Role-gated:
|
|
6
|
-
orchestrators and PMs use discretion to send anything worth his attention
|
|
7
|
-
(blockers, ships/completions, changes, good news); every other agent may
|
|
8
|
-
message him ONLY for a real blocker he can personally unblock, and routes
|
|
9
|
-
everything else through an orchestrator. Use to protect a scarce human's
|
|
10
|
-
manage-by-exception attention. NOT for agent-to-agent coordination (send/queue
|
|
11
|
-
a peer) or durable agent work-handoffs (use the queue to the owning seat).
|
|
3
|
+
description: "Use when a human decision, access grant, external action, or escalation must survive the operator's absence, or when an orchestrator or PM has a judgment-worthy update for the operator."
|
|
12
4
|
metadata:
|
|
5
|
+
cli_surfaces_referenced:
|
|
6
|
+
- gateway human add
|
|
7
|
+
- gateway human list
|
|
8
|
+
- queue block
|
|
9
|
+
- queue handoff
|
|
10
|
+
- queue transitions
|
|
11
|
+
- send
|
|
13
12
|
openrig:
|
|
14
|
-
stage: provisional
|
|
15
|
-
audience:
|
|
13
|
+
stage: provisional
|
|
14
|
+
audience: all agents
|
|
16
15
|
sibling_skills:
|
|
17
16
|
- queue-handoff
|
|
18
|
-
- status-not-chat-orchestrator
|
|
19
17
|
- human-in-the-loop
|
|
20
18
|
- openrig-user
|
|
21
19
|
---
|
|
22
20
|
|
|
23
21
|
# Messaging the Human
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
The human is an addressable participant, but their attention is scarce and they
|
|
24
|
+
may not be at a terminal. Anything that must survive their absence needs a
|
|
25
|
+
durable queue row; the gateway turns the human blocker on that row into the
|
|
26
|
+
external notification.
|
|
27
|
+
|
|
28
|
+
Any seat may contact the human directly for a real escalation. Orchestrators
|
|
29
|
+
and product managers may also send updates they judge the human would want to
|
|
30
|
+
know. Do not add a routing intermediary merely because of your role.
|
|
31
|
+
|
|
32
|
+
## The supported route
|
|
33
|
+
|
|
34
|
+
First discover the registered human identity. Never invent or remember an
|
|
35
|
+
address:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
rig gateway human list --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Use `humans[].entityId` to derive the durable blocker as `<entityId>@host`.
|
|
42
|
+
The entity id must use the human-seat prefix (`human` or `human-...`); if it
|
|
43
|
+
does not, stop and repair the registration rather than guessing. The returned
|
|
44
|
+
`humans[].address` is the gateway delivery address, not the `--on` value. If no
|
|
45
|
+
unambiguous registered human is returned, stop: registration is lifecycle work
|
|
46
|
+
(`rig gateway human add --help`), not an address to guess.
|
|
47
|
+
|
|
48
|
+
Keep the work row owned by the agent who must resume it, then park that row on
|
|
49
|
+
the registered human:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
rig queue block <qitem-id> --on <entityId>@host \
|
|
53
|
+
--summary "<decision owed>" \
|
|
54
|
+
--evidence-ref "<durable artifact the human should judge>" \
|
|
55
|
+
--continuation "<what resumes after the answer>"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The gateway resolves the registered human to the configured connector, sends
|
|
59
|
+
the Slack notification, and records its receipt on the same row. Confirm the
|
|
60
|
+
effect from the append-only history:
|
|
26
61
|
|
|
27
62
|
```bash
|
|
28
|
-
rig
|
|
63
|
+
rig queue transitions <qitem-id>
|
|
29
64
|
```
|
|
30
65
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
test is: **"would he want to know this?"** If yes, send it. Lean toward sending
|
|
65
|
-
genuine signal and real good news; do not manufacture noise or narrate routine
|
|
66
|
-
churn. Discernment is the skill: you are curating his attention, not flooding it.
|
|
67
|
-
|
|
68
|
-
### The v0 event classes — reach out on these, unprompted
|
|
69
|
-
|
|
70
|
-
"Use discretion" left the *when* unspecified, so it did not happen — the channel exists and nobody
|
|
71
|
-
reaches for it. Here are the **named event classes** that should trigger a proactive message —
|
|
72
|
-
anchors for the judgment, not an exhaustive gate:
|
|
73
|
-
|
|
74
|
-
- **Model-fallback boots** — a seat that came up on a fallback model instead of its pinned one. Send
|
|
75
|
-
on **every occurrence**; a silent downgrade is exactly what the human needs to see.
|
|
76
|
-
- **Capacity / authority requests** — you need a fork/spin-up authorization, a spend-or-limit call, or
|
|
77
|
-
any authority only the human holds. This is a **guaranteed-answer** path — don't sit blocked on it.
|
|
78
|
-
- **Security-category flags** — anything in the security / consequence-boundary class.
|
|
79
|
-
- **Acceptance / milestone moments** — a slice proven, a release cut, a real "it's done and it works."
|
|
80
|
-
- **Human-addressed work blocked beyond its settle window** — a decision or request routed to the
|
|
81
|
-
human that has sat past the time it should have moved.
|
|
82
|
-
- **Idle / stall alarms** — the line stopped and isn't resuming (the idle-detector's signal).
|
|
83
|
-
|
|
84
|
-
These are v0, drawn from real rulings; treat them as the anchors that make the *when* concrete. New
|
|
85
|
-
classes earn their place the same way — from a real event the human wanted to know about.
|
|
86
|
-
|
|
87
|
-
**Why this is a norm, not a nicety — WORKS ≠ USED.** A channel that *works* is not a channel that is
|
|
88
|
-
*used*. This path is proven only when agents **reach for it unprompted** across the lifecycle — a
|
|
89
|
-
boot, a blocker, a ship, an alarm. If the channel exists and nobody reaches for it, the human is
|
|
90
|
-
blind by default. Reaching out on these classes is the job, not an interruption of it.
|
|
91
|
-
|
|
92
|
-
### If you are ANY OTHER agent — blockers only
|
|
93
|
-
|
|
94
|
-
You may message the human **only** when you are **blocked** and **he** is the one
|
|
95
|
-
who can unblock you. That authority is universal — you do **not** have to be an
|
|
96
|
-
orchestrator to raise a real blocker. But a blocker is the **only** thing you may
|
|
97
|
-
send him directly.
|
|
98
|
-
|
|
99
|
-
For anything that is **not** a blocker — an update, an idea, a question, an
|
|
100
|
-
interesting finding — do **not** message the human. Send it to your
|
|
101
|
-
**orchestrator**, who decides whether it is the human's role to handle or whether
|
|
102
|
-
it is handled another way. The orchestrator/PM layer is the filter that protects
|
|
103
|
-
the human's attention; routing through it is how the system keeps his queue at
|
|
104
|
-
manage-by-exception altitude.
|
|
105
|
-
|
|
106
|
-
## What counts as a real blocker (for non-orchestrator / non-PM agents)
|
|
107
|
-
|
|
108
|
-
You are **blocked** AND **only the human** can clear it:
|
|
109
|
-
|
|
110
|
-
- a **decision** only he can make,
|
|
111
|
-
- **access / a credential / an authority** only he holds,
|
|
112
|
-
- an **external action** only he can take (something in the real world, an
|
|
113
|
-
account or service he owns).
|
|
114
|
-
|
|
115
|
-
Not a blocker: "I'd like a second opinion," "which approach do you prefer,"
|
|
116
|
-
"here's a cool thing I found." Those go to your **orchestrator**. And if an
|
|
117
|
-
orchestrator or PM *could* unblock you, route to them first — reserve the human
|
|
118
|
-
for what genuinely only he can do.
|
|
119
|
-
|
|
120
|
-
## How to write it (so it earns the interruption)
|
|
121
|
-
|
|
122
|
-
- **Lead with the point.** Blocker: what is blocked + exactly what you need from
|
|
123
|
-
him. Update: the headline first, detail after.
|
|
124
|
-
- **Full absolute paths.** No internal jargon he can't parse. **No backticks** in
|
|
125
|
-
`rig send` bodies (they trigger shell substitution).
|
|
126
|
-
- `rig send` is an **ephemeral conversation** to his Slack. For a durable *agent*
|
|
127
|
-
work-handoff, use the queue to the owning seat — not the human.
|
|
128
|
-
|
|
129
|
-
## Quick reference
|
|
130
|
-
|
|
131
|
-
| You are… | You may send the human… |
|
|
132
|
-
|---|---|
|
|
133
|
-
| Orchestrator / PM | anything worth his attention — blockers, ships, completions, changes, good news (your discretion) |
|
|
134
|
-
| Any other agent | a real blocker only he can unblock — **and nothing else** (everything else → your orchestrator) |
|
|
66
|
+
The row is the obligation and the audit trail. Slack is the attention leg. A
|
|
67
|
+
reply resolves the durable blocker and wakes the row owner; it does not create
|
|
68
|
+
a second private work stream.
|
|
69
|
+
|
|
70
|
+
## When to use it
|
|
71
|
+
|
|
72
|
+
Escalate directly when only the human can supply the missing capability:
|
|
73
|
+
|
|
74
|
+
- a decision or irreversible judgment only they own;
|
|
75
|
+
- access, credentials, authority, or capacity only they can grant;
|
|
76
|
+
- an external action only they can perform;
|
|
77
|
+
- a security-class or provider/model-fallback event they need to know about.
|
|
78
|
+
|
|
79
|
+
Orchestrators and product managers may additionally send meaningful milestone,
|
|
80
|
+
environment, or completion updates. Prefer signal over routine narration.
|
|
81
|
+
|
|
82
|
+
## Boundaries
|
|
83
|
+
|
|
84
|
+
- `rig send` sends text to an agent's terminal. It is not the Slack route and
|
|
85
|
+
does not create a durable human obligation.
|
|
86
|
+
- An unregistered or ambiguous human identity must fail loudly. Register or
|
|
87
|
+
repair the identity; never downgrade it to an agent seat or a guessed
|
|
88
|
+
`@external` address.
|
|
89
|
+
- Agent-to-agent work that needs closure uses `rig queue handoff`, not this
|
|
90
|
+
human-blocker path.
|
|
91
|
+
- Deferred work that is not imminent belongs in the mission workspace, not on
|
|
92
|
+
the queue.
|
|
93
|
+
|
|
94
|
+
## Writing the escalation
|
|
95
|
+
|
|
96
|
+
Lead with what is blocked and the exact decision or action needed. Point at the
|
|
97
|
+
durable evidence instead of pasting a second copy, and name the continuation so
|
|
98
|
+
the system can resume the right work when the answer arrives.
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mission-slice-sop
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
Use when starting, building, handing off, restoring, or closing a mission or slice under the default lightweight SDLC.
|
|
4
5
|
metadata:
|
|
5
6
|
openrig:
|
|
6
7
|
stage: shipped
|
|
7
8
|
sibling_skills:
|
|
8
|
-
- mission-slice-intent-proof-sop
|
|
9
9
|
- queue-handoff
|
|
10
10
|
- seat-continuity-and-handover
|
|
11
11
|
- claude-compaction-restore
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# Mission/Slice SOP —
|
|
14
|
+
# Mission/Slice SOP — Part A
|
|
15
15
|
|
|
16
16
|
Use this skill to actually **do** mission/slice work: track on the canonical files, record what you proved, hand off through them, and survive compaction on them. **Do the work described here; do not merely explain the protocol.**
|
|
17
17
|
|
|
18
|
+
**Full convention SSOT:** repo `docs/reference/sdlc-conventions.md`; installed `$OPENRIG_HOME/reference/sdlc-conventions.md`. This skill is the concise Part-A teaching surface and does not replace the full convention.
|
|
19
|
+
|
|
18
20
|
## THIS IS THE LIGHT DEFAULT — read this before anything else
|
|
19
21
|
|
|
20
22
|
**The default for any slice is the inner loop:** ground yourself → build → **test with your own eyes** → iterate → **ONE** full-breadth review at the end. That is the whole process. It is not a reduced form of a better process; it IS the process.
|
|
21
23
|
|
|
22
|
-
**
|
|
23
|
-
|
|
24
|
-
Why the split exists, plainly: this document used to carry both, so every slice loaded the full apparatus and a one-line documentation change could draw a multi-round gate. If you find yourself building a proof contract, requesting a pre-edit gate, or asking a peer to gate something you can verify yourself — you have picked up the overlay without being assigned it. Put it down.
|
|
24
|
+
**Part B is defined in the SSOT above and applies only when the human operator — or an orchestrator explicitly relaying that decision — assigns it to a named piece of work.** You may not select it yourself. If you believe something earns it, say so in one sentence and **continue on Part A** until told otherwise.
|
|
25
25
|
|
|
26
26
|
## Proportionality — this SOP serves shipping; it is not the work itself
|
|
27
27
|
|
|
@@ -35,21 +35,24 @@ The working product is the deliverable. This bookkeeping exists so the work surv
|
|
|
35
35
|
|
|
36
36
|
These three are a division of labour, not a chain of gates. One agent may hold all three on a small slice.
|
|
37
37
|
|
|
38
|
-
## The
|
|
38
|
+
## The current file contract
|
|
39
39
|
|
|
40
40
|
> These files are the **operating surface of the work** — you track on them, record on them, hand off through them, and survive compaction on them. Keep them current because that is what lets the work survive. But they **serve** the product; they are not the product. If you're polishing files while the actual thing isn't shipping, you've inverted it: go build, then update them.
|
|
41
41
|
|
|
42
|
-
- **SPEC.md
|
|
43
|
-
- **
|
|
44
|
-
- **NOTES.md** — lived context and observations that help the mission without changing its contract.
|
|
45
|
-
- **PROOF.md** (+ `proof/`) — what you actually verified, stated honestly. A couple of honest, LOOKed-at lines beat an elaborate contract.
|
|
42
|
+
- **Slice:** `SPEC.md`, `PROGRESS.md`, `PROOF.md`, and `proof/`.
|
|
43
|
+
- **Mission:** `SPEC.md` and `NOTES.md`.
|
|
46
44
|
|
|
47
45
|
## Per-file rules — WHO / WHEN / HOW
|
|
48
46
|
|
|
47
|
+
### SPEC.md
|
|
48
|
+
- **WHO:** the planning owner authors it; builders and reviewers read it as the scope and intent source.
|
|
49
|
+
- **WHEN:** at creation and whenever scope changes.
|
|
50
|
+
- **HOW:** a slice carries `intent:` in frontmatter and opens with `## Intent`, `## Mini-requirements`, and `## Proof contract`. A mission carries its intent and mission-level specification in the same authored node file. Keep depth proportional to the work.
|
|
51
|
+
|
|
49
52
|
### PROGRESS.md
|
|
50
|
-
- **WHO:** the
|
|
51
|
-
- **WHEN:**
|
|
52
|
-
- **HOW:** one
|
|
53
|
+
- **WHO:** the orchestrator owns `§1` (current state); every agent logs its own outcomes.
|
|
54
|
+
- **WHEN:** on material delivery-state changes and at acceptance.
|
|
55
|
+
- **HOW:** one line per outcome (checkbox), link down for detail; keep frontmatter `stage`/`verified` honest.
|
|
53
56
|
|
|
54
57
|
### PROOF.md + proof/
|
|
55
58
|
- **WHO:** the impl/QA pair that worked the slice.
|
|
@@ -57,16 +60,13 @@ These three are a division of labour, not a chain of gates. One agent may hold a
|
|
|
57
60
|
- **HOW:** say what you verified and how you verified it — **by effect**: you ran it and looked at the result. Put supporting media under `proof/`. State plainly what is proven and what is **not**; an honest "this half is untested" is worth more than a checkmark. If a drop verb is in play for this slice, prefer it over hand-placing files so the artifact carries its own provenance.
|
|
58
61
|
|
|
59
62
|
### NOTES.md
|
|
60
|
-
- **WHO:**
|
|
61
|
-
- **WHEN:**
|
|
62
|
-
- **HOW:**
|
|
63
|
-
|
|
64
|
-
### SPEC.md
|
|
65
|
-
- **WHO:** the node owner. **WHEN:** at creation and on a real rescope. **HOW:** keep `intent:` and advisory `depends_on:` in frontmatter; only slice bodies specify buildable work.
|
|
63
|
+
- **WHO:** any agent updates `§1` (top-of-mind); each seat owns and appends to its own `§A–§X`.
|
|
64
|
+
- **WHEN:** on material mission-context changes; a compacting agent **files its state here BEFORE compaction and reads it on restore.**
|
|
65
|
+
- **HOW:** accruing tribal knowledge — `§1` ≤ 5–15 lines (gates, open decisions, surprises); per-seat continuation entries (latest = truth; other seats read-only). Pointer-first; don't duplicate.
|
|
66
66
|
|
|
67
67
|
## The lifecycle (4 legs)
|
|
68
68
|
|
|
69
|
-
**SCAFFOLD** (`rig scope` creates the files from templates) → **POPULATE** (agents fill them as work happens) → **PROJECT** (
|
|
69
|
+
**SCAFFOLD** (`rig scope` creates the files from templates) → **POPULATE** (agents fill them as work happens) → **PROJECT** (the Living Notes UI reads them into INTENT → PLAN → DELIVERED) → **VERIFY** (`rig scope audit`, advisory). "Loose freeform write + deterministic verify."
|
|
70
70
|
|
|
71
71
|
## Hot-potato (handoffs)
|
|
72
72
|
|
|
@@ -89,7 +89,6 @@ When you `rig capture` a pane, **greyed / ghost autocomplete suggestions are NOT
|
|
|
89
89
|
## Moment-of-truth checklist
|
|
90
90
|
|
|
91
91
|
- **Starting a slice?** → do you know what it's for and what done looks like? mockups attached (UI slices)? **Are you on the light path?** (You are, unless the mission owner assigned the overlay.)
|
|
92
|
-
- **Finishing a slice?** → does PROOF.md say what you actually verified, by effect, including what is NOT covered?
|
|
93
|
-
- **
|
|
94
|
-
- **
|
|
95
|
-
- **Starting on a mission?** → read the mission SPEC.md + NOTES.md + the conventions SSOT.
|
|
92
|
+
- **Finishing a slice?** → does `PROOF.md` say what you actually verified, by effect, including what is NOT covered? `PROGRESS.md` updated? mission `NOTES.md` refreshed? handed off via `rig queue handoff`?
|
|
93
|
+
- **Compacting?** → file your state in mission `NOTES.md`; on restore, read it plus the active slice's `SPEC.md`, `PROGRESS.md`, and `PROOF.md`.
|
|
94
|
+
- **Starting on a mission?** → read mission `SPEC.md`, `NOTES.md`, and the conventions SSOT.
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
metadata:
|
|
10
10
|
openrig:
|
|
11
11
|
stage: draft
|
|
12
|
-
author: OpenRig product team (sole-context authorship
|
|
12
|
+
author: OpenRig product team (sole-context authorship)
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# The OpenRig Operating Model
|
|
@@ -25,11 +25,7 @@ write protocol). The SUPPLY layer — how canon content flows into the chains:
|
|
|
25
25
|
addresses, maps, renders, EMM maturity, census — is `openrig-corpus-canon`,
|
|
26
26
|
the deliberate drain mechanism the dual-home interim anticipated.
|
|
27
27
|
|
|
28
|
-
Companion
|
|
29
|
-
- `ROLLOUT.md` — how the model is being adopted on a live fleet (waves, interim
|
|
30
|
-
practices, what happens to existing files).
|
|
31
|
-
- `ROADMAP.md` — what later gets formalized in product code, and when.
|
|
32
|
-
- `REVISION-GUIDE.md` — for agents revising this skill.
|
|
28
|
+
Companion implementation assets in this skill's folder:
|
|
33
29
|
- `templates/` and `scripts/` — starters and working tools, described in §8.
|
|
34
30
|
|
|
35
31
|
## 1. The model in one breath
|
|
@@ -380,8 +376,7 @@ living system are the same command with different starting states. Created
|
|
|
380
376
|
files are marked UNSEEDED until their real owner writes the first true
|
|
381
377
|
version. **Never mass-produce LEARNED.md content for other instances** — each
|
|
382
378
|
instance writing its own first version is both how the knowledge becomes real
|
|
383
|
-
and how you discover which seats
|
|
384
|
-
`ROLLOUT.md` on why that discovery is the point).
|
|
379
|
+
and how you discover which seats cannot yet describe their own job.
|
|
385
380
|
|
|
386
381
|
## 10. Pitfalls (only what isn't taught above)
|
|
387
382
|
|
|
@@ -393,12 +388,10 @@ and how you discover which seats can't describe their own job (see
|
|
|
393
388
|
- Summarizing this model for another agent instead of pointing them here —
|
|
394
389
|
secondhand operating models are how operating models die; this skill was
|
|
395
390
|
authored precisely because a chain of summaries destroyed the last one.
|
|
396
|
-
- Scripts in `scripts/` are macOS-flavored in places (`stat -f`);
|
|
397
|
-
|
|
391
|
+
- Scripts in `scripts/` are macOS-flavored in places (`stat -f`); verify
|
|
392
|
+
platform compatibility before trusting them on another OS.
|
|
398
393
|
|
|
399
394
|
## Files in this skill
|
|
400
395
|
|
|
401
|
-
`ROLLOUT.md` · `ROADMAP.md` · `REVISION-GUIDE.md` ·
|
|
402
|
-
`CHANGELOG.md` — why the model is shaped this way, and what it replaced ·
|
|
403
396
|
`templates/{SPEC,LEARNED,SOP}.md` ·
|
|
404
397
|
`scripts/{compose.py, trace-due.sh, trace-stamp.sh, trunk-diff.sh, scaffold.sh}`
|