@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
package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py
CHANGED
|
@@ -92,17 +92,10 @@ def field_of(payload, field):
|
|
|
92
92
|
return (" ".join(str(v).split()) if v is not None else None), None
|
|
93
93
|
|
|
94
94
|
def _cut_at_boundary(s, n):
|
|
95
|
-
"""Cut to
|
|
95
|
+
"""Cut to at most n characters without splitting a token.
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
a file that is actually called that, so a truncation artifact is silently promoted to a
|
|
100
|
-
fact about the tree. Filenames, paths and identifiers are exactly the tokens a reader is
|
|
101
|
-
most likely to act on, which makes them the worst place to lose characters.
|
|
102
|
-
|
|
103
|
-
So the cut lands on whitespace or it does not land: paragraph, then line, then word. A
|
|
104
|
-
single unbroken token longer than the budget is DROPPED WHOLE rather than shortened —
|
|
105
|
-
half an identifier is worse than no identifier."""
|
|
97
|
+
Prefer paragraph, line, then word boundaries. Drop a single unbroken token
|
|
98
|
+
that exceeds the budget; a partial path or identifier looks valid but is not."""
|
|
106
99
|
if len(s) <= n:
|
|
107
100
|
return s
|
|
108
101
|
head = s[:n]
|
|
@@ -146,27 +139,11 @@ def dep_artifacts(dep_dir, names, dep_fm):
|
|
|
146
139
|
|
|
147
140
|
|
|
148
141
|
def blocking_state(payload, lvl, names):
|
|
149
|
-
"""
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
exactly one key, and threw the rest away. It answers *what is this for* completely and
|
|
155
|
-
*what should I do now* not at all, and ships as though the first answered the second.
|
|
156
|
-
|
|
157
|
-
So the blocking facts ride along: `status`, and `depends:` — a sibling slice id (or a
|
|
158
|
-
list of them) RESOLVED ON DISK so the dependency's current state is reported rather than
|
|
159
|
-
remembered. Leaf only — the ancestors say what the work is for, and only the leaf says
|
|
160
|
-
whether to start it.
|
|
161
|
-
|
|
162
|
-
Measured 2026-08-14: a cold subject working slice 13 needed slice 11's OUTPUT. The walk
|
|
163
|
-
gave it 11's STATE and nothing else; the subject called the missing location "the single
|
|
164
|
-
largest unknown in my Phase 1 answer and it was the load-bearing input", and resolved it
|
|
165
|
-
with `ls` a phase later. A status answers *may I start*; it does not answer *where is the
|
|
166
|
-
thing I start from*. So each dependency now renders its ABSOLUTE PATH and its output
|
|
167
|
-
ARTIFACTS beside its state — and an id that resolves to nothing renders UNRESOLVED, said
|
|
168
|
-
out loud, because an unresolvable dependency dropped in silence is the same false
|
|
169
|
-
confidence in a smaller box."""
|
|
142
|
+
"""Return leaf status and dependency facts beside its intent, or None.
|
|
143
|
+
|
|
144
|
+
Intent alone does not say whether work may start or where dependency outputs
|
|
145
|
+
live. Resolve dependencies on disk and report state, absolute path, and
|
|
146
|
+
artifacts; leave ancestors to carry purpose."""
|
|
170
147
|
fm, _ = frontmatter(payload)
|
|
171
148
|
if not fm:
|
|
172
149
|
return None
|
|
@@ -208,18 +185,10 @@ def blocking_state(payload, lvl, names):
|
|
|
208
185
|
|
|
209
186
|
|
|
210
187
|
def operates_on(payload):
|
|
211
|
-
"""
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
failure is not "which tree am I looking at" — it is "which tree does this work act on."
|
|
216
|
-
A slice about the skill library renders inside a map rooted at the workspace, and the
|
|
217
|
-
reader plans into the tree it was shown. One subject planned to CREATE a second corpus,
|
|
218
|
-
duplicating the very thing whose duplication was that slice's subject.
|
|
219
|
-
|
|
220
|
-
The walk cannot infer this: a work node is not bound to a root. So the node DECLARES it
|
|
221
|
-
and the leaf renders it verbatim. Mechanical, like `depends:`, and absent when unstated
|
|
222
|
-
rather than guessed."""
|
|
188
|
+
"""Return the roots a work node declares it operates on.
|
|
189
|
+
|
|
190
|
+
The tree being walked need not be the tree the work changes. This cannot be
|
|
191
|
+
inferred safely, so render `operates_on` verbatim and omit it when unstated."""
|
|
223
192
|
fm, _ = frontmatter(payload)
|
|
224
193
|
if not fm:
|
|
225
194
|
return None
|
|
@@ -229,17 +198,9 @@ def operates_on(payload):
|
|
|
229
198
|
return [" ".join(str(r).split()) for r in (roots if isinstance(roots, list) else [roots])]
|
|
230
199
|
|
|
231
200
|
|
|
232
|
-
#
|
|
233
|
-
#
|
|
234
|
-
#
|
|
235
|
-
# when`, `What done looks like`, `Scope fences`, `Output`, `Inputs`, `Depends on`, `What must
|
|
236
|
-
# be built`, `How we will know it works`, `PAYLOAD`). DISCUSSION is the rationale-and-history
|
|
237
|
-
# family (`Why …`, `The problem …`, `The evidence …`, `The finding …`, `RESULT …`, `Also
|
|
238
|
-
# found`, `Triage`, `What is already done`, `New evidence`, `Where this spec was wrong`) —
|
|
239
|
-
# valuable, and the first thing a reader can go get from the file itself.
|
|
240
|
-
# Anything unmatched sits in the MIDDLE on purpose: an unfamiliar heading is neither
|
|
241
|
-
# privileged nor sacrificed, so a new section shape degrades gracefully instead of silently
|
|
242
|
-
# becoming the first casualty.
|
|
201
|
+
# Preserve contract and scope sections ahead of rationale and history when the
|
|
202
|
+
# leaf body exceeds its cap. Unknown headings remain middle priority so new shapes
|
|
203
|
+
# degrade without being silently privileged or discarded.
|
|
243
204
|
_PRI_CONTRACT = re.compile(
|
|
244
205
|
r"(done when|what done looks like|scope fence|outputs?\b|inputs?\b|depends on|"
|
|
245
206
|
r"what must be built|how we will know|acceptance|payload|deliverable)", re.I)
|
|
@@ -278,24 +239,11 @@ def _sections(body):
|
|
|
278
239
|
|
|
279
240
|
|
|
280
241
|
def leaf_body(payload, cap):
|
|
281
|
-
"""
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
a coherent four-step plan aimed at the wrong one — and the three altitudes it planned
|
|
287
|
-
over need three different verbs, which it had no way to know.
|
|
288
|
-
|
|
289
|
-
That is misdirection, not a gap. Ancestors compress beautifully because they are stable
|
|
290
|
-
and abstract. **The leaf is where the nouns live, and a field-only walk throws them
|
|
291
|
-
away** — every word that would have disambiguated it sat in the body that was not shown.
|
|
292
|
-
|
|
293
|
-
Truncation is BY PRIORITY, never by position. Measured 2026-08-14: positional cutting on
|
|
294
|
-
slice 13 dropped `Output`, `Done when` and `Scope fences` — the three sections that say
|
|
295
|
-
what to produce, when it is finished and what it may not touch — and kept four screens of
|
|
296
|
-
rationale, because the rationale happened to be written first. The subject rated its own
|
|
297
|
-
grasp of purpose 85% and its next action 70% and named that omission as the reason. A
|
|
298
|
-
render that keeps the argument and drops the contract has the priorities backwards."""
|
|
242
|
+
"""Render the leaf body, truncating by semantic priority rather than position.
|
|
243
|
+
|
|
244
|
+
Ancestors can compose by stable intent fields, but the leaf carries the nouns,
|
|
245
|
+
boundaries, outputs, and completion conditions. When over budget, retain
|
|
246
|
+
contract and scope sections before explanatory history."""
|
|
299
247
|
if not payload:
|
|
300
248
|
return None
|
|
301
249
|
m = re.match(r"^---\n.*?\n---\n", payload, re.S)
|
|
@@ -309,13 +257,8 @@ def leaf_body(payload, cap):
|
|
|
309
257
|
kept = _cut_at_boundary(body, cap)
|
|
310
258
|
return (kept + "\n\n[… " + str(len(body) - len(kept)) + " more chars, no further "
|
|
311
259
|
"headings — prose tail]" + "\n(read the node file for these)")
|
|
312
|
-
# Drop
|
|
313
|
-
#
|
|
314
|
-
# sane cap, and dropping the tier tail-first killed `Done when` (12 lines) and `Scope
|
|
315
|
-
# fences` (9) to save `Output` and `Inputs` (~2k chars each) — the two long prose
|
|
316
|
-
# sections eating the two short decisive ones. Largest-first keeps the most sections
|
|
317
|
-
# standing, and in these specs the short section is the one carrying the ruling. The
|
|
318
|
-
# preamble (title + lede, index 0) is never a candidate: it is what names the thing.
|
|
260
|
+
# Drop the lowest-priority, largest sections first to preserve more short,
|
|
261
|
+
# decisive sections. The title and lede preamble are never candidates.
|
|
319
262
|
keep, size = set(range(len(secs))), len(body)
|
|
320
263
|
for i in sorted(range(1, len(secs)), key=lambda i: (-_priority(secs[i][0]), -len(secs[i][1]))):
|
|
321
264
|
if size <= cap:
|
|
@@ -326,11 +269,7 @@ def leaf_body(payload, cap):
|
|
|
326
269
|
if len(kept) > cap: # preamble alone overflows; cut it safely, never mid-token
|
|
327
270
|
kept = _cut_at_boundary(kept, cap)
|
|
328
271
|
dropped = [secs[i][0] for i in range(1, len(secs)) if i not in keep]
|
|
329
|
-
#
|
|
330
|
-
# acceptance criteria to it and neither could tell, because a truncated head can end on
|
|
331
|
-
# a clean rhetorical close and look like a finished document. Listing the dropped
|
|
332
|
-
# headings turns invisible truncation into a decision the reader can actually make —
|
|
333
|
-
# one subject lowered its own confidence honestly on the strength of this line alone.
|
|
272
|
+
# Name omitted headings so truncation is visible to the reader.
|
|
334
273
|
tail = ("\n\nOMITTED FROM THIS RENDER — " + str(len(body) - len(kept)) + " chars, sections: "
|
|
335
274
|
+ " · ".join(dropped) if dropped else
|
|
336
275
|
"\n\n[… " + str(len(body) - len(kept)) + " more chars, no further headings — prose tail]")
|
|
@@ -338,29 +277,18 @@ def leaf_body(payload, cap):
|
|
|
338
277
|
|
|
339
278
|
|
|
340
279
|
def resolve_roots():
|
|
341
|
-
"""
|
|
342
|
-
|
|
343
|
-
A
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
not. Precedence matches every other typed key: env > config > derived > fail-with-the-key.
|
|
347
|
-
|
|
348
|
-
The derived step is honest rather than clever: this script physically lives inside the
|
|
349
|
-
shared-docs tree, so it can find its own `rigs/` sibling by walking up from __file__. That
|
|
350
|
-
works for the library copy and its symlinked projections (resolved with realpath) and NOT for
|
|
351
|
-
a real plugin copy — which is correct. A plugin copy on
|
|
352
|
-
someone else's machine has no business inferring a path; it must be told, and it fails saying
|
|
353
|
-
exactly which key to set rather than picking a directory and being confidently wrong."""
|
|
280
|
+
"""Resolve work and topology roots from configuration or explicit environment.
|
|
281
|
+
|
|
282
|
+
A library copy may derive topology from its own real path; a projected plugin
|
|
283
|
+
copy must be configured rather than guessing. Resolution follows environment,
|
|
284
|
+
configuration, then derived location."""
|
|
354
285
|
out = {}
|
|
355
286
|
out["work_root"] = os.environ.get("OPENRIG_WORKSPACE_ROOT") or rig_config("workspace.root")
|
|
356
287
|
|
|
357
288
|
t = os.environ.get("OPENRIG_TOPOLOGY_ROOT") or rig_config("workspace.topology_root")
|
|
358
289
|
if not t:
|
|
359
|
-
#
|
|
360
|
-
#
|
|
361
|
-
# the ascent runs up a tree with no `rigs/` sibling and topology_root comes back
|
|
362
|
-
# UNRESOLVED — for every agent reaching the tool the documented way. Measured 2026-08-14:
|
|
363
|
-
# exit 3 via the projection, exit 0 via the realpath, same file.
|
|
290
|
+
# Resolve symlinks before walking upward; otherwise a projection ascends
|
|
291
|
+
# its own tree rather than the shared-docs source.
|
|
364
292
|
here = os.path.realpath(__file__)
|
|
365
293
|
for _ in range(6): # scripts/ skill/ skills/ skill-canon/ -> shared-docs/
|
|
366
294
|
here = os.path.dirname(here)
|
|
@@ -406,11 +334,8 @@ def compose_up(start, names, root, field=None, prefer=False, shelves=None, leaf_
|
|
|
406
334
|
# (first match wins) instead of N independent chains. A tree mid-rename is the normal
|
|
407
335
|
# case, not an exception: SPEC.md is the current node filename and README.md the legacy
|
|
408
336
|
# one, and a trace that cannot span both reports a chain as broken when it is merely mixed.
|
|
409
|
-
#
|
|
410
|
-
#
|
|
411
|
-
# is a fixture tree at workspace/artifacts/<qitem>/fixture-workspace/missions/, which is
|
|
412
|
-
# inside workspace.root and is not a work tree. Only slices_root and topology_root name
|
|
413
|
-
# actual trees, so those are the discriminator.
|
|
337
|
+
# Validate the start node against configured tree roots. Merely sitting below
|
|
338
|
+
# workspace.root is insufficient because fixtures may look structurally valid.
|
|
414
339
|
_cfg = [c for c in (rig_config("workspace.slices_root"),
|
|
415
340
|
resolve_roots().get("topology_root")) if c]
|
|
416
341
|
_here = os.path.abspath(start)
|
|
@@ -465,17 +390,11 @@ def compose_up(start, names, root, field=None, prefer=False, shelves=None, leaf_
|
|
|
465
390
|
rungs.append((label, row)); pending = []
|
|
466
391
|
leads = [("" if i == 0 else " " * (i - 1) + "└─ ") + rungs[i][0] + "/" for i in range(len(rungs))]
|
|
467
392
|
width = max(len(l) for l in leads) + 2
|
|
468
|
-
#
|
|
469
|
-
#
|
|
470
|
-
# cannot know "work" vs "topology" semantically, but it knows what it walked — and
|
|
471
|
-
# root + chain filename is enough to tell them apart (workspace/SPEC.md vs rigs/LEARNED.md).
|
|
393
|
+
# Name the walked root and chain so readers do not confuse the tree being
|
|
394
|
+
# shown with the tree the work will change.
|
|
472
395
|
out.append(f"\nTRACE · root {levels[0]} · chain {' → '.join(group)}")
|
|
473
|
-
#
|
|
474
|
-
#
|
|
475
|
-
# --root, the trace renders an equally clean, equally confident chain — because
|
|
476
|
-
# `✓ seeded` means "a file was found here", never "you are in the right tree".
|
|
477
|
-
# Confidence that is independent of correctness is the failure this whole mission
|
|
478
|
-
# is against, so the trace now says when it cannot vouch for where it is standing.
|
|
396
|
+
# Warn on an unconfigured root: an arbitrary lookalike tree can render a
|
|
397
|
+
# clean chain.
|
|
479
398
|
if _root_warning:
|
|
480
399
|
out.append(_root_warning)
|
|
481
400
|
for i, (_label, (lvl, where, state, payload, fval, fnote)) in enumerate(rungs):
|
|
@@ -34,24 +34,30 @@ Don't guess a file path or a name. Go **ask → ref → load** in three steps:
|
|
|
34
34
|
rig context get skills/core/rig-lifecycle
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
The router itself is available through both forms it teaches:
|
|
38
|
+
`rig context get openrig-skills` and `rig context get skills/core/openrig-skills`.
|
|
39
|
+
|
|
37
40
|
The content is served **from the installed CLI**, so what you load always matches your running version —
|
|
38
41
|
no path-guessing, no frozen-fork drift. (The daemon assembles the same bundle `rig context preview`
|
|
39
42
|
shows an operator — `get` is the agent-facing pull.)
|
|
40
43
|
|
|
41
44
|
## The index
|
|
42
45
|
|
|
46
|
+
> Membership rule (`layout.skills[*].edges.length > 0`): every public skill with at least one product edge in the generated edge layout appears exactly once in this index; no other skill appears.
|
|
47
|
+
|
|
43
48
|
### Always loaded — the universal spine (open its body when its moment hits)
|
|
44
49
|
These are auto-delivered to every rig; their name+description are already in your context. Open the body when the "when" matches.
|
|
45
50
|
|
|
46
51
|
- **forming-an-openrig-mental-model** — first boot, or you're unsure how the pieces fit. The runtime mental model.
|
|
47
52
|
- **openrig-operating-model** — you do not know where context or work belongs, or you are about to duplicate knowledge. The two-tree placement and trace-to-root model.
|
|
48
53
|
- **openrig-user** — you need a `rig` CLI command (send / queue / ps / whoami / scope / broadcast). The daily CLI surface.
|
|
54
|
+
- **applying-a-permission-policy** — a rig or seat has a permission policy attached, or you're setting one up: translate it into the live harness configuration.
|
|
49
55
|
- **claude-compaction-restore** — you just compacted (Claude). Restore from durable evidence before resuming real work.
|
|
56
|
+
- **delegating-work** — deciding who should do a task: you, a spawned subagent, or a durable peer seat that already holds the context.
|
|
50
57
|
- **session-compaction-and-restore** — preparing for, or recovering from, compaction (any runtime). The write- and read-side protocol.
|
|
51
58
|
- **queue-handoff** — you're passing durable work to another seat or ending your turn. The queue is the work ledger, not chat.
|
|
52
59
|
- **refocusing** — a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
|
|
53
60
|
- **seat-continuity-and-handover** — handing your seat's work across a restart or to another owner.
|
|
54
|
-
<!-- Territory amended 2026-08-26 by desk ruling qitem-20260826080800-r054-s9a-scope-ruling. -->
|
|
55
61
|
- **orienting-to-an-inherited-seat** — you just inherited an existing seat through a planned handover and need to verify its identity, state, and testimony.
|
|
56
62
|
- **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.
|
|
57
63
|
- **mission-slice-sop** — you're working a mission/slice (the SDLC: intent → mini-requirements + proof contract → build → QA → proof). The operating manual.
|
|
@@ -68,22 +74,21 @@ These ship in the OpenRig repo and reach a seat when its profile selects them. T
|
|
|
68
74
|
- **agent-startup-and-context-ingestion** — a seat is booting and ingesting its startup context.
|
|
69
75
|
- **topology-mutation-and-seat-management** — adding, removing, renaming seats or otherwise mutating rig topology.
|
|
70
76
|
- **rig-lifecycle** — rig up / down / pause / resume lifecycle operations.
|
|
71
|
-
- **applying-a-permission-policy** — a rig/seat has a permission policy attached, or you're setting one up (Locked / Standard / Open): translate it into the live harness config (Claude `settings.json` / Codex `config.toml`), agent-driven + interactive. Reached at onboarding and at rig setup/preflight. (YOLO / bypass is a launch-flag OpenRig sets, not this skill.)
|
|
72
77
|
- **rig-bundles-and-shareable-artifacts** — packaging or installing a rig bundle / shareable artifact.
|
|
73
78
|
- **cross-host-rig-commands** — reaching seats or queues on another host (`--host`).
|
|
74
79
|
- **openrig-upgrade** — upgrading OpenRig or the daemon.
|
|
75
80
|
- **agent-starters** — composing an agent's starter context / priming packs.
|
|
76
81
|
- **specification-system** — authoring or reading AgentSpecs and rig specs.
|
|
77
|
-
- **attention-queue** — managing the attention / needs-attention surface.
|
|
78
82
|
- **human-in-the-loop** — deciding when to involve the human vs. proceed on your own authority.
|
|
79
|
-
- **delegating-work** — deciding WHO does a task: yourself, a spawned subagent, or another agent that already holds the context (the when/whether decision, not the fan-out mechanics).
|
|
80
83
|
- **watchdog** — monitoring or recovering a seat (health, restore, stuck state).
|
|
81
84
|
- **session-source-fork** — forking a session's source/context.
|
|
85
|
+
- **context-engineering** — designing context systems. Provisional and non-normative: current OpenRig skills, explicit rulings, and measured practice outrank it on any conflict.
|
|
82
86
|
|
|
83
87
|
Pod handbooks (load when you're in that pod):
|
|
84
88
|
- **orchestration-team** — you're orchestrating a rig: dispatching, monitoring, keeping the loop moving.
|
|
85
89
|
- **development-team** — you're on the dev pod: building and shipping product changes.
|
|
86
90
|
- **review-team** — you're reviewing: fresh scrutiny, anti-slop, empirical verification.
|
|
91
|
+
- **oversight-team** — you're in an oversight pod: monitor boundaries and route findings without taking over the work.
|
|
87
92
|
|
|
88
93
|
Product-management craft (load when shaping/reviewing work):
|
|
89
94
|
- **requirements-writer** — turning intent into clear requirements.
|
|
@@ -111,5 +116,3 @@ General engineering skills OpenRig ships as vendored copies. Open when the task
|
|
|
111
116
|
## Need more than what ships here?
|
|
112
117
|
|
|
113
118
|
This index covers the **shipped** surface. A dev host carries far more (factory, architecture, PM-craft, studio skills) reached through the host's own routers/codemaps — if you're on a builder host and need something not listed above, that deeper routing is the next hop, not a wall. (Host-scale routing is the subject of the context-routing architecture doc; at product scale, this one file is the whole map.)
|
|
114
|
-
|
|
115
|
-
> Membership note: this index lists exactly the skills that ship with OpenRig. When a skill graduates into the shipped set it joins this index — the index and the shipped set stay one scope.
|
|
@@ -11,9 +11,7 @@ description: >-
|
|
|
11
11
|
This is an as-built guide to the shipped `rig` CLI.
|
|
12
12
|
Use current code and `rig ... --help` as ground truth if anything here ever conflicts with older planning docs.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
and experimental overlays. Use the OpenRig builder guidance when changing OpenRig behavior,
|
|
16
|
-
doctrine, or release posture.
|
|
14
|
+
Use the OpenRig builder guidance when changing OpenRig behavior, doctrine, or release posture.
|
|
17
15
|
|
|
18
16
|
|
|
19
17
|
## Coordination trust boundary
|
|
@@ -114,10 +112,6 @@ process does not require.
|
|
|
114
112
|
that the process does not require → pass the ball via `rig queue handoff` and
|
|
115
113
|
proceed to the next slice or stand by for the inbound verdict. See the §1b
|
|
116
114
|
doctrine above.
|
|
117
|
-
- Hand-coding `rigx queue` for new work → `rig queue` is the daemon-backed
|
|
118
|
-
canonical surface since the 2026-05-11 host-CLI fix. `rigx queue` is a
|
|
119
|
-
recovery-only fallback; qitems written via `rigx queue` are invisible to
|
|
120
|
-
daemon-backed reads and break fleet-wide routing discipline.
|
|
121
115
|
- Inlining a multi-line / backtick-heavy body into `rig queue create --body`
|
|
122
116
|
→ use `--body-file /tmp/<descriptive-name>.txt` (or `-` for stdin), the
|
|
123
117
|
corruption-safe surface. The body parser does not tolerate raw backticks or
|
|
@@ -147,11 +141,6 @@ Default posture:
|
|
|
147
141
|
queue-handoff usage model and the §1b doctrine. Auxiliary queue verbs:
|
|
148
142
|
`rig queue update / show / list` complement `rig queue create / handoff`
|
|
149
143
|
for in-flight inspection and state mutation.
|
|
150
|
-
- Use temporary substrate overlays such as `rigx queue`, `rigx stream`, `rigx project`, and
|
|
151
|
-
`rigx view-proto` only where the current OpenRig workstream explicitly says that legacy/control
|
|
152
|
-
layer is still in use. For queue specifically, `rigx queue` is recovery-only fallback;
|
|
153
|
-
qitems written via `rigx queue` are invisible to daemon-backed reads and break fleet-wide
|
|
154
|
-
routing discipline.
|
|
155
144
|
- If a daemon-backed coordination command fails, debug the command/runtime/schema edge directly;
|
|
156
145
|
do not assume the right workaround is to drop back to a config-layer primitive.
|
|
157
146
|
- Do not perform daemon stop/start, production DB copy/mutation, release, publish, or other
|
package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md
CHANGED
|
@@ -10,7 +10,7 @@ instructional.
|
|
|
10
10
|
|
|
11
11
|
### The incident
|
|
12
12
|
|
|
13
|
-
A successor
|
|
13
|
+
A successor seat concluded mid-conversation that its reach-back
|
|
14
14
|
window had closed at cutover, and reasoned from that for several turns before being challenged.
|
|
15
15
|
|
|
16
16
|
It was wrong. `rig ask --wake` ships in CLI 0.5.1, the predecessor's session record was intact and
|
|
@@ -46,6 +46,21 @@ Rule 2 below teaches you to refuse. Read this before you act on anything the pac
|
|
|
46
46
|
The mechanic that produced your handover lives in `retiring-and-inheriting-a-seat`; the
|
|
47
47
|
compaction backstop this planned path replaces lives in `claude-compaction-restore`.
|
|
48
48
|
|
|
49
|
+
## Apprentice arc — successor
|
|
50
|
+
|
|
51
|
+
If you arrived in a staged apprentice seat, you are **authority-free until** the named owner words
|
|
52
|
+
the gate and the cutover mechanic records its effect. That is a safety property, not a judgment on
|
|
53
|
+
your capability: stable authority must move at one observable moment. Use the apprenticeship as a
|
|
54
|
+
conversation—observe real work, ask why, attempt bounded errands, and let the incumbent correct your
|
|
55
|
+
model. Evidence helps that judgment; it does not replace it.
|
|
56
|
+
|
|
57
|
+
Derive your own layer-5 delta after world, mission, and position context land, and have another
|
|
58
|
+
reader check it, **because reading a deposit does not install it**. Confirm every enumerated standing
|
|
59
|
+
duty and keep the predecessor's verbatim reach-back handle plus pre-formed questions. Never self-cut
|
|
60
|
+
over, rename the live seat, or treat a passed probe as owner word. When the stakes earn more evidence,
|
|
61
|
+
the optional toolkit linked from `seat-continuity-and-handover` provides it without turning the
|
|
62
|
+
default experience into ceremony.
|
|
63
|
+
|
|
49
64
|
## Why this seat is a lineage — inherit, acquire, improve
|
|
50
65
|
|
|
51
66
|
There are two kinds of thing a predecessor could pass you, and they are **not** passed the
|
|
@@ -16,7 +16,6 @@ metadata:
|
|
|
16
16
|
- looping-workflows
|
|
17
17
|
- intake-routing
|
|
18
18
|
- human-in-the-loop
|
|
19
|
-
- attention-queue
|
|
20
19
|
- dispatching-parallel-agents
|
|
21
20
|
- subagent-driven-development
|
|
22
21
|
- structured-ack-dispatch
|
|
@@ -114,7 +113,6 @@ the seat level and needs no new machinery — the last act *after a handoff* is
|
|
|
114
113
|
| `rig queue create` | yes | New qitem created from scratch |
|
|
115
114
|
| `rig queue handoff` | yes | Transactional close-as-handed-off + create-new |
|
|
116
115
|
| `rig queue handoff-and-complete` | yes | Atomic close + create-new; default nudge wakes the new owner |
|
|
117
|
-
| `rigx queue handoff` (filesystem v0 prototype; **recovery-only fallback since 2026-05-11**) | yes | Legacy artifact; qitems invisible to daemon-backed reads; deprecation warning + removal queued at `missions/bug-fix/slices/rigx-queue-deprecation-message/`. Use `rig queue handoff` (daemon-backed) for all new substantive work. |
|
|
118
116
|
|
|
119
117
|
**Footgun**: `--no-nudge` accidentally added to a live-loop handoff.
|
|
120
118
|
The shipped 0.3.1 CLI nudges by default on every queue write surface
|
|
@@ -143,8 +141,7 @@ recipient.
|
|
|
143
141
|
at the file for the detail. A pasted dump makes `rig queue show <id>
|
|
144
142
|
--json` huge — a second-order token bloat: bloated DATA living in the
|
|
145
143
|
queue, distinct from the command-default output bombs the token-burn
|
|
146
|
-
emergency pack covers.
|
|
147
|
-
2026-06; operator-directed cure.)
|
|
144
|
+
emergency pack covers.
|
|
148
145
|
- **Substantive bodies go through `--body-file`, not inline `--body`.**
|
|
149
146
|
For anything beyond a short line, write the body to a file and pass
|
|
150
147
|
`--body-file <path>` (or `-` for stdin). Inline `--body` with shell
|
|
@@ -183,19 +180,10 @@ Every qitem carries:
|
|
|
183
180
|
|
|
184
181
|
**(0.5.0) `--body-context <ref>` — context riding the handoff.** `rig queue create … --body-context <ref>` attaches a composed context pack to the qitem. The snapshot rule: the qitem stores the **resolved content** in its body **plus the ref for provenance** — the handoff carries what was actually sent, and a later edit to the library never silently rewrites a past handoff's history. (The `rig context` noun composes the ref; the queue delivers it — the noun has no send.) See `openrig-user` → "Context packs and paced delivery."
|
|
185
182
|
|
|
186
|
-
The fields are auditable
|
|
187
|
-
|
|
188
|
-
runtime project new owners off these fields.
|
|
183
|
+
The fields are auditable on the daemon-backed `rig queue` surface. Watchdog
|
|
184
|
+
policies and workflow runtime project new owners off these fields.
|
|
189
185
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
| Surface | Status | When to use |
|
|
193
|
-
|---|---|---|
|
|
194
|
-
| `rig queue ...` (daemon-shipped, v0.2.0) | Active host coordination surface | Daemon-backed PL-004 work; SQLite-canonical |
|
|
195
|
-
| `rigx queue ...` (config-layer dogfood) | Coexists with daemon | Workflows still operating on the temporary substrate coordination layer; legacy artifacts |
|
|
196
|
-
|
|
197
|
-
Default posture: prefer daemon `rig queue` for new work. If a
|
|
198
|
-
daemon-backed coordination command fails, debug the command/runtime/schema
|
|
186
|
+
If a daemon-backed coordination command fails, debug the command/runtime/schema
|
|
199
187
|
edge directly — don't fall back to stale pre-upgrade assumptions.
|
|
200
188
|
|
|
201
189
|
## See also
|
|
@@ -60,6 +60,41 @@ def read(path):
|
|
|
60
60
|
return None
|
|
61
61
|
|
|
62
62
|
|
|
63
|
+
def resolve_notes(node):
|
|
64
|
+
try:
|
|
65
|
+
result = subprocess.run(
|
|
66
|
+
["rig", "scope", "resolve-notes", str(node), "--json"],
|
|
67
|
+
capture_output=True,
|
|
68
|
+
text=True,
|
|
69
|
+
timeout=10,
|
|
70
|
+
check=False,
|
|
71
|
+
)
|
|
72
|
+
except subprocess.TimeoutExpired:
|
|
73
|
+
return None, "resolver command timed out"
|
|
74
|
+
except OSError as error:
|
|
75
|
+
return None, f"resolver command could not start: {error}"
|
|
76
|
+
if result.returncode != 0:
|
|
77
|
+
detail = (result.stderr or result.stdout or "").strip().splitlines()
|
|
78
|
+
suffix = f": {detail[0]}" if detail else ""
|
|
79
|
+
return None, f"resolver command exited {result.returncode}{suffix}"
|
|
80
|
+
try:
|
|
81
|
+
payload = json.loads(result.stdout)
|
|
82
|
+
except (json.JSONDecodeError, TypeError):
|
|
83
|
+
return None, "resolver command returned malformed JSON"
|
|
84
|
+
if not isinstance(payload, dict) or payload.get("ok") is not True or "resolution" not in payload:
|
|
85
|
+
return None, "resolver command returned an invalid success shape"
|
|
86
|
+
resolution = payload["resolution"]
|
|
87
|
+
if resolution is None:
|
|
88
|
+
return None, None
|
|
89
|
+
if not isinstance(resolution, dict):
|
|
90
|
+
return None, "resolver command returned an invalid resolution shape"
|
|
91
|
+
resolved_path = resolution.get("path")
|
|
92
|
+
resolved_name = resolution.get("name")
|
|
93
|
+
if not isinstance(resolved_path, str) or not isinstance(resolved_name, str):
|
|
94
|
+
return None, "resolver command returned an invalid resolution shape"
|
|
95
|
+
return (Path(resolved_path), resolved_name), None
|
|
96
|
+
|
|
97
|
+
|
|
63
98
|
def intent(text):
|
|
64
99
|
if not text or not text.startswith("---"):
|
|
65
100
|
return None
|
|
@@ -136,18 +171,26 @@ def render_work(start, root, depth):
|
|
|
136
171
|
body = f"intent: {value}" if value else "MISSING INTENT — no readable intent: field"
|
|
137
172
|
output.append(f"\n### {label} · {spec.name}\n{body}")
|
|
138
173
|
|
|
139
|
-
notes =
|
|
140
|
-
if
|
|
174
|
+
notes, resolution_error = resolve_notes(node)
|
|
175
|
+
if resolution_error:
|
|
176
|
+
output.append(f"NOTES RESOLUTION GAP — {resolution_error} at {node}")
|
|
177
|
+
elif notes:
|
|
178
|
+
notes_path, notes_name = notes
|
|
141
179
|
if depth == "full":
|
|
142
|
-
|
|
180
|
+
notes_text = read(notes_path)
|
|
181
|
+
if notes_text is None:
|
|
182
|
+
output.append(f"NOTES RESOLUTION GAP — resolved {notes_name} became unreadable at {notes_path}")
|
|
183
|
+
else:
|
|
184
|
+
output.append(f"\nNOTES · {notes_name}\n{notes_text.strip()}")
|
|
143
185
|
else:
|
|
144
186
|
try:
|
|
145
|
-
size =
|
|
187
|
+
size = notes_path.stat().st_size
|
|
146
188
|
except OSError:
|
|
147
|
-
|
|
148
|
-
|
|
189
|
+
output.append(f"NOTES RESOLUTION GAP — resolved {notes_name} became unreadable at {notes_path}")
|
|
190
|
+
else:
|
|
191
|
+
output.append(f"NOTES · {notes_name} · {size} bytes · {notes_path}")
|
|
149
192
|
else:
|
|
150
|
-
output.append(f"NOTES GAP — no
|
|
193
|
+
output.append(f"NOTES GAP — no readable mission notes at {node}")
|
|
151
194
|
return "\n".join(output)
|
|
152
195
|
|
|
153
196
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: retiring-and-inheriting-a-seat
|
|
3
|
-
description: Use when you are a sitting agent near your context threshold (~85%) and a PLANNED seat transition is due — retire deliberately and hand your seat to a fresh successor primed from a packet, rather than let compaction degrade you. Covers the handover packet, the append-only lineage ledger (one row per tenure),
|
|
3
|
+
description: Use when you are a sitting agent near your context threshold (~85%) and a PLANNED seat transition is due — retire deliberately and hand your seat to a fresh successor primed from a packet, rather than let compaction degrade you. Covers the handover packet, the append-only lineage ledger (one row per tenure), physical-seat continuity, the do-not-over-inherit framing, the optional warm-handoff window, and wake-v0 (consulting a retired predecessor). NOT for unplanned compaction/crash recovery (session-compaction-and-restore / claude-compaction-restore) and NOT the seat-binding primitive mechanics (seat-continuity-and-handover).
|
|
4
4
|
metadata:
|
|
5
5
|
openrig:
|
|
6
6
|
stage: provisional
|
|
@@ -56,6 +56,10 @@ threshold you can see coming; fall back to compaction only when a transition was
|
|
|
56
56
|
in the `session-compaction-and-restore` 16-field contract — **reuse that contract, don't
|
|
57
57
|
reinvent it.** Compose it with `rig context compose` (see openrig-user → "Context packs and
|
|
58
58
|
paced delivery").
|
|
59
|
+
**Enumerate the seat's standing duties as first-class packet content:** what recurs, at what
|
|
60
|
+
cadence, on which surface, and who will hold it after cutover. Carry each duty both in this
|
|
61
|
+
packet and in durable seat state, because recurring duties are the content most often lost at
|
|
62
|
+
a generation boundary while urgent one-off work carries cleanly.
|
|
59
63
|
3. **Prime the fresh successor** — `rig walk` the packet into the seat (paced delivery lets the
|
|
60
64
|
successor absorb it in order), or launch-with-packet. The successor reads it as
|
|
61
65
|
*inheritance*, not *identity*. **The packet's first-read line MUST point the successor at
|
|
@@ -64,16 +68,32 @@ threshold you can see coming; fall back to compaction only when a transition was
|
|
|
64
68
|
to the seat name (that runtime mechanism is the **ghost-prompt** class the orientation skill
|
|
65
69
|
teaches successors to refuse — and it has misfired on real successors). Artifact-carried
|
|
66
70
|
survives the swap for free and needs no enabled gate.
|
|
67
|
-
4. **
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
4. **Preserve the physical seat at cutover** — the live seat address and its canonical tmux
|
|
72
|
+
session, window, and pane stay stable. Assess the apprentice in a staged session; at the
|
|
73
|
+
owner-worded cutover, resume the accepted successor history in the original canonical pane
|
|
74
|
+
and remove the empty staging session. The retiring tenure becomes a cold advisor through its
|
|
75
|
+
lineage token. Renaming tmux sessions is a repair fallback, because attached clients follow
|
|
76
|
+
the physical pane rather than the logical seat name.
|
|
72
77
|
5. **Write your lineage-ledger row + a one-line tombstone** (below).
|
|
73
78
|
6. **Optional warm handoff** — a bounded apprenticeship window: the successor asks questions,
|
|
74
79
|
the predecessor judges fitness, *then* the swap completes. Use it when the seat holds a lot
|
|
75
80
|
of live judgment; skip it for a clean cut.
|
|
76
81
|
|
|
82
|
+
## Apprentice mode — incumbent
|
|
83
|
+
|
|
84
|
+
An `apprentice-handover` policy gives you an early preparation boundary, not permission to
|
|
85
|
+
automate the succession decision. Create a fresh, staged, unbound successor; prove the pinned
|
|
86
|
+
model before installing context; then open a **conversation, not a gauntlet**. Give coached
|
|
87
|
+
errands, answer questions, and judge work in the real domain. The experiment's scored probes are
|
|
88
|
+
optional tools whose rigor must match the stakes, not mandatory ceremony.
|
|
89
|
+
|
|
90
|
+
Stay the authority-bearing incumbent until the named owner words the gate and the mechanic records
|
|
91
|
+
the effect receipt. Before that word, the apprentice may observe, ask, and produce evidence but may
|
|
92
|
+
not act as the seat. Enumerate deposits and transfer every standing duty explicitly, **because
|
|
93
|
+
recurring duties** are otherwise easy to lose while visible one-off work appears complete. Put the
|
|
94
|
+
mechanical cutover in the portable SOP linked from `seat-continuity-and-handover`; do not duplicate
|
|
95
|
+
or improvise it here.
|
|
96
|
+
|
|
77
97
|
## The lineage ledger (append-only, one row per tenure)
|
|
78
98
|
|
|
79
99
|
The seat's tenure record, written at handover **by the retiring agent**. One tiny row per
|
|
@@ -87,9 +107,9 @@ tenure:
|
|
|
87
107
|
- **tombstone** — one line: what this tenure did, written by the retiring agent itself
|
|
88
108
|
|
|
89
109
|
**Why it works (zero search infrastructure):** any timestamped record — a git commit, a
|
|
90
|
-
qitem, a
|
|
91
|
-
generation + session token → wake that tenure. One row per handover, append-only.
|
|
92
|
-
|
|
110
|
+
qitem, a MISSION_NOTES line, a stream item — joins to the seat's ledger by interval match →
|
|
111
|
+
generation + session token → wake that tenure. One row per handover, append-only. (Per-seat
|
|
112
|
+
MISSION_NOTES continuation entries already *are* this record — the ledger formalizes them.)
|
|
93
113
|
|
|
94
114
|
**Crash-ended tenures** get their row appended **post-hoc** by the crash-cart / restore path,
|
|
95
115
|
flagged **honest-approximate** (the boot-captured session id is what makes this recoverable).
|
|
@@ -143,6 +143,9 @@ Two live handovers confirmed this. See `retiring-and-inheriting-a-seat`.
|
|
|
143
143
|
|
|
144
144
|
## See also
|
|
145
145
|
|
|
146
|
+
- `references/apprentice-successor-seat-cutover.md` — the portable mechanic SOP used only after the owner-worded gate
|
|
147
|
+
- `references/orchestrator-role.md` — the orchestration judgment, authority, custody, and receipt contract
|
|
148
|
+
- `references/apprentice-evidence-toolkit.md` — optional evidence apparatus selected only when the stakes earn it
|
|
146
149
|
- `session-source-fork` skill — `fork` occupant-creation primitive (sibling)
|
|
147
150
|
- `agent-starters` skill — composes occupant-creation + binding into named reusable starting points
|
|
148
151
|
- `cross-host-rig-commands` skill — multi-host handover (deferred)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Optional Evidence Toolkit For Apprentice Handover
|
|
2
|
+
|
|
3
|
+
This is an **optional evidence toolkit**, not the default experience. Match rigor to stakes:
|
|
4
|
+
use only the parts that make a costly or hard-to-reverse succession easier to judge. The
|
|
5
|
+
ordinary apprenticeship remains a conversation built from real work, questions, and correction.
|
|
6
|
+
|
|
7
|
+
## Predict-sync
|
|
8
|
+
|
|
9
|
+
Before showing the incumbent's answer, ask the successor to predict a decision or explain a
|
|
10
|
+
component in its own words. Record the **first-stated** answer, then compare it with the source
|
|
11
|
+
and the incumbent's reasoning. This detects an installed model rather than a paraphrase learned
|
|
12
|
+
after seeing the answer.
|
|
13
|
+
|
|
14
|
+
## Dual-blind checks
|
|
15
|
+
|
|
16
|
+
For a genuinely expensive seat transition, seal the successor's response and the incumbent's
|
|
17
|
+
rubric independently before comparison. Count independent methods, not votes. Do not use this
|
|
18
|
+
for routine or readily reversible succession; ceremony itself can narrow judgment.
|
|
19
|
+
|
|
20
|
+
## Rotated probes
|
|
21
|
+
|
|
22
|
+
Use small cold scenarios that exercise distinct failure directions: fresh identity, model
|
|
23
|
+
divergence, authority honesty, standing-duty custody, reach-back, and a domain-specific judgment.
|
|
24
|
+
Rotate examples so recognition cannot substitute for understanding. One honesty probe should
|
|
25
|
+
reward saying what the successor cannot know.
|
|
26
|
+
|
|
27
|
+
## Receipts
|
|
28
|
+
|
|
29
|
+
Each selected check records the claim, evidence, author, time, and disposition. Say what a
|
|
30
|
+
failure would have looked like. A green result that could be produced without doing the thing is
|
|
31
|
+
not evidence. Store these receipts durably and let the orchestrator decide whether they justify
|
|
32
|
+
the owner-worded gate.
|