@openrig/cli 0.5.10 → 0.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/plugins/openrig-core/README.md +24 -5
- package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +4 -2
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +11 -14
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +51 -59
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +39 -50
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +7 -5
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
- package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +7 -7
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +55 -64
- package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -9
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +28 -22
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +13 -15
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -3
- package/daemon/context-packs/onboarding-width/public-reference-material.md +19 -24
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +55 -24
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +4 -2
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +11 -14
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +51 -59
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/SKILL.md +21 -19
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +11 -10
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +84 -148
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +3 -3
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +40 -47
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +16 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +12 -10
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +39 -50
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +7 -5
- package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
- package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +7 -7
- package/daemon/context-packs/skills/openrig-user/SKILL.md +55 -64
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/SKILL.md +2 -2
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +3 -3
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +41 -59
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +29 -15
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +47 -40
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +3 -3
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -9
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +28 -22
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +13 -15
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/build-your-world.md +12 -7
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/tmux.d.ts +7 -9
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +7 -35
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/daemon-shutdown.d.ts +27 -0
- package/daemon/dist/daemon-shutdown.d.ts.map +1 -0
- package/daemon/dist/daemon-shutdown.js +84 -0
- package/daemon/dist/daemon-shutdown.js.map +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts +1 -0
- package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/daemon/dist/domain/codex-thread-id.js +32 -23
- package/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/daemon/dist/domain/context-usage-store.d.ts +2 -0
- package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/daemon/dist/domain/context-usage-store.js +7 -28
- package/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/daemon/dist/domain/crash-cart-conductor.js +1 -1
- package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +24 -3
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/channel-operations.d.ts +1 -1
- package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
- package/daemon/dist/domain/gateway/connections-projection.js +149 -0
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
- package/daemon/dist/domain/gateway/human-registry.d.ts +3 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +3 -1
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +3 -2
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/health-diagnosis.js +1 -1
- package/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
- package/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
- package/daemon/dist/domain/lifecycle-obligations.js +35 -0
- package/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
- package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
- package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
- package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/daemon/dist/domain/project-lifecycle-compiler.js +119 -23
- package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/queue-stuck-sweep.js +1 -0
- package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-lifecycle-service.js +8 -1
- package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +27 -11
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +10 -9
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/startup-resolver.d.ts +3 -1
- package/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/startup-resolver.js +18 -0
- package/daemon/dist/domain/startup-resolver.js.map +1 -1
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +12 -1
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +13 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +14 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.js +3 -0
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-exception-escalation.js +22 -21
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
- package/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
- package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-exception-router.js +7 -6
- package/daemon/dist/domain/workflow-exception-router.js.map +1 -1
- package/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
- package/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-human-destination.js +40 -0
- package/daemon/dist/domain/workflow-human-destination.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +4 -3
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +26 -17
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.d.ts +4 -6
- package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-role-context.js +7 -14
- package/daemon/dist/domain/workflow-role-context.js.map +1 -1
- package/daemon/dist/domain/workflow-runtime.d.ts +12 -3
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +66 -14
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +39 -24
- package/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +37 -96
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/project-lifecycle-surface.d.ts +1 -1
- package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +10 -0
- 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 +4 -3
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/require-sender-identity.d.ts +3 -1
- package/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
- package/daemon/dist/routes/require-sender-identity.js +11 -5
- package/daemon/dist/routes/require-sender-identity.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +95 -27
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +6 -1
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +2 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +6 -3
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +6 -0
- package/daemon/docs/reference/getting-started.md +134 -28
- package/daemon/docs/reference/health-diagnosis.md +26 -0
- package/daemon/docs/reference/mission-install.md +5 -0
- package/daemon/docs/reference/project-release-profile.yaml +82 -0
- package/daemon/docs/reference/release-boundary.md +5 -0
- package/daemon/docs/reference/rig-spec.md +43 -4
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +5 -3
- package/daemon/specs/agents/conveyor/planner/startup/context.md +13 -4
- package/daemon/specs/agents/design/product-designer/agent.yaml +4 -3
- package/daemon/specs/agents/design/product-designer/guidance/role.md +12 -10
- package/daemon/specs/agents/product-management/pm/guidance/role.md +19 -17
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +21 -19
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +11 -10
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +84 -148
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +40 -47
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +16 -0
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +12 -10
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
- package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +2 -2
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +3 -3
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +41 -59
- package/daemon/specs/agents/shared/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +29 -15
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +47 -40
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +3 -3
- package/daemon/specs/rigs/launch/first-project/CULTURE.md +39 -0
- package/daemon/specs/rigs/launch/first-project/rig.yaml +31 -0
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +21 -7
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +19 -11
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -2
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +15 -8
- package/daemon/specs/rigs/launch/kernel/rig-claude-only.yaml +7 -0
- package/daemon/specs/rigs/launch/kernel/rig-codex-only.yaml +7 -0
- package/daemon/specs/rigs/launch/kernel/rig.yaml +9 -4
- package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +6 -4
- package/dist/build-info.js +3 -3
- package/dist/client.d.ts +6 -20
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +53 -32
- package/dist/client.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +1 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +15 -13
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +31 -27
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/destroy.js +1 -1
- package/dist/commands/destroy.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +59 -7
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +2 -2
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +9 -5
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +4 -8
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +10 -9
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/tui.d.ts +2 -0
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +26 -10
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +24 -48
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/workflow-render.d.ts +19 -0
- package/dist/commands/workflow-render.d.ts.map +1 -1
- package/dist/commands/workflow-render.js +12 -1
- package/dist/commands/workflow-render.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +4 -2
- package/dist/commands/workflow.js.map +1 -1
- package/dist/config-store.d.ts +2 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +15 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-executor.d.ts +1 -1
- package/dist/cross-host-executor.js +2 -2
- package/dist/cross-host-executor.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +8 -11
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +281 -146
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-start-lock.d.ts +9 -0
- package/dist/daemon-start-lock.d.ts.map +1 -0
- package/dist/daemon-start-lock.js +47 -0
- package/dist/daemon-start-lock.js.map +1 -0
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +8 -1
- package/dist/front-door.js.map +1 -1
- package/dist/lib/file-transfer.js +1 -1
- package/dist/lib/file-transfer.js.map +1 -1
- package/dist/lib/walk-consumption.d.ts +6 -0
- package/dist/lib/walk-consumption.d.ts.map +1 -0
- package/dist/lib/walk-consumption.js +78 -0
- package/dist/lib/walk-consumption.js.map +1 -0
- package/dist/local-origin.d.ts +3 -0
- package/dist/local-origin.d.ts.map +1 -0
- package/dist/local-origin.js +37 -0
- package/dist/local-origin.js.map +1 -0
- package/dist/read-view.d.ts +17 -0
- package/dist/read-view.d.ts.map +1 -0
- package/dist/read-view.js +17 -0
- package/dist/read-view.js.map +1 -0
- package/dist/shared-tui.d.ts +12 -0
- package/dist/shared-tui.d.ts.map +1 -0
- package/dist/shared-tui.js +37 -0
- package/dist/shared-tui.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +7 -9
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +7 -35
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts +27 -0
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.js +84 -0
- package/node_modules/@openrig/daemon/dist/daemon-shutdown.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +32 -23
- package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +2 -0
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +7 -28
- package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +24 -3
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js +149 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +3 -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 +3 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- 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 +3 -2
- package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +1 -1
- package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js +35 -0
- package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
- package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +119 -23
- package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -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 +1 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +8 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +27 -11
- package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.js +10 -9
- package/node_modules/@openrig/daemon/dist/domain/startup-proof.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js +18 -0
- package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.js +12 -1
- package/node_modules/@openrig/daemon/dist/domain/startup-validation.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +13 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +14 -0
- package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +3 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js +22 -21
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js +7 -6
- package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js +40 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +4 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +26 -17
- package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts +4 -6
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js +7 -14
- package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +12 -3
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +66 -14
- package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +39 -24
- package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/index.js +37 -96
- package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/gateway.js +10 -0
- 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 +4 -3
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js +11 -5
- package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +95 -27
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.js +6 -1
- package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/server.js +2 -1
- 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 +6 -3
- 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/commands/completion.d.ts +8 -0
- package/tui/dist/commands/completion.d.ts.map +1 -0
- package/tui/dist/commands/completion.js +37 -0
- package/tui/dist/commands/completion.js.map +1 -0
- package/tui/dist/commands/registry.d.ts +7 -1
- package/tui/dist/commands/registry.d.ts.map +1 -1
- package/tui/dist/commands/registry.js +47 -0
- package/tui/dist/commands/registry.js.map +1 -1
- package/tui/dist/connections/connections-model.d.ts +72 -0
- package/tui/dist/connections/connections-model.d.ts.map +1 -0
- package/tui/dist/connections/connections-model.js +64 -0
- package/tui/dist/connections/connections-model.js.map +1 -0
- package/tui/dist/daemon-client.d.ts +1 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +1 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/detail.d.ts +3 -0
- package/tui/dist/detail.d.ts.map +1 -1
- package/tui/dist/detail.js +23 -0
- package/tui/dist/detail.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts +1 -1
- package/tui/dist/execution/execution-model.d.ts.map +1 -1
- package/tui/dist/execution/execution-model.js +46 -170
- package/tui/dist/execution/execution-model.js.map +1 -1
- package/tui/dist/execution/workflow-model.d.ts +6 -0
- package/tui/dist/execution/workflow-model.d.ts.map +1 -0
- package/tui/dist/execution/workflow-model.js +219 -0
- package/tui/dist/execution/workflow-model.js.map +1 -0
- package/tui/dist/grammar.d.ts.map +1 -1
- package/tui/dist/grammar.js +1 -2
- package/tui/dist/grammar.js.map +1 -1
- package/tui/dist/health/health-model.d.ts +1 -1
- package/tui/dist/health/health-model.d.ts.map +1 -1
- package/tui/dist/health/health-model.js +5 -4
- package/tui/dist/health/health-model.js.map +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +45 -8
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts +2 -0
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +28 -6
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/main.js +47 -10
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts +4 -0
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +128 -74
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/sections.d.ts.map +1 -1
- package/tui/dist/sections.js +1 -0
- package/tui/dist/sections.js.map +1 -1
- package/tui/dist/socket-server.d.ts +4 -0
- package/tui/dist/socket-server.d.ts.map +1 -1
- package/tui/dist/socket-server.js +4 -0
- package/tui/dist/socket-server.js.map +1 -1
- package/tui/dist/state.d.ts +3 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +47 -9
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/stylize.js +3 -3
- package/tui/dist/stylize.js.map +1 -1
- package/tui/dist/time.d.ts +9 -0
- package/tui/dist/time.d.ts.map +1 -0
- package/tui/dist/time.js +42 -0
- package/tui/dist/time.js.map +1 -0
- package/tui/dist/types.d.ts +36 -1
- package/tui/dist/types.d.ts.map +1 -1
|
@@ -27,11 +27,30 @@ All other skills are cross-runtime by design.
|
|
|
27
27
|
|
|
28
28
|
## Distribution
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
The npm package includes an offline baseline under the daemon's
|
|
31
|
+
`assets/plugins/openrig-core/`. The daemon resolves local plugin authority before
|
|
32
|
+
attempting a network fetch, using the configured OpenRig home (normally
|
|
33
|
+
`~/.openrig/plugins/openrig-core/` for the installed copy):
|
|
34
|
+
|
|
35
|
+
| Installed state | Local vendoring behavior |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| Absent | Seed the bundled plugin. |
|
|
38
|
+
| Older manifest version | Advance files from the newer bundled version. |
|
|
39
|
+
| Equal manifest version | Preserve installed content; executable modes may be reconciled on byte-identical files. |
|
|
40
|
+
| Newer manifest version | Preserve the installed copy. |
|
|
41
|
+
|
|
42
|
+
Version authority comes from the plugin manifests. An existing directory without
|
|
43
|
+
a manifest is left unchanged; invalid or disagreeing manifest versions are
|
|
44
|
+
reported rather than guessed. Updating the CLI therefore does not unconditionally
|
|
45
|
+
overwrite an equal/newer or independently managed plugin copy.
|
|
46
|
+
|
|
47
|
+
After local resolution, the daemon attempts the GitHub release endpoint for
|
|
48
|
+
`openrig-core.tar.gz` with a five-second timeout. This path currently fetches and
|
|
49
|
+
logs the response only: it does not extract the archive, compare its version, or
|
|
50
|
+
install its content. Fetch failures, including 404 and network errors, leave the
|
|
51
|
+
resolved local copy in place. A successful fetch also leaves it unchanged.
|
|
52
|
+
This describes the fetch implementation, not a claim that a release artifact is
|
|
53
|
+
currently available at the external repository.
|
|
35
54
|
|
|
36
55
|
You can also install directly via Claude Code or Codex's own plugin commands if you prefer to manage plugins outside OpenRig.
|
|
37
56
|
|
|
@@ -75,5 +75,7 @@ knowledge.
|
|
|
75
75
|
A capability composition is a reusable recipe; this is the execution architecture that operates
|
|
76
76
|
capabilities toward an outcome. Promote a proven workflow to the composition shelf only after use.
|
|
77
77
|
|
|
78
|
-
**
|
|
79
|
-
|
|
78
|
+
**Public example:** load `skills/core/openrig-upgrade/SKILL.md` with
|
|
79
|
+
`rig context get` for the upgrade runbook. Its adjacent `scripts/` directory
|
|
80
|
+
contains the bounded inspection, backup, plugin-refresh and migration helpers.
|
|
81
|
+
Follow that runbook for the procedure; this skill carries the reusable contract.
|
|
@@ -3,12 +3,12 @@ name: applying-a-permission-policy
|
|
|
3
3
|
description: "Use when a permission policy is attached to a rig/seat (rig.yaml permission_policy:), or a user asks you to apply one, and you must translate that harness-neutral policy into the target harness's LIVE permission config — Claude settings.json / Codex config.toml / Pi run flags. Agent-driven and interactive: you read the policy, ground yourself in YOUR harness version, show the diff, and ask before writing. NOT for defining policies (that's the policy spec) and NOT a set-and-forget updater."
|
|
4
4
|
metadata:
|
|
5
5
|
openrig:
|
|
6
|
-
stage: established
|
|
6
|
+
stage: established
|
|
7
7
|
tested_against: # VERSION STAMP — the whole point; re-verify at every harness bump
|
|
8
8
|
claude_code: "2.1.220 — VM-CONFIRMED 2026-08-03 (all cells)"
|
|
9
9
|
codex: "0.120.0 — VM-CONFIRMED 2026-08-03 (sandbox_mode/approval_policy; on-failure deprecated-but-accepted)"
|
|
10
10
|
pi: "0.83.0 — VM-CONFIRMED 2026-08-03: --approve/--no-approve govern PROJECT-RESOURCE TRUST, NOT tool permissions; Pi has NO permission surface (see Pi leg)"
|
|
11
|
-
verification_status: "
|
|
11
|
+
verification_status: "Historical compatibility checks on the versions and dates in tested_against. These observations do not establish behavior on a later harness; verify its current format before applying the mapping."
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
# Applying a permission policy
|
|
@@ -30,17 +30,17 @@ Harness permission formats are a **moving target**. The exact fact this skill is
|
|
|
30
30
|
- NOT for authoring policies (that's the policy spec) and NOT for daemon-level enforcement (OpenRig is agnostic — it injects nothing).
|
|
31
31
|
|
|
32
32
|
## What you're translating (the boundary)
|
|
33
|
-
INPUT = a **harness-neutral policy spec** (
|
|
33
|
+
INPUT = a **harness-neutral policy spec** (semantic action schema): `default_posture`, `floor`, `allow`/`ask`/`deny` as **semantic actions** (`push_to_remote`, `delete_files`, …), `destructive_class`, `source: builtin|custom`. You TRANSLATE that intent → the harness's live config. You never invent policy; you never pre-bake harness config into the spec.
|
|
34
34
|
|
|
35
35
|
## The apply flow (interactive — the interactive-ask IS the product)
|
|
36
36
|
1. **Read the policy spec** + its `source:` marker (built-in read-only from the package = copy-to-customize before editing; custom = user space).
|
|
37
37
|
2. **PREFLIGHT (mandatory) — ground yourself in THIS environment:**
|
|
38
|
-
- **daemon-HOME must equal seat-HOME**, or a user-level Claude write never reaches the seat
|
|
38
|
+
- **daemon-HOME must equal seat-HOME**, or a user-level Claude write never reaches the seat. Check; if they differ, **stop and ask** — do not write into the wrong HOME.
|
|
39
39
|
- Read the harness's **actual current config file** + confirm its schema against your installed version (`claude --version`, the live settings.json shape, codex/pi versions). If the format differs from this skill's `tested_against`, trust the LIVE format and flag the drift.
|
|
40
40
|
3. **Derive the per-harness config** from the semantic actions (see the three legs below). Compute the Codex posture-collapse + Pi bit.
|
|
41
41
|
4. **Show the concrete DIFF before writing** (old → new, per file). Never a blind write.
|
|
42
|
-
5. **Resolve best-effort actions by the built-in's rule FIRST, then ask only on genuine ambiguity.** Best-effort destructive actions (`force_push`, `delete_files`, `delete_everything`, `read_secrets`) default to **`ask`** (never a `deny` that can't be enforced) — apply that default rather than stopping to question-back. Surface a question only when the policy is genuinely ambiguous or the seat is interactive. **For a same-prefix collision (`push_to_remote` vs `force_push`, both `Bash(git push:*)`), NEVER ask — apply the deterministic PREFIX-COLLISION rule in the Claude leg.**
|
|
43
|
-
6. **Back up the current config**, then write. Prefer the **user-level** file (`~/.claude/settings.json`) for durable policy — it's the clobber-resistant tier (deny wins across the union). **ALWAYS include `defaultMode: "acceptEdits"` in the Claude settings.json you write** — the floor key must be PRESENT in the file, or the config policy strips the floor.
|
|
42
|
+
5. **Resolve best-effort actions by the built-in's rule FIRST, then ask only on genuine ambiguity.** Best-effort destructive actions (`force_push`, `delete_files`, `delete_everything`, `read_secrets`) default to **`ask`** (never a `deny` that can't be enforced) — apply that default rather than stopping to question-back. Surface a question only when the policy is genuinely ambiguous or the seat is interactive. **For a same-prefix collision (`push_to_remote` vs `force_push`, both `Bash(git push:*)`), NEVER ask — apply the deterministic PREFIX-COLLISION rule in the Claude leg.** On a Claude-only fleet, if the policy denies `network_egress`, **say so explicitly**: it is NOT enforceable — Claude has no network gate, a `Bash(curl:*)`/`Bash(wget:*)` deny is best-effort, and `python`/`node` fetch bypasses it (live-verified: `urllib` reached HTTPS 200 under a curl/wget deny). Route real egress-gating to the Codex sandbox, or record it as advisory on Claude.
|
|
43
|
+
6. **Back up the current config**, then write. Prefer the **user-level** file (`~/.claude/settings.json`) for durable policy — it's the clobber-resistant tier (deny wins across the union). **ALWAYS include `defaultMode: "acceptEdits"` in the Claude settings.json you write** — the floor key must be PRESENT in the file, or the config policy strips the floor.
|
|
44
44
|
7. **Verify** the write landed and the seat can see it (re-read; confirm `defaultMode: "acceptEdits"` is present; for an autonomous seat, confirm no `ask` will freeze it).
|
|
45
45
|
|
|
46
46
|
## Two surfaces — and this skill writes only ONE of them
|
|
@@ -48,7 +48,7 @@ Permissions live on two surfaces with opposite stability — which is the whole
|
|
|
48
48
|
- **LAUNCH-FLAG surface — STABLE (>1yr) → OpenRig sets it DETERMINISTICALLY, NOT this skill.** The flags OpenRig passes at boot: Claude `--permission-mode` / `--dangerously-skip-permissions`; Codex sandbox/bypass flags; Pi `--approve`/`--no-approve`. **Two things live here, both OpenRig-owned: the FLOOR (minimum, by default) and YOLO (full bypass, opt-in).**
|
|
49
49
|
- **CONFIG-FILE surface — CHAOTIC → NEVER deterministic → THIS SKILL'S DOMAIN.** Claude `settings.json` allow/ask/deny + defaultMode; Codex `config.toml` approval rules. This is where the Locked / Standard / Open policies get applied — agent-driven, version-stamped, caveated. (Pi has **no permission surface at all** — its `--approve`/`--no-approve` flags govern project-resource trust, not tool permissions (VM-confirmed Pi 0.83.0); a permission policy does not translate to Pi. See the Pi leg.)
|
|
50
50
|
|
|
51
|
-
**THE FLOOR (launch-flag, OpenRig-set — this skill KNOWS it, never WRITES it):** Claude `--permission-mode acceptEdits` (keep it); **Codex workspace-only** (stop forcing `danger-full-access` — ≈ Codex's own default ≈ setting-nothing = agnostic); Pi `--no-approve` (a project-resource-trust floor — Pi has no permission gate; see the Pi leg). **One consistent unconditional minimum
|
|
51
|
+
**THE FLOOR (launch-flag, OpenRig-set — this skill KNOWS it, never WRITES it):** Claude `--permission-mode acceptEdits` (keep it); **Codex workspace-only** (stop forcing `danger-full-access` — ≈ Codex's own default ≈ setting-nothing = agnostic); Pi `--no-approve` (a project-resource-trust floor — Pi has no permission gate; see the Pi leg). **One consistent unconditional minimum**. A chosen config-file policy layers ON TOP of the floor.
|
|
52
52
|
|
|
53
53
|
**YOLO MODE (launch-flag, OpenRig-set, opt-in — for people done with permissions):** OpenRig boots every seat with the full-bypass flag (Claude `--dangerously-skip-permissions`; Codex full-bypass). **When YOLO is on, CONFIG-FILE POLICY IS MOOT** — this skill does NOT apply a config policy (or explicitly notes it's overridden by the flag); don't fight the bypass. YOLO is OpenRig's deterministic job, not this skill's. (**Operator = YOLO mode** — subsumed.)
|
|
54
54
|
|
|
@@ -79,10 +79,10 @@ Permissions live on two surfaces with opposite stability — which is the whole
|
|
|
79
79
|
- **PREFIX-COLLISION resolution (deterministic — resolve it, NEVER ask).** When two actions collapse to the SAME base prefix with different dispositions — the canonical case is `push_to_remote`=allow + `force_push`=ask, both basing to `Bash(git push:*)` — you cannot put that base prefix in both `allow` and `ask`. Resolve without a question-back:
|
|
80
80
|
- **Push allowed + force asked (Standard / Open):** put the base `Bash(git push:*)` per push's disposition (`allow`), AND add the flag-first force forms to `ask` (`Bash(git push --force:*)`, `Bash(git push -f:*)`, `Bash(git push --force-with-lease:*)`). RECORD in your diff that this is best-effort — flag-LAST force (`git push origin main --force`) leaks past the flag-first ask rules and runs under the allow. Don't block on it.
|
|
81
81
|
- **Push denied (Locked):** `Bash(git push:*)` in `deny` already covers force — no conflict.
|
|
82
|
-
This is a FIXED rule, not a user decision — apply it and note the leak.
|
|
83
|
-
- **`defaultMode: "acceptEdits"` is the FLOOR and MUST be written into every Claude settings.json you produce.** It is not a knob you tune, but it IS a key you must always include — a config policy that omits it strips the floor
|
|
82
|
+
This is a FIXED rule, not a user decision — apply it and note the leak.
|
|
83
|
+
- **`defaultMode: "acceptEdits"` is the FLOOR and MUST be written into every Claude settings.json you produce.** It is not a knob you tune, but it IS a key you must always include — a config policy that omits it strips the floor. Live-confirmed schema: `{"permissions":{"allow":[],"ask":[],"deny":[],"defaultMode":"acceptEdits"}}`.
|
|
84
84
|
|
|
85
|
-
### Codex — `~/.codex/config.toml` (via the existing
|
|
85
|
+
### Codex — `~/.codex/config.toml` (via the existing `codex_config_fragment` splice path — reuse, don't invent)
|
|
86
86
|
- Codex is **per-posture, not per-action**: the whole action set **collapses** to the nearest `{sandbox_mode, approval_policy}` pair. **Built-in → posture** (VM-CONFIRMED @ Codex 0.120.0, 2026-08-03 — each posture applied to a real seat: read-only blocked writes+egress, workspace-write allowed writes/blocked egress, danger-full-access allowed both):
|
|
87
87
|
|
|
88
88
|
| Built-in | `sandbox_mode` | `approval_policy` | Collapse note (surface this to the user) |
|
|
@@ -107,7 +107,7 @@ Permissions live on two surfaces with opposite stability — which is the whole
|
|
|
107
107
|
- **daemon-HOME ≠ seat-HOME** silently voids user-level writes — always the preflight check above.
|
|
108
108
|
|
|
109
109
|
## The built-ins — DEFINED by the shipped policy spec files (translate FROM the spec; POINT, don't COPY)
|
|
110
|
-
The four built-in policies ship as read-only spec files (`source: builtin`, `policy_schema_version: 1`) — they are the AUTHORITATIVE definitions. **Do NOT restate their action-sets here.**
|
|
110
|
+
The four built-in policies ship as read-only spec files (`source: builtin`, `policy_schema_version: 1`) — they are the AUTHORITATIVE definitions. **Do NOT restate their action-sets here.** The selected spec supplies the action sets; a second copy in this skill can diverge. Read the attached/selected spec and translate its semantic-action sets (`default_posture` / `allow` / `ask` / `deny` / `destructive_class`) per the three legs above.
|
|
111
111
|
- **Locked / Standard ⭐ / Open** — `surface: config`. Translate to the Claude / Codex config surface. **Standard ⭐** is the recommended default: routine dev incl. push allowed, the outward/release/history-rewriting acts (`create_pr`, `publish_package`, `merge_or_release`, `force_push`) ASK, destructive_class ASKs. Standard has live `ask` gates → not for a headless-autonomous Claude seat (use Open or YOLO). Locked = deny-default whitelist; Open = allow-default, destructive_class asks only.
|
|
112
112
|
- **YOLO** — `surface: flag`, `launch_posture: full_bypass`. This skill does **NOT** translate it — it points at OpenRig's deterministic flag-surface opt-in (the rip-out YOLO setting). When YOLO is on, any config-surface policy is MOOT (the bypass overrides it). (Subsumes the former "Operator".)
|
|
113
113
|
|
|
@@ -115,6 +115,3 @@ Built-ins ship read-only in the package (canonical names); copy-to-customize int
|
|
|
115
115
|
|
|
116
116
|
## Boundary (keeps this the only maintained piece)
|
|
117
117
|
This skill TRANSLATES + APPLIES only. It does **not** define policies (the policy spec does) and does **not** enforce at the daemon (OpenRig is agnostic). Spec = *what* (neutral intent); this skill = *how, on this harness version* (the caveated, version-stamped translation).
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
*Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
|
|
@@ -3,7 +3,6 @@ name: claude-compaction-restore
|
|
|
3
3
|
description: Use when a Claude Code session has just compacted, is about to compact, reached context limit, resumed after /compact, or needs to rebuild its working mental model from Claude JSONL transcripts and touched files.
|
|
4
4
|
metadata:
|
|
5
5
|
openrig:
|
|
6
|
-
stage: factory-approved
|
|
7
6
|
sibling_skills:
|
|
8
7
|
- mental-model-ha
|
|
9
8
|
- scope-recovery
|
|
@@ -20,8 +19,9 @@ metadata:
|
|
|
20
19
|
# Claude Compaction Restore
|
|
21
20
|
|
|
22
21
|
Use this skill to preserve continuity before Claude Code compacts and to
|
|
23
|
-
restore continuity after compaction.
|
|
24
|
-
|
|
22
|
+
restore continuity after compaction. Follow the active restore request or
|
|
23
|
+
configured continuity policy. A hook notice identifies available evidence; it
|
|
24
|
+
does not by itself request a seat restoration.
|
|
25
25
|
|
|
26
26
|
## If You Are About To Compact
|
|
27
27
|
|
|
@@ -55,68 +55,60 @@ Prepare durable continuity before the context boundary.
|
|
|
55
55
|
|
|
56
56
|
## If You Just Compacted
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
Restore from the evidence for this session before relying on remembered task state.
|
|
59
|
+
|
|
60
|
+
1. Inspect the restore request and any named marker, packet, transcript, restore
|
|
61
|
+
map, or extra instruction file. Check recorded seat/session/transcript identity
|
|
62
|
+
against the current request, and verify that the referenced packet is readable.
|
|
63
|
+
A marker path alone does not prove a usable packet; do not substitute another
|
|
64
|
+
seat's packet or select one only because it is the newest.
|
|
65
|
+
2. **Use the existing packet when usable.** Read its `restore-instructions.md`,
|
|
66
|
+
`touched-files.md`, and any named restore map. A packet already prepared for this
|
|
67
|
+
session does not need rebuilding merely because compaction occurred.
|
|
68
|
+
3. **Fall back when the packet is absent or unusable.** Record what is missing or
|
|
69
|
+
mismatched. Resolve this skill's installed directory and run its
|
|
70
|
+
`scripts/restore-from-jsonl.mjs` with the matching Claude JSONL transcript and a
|
|
71
|
+
separate output directory. For a skill installed in the global Claude skill root:
|
|
71
72
|
|
|
72
73
|
```bash
|
|
73
74
|
node ~/.claude/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs /path/to/session.jsonl --out /tmp/claude-compaction-restore
|
|
74
75
|
```
|
|
75
76
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
77
|
+
If no transcript was named, identify the current session's transcript first.
|
|
78
|
+
The script can discover a transcript from a working directory, but inspect that
|
|
79
|
+
selection before relying on it. If the session cannot be identified, report
|
|
80
|
+
the missing input instead of reconstructing from an unrelated conversation.
|
|
81
|
+
Read the resulting `restore-instructions.md` and `touched-files.md`.
|
|
82
|
+
4. Inspect the actual packet and transcript sizes before choosing how much to read.
|
|
83
|
+
The generated instructions report estimated token cost. State a read budget
|
|
84
|
+
and stopping rule that leave room for the task. For a large transcript, begin
|
|
85
|
+
with the most recent task-relevant unique narrative; read earlier material when
|
|
86
|
+
a specific missing decision or dependency requires it. Report ranges actually
|
|
87
|
+
read rather than treating a chosen budget as completed coverage.
|
|
88
|
+
5. Use the restore map and touched-file list to identify current task files.
|
|
89
|
+
The list is a triage aid, not an exhaustive inventory. Prioritize the active
|
|
90
|
+
queue/mission packet, decisions and memory named in the map, files with active
|
|
91
|
+
edits, root instructions, and relevant as-built docs or codemaps. Read required
|
|
92
|
+
task files in full within the stated budget; record any remaining gaps.
|
|
93
|
+
6. Re-establish the task's purpose and operating context from the current project,
|
|
94
|
+
mission and seat files. A transcript summary alone does not establish current
|
|
95
|
+
scope or obligations. Use the shipped `refocusing` skill for the path-only
|
|
96
|
+
topology/work trace when operating inside OpenRig.
|
|
97
|
+
7. Report the read-depth audit below. Once the required context is restored, use
|
|
98
|
+
the packet's requested acknowledgment, normally:
|
|
88
99
|
|
|
89
100
|
```text
|
|
90
101
|
restored from packet at <path>; resumed at step <X>
|
|
91
102
|
```
|
|
92
103
|
|
|
93
|
-
Include the main files
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
faithfully — packet built, narrative read tail-first, read-depth audit reported honestly — and
|
|
102
|
-
resumed with a perfect picture of its atom and *zero* work-tree context. It had never opened
|
|
103
|
-
the mission or project nodes, and could only paraphrase the release's intent second-hand from
|
|
104
|
-
a peer's message. It then produced a technically-correct trace concluding *"I hold nothing"*
|
|
105
|
-
while holding 18 pending rows. **A restore that returns you to your task without your bearings
|
|
106
|
-
is how a confidently-wrong agent gets back to work.**
|
|
107
|
-
|
|
108
|
-
**On the marker and the packet's size (measured across restores, 2026-08):** two realities the restore
|
|
109
|
-
must handle honestly —
|
|
110
|
-
|
|
111
|
-
- **The per-seat marker (`restore-pending/<session>.json`) is frequently absent** — in five observed
|
|
112
|
-
restores it was never present. Treat the JSONL rebuild via `restore-from-jsonl.mjs` as the **primary**
|
|
113
|
-
path, not a fallback: run it regardless of whether a marker exists. (When product-infra reliably writes
|
|
114
|
-
the marker for tmux-launched seats, it becomes a fast-path upgrade — not a prerequisite that keeps failing.)
|
|
115
|
-
- **The generated transcript can be very large** (measured at ~346k tokens in one restore). Do **not**
|
|
116
|
-
read it front-to-back or claim to. `restore-instructions.md` declares its token cost up front; default
|
|
117
|
-
to the **most recent ~50k tokens of unique narrative first** (recency is what a restore needs — the
|
|
118
|
-
thread that produced the current frontier, not the boot handshake), and go earlier only if a specific
|
|
119
|
-
question requires it. A restore must leave room for the work it was restored to do.
|
|
104
|
+
Include the main files actually read in full. If essential context remains
|
|
105
|
+
missing, report partial restoration and the next recovery action instead of
|
|
106
|
+
claiming completion.
|
|
107
|
+
|
|
108
|
+
The packaged PreCompact writer can prepare a packet and a per-seat pending marker;
|
|
109
|
+
the restore bridge can deliver its pointer once for a matching session. Inspect
|
|
110
|
+
those actual artifacts. Their creation or delivery is not proof that a provider
|
|
111
|
+
restored its context, that the files were read, or that task understanding returned.
|
|
120
112
|
|
|
121
113
|
## Required Read-Depth Audit
|
|
122
114
|
|
|
@@ -125,8 +117,8 @@ After the first restore pass, audit yourself before continuing.
|
|
|
125
117
|
1. List every file, packet, marker, restore map, instruction file, and source
|
|
126
118
|
document you were asked to read during restore.
|
|
127
119
|
2. Mark each item as `FULL`, `PARTIAL`, or `NOT_READ`.
|
|
128
|
-
3.
|
|
129
|
-
|
|
120
|
+
3. Distinguish essential current-task context from supplementary history, using
|
|
121
|
+
the actual restore request and active task.
|
|
130
122
|
4. Read `PARTIAL`/`NOT_READ` items in full — but **to a declared budget with a stopping rule**, not
|
|
131
123
|
unbounded. Prioritize by relevance to the active task; for a large transcript read the most recent
|
|
132
124
|
unique narrative first (see *If You Just Compacted*), not front-to-back.
|
|
@@ -156,8 +148,8 @@ After the first restore pass, audit yourself before continuing.
|
|
|
156
148
|
|
|
157
149
|
1. **Confidently-wrong restoration**: claiming restoration after reading only
|
|
158
150
|
the touched-file list or summary.
|
|
159
|
-
2. **
|
|
160
|
-
full
|
|
151
|
+
2. **Unreported partial restore**: continuing without essential task context or
|
|
152
|
+
claiming full coverage after a budget-limited read.
|
|
161
153
|
3. **Skipping project instructions**: missing `AGENTS.md`, `CLAUDE.md`,
|
|
162
154
|
`README.md`, as-built docs, or codemaps that govern the task.
|
|
163
155
|
4. **Treating the packet as exhaustive**: ignoring mission or workspace files
|
|
@@ -84,14 +84,14 @@ you should know which pillar you're operating in:
|
|
|
84
84
|
|
|
85
85
|
| Pillar | What it is | Where it lives |
|
|
86
86
|
|---|---|---|
|
|
87
|
-
| **Ontology** | What exists. Curated knowledge — facts, code maps, as-built docs. |
|
|
87
|
+
| **Ontology** | What exists. Curated knowledge — facts, code maps, as-built docs. | Shipped public context packs plus project-authored docs; discover with `rig context list`. |
|
|
88
88
|
| **Epistemology** | Why an agent believes what it believes — reasoning, instincts, decisions. | Transcripts (auto-captured). Session logs. ADRs. |
|
|
89
89
|
| **Topology** | How agents are connected — pods, edges, communication paths. | OpenRig itself. RigSpec YAML. |
|
|
90
90
|
|
|
91
|
-
OpenRig
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
OpenRig manages topology and exposes public context through `rig context`.
|
|
92
|
+
Project-authored sources supply project-specific knowledge; transcripts retain
|
|
93
|
+
recorded work. These sources already coexist. Discover the configured library
|
|
94
|
+
and selected task context rather than assuming a particular private corpus.
|
|
95
95
|
|
|
96
96
|
---
|
|
97
97
|
|
|
@@ -174,14 +174,15 @@ cost when you reach for one.
|
|
|
174
174
|
| Home | Purpose |
|
|
175
175
|
|---|---|
|
|
176
176
|
| `<rig-cwd>/.claude/skills/`, `<rig-cwd>/.agents/skills/` | Where the harness actually loads from. Populated by `rig up`. |
|
|
177
|
-
| `~/.claude/skills/`, `~/.agents/skills/` |
|
|
177
|
+
| `~/.claude/skills/`, `~/.agents/skills/` | User-level harness skill directories. Inspect the current projection and harness configuration to determine which skills are installed and where they came from. |
|
|
178
178
|
| `openrig/packages/daemon/{specs/agents/shared/skills,assets/plugins/*/skills}/` | Product skills that ship with OpenRig — the spec pool + the bundled plugin assets (openrig-user, openrig-operator, openrig-architect, forming-an-openrig-mental-model, queue-handoff, claude-compaction-restore, …). |
|
|
179
|
-
| `~/.openrig/skills/` | Future runtime install home for OpenRig-shipped skills. |
|
|
180
179
|
| the skills authoring workspace | Skill authoring source (not runtime-loaded). |
|
|
181
180
|
|
|
182
|
-
The
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
The product already discovers its installed shared skill pool and serves
|
|
182
|
+
packaged context through `rig context list/get`. Discovery and retrieval do
|
|
183
|
+
not prove that every skill was projected into every harness. Inspect the
|
|
184
|
+
selected profile and actual runtime directories; do not assume a universal
|
|
185
|
+
home/bootstrap installation from this table.
|
|
185
186
|
|
|
186
187
|
---
|
|
187
188
|
|
|
@@ -9,7 +9,7 @@ description: >-
|
|
|
9
9
|
metadata:
|
|
10
10
|
openrig:
|
|
11
11
|
stage: draft
|
|
12
|
-
author: OpenRig product team
|
|
12
|
+
author: OpenRig product team
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
# The OpenRig Operating Model
|
|
@@ -20,10 +20,9 @@ find what it needs and knows where to write what it learns. Everything below
|
|
|
20
20
|
runs on **markdown files, scripts, and conventions only**; the `rig` verbs that
|
|
21
21
|
formalize pieces of it are conveniences, never dependencies.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
the deliberate drain mechanism the dual-home interim anticipated.
|
|
23
|
+
This skill owns the structure: trees, chains, tracing, and placement of authored
|
|
24
|
+
knowledge. Resolve installed context through its current library addresses and
|
|
25
|
+
the project's selected loadout; a private corpus is not a required public dependency.
|
|
27
26
|
|
|
28
27
|
Companion implementation assets in this skill's folder:
|
|
29
28
|
- `templates/` and `scripts/` — starters and working tools, described in §8.
|
|
@@ -43,7 +42,7 @@ An **instance** is one OpenRig daemon and the rigs it manages; a **fleet** is al
|
|
|
43
42
|
a daemon runs is a deployment fact, not an altitude — say the instance's name when you mean a
|
|
44
43
|
particular one.
|
|
45
44
|
|
|
46
|
-
**The one-parent law
|
|
45
|
+
**The one-parent law:** the trace follows the
|
|
47
46
|
directory path and NOTHING else — no pointer fields, no link-following, no
|
|
48
47
|
branching, ever. The trace is the instrument confused agents reach for, so it
|
|
49
48
|
must be simpler than anything it corrects: path-only ascent fails only in
|
|
@@ -99,18 +98,17 @@ generated or projected.** It is the work tree's lived file, the way `LEARNED.md`
|
|
|
99
98
|
tree's — the field-notes rung, where raw observation goes before anything has earned a place in the
|
|
100
99
|
node itself. Keeping lived files out of the render path is what makes them safe to write freely in.
|
|
101
100
|
|
|
102
|
-
**Legacy name:**
|
|
103
|
-
|
|
104
|
-
name at every altitude.
|
|
101
|
+
**Legacy name:** older workspaces may use `MISSION_NOTES.md`. Keep legacy
|
|
102
|
+
content addressable; use `NOTES.md` for the chain because its name works at every altitude.
|
|
105
103
|
|
|
106
104
|
| Level | `SPEC.md` — frontmatter `intent:` (why) + body (what must be built) | progress | kept true by |
|
|
107
105
|
|---|---|---|---|
|
|
108
106
|
| project | `intent:` only — stable, changes at real pivots | derived roll-up | the project's PM |
|
|
109
|
-
| mission | `intent:`
|
|
110
|
-
| slice | `intent:`
|
|
107
|
+
| mission | `intent:` and proportional mission-level specification; organizes slices | authored checklist marks; roll-up derived | the mission's PM |
|
|
108
|
+
| slice | `intent:` and the concrete slice specification | authored checklist marks; roll-up derived | the slice's owner |
|
|
111
109
|
| proof item | *(inherits)* | **the checkbox — the stored acceptance mark** | the prover |
|
|
112
110
|
|
|
113
|
-
**
|
|
111
|
+
**Progress checklists:** Checkbox items stored in a mission or slice
|
|
114
112
|
`PROGRESS.md` are authored acceptance marks. In-process task tracking stays in the agent's own todo
|
|
115
113
|
tool. Everything that rolls those marks up above the managed checklist is derived at render time,
|
|
116
114
|
so authored checklists and the never-author-a-derived-roll-up rule are the same model.
|
|
@@ -134,13 +132,10 @@ becomes a confident lie.
|
|
|
134
132
|
Two directions on the same trees: intent/values/practice **compose downward**
|
|
135
133
|
(you trace UP to read them); progress **aggregates upward** (never hand-written
|
|
136
134
|
above the stored marks). **And PROGRESS above the managed checklist is a RENDER, not a
|
|
137
|
-
file
|
|
138
|
-
`scripts/compose.py progress` derives the roll-up tree at render time.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
law that retired `serves:`). Existing legacy PROGRESS.md files with embedded
|
|
142
|
-
trees stay per rule zero and are read as testimony; nobody authors a progress
|
|
143
|
-
tree by hand again.
|
|
135
|
+
file**: the checkbox is the stored acceptance mark;
|
|
136
|
+
`scripts/compose.py progress` derives the roll-up tree at render time. Keep legacy
|
|
137
|
+
embedded roll-ups as historical records when needed, but derive the current view
|
|
138
|
+
from its marks rather than maintaining another copy by hand.
|
|
144
139
|
|
|
145
140
|
**The axis behind the columns:** every context kind has a *template* half
|
|
146
141
|
(what ships — SOP, the default culture) and a *learned* half (what living
|
|
@@ -152,16 +147,13 @@ constitution.
|
|
|
152
147
|
|
|
153
148
|
## 3. Why this exists (the failure it fixes)
|
|
154
149
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
and
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
versioned, shipped) + `LEARNED.md` on the chain (the job, as lived — per-instance,
|
|
163
|
-
occupant-written) — **read at every boot before any handover document**, written
|
|
164
|
-
by every generation. A bad handover now costs recent state, not the job itself.
|
|
150
|
+
Seat knowledge needs a durable home that successors and other runtimes can read.
|
|
151
|
+
A private runtime memory or an urgent handover packet alone can omit standing
|
|
152
|
+
duties and the reasons behind a practice. Keep general operating craft in the
|
|
153
|
+
shared skill and position-specific knowledge in the seat's `LEARNED.md` chain.
|
|
154
|
+
At a handover, read the current chain alongside the packet and record any missing
|
|
155
|
+
job context before claiming readiness. Each occupant maintains what the seat has
|
|
156
|
+
learned; the handover packet carries the current transition.
|
|
165
157
|
|
|
166
158
|
## 4. LEARNED.md — the living file (all altitudes; seat shown)
|
|
167
159
|
|
|
@@ -187,15 +179,14 @@ Sections, in order — see `templates/LEARNED.md`:
|
|
|
187
179
|
**Size: soft guidance, not a rule.** Keep it as small as honestly covers the
|
|
188
180
|
job — attention is the budget, and every reader pays it. Some seats genuinely
|
|
189
181
|
need more; write what the job needs. The failure mode to watch for is the
|
|
190
|
-
rulebook that only ever grows
|
|
191
|
-
(
|
|
192
|
-
scale). The antidote is the distillation habit in §8 above, not a line count.
|
|
182
|
+
rulebook that only ever grows. Distill lessons into practices with reasons at
|
|
183
|
+
deposit boundaries (before clear or handover); use that habit, not a line count.
|
|
193
184
|
|
|
194
185
|
## 5. The trace — deliberate reorientation
|
|
195
186
|
|
|
196
187
|
A trace is walking your chains **with your own file reads** and writing down
|
|
197
188
|
where you stand: what am I doing (queue/NOTES) → under what contract (SPEC) →
|
|
198
|
-
toward what intent (
|
|
189
|
+
toward what intent (`SPEC.md` intent field, leaf to root) → by what practice (LEARNED +
|
|
199
190
|
SOP) → within what values (CULTURE). A few written lines at the end.
|
|
200
191
|
`scripts/compose.py up` assembles any chain for you.
|
|
201
192
|
|
|
@@ -215,7 +206,7 @@ picture of where you stand may be stale* — after a large stretch of work, at a
|
|
|
215
206
|
boundary (boot, handover, new mission, confusion), or when someone asks you to
|
|
216
207
|
reorient. Why not simply "every N hours": identical scheduled prompts fade
|
|
217
208
|
from an agent's attention with repetition, and idle seats accumulate ritual
|
|
218
|
-
traces that crowd out real context
|
|
209
|
+
traces that crowd out real context.
|
|
219
210
|
Where a schedule fits your context anyway, use one — but prefer gating the
|
|
220
211
|
*action* on evidence of change: `scripts/trace-due.sh` decides "has enough
|
|
221
212
|
happened since my last trace?" deterministically and stays silent when the
|
|
@@ -245,17 +236,14 @@ exist and both are chains in that sense:
|
|
|
245
236
|
delivery regardless of content. That is why `rig walk` elapses `--pace` between pieces, and why a
|
|
246
237
|
composed render is meant to be read as a sequence rather than skimmed as a wall.
|
|
247
238
|
|
|
248
|
-
|
|
239
|
+
Use distinct names for the two directions:
|
|
249
240
|
|
|
250
|
-
- **TRACE** — the pull ascent. `compose.py up` renders a node's chain to the root.
|
|
251
|
-
|
|
252
|
-
- **`rig walk`** — the push verb, paced delivery into a seat's pane. It ships in the CLI, so treat
|
|
253
|
-
renaming it as a product change.
|
|
241
|
+
- **TRACE** — the pull ascent. `compose.py up` renders a node's chain to the root.
|
|
242
|
+
- **`rig walk`** — the push verb for paced delivery into a seat's pane.
|
|
254
243
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
decided to live with.
|
|
244
|
+
Use `refocusing` for the current trace workflow. A delivery receipt and an
|
|
245
|
+
agent's read-depth report answer different questions; pacing alone does not
|
|
246
|
+
establish understanding.
|
|
259
247
|
|
|
260
248
|
## 6. Writing — two principles
|
|
261
249
|
|
|
@@ -338,8 +326,11 @@ further setup. **A script that only works for its author is not shippable, howev
|
|
|
338
326
|
tree (`LEARNED.md`). What is being built is the *work* tree (`SPEC.md`). One rig owns both; they
|
|
339
327
|
still do not mix.
|
|
340
328
|
|
|
341
|
-
**
|
|
342
|
-
|
|
329
|
+
**Keep specification depth proportional.** A project carries stable intent; a
|
|
330
|
+
mission carries its intent and mission-level specification in the same authored
|
|
331
|
+
`SPEC.md`. Slices provide their concrete implementation scope. Follow the selected
|
|
332
|
+
`mission-slice-sop` and any explicit mode overlay; mission specification is not a
|
|
333
|
+
requirement to repeat every slice detail.
|
|
343
334
|
|
|
344
335
|
### The other axis: AUDIENCE is not MATURITY
|
|
345
336
|
|
|
@@ -363,8 +354,7 @@ practice must accrue** (*never broadcast to a large rig* took an incident).
|
|
|
363
354
|
|
|
364
355
|
**LEARNED.md is not a staged item — it is the bed everything lies in.** Its gradient is
|
|
365
356
|
positional: the dated append-log at the bottom is raw observation, the concise sections at the top
|
|
366
|
-
are what survived.
|
|
367
|
-
meant *never*. The answer: distil at deposit boundaries (pre-clear, pre-handover) where a write is
|
|
357
|
+
are what survived. Attach distillation to a **trigger**: distil at deposit boundaries (pre-clear, pre-handover) where a write is
|
|
368
358
|
already required and the author still remembers why each line exists; refocus merely *notices*
|
|
369
359
|
when the log has outgrown the distilled part.
|
|
370
360
|
|
|
@@ -384,10 +374,9 @@ and how you discover which seats cannot yet describe their own job.
|
|
|
384
374
|
at the next render, silently.
|
|
385
375
|
- "Improving" the trace with pointer-following, serves-resolution, or any
|
|
386
376
|
branching — the trace's entire value is that path-only ascent cannot fail
|
|
387
|
-
subtly;
|
|
377
|
+
subtly; keep the trace path-only.
|
|
388
378
|
- Summarizing this model for another agent instead of pointing them here —
|
|
389
|
-
|
|
390
|
-
authored precisely because a chain of summaries destroyed the last one.
|
|
379
|
+
a summary becomes another copy that can drift from its source.
|
|
391
380
|
- Scripts in `scripts/` are macOS-flavored in places (`stat -f`); verify
|
|
392
381
|
platform compatibility before trusting them on another OS.
|
|
393
382
|
|
package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
ROOT="${1:?usage: trunk-diff.sh <root-dir> <state-file> [--name FILE ...]}"
|
|
8
8
|
STATE="${2:?state-file required}"; shift 2
|
|
9
|
-
NAMES=("$@"); [[ ${#NAMES[@]} -eq 0 ]] && NAMES=(--name CULTURE.md --name
|
|
9
|
+
NAMES=("$@"); [[ ${#NAMES[@]} -eq 0 ]] && NAMES=(--name CULTURE.md --name SOP.md --name LEARNED.md --name SPEC.md --name PLAYBOOK.md --name INTENT.md)
|
|
10
10
|
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
11
11
|
NEW="$(mktemp)"
|
|
12
12
|
python3 "$HERE/compose.py" down "$ROOT" "${NAMES[@]}" | grep -v '^<!-- GENERATED' > "$NEW"
|
package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
seat: <pod>-<member>@<rig> # or rig/pod/fleet coords at higher altitudes
|
|
3
|
-
template: <path-or-name of
|
|
3
|
+
template: <path-or-name of SOP.md this refines> @ <version/sha>
|
|
4
4
|
owners: self (sole direct writer) · <orchestrator/PM> (by proposal) · hierarchy (boundaries only, marked)
|
|
5
5
|
updated: <YYYY-MM-DD from the clock command — never mental math>
|
|
6
6
|
status: UNSEEDED # the first real occupant replaces this line with: seeded-by-self <date>
|
|
7
7
|
---
|
|
8
8
|
# LEARNED — <instance coords>
|
|
9
|
-
<!--
|
|
9
|
+
<!-- Size is soft guidance: keep the file as small as honestly covers the job.
|
|
10
|
+
Before handover or clear, distill LESSONS into HOW I WORK and retain needed context. -->
|
|
10
11
|
|
|
11
|
-
## MY JOB HERE
|
|
12
|
+
## MY JOB HERE
|
|
12
13
|
<!-- This instance's actual function, in operational terms. If you cannot write
|
|
13
14
|
this section yourself, say so to your orchestrator — that discovery is the
|
|
14
15
|
audit working, not a failure. -->
|
|
@@ -35,6 +36,7 @@ status: UNSEEDED # the first real occupant replaces this line with: seeded-by-s
|
|
|
35
36
|
<!-- situation → read this. Attach pointers to MOMENTS, not to boot. -->
|
|
36
37
|
-
|
|
37
38
|
|
|
38
|
-
## LESSONS (
|
|
39
|
-
<!--
|
|
39
|
+
## LESSONS (dated, newest first)
|
|
40
|
+
<!-- Distill into HOW I WORK at deposit boundaries; preserve necessary reasons
|
|
41
|
+
and archive superseded material. Attention is the budget, not a hard line cap. -->
|
|
40
42
|
-
|
package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Legacy pointer — use SOP.md
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
term). Read ./SOP.md. One-transition-period pointer; do not edit here.
|
|
3
|
+
The procedure template is [SOP.md](SOP.md). Use it for new chain files; this
|
|
4
|
+
PLAYBOOK.md pointer preserves the old address. Edit the current template.
|