@openrig/cli 0.5.6 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +25 -2
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +95 -8
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +9 -1
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/SKILL.md +34 -0
- package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -4
- package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -3
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +4 -9
- package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +3 -3
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +40 -15
- package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +120 -0
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +10 -0
- package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +166 -0
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +18 -0
- package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +261 -0
- package/daemon/context-packs/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +495 -0
- package/daemon/context-packs/skills/claude-compaction-restore/templates/compact-instruction.md +1 -0
- package/daemon/context-packs/skills/claude-compaction-restore/templates/post-compact-restore-instruction.md +1 -0
- 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 +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -4
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +120 -355
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -3
- package/daemon/context-packs/skills/core/openrig-upgrade/scripts/backup-sqlite.mjs +62 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/scripts/inspect-upgrade.mjs +40 -0
- package/daemon/context-packs/skills/core/openrig-upgrade/scripts/refresh-managed-plugin.mjs +151 -0
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/SKILL.md +43 -0
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +10 -0
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +318 -0
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +10 -0
- package/daemon/context-packs/skills/loading-addressable-markdown/SKILL.md +34 -0
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +12 -0
- package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
- package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +94 -0
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +10 -0
- package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +397 -0
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +30 -0
- package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +572 -0
- package/daemon/context-packs/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
- package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
- package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
- package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
- package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +40 -0
- package/daemon/context-packs/skills/openrig-operating-model/templates/NOTES.md +9 -0
- package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
- package/daemon/context-packs/skills/openrig-operating-model/templates/SOP.md +24 -0
- package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +54 -0
- package/daemon/context-packs/skills/openrig-user/SKILL.md +1374 -0
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +10 -0
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +250 -0
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +12 -0
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +21 -15
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +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 +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/SKILL.md +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/SKILL.md +192 -0
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +10 -0
- package/daemon/context-packs/skills/refocusing/SKILL.md +31 -0
- package/daemon/context-packs/skills/refocusing/manifest.yaml +14 -0
- package/daemon/context-packs/skills/refocusing/references/refocus.md +22 -0
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +264 -0
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +231 -0
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +12 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +151 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +16 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
- package/daemon/context-packs/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
- package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +163 -0
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +10 -0
- package/daemon/context-packs/skills/software-for-agents/SKILL.md +187 -0
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +10 -0
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +249 -2
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +6 -5
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +29 -12
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +3 -3
- package/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
- package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
- 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 +6 -2
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
- package/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
- package/daemon/dist/db/migrations/077_node_session_source.js +6 -0
- package/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
- package/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts +17 -0
- package/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts.map +1 -0
- package/daemon/dist/db/migrations/078_idle_gate_fired_condition.js +21 -0
- package/daemon/dist/db/migrations/078_idle_gate_fired_condition.js.map +1 -0
- package/daemon/dist/domain/active-occupant.d.ts +6 -0
- package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/daemon/dist/domain/active-occupant.js +14 -0
- package/daemon/dist/domain/active-occupant.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 +5 -6
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-composer.js +2 -2
- package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
- package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/daemon/dist/domain/current-work.d.ts +73 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -0
- package/daemon/dist/domain/current-work.js +225 -0
- package/daemon/dist/domain/current-work.js.map +1 -0
- package/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/daemon/dist/domain/execution-view.js +215 -13
- package/daemon/dist/domain/execution-view.js.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.d.ts +3 -2
- package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/human-registry.js +113 -18
- package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +3 -2
- package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
- package/daemon/dist/domain/model-divergence/effective-model-readers.js +7 -5
- package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts +5 -5
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -1
- package/daemon/dist/domain/policies/idle-gate-qitem.js +130 -22
- package/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -1
- package/daemon/dist/domain/policies/types.d.ts +12 -0
- package/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +37 -2
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +171 -16
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.d.ts +19 -0
- package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-wake-repository.js +33 -0
- package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/reconciler.js +4 -1
- package/daemon/dist/domain/reconciler.js.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts +11 -1
- package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/daemon/dist/domain/rehydrate-eligibility.js +34 -0
- package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +9 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +32 -0
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +2 -2
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
- package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-lifecycle-service.js +116 -6
- package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +2 -1
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +7 -0
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +15 -9
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +68 -83
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts +5 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +41 -2
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts +32 -1
- package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/daemon/dist/domain/seat-attention-reconciler.js +183 -4
- package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +5 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +33 -7
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
- package/daemon/dist/domain/snapshot-capture.js +4 -2
- package/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/daemon/dist/domain/topology-defaults-installer.d.ts +4 -2
- package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -1
- package/daemon/dist/domain/topology-defaults-installer.js +27 -0
- package/daemon/dist/domain/topology-defaults-installer.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +3 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
- package/daemon/dist/domain/up-command-router.js +19 -0
- package/daemon/dist/domain/up-command-router.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +9 -0
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +15 -2
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +47 -0
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +146 -6
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +31 -10
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.js +17 -6
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/daemon/dist/routes/rigspec.js +37 -0
- package/daemon/dist/routes/rigspec.js.map +1 -1
- package/daemon/dist/routes/sessions.js +7 -3
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/up.js +10 -3
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +19 -7
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-spec.md +34 -1
- package/daemon/docs/reference/chain-file-convention.md +17 -12
- package/daemon/docs/reference/mission-install.md +23 -2
- package/daemon/docs/reference/product-journey-sdlc.md +305 -0
- package/daemon/docs/reference/release-boundary.md +29 -5
- package/daemon/docs/reference/sdlc-conventions.md +15 -2
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
- package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/guidance/role.md +0 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/guidance/role.md +0 -3
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +0 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +3 -4
- package/daemon/specs/agents/design/product-designer/guidance/role.md +0 -3
- package/daemon/specs/agents/development/implementer/agent.yaml +3 -4
- package/daemon/specs/agents/development/implementer/guidance/role.md +0 -3
- package/daemon/specs/agents/development/qa/agent.yaml +4 -4
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -4
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +3 -4
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +0 -4
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +3 -4
- package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +0 -3
- package/daemon/specs/agents/shared/agent.yaml +2 -10
- package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -4
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +120 -355
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/backup-sqlite.mjs +62 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/inspect-upgrade.mjs +40 -0
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/refresh-managed-plugin.mjs +151 -0
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +21 -15
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +2 -3
- package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +4 -4
- package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
- package/dist/build-info.js +3 -3
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +38 -3
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +90 -7
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/create.d.ts +4 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +84 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/grow.d.ts +4 -0
- package/dist/commands/grow.d.ts.map +1 -0
- package/dist/commands/grow.js +182 -0
- package/dist/commands/grow.js.map +1 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +27 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +9 -1
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +48 -1
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +21 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/shrink.d.ts.map +1 -1
- package/dist/commands/shrink.js +6 -1
- package/dist/commands/shrink.js.map +1 -1
- package/dist/commands/topology-default-agent.d.ts +4 -0
- package/dist/commands/topology-default-agent.d.ts.map +1 -0
- package/dist/commands/topology-default-agent.js +13 -0
- package/dist/commands/topology-default-agent.js.map +1 -0
- package/dist/commands/walk.d.ts.map +1 -1
- package/dist/commands/walk.js +3 -0
- package/dist/commands/walk.js.map +1 -1
- package/dist/commands/watchdog.d.ts.map +1 -1
- package/dist/commands/watchdog.js +51 -3
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/front-door.d.ts.map +1 -1
- package/dist/front-door.js +16 -4
- package/dist/front-door.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/topology-trace.d.ts +3 -2
- package/dist/lib/topology-trace.d.ts.map +1 -1
- package/dist/lib/topology-trace.js +12 -2
- package/dist/lib/topology-trace.js.map +1 -1
- package/dist/lib/work-install.d.ts +39 -0
- package/dist/lib/work-install.d.ts.map +1 -0
- package/dist/lib/work-install.js +312 -0
- package/dist/lib/work-install.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +249 -2
- package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +6 -5
- package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/adapters/tmux.js +29 -12
- 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/builtins/workflow-specs/basic-loop.yaml +3 -3
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
- package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
- 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 +6 -2
- package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js +6 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts +17 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js +21 -0
- package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +6 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +14 -0
- package/node_modules/@openrig/daemon/dist/domain/active-occupant.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 +5 -6
- package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +2 -2
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
- package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts +73 -0
- package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/current-work.js +225 -0
- package/node_modules/@openrig/daemon/dist/domain/current-work.js.map +1 -0
- package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js +215 -13
- package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +3 -2
- 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 +113 -18
- package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +3 -2
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +7 -5
- package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts +5 -5
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js +130 -22
- package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +12 -0
- package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +37 -2
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +171 -16
- package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +19 -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 +33 -0
- package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js +4 -1
- package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts +11 -1
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js +34 -0
- package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +9 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +32 -0
- package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +2 -2
- package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +116 -6
- package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +2 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +7 -0
- package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js +4 -0
- package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +15 -9
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +68 -83
- package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +5 -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 +41 -2
- package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +32 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +183 -4
- package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +5 -0
- package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/session-transport.js +33 -7
- package/node_modules/@openrig/daemon/dist/domain/session-transport.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 +4 -2
- package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +4 -2
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +27 -0
- package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -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/up-command-router.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.js +19 -0
- package/node_modules/@openrig/daemon/dist/domain/up-command-router.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +9 -0
- 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 +15 -2
- 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 +7 -0
- 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 +47 -0
- package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
- package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js +146 -6
- package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/queue.js +31 -10
- package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigs.js +17 -6
- package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js +37 -0
- package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/sessions.js +7 -3
- package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/routes/up.js +10 -3
- package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
- package/node_modules/@openrig/daemon/dist/startup.js +19 -7
- package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
- package/node_modules/@openrig/daemon/package.json +1 -1
- package/package.json +2 -1
- package/tui/dist/daemon-client.d.ts +2 -0
- package/tui/dist/daemon-client.d.ts.map +1 -1
- package/tui/dist/daemon-client.js +4 -0
- package/tui/dist/daemon-client.js.map +1 -1
- package/tui/dist/execution/execution-model.d.ts +19 -0
- package/tui/dist/execution/execution-model.d.ts.map +1 -0
- package/tui/dist/execution/execution-model.js +518 -0
- package/tui/dist/execution/execution-model.js.map +1 -0
- package/tui/dist/hydrate.d.ts +1 -1
- package/tui/dist/hydrate.d.ts.map +1 -1
- package/tui/dist/hydrate.js +6 -2
- package/tui/dist/hydrate.js.map +1 -1
- package/tui/dist/input.d.ts +7 -0
- package/tui/dist/input.d.ts.map +1 -1
- package/tui/dist/input.js +13 -0
- package/tui/dist/input.js.map +1 -1
- package/tui/dist/live.d.ts +10 -0
- package/tui/dist/live.d.ts.map +1 -1
- package/tui/dist/live.js +34 -1
- package/tui/dist/live.js.map +1 -1
- package/tui/dist/main.js +22 -3
- package/tui/dist/main.js.map +1 -1
- package/tui/dist/render.d.ts.map +1 -1
- package/tui/dist/render.js +13 -2
- package/tui/dist/render.js.map +1 -1
- package/tui/dist/scopes/scopes-model.d.ts +1 -0
- package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
- package/tui/dist/scopes/scopes-model.js +4 -2
- package/tui/dist/scopes/scopes-model.js.map +1 -1
- package/tui/dist/sections.js +2 -2
- package/tui/dist/sections.js.map +1 -1
- package/tui/dist/state.d.ts.map +1 -1
- package/tui/dist/state.js +15 -2
- package/tui/dist/state.js.map +1 -1
- package/tui/dist/stylize.js +2 -2
- package/tui/dist/stylize.js.map +1 -1
- package/tui/dist/types.d.ts +20 -0
- package/tui/dist/types.d.ts.map +1 -1
- package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +0 -48
- package/daemon/context-packs/skills/process/brainstorming/SKILL.md +0 -107
- package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +0 -12
- package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +0 -56
- package/daemon/context-packs/skills/process/executing-plans/SKILL.md +0 -94
- package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +0 -12
- package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +0 -48
- package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +0 -106
- package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +0 -12
- package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +0 -52
- package/daemon/context-packs/skills/process/writing-plans/SKILL.md +0 -126
- package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +0 -12
- package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +0 -48
- package/daemon/specs/agents/shared/skills/process/brainstorming/SKILL.md +0 -107
- package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +0 -56
- package/daemon/specs/agents/shared/skills/process/executing-plans/SKILL.md +0 -94
- package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +0 -48
- package/daemon/specs/agents/shared/skills/process/using-superpowers/SKILL.md +0 -106
- package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +0 -52
- package/daemon/specs/agents/shared/skills/process/writing-plans/SKILL.md +0 -126
|
@@ -4,7 +4,7 @@ Canonical OpenRig skills and hooks for cross-runtime agent topology coordination
|
|
|
4
4
|
|
|
5
5
|
## What this plugin ships
|
|
6
6
|
|
|
7
|
-
**Skills (
|
|
7
|
+
**Skills (17):** canonical OpenRig operating knowledge, including the public `refocusing` skill and
|
|
8
8
|
its path-only topology/work trace.
|
|
9
9
|
|
|
10
10
|
**Hooks:** activity tracking, compaction continuity, and the default-on refocus channel. Refocus is
|
|
@@ -91,6 +91,28 @@ function readConfiguredContent(home) {
|
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
// A live seat carries no OPENRIG_REFOCUS_WORK_NODE, so the trace used to report an
|
|
95
|
+
// unresolved work node while the daemon could already name the seat's typed baton. Ask it.
|
|
96
|
+
// The explicit variable always wins and short-circuits the call; any failure here returns
|
|
97
|
+
// null and leaves the pre-existing gap line intact, because refusing to answer is correct
|
|
98
|
+
// and guessing a work node would silently re-point the whole trace.
|
|
99
|
+
function deriveWorkStart() {
|
|
100
|
+
if (process.env.OPENRIG_REFOCUS_WORK_NODE) return process.env.OPENRIG_REFOCUS_WORK_NODE;
|
|
101
|
+
const result = spawnSync("rig", ["queue", "whoami", "--json"], {
|
|
102
|
+
encoding: "utf8",
|
|
103
|
+
env: process.env,
|
|
104
|
+
timeout: 2_000,
|
|
105
|
+
maxBuffer: 16 * 1024 * 1024,
|
|
106
|
+
});
|
|
107
|
+
if (result.error || result.status !== 0 || !result.stdout || !result.stdout.trim()) return null;
|
|
108
|
+
try {
|
|
109
|
+
const workNodePath = JSON.parse(result.stdout)?.currentWork?.workNodePath;
|
|
110
|
+
return typeof workNodePath === "string" && workNodePath ? workNodePath : null;
|
|
111
|
+
} catch {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
94
116
|
function renderTrace() {
|
|
95
117
|
const script = path.resolve(__dirname, "../../skills/refocusing/scripts/trace-to-root.py");
|
|
96
118
|
const args = [
|
|
@@ -101,8 +123,9 @@ function renderTrace() {
|
|
|
101
123
|
if (process.env.OPENRIG_REFOCUS_TOPOLOGY_NODE) {
|
|
102
124
|
args.push("--topology-start", process.env.OPENRIG_REFOCUS_TOPOLOGY_NODE);
|
|
103
125
|
}
|
|
104
|
-
|
|
105
|
-
|
|
126
|
+
const workStart = deriveWorkStart();
|
|
127
|
+
if (workStart) {
|
|
128
|
+
args.push("--work-start", workStart);
|
|
106
129
|
}
|
|
107
130
|
const result = spawnSync(process.env.PYTHON || "python3", args, {
|
|
108
131
|
encoding: "utf8",
|
|
@@ -6,7 +6,12 @@ import { spawnSync } from "node:child_process";
|
|
|
6
6
|
|
|
7
7
|
const skillRoot = path.resolve(new URL("..", import.meta.url).pathname);
|
|
8
8
|
const restoreScript = path.join(skillRoot, "scripts", "restore-from-jsonl.mjs");
|
|
9
|
-
|
|
9
|
+
// P6(C) injectable output-root: the packet base defaults to the shared
|
|
10
|
+
// /tmp/claude-compaction-restore (production), but becomes per-run isolated when the
|
|
11
|
+
// hermetic env-var OPENRIG_COMPACTION_OUT_ROOT is set — so concurrent writers with the
|
|
12
|
+
// same injected clock + sessionId no longer collide on the same `${sessionId}-${stamp}`
|
|
13
|
+
// dir. Mirrors the injectable-clock seam (OPENRIG_TEST_CLOCK_NOW). Empty/absent = /tmp.
|
|
14
|
+
const outRoot = process.env.OPENRIG_COMPACTION_OUT_ROOT || "/tmp/claude-compaction-restore";
|
|
10
15
|
const defaultRestoreInstruction =
|
|
11
16
|
"Read the claude-compaction-restore skill and follow its \"If You Just Compacted\" protocol.";
|
|
12
17
|
|
|
@@ -24,6 +29,14 @@ function getOpenRigHome() {
|
|
|
24
29
|
return process.env.OPENRIG_HOME || process.env.RIGGED_HOME || path.join(os.homedir(), ".openrig");
|
|
25
30
|
}
|
|
26
31
|
|
|
32
|
+
// A3-R3 injectable clock (slice 51-01): marker.createdAt defaults to real wall-clock,
|
|
33
|
+
// but becomes deterministic when the shared hermetic env-var OPENRIG_TEST_CLOCK_NOW is
|
|
34
|
+
// set (an ISO instant). Empty/absent = production real-time.
|
|
35
|
+
function nowIso() {
|
|
36
|
+
const injected = process.env.OPENRIG_TEST_CLOCK_NOW;
|
|
37
|
+
return typeof injected === "string" && injected.trim().length > 0 ? injected : new Date().toISOString();
|
|
38
|
+
}
|
|
39
|
+
|
|
27
40
|
function expandInstructionPath(filePath) {
|
|
28
41
|
if (filePath.startsWith("~/")) return path.join(os.homedir(), filePath.slice(2));
|
|
29
42
|
if (filePath.startsWith("${OPENRIG_HOME}/")) {
|
|
@@ -41,6 +54,50 @@ function readInstructionFile(filePath) {
|
|
|
41
54
|
return fs.readFileSync(expanded, "utf8");
|
|
42
55
|
}
|
|
43
56
|
|
|
57
|
+
// OPR.0.4.1.09 / R5 marker-lifecycle (foreign-content-in-marker face): the hook
|
|
58
|
+
// path must apply the SAME seat-check the daemon enforcer's resolvePostCompactExtra
|
|
59
|
+
// applies (rev1-r2 dcd95bd9), or a FOREIGN seat's global messageFilePath leaks into
|
|
60
|
+
// THIS seat's marker. Parse a WELL-FORMED leading `---` frontmatter for a declared
|
|
61
|
+
// seat (target_seat / seat / session); body text is never scanned; a broken/absent
|
|
62
|
+
// fence is GENERIC (valid for any seat). Byte-mirrors the enforcer regexes.
|
|
63
|
+
function declaredSeatOf(content) {
|
|
64
|
+
const fm = /^\s*---\s*\n([\s\S]*?)\n---/.exec(content);
|
|
65
|
+
if (!fm) return null;
|
|
66
|
+
const m = /^[ \t]*(?:target[_-]?seat|seat|session(?:[_-]?name)?)[ \t]*:[ \t]*["']?([^"'\n#]+?)["']?[ \t]*$/im.exec(fm[1]);
|
|
67
|
+
return m ? m[1].trim() : null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function sanitizeSeat(value) {
|
|
71
|
+
return value.replace(/[^a-zA-Z0-9_.@-]/g, "_");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Resolve the post-compaction extra FOR THIS SEAT (mirror of the enforcer): (1) prefer
|
|
75
|
+
// a per-seat compaction/post-compact-extra/<seat>.md — no cross-seat contamination
|
|
76
|
+
// possible; (2) fall back to the global ONLY when it does not declare a DIFFERENT seat
|
|
77
|
+
// (a wrong-seat global is REFUSED). Generic/undeclared/configured-but-absent stay
|
|
78
|
+
// allowed. Returns the path to read, or null when nothing valid for this seat.
|
|
79
|
+
function resolveSeatSafeExtraPath(globalFilePathRaw) {
|
|
80
|
+
const rawSeat = process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || "";
|
|
81
|
+
const seatKey = rawSeat ? sanitizeSeat(rawSeat) : "";
|
|
82
|
+
if (seatKey) {
|
|
83
|
+
const perSeatPath = path.join(getOpenRigHome(), "compaction", "post-compact-extra", `${seatKey}.md`);
|
|
84
|
+
if (fs.existsSync(perSeatPath)) {
|
|
85
|
+
const declared = declaredSeatOf(fs.readFileSync(perSeatPath, "utf8"));
|
|
86
|
+
if (declared && sanitizeSeat(declared) !== seatKey) return null; // wrong-seat per-seat file
|
|
87
|
+
return perSeatPath;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const trimmed = (globalFilePathRaw || "").trim();
|
|
91
|
+
if (!trimmed) return null;
|
|
92
|
+
const expanded = expandInstructionPath(trimmed);
|
|
93
|
+
// configured-but-absent: keep the path (an absent file cannot be a wrong-seat leak;
|
|
94
|
+
// readInstructionFile returns "" so nothing is appended).
|
|
95
|
+
if (!fs.existsSync(expanded)) return trimmed;
|
|
96
|
+
const declared = declaredSeatOf(fs.readFileSync(expanded, "utf8"));
|
|
97
|
+
if (declared && sanitizeSeat(declared) !== seatKey) return null; // foreign-seat global REFUSED
|
|
98
|
+
return trimmed;
|
|
99
|
+
}
|
|
100
|
+
|
|
44
101
|
function sessionKey(input) {
|
|
45
102
|
const raw = [
|
|
46
103
|
process.env.OPENRIG_SESSION_NAME,
|
|
@@ -58,12 +115,28 @@ function pendingMarkerPath(input) {
|
|
|
58
115
|
return path.join(getOpenRigHome(), "compaction", "restore-pending", `${sessionKey(input)}.json`);
|
|
59
116
|
}
|
|
60
117
|
|
|
118
|
+
// R5 absent-when-needed: drop a lightweight EXPECTED sentinel FIRST (before the packet is
|
|
119
|
+
// generated + the marker is written), carrying the SAME identity binding the marker gets.
|
|
120
|
+
// Its presence-without-a-marker is what lets the bridge be LOUD about a missing packet
|
|
121
|
+
// (hook died partway / write failed); policy off = no hook = no sentinel = silent.
|
|
122
|
+
function writeExpectedSentinel(input) {
|
|
123
|
+
const p = path.join(getOpenRigHome(), "compaction", "restore-pending", `${sessionKey(input)}.expected.json`);
|
|
124
|
+
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
125
|
+
fs.writeFileSync(p, `${JSON.stringify({
|
|
126
|
+
version: 1,
|
|
127
|
+
sessionName: process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || null,
|
|
128
|
+
sessionId: input.session_id || input.sessionId || null,
|
|
129
|
+
transcriptPath: input.transcript_path || null,
|
|
130
|
+
createdAt: nowIso(),
|
|
131
|
+
}, null, 2)}\n`, "utf8");
|
|
132
|
+
}
|
|
133
|
+
|
|
61
134
|
function writePendingRestoreMarker(input, parsed, restoreInstruction, customMessage) {
|
|
62
135
|
const markerPath = pendingMarkerPath(input);
|
|
63
136
|
fs.mkdirSync(path.dirname(markerPath), { recursive: true });
|
|
64
137
|
const payload = {
|
|
65
138
|
version: 1,
|
|
66
|
-
createdAt:
|
|
139
|
+
createdAt: nowIso(),
|
|
67
140
|
sessionName: process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || null,
|
|
68
141
|
sessionId: input.session_id || input.sessionId || null,
|
|
69
142
|
transcriptPath: input.transcript_path || null,
|
|
@@ -118,13 +191,18 @@ function readClaudeCompactionMessage() {
|
|
|
118
191
|
parts.push(`Inline restore instruction:\n${inline}`);
|
|
119
192
|
}
|
|
120
193
|
if (filePath && filePath.length > 0) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
194
|
+
// R5 seat-check: resolve to the per-seat extra or a seat-safe global; a
|
|
195
|
+
// foreign-seat global resolves to null and is never injected into this marker.
|
|
196
|
+
const resolved = resolveSeatSafeExtraPath(filePath);
|
|
197
|
+
if (resolved) {
|
|
198
|
+
try {
|
|
199
|
+
const fileText = readInstructionFile(resolved);
|
|
200
|
+
if (fileText) {
|
|
201
|
+
parts.push(`Additional restore instruction file (${resolved}):\n${fileText}`);
|
|
202
|
+
}
|
|
203
|
+
} catch {
|
|
204
|
+
// Keep any inline instruction; unreadable extra files degrade quietly.
|
|
125
205
|
}
|
|
126
|
-
} catch {
|
|
127
|
-
// Keep any inline instruction; unreadable extra files degrade quietly.
|
|
128
206
|
}
|
|
129
207
|
}
|
|
130
208
|
if (parts.length > 0) return parts.join("\n\n");
|
|
@@ -140,7 +218,16 @@ function buildSystemMessage(restoreInstruction, customMessage) {
|
|
|
140
218
|
}
|
|
141
219
|
|
|
142
220
|
try {
|
|
221
|
+
// Slice 51-01 RIDER (leak-visibility, review-r1 escalation): OPENRIG_TEST_CLOCK_NOW is
|
|
222
|
+
// read by nowIso() to make createdAt deterministic in tests — but a LEAKED var in a
|
|
223
|
+
// real seat would silently FREEZE production createdAt. Announce loudly on stderr when
|
|
224
|
+
// active so any leak is visible in seat logs; absence stays silent (production path).
|
|
225
|
+
// MUST stay byte-identical to STUB_CLOCK_ANNOUNCEMENT in stub-runner.ts.
|
|
226
|
+
if (typeof process.env.OPENRIG_TEST_CLOCK_NOW === "string" && process.env.OPENRIG_TEST_CLOCK_NOW.trim().length > 0) {
|
|
227
|
+
process.stderr.write("OPENRIG_TEST_CLOCK_NOW active — timestamps are injected\n");
|
|
228
|
+
}
|
|
143
229
|
const input = readHookInput();
|
|
230
|
+
writeExpectedSentinel(input); // R5: sentinel FIRST, before the packet + marker (catches hook-died-partway)
|
|
144
231
|
const args = [restoreScript, "--out", outRoot, "--json"];
|
|
145
232
|
if (input.cwd) args.push("--cwd", input.cwd);
|
|
146
233
|
if (input.transcript_path && input.transcript_path.endsWith(".jsonl") && fs.existsSync(input.transcript_path)) {
|
|
@@ -423,8 +423,16 @@ function restoreInstructions(summary, outputPaths) {
|
|
|
423
423
|
return lines.join("\n");
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
+
// A3-R3 injectable clock (slice 51-01): the packet output-dir timestamped path
|
|
427
|
+
// defaults to real wall-clock, but becomes deterministic when the shared hermetic
|
|
428
|
+
// env-var OPENRIG_TEST_CLOCK_NOW is set (an ISO instant). Empty/absent = production.
|
|
429
|
+
function nowIso() {
|
|
430
|
+
const injected = process.env.OPENRIG_TEST_CLOCK_NOW;
|
|
431
|
+
return typeof injected === "string" && injected.trim().length > 0 ? injected : new Date().toISOString();
|
|
432
|
+
}
|
|
433
|
+
|
|
426
434
|
function writeOutputs(summary, outRoot) {
|
|
427
|
-
const stamp =
|
|
435
|
+
const stamp = nowIso().replace(/[:.]/g, "-");
|
|
428
436
|
const base = path.join(outRoot, `${summary.sessionId ?? "unknown-session"}-${stamp}`);
|
|
429
437
|
fs.mkdirSync(base, { recursive: true });
|
|
430
438
|
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: loading-addressable-markdown
|
|
3
|
+
description: Use when a mission, slice, dashboard, or task references Markdown as path#h2-slug or path#h2-slug/h3-slug outside the OpenRig context-pack library.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loading Addressable Markdown
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Load exactly one addressed Markdown section from any filesystem tree. The resolver mirrors OpenRig's shipped H2/H3 grammar without requiring the file to live in the context library.
|
|
11
|
+
|
|
12
|
+
## Use
|
|
13
|
+
|
|
14
|
+
Run the bundled script. Relative file references resolve from `--root`; without it they resolve from the current directory.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node ~/.agents/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs \
|
|
18
|
+
--root /path/to/mission \
|
|
19
|
+
'slices/09-source-cleanup/SPEC.md#proposal'
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The accepted forms are:
|
|
23
|
+
|
|
24
|
+
- `file.md` — whole file
|
|
25
|
+
- `file.md#h2-slug` — full H2 span, including child sections
|
|
26
|
+
- `file.md#h2-slug/h3-slug` — full H3 span
|
|
27
|
+
|
|
28
|
+
Slugs are lowercase; Markdown emphasis/code markers are removed; each other non-alphanumeric run becomes `-`. Duplicate or missing paths fail loudly. Headings inside fenced code blocks are ignored.
|
|
29
|
+
|
|
30
|
+
## Common mistakes
|
|
31
|
+
|
|
32
|
+
- Do not use `rig context get` for an arbitrary filesystem path; that command resolves context-library refs.
|
|
33
|
+
- Do not hand-slice headings with `sed` or line numbers; the bundled resolver owns span and fence behavior.
|
|
34
|
+
- Quote addresses in shell commands.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { realpathSync } from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
const MIN_LEVEL = 2;
|
|
9
|
+
const MAX_LEVEL = 3;
|
|
10
|
+
|
|
11
|
+
export class AddressResolutionError extends Error {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "AddressResolutionError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function slugifyHeader(title) {
|
|
19
|
+
return title
|
|
20
|
+
.toLowerCase()
|
|
21
|
+
.replace(/[`*_~]/g, "")
|
|
22
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
23
|
+
.replace(/^-+|-+$/g, "");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function parseAddress(address) {
|
|
27
|
+
const hashCount = (address.match(/#/g) ?? []).length;
|
|
28
|
+
if (hashCount > 1) {
|
|
29
|
+
throw new AddressResolutionError(`address '${address}' must contain at most one '#' separator`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const [ref, headerPart] = hashCount === 1 ? address.split("#") : [address, undefined];
|
|
33
|
+
if (!ref) throw new AddressResolutionError(`address '${address}' has no file before '#'`);
|
|
34
|
+
if (headerPart === undefined) return { ref, headerPath: [] };
|
|
35
|
+
|
|
36
|
+
const headerPath = headerPart.split("/");
|
|
37
|
+
if (headerPath.some((segment) => segment.length === 0)) {
|
|
38
|
+
throw new AddressResolutionError(`address '${address}' has an empty header segment`);
|
|
39
|
+
}
|
|
40
|
+
if (headerPath.length > MAX_LEVEL - MIN_LEVEL + 1) {
|
|
41
|
+
throw new AddressResolutionError(`address '${address}' is too deep; addresses target H2 and H3 only`);
|
|
42
|
+
}
|
|
43
|
+
return { ref, headerPath };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function scanHeaders(lines) {
|
|
47
|
+
const hits = [];
|
|
48
|
+
let fence = null;
|
|
49
|
+
|
|
50
|
+
for (let lineNumber = 0; lineNumber < lines.length; lineNumber++) {
|
|
51
|
+
const line = lines[lineNumber];
|
|
52
|
+
const fenceMatch = line.match(/^\s{0,3}(`{3,}|~{3,})/);
|
|
53
|
+
if (fenceMatch) {
|
|
54
|
+
const marker = fenceMatch[1][0];
|
|
55
|
+
const length = fenceMatch[1].length;
|
|
56
|
+
if (!fence) fence = { marker, length };
|
|
57
|
+
else if (fence.marker === marker && length >= fence.length) fence = null;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (fence) continue;
|
|
61
|
+
|
|
62
|
+
const heading = line.match(/^(#{1,6})\s+(.*\S)\s*$/);
|
|
63
|
+
if (heading) hits.push({ level: heading[1].length, title: heading[2], line: lineNumber });
|
|
64
|
+
}
|
|
65
|
+
return hits;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function parseMarkdownSections(text) {
|
|
69
|
+
const lines = text.split("\n");
|
|
70
|
+
const headers = scanHeaders(lines);
|
|
71
|
+
const sections = [];
|
|
72
|
+
let currentH2 = null;
|
|
73
|
+
|
|
74
|
+
for (let index = 0; index < headers.length; index++) {
|
|
75
|
+
const heading = headers[index];
|
|
76
|
+
if (heading.level < MIN_LEVEL || heading.level > MAX_LEVEL) {
|
|
77
|
+
if (heading.level < MIN_LEVEL) currentH2 = null;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const slug = slugifyHeader(heading.title);
|
|
82
|
+
if (heading.level === 2) currentH2 = slug;
|
|
83
|
+
const headerPath = heading.level === 2
|
|
84
|
+
? [slug]
|
|
85
|
+
: currentH2 !== null
|
|
86
|
+
? [currentH2, slug]
|
|
87
|
+
: [slug];
|
|
88
|
+
const fullEnd = headers.slice(index + 1).find((next) => next.level <= heading.level)?.line ?? lines.length;
|
|
89
|
+
const ownEnd = headers[index + 1]?.line ?? lines.length;
|
|
90
|
+
|
|
91
|
+
sections.push({
|
|
92
|
+
level: heading.level,
|
|
93
|
+
title: heading.title,
|
|
94
|
+
headerPath,
|
|
95
|
+
headerLine: heading.line,
|
|
96
|
+
text: lines.slice(heading.line, fullEnd).join("\n"),
|
|
97
|
+
ownText: lines.slice(heading.line, ownEnd).join("\n"),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return sections;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function resolveAddress(text, headerPath) {
|
|
104
|
+
if (headerPath.length === 0) {
|
|
105
|
+
throw new AddressResolutionError("a bare file resolves without section lookup");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const sections = parseMarkdownSections(text);
|
|
109
|
+
const wanted = headerPath.join("/");
|
|
110
|
+
const hits = sections.filter((section) => section.headerPath.join("/") === wanted);
|
|
111
|
+
if (hits.length > 1) {
|
|
112
|
+
throw new AddressResolutionError(
|
|
113
|
+
`address '#${wanted}' is AMBIGUOUS: ${hits.length} sections match at lines ${hits.map((hit) => hit.headerLine + 1).join(", ")}`,
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
if (hits.length === 1) return hits[0];
|
|
117
|
+
|
|
118
|
+
const parentPath = headerPath.slice(0, -1).join("/");
|
|
119
|
+
const candidates = sections
|
|
120
|
+
.filter((section) => section.headerPath.slice(0, -1).join("/") === parentPath)
|
|
121
|
+
.map((section) => section.headerPath.join("/"));
|
|
122
|
+
throw new AddressResolutionError(
|
|
123
|
+
`address '#${wanted}' matches no header. ` +
|
|
124
|
+
(candidates.length > 0
|
|
125
|
+
? `Addressable sections under '${parentPath || "(top)"}': ${candidates.join(", ")}.`
|
|
126
|
+
: `Addressable sections: ${sections.map((section) => section.headerPath.join("/")).join(", ") || "(none)"}.`),
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function usage() {
|
|
131
|
+
return "Usage: resolve-markdown.mjs [--root DIR] FILE[#h2-slug[/h3-slug]]\n";
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
async function main(argv) {
|
|
135
|
+
let root = process.cwd();
|
|
136
|
+
const args = [...argv];
|
|
137
|
+
|
|
138
|
+
if (args[0] === "--help" || args[0] === "-h") {
|
|
139
|
+
process.stdout.write(usage());
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (args[0] === "--root") {
|
|
143
|
+
if (!args[1]) throw new AddressResolutionError("--root needs a directory");
|
|
144
|
+
root = path.resolve(args[1]);
|
|
145
|
+
args.splice(0, 2);
|
|
146
|
+
}
|
|
147
|
+
if (args.length !== 1) throw new AddressResolutionError(usage().trim());
|
|
148
|
+
|
|
149
|
+
const { ref, headerPath } = parseAddress(args[0]);
|
|
150
|
+
const filePath = path.isAbsolute(ref) ? ref : path.resolve(root, ref);
|
|
151
|
+
const text = await readFile(filePath, "utf8");
|
|
152
|
+
process.stdout.write(headerPath.length === 0 ? text : resolveAddress(text, headerPath).text);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function isMainModule() {
|
|
156
|
+
const entry = process.argv[1];
|
|
157
|
+
if (!entry) return false;
|
|
158
|
+
try {
|
|
159
|
+
return realpathSync(entry) === realpathSync(fileURLToPath(import.meta.url));
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (isMainModule()) {
|
|
166
|
+
main(process.argv.slice(2)).catch((error) => {
|
|
167
|
+
process.stderr.write(`${error.name ?? "Error"}: ${error.message}\n`);
|
|
168
|
+
process.exitCode = 1;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
@@ -54,6 +54,7 @@ These are auto-delivered to every rig; their name+description are already in you
|
|
|
54
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.
|
|
55
55
|
- **claude-compaction-restore** — you just compacted (Claude). Restore from durable evidence before resuming real work.
|
|
56
56
|
- **delegating-work** — deciding who should do a task: you, a spawned subagent, or a durable peer seat that already holds the context.
|
|
57
|
+
- **loading-addressable-markdown** — a task names Markdown as `path#h2-slug` or `path#h2-slug/h3-slug` outside the context-pack library.
|
|
57
58
|
- **session-compaction-and-restore** — preparing for, or recovering from, compaction (any runtime). The write- and read-side protocol.
|
|
58
59
|
- **queue-handoff** — you're passing durable work to another seat or ending your turn. The queue is the work ledger, not chat.
|
|
59
60
|
- **refocusing** — a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
|
|
@@ -105,10 +106,6 @@ General engineering skills OpenRig ships as vendored copies. Open when the task
|
|
|
105
106
|
- **test-driven-development** — implementing a feature or bugfix: write the failing test first.
|
|
106
107
|
- **verification-before-completion** — about to claim done / passing / fixed: run the check and read the output first.
|
|
107
108
|
- **systematic-debugging** — debugging: find the root cause before the fix.
|
|
108
|
-
- **writing-plans** — writing an implementation plan.
|
|
109
|
-
- **executing-plans** — working through a written plan.
|
|
110
|
-
- **brainstorming** — divergent ideation before converging.
|
|
111
|
-
- **using-superpowers** — discovering and using the vendored "superpowers" skill set.
|
|
112
109
|
- **agent-browser** — driving a browser (screenshot / screencast) from an agent.
|
|
113
110
|
- **frontend-design** — designing frontend / UI.
|
|
114
111
|
- **dogfood** — web-QA / dogfooding a shipped UI.
|
|
@@ -107,9 +107,9 @@ tenure:
|
|
|
107
107
|
- **tombstone** — one line: what this tenure did, written by the retiring agent itself
|
|
108
108
|
|
|
109
109
|
**Why it works (zero search infrastructure):** any timestamped record — a git commit, a
|
|
110
|
-
qitem, a
|
|
111
|
-
generation + session token → wake that tenure. One row per handover, append-only.
|
|
112
|
-
|
|
110
|
+
qitem, a NOTES.md 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. The
|
|
112
|
+
ledger is the tenure record; work-tree notes remain lived context, not identity state.
|
|
113
113
|
|
|
114
114
|
**Crash-ended tenures** get their row appended **post-hoc** by the crash-cart / restore path,
|
|
115
115
|
flagged **honest-approximate** (the boot-captured session id is what makes this recoverable).
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: software-for-agents
|
|
3
3
|
description: |
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
(skills, instructions, bootstrap files, schemas, conventions), and most "bugs" are coherence gaps in
|
|
9
|
-
that layer, not broken functions. Read this to form the correct mental model so your fixes land at the
|
|
10
|
-
precise spot that stops the footgun for every future rig — not just patch a symptom. It also covers why STUDIO APPS skip the mockup phase — for an agent-built app the build is as fast as the mockup, so the PRD is the fleshed intent (velocity as method, not a quality waiver). NOTE: the
|
|
11
|
-
bug-tolerance in this model is SCOPED to agent-managed software; the OpenRig core and rigs.to stay
|
|
12
|
-
rock-solid — see the scope block up top before you apply anything here.
|
|
4
|
+
Use when building, modifying, or diagnosing an OpenRig or studio-box system; when surprising behavior
|
|
5
|
+
looks like a code bug but may come from Markdown, YAML, JSON, bootstrap files, schemas, skills, or
|
|
6
|
+
conventions; or when deciding whether an agent-built studio app needs a separate mockup phase. NOT for
|
|
7
|
+
treating defects in OpenRig core or rigs.to as tolerable control-plane drift.
|
|
13
8
|
metadata:
|
|
14
9
|
openrig:
|
|
15
10
|
stage: factory-approved
|
|
@@ -18,16 +18,16 @@ workflow:
|
|
|
18
18
|
skill_refs: [openrig-user, backlog-capture]
|
|
19
19
|
preferred_targets: [intake-lead@conveyor]
|
|
20
20
|
planner:
|
|
21
|
-
skill_refs: [openrig-user,
|
|
21
|
+
skill_refs: [openrig-user, verification-before-completion]
|
|
22
22
|
preferred_targets: [plan-planner@conveyor]
|
|
23
23
|
builder:
|
|
24
|
-
skill_refs: [openrig-user
|
|
24
|
+
skill_refs: [openrig-user]
|
|
25
25
|
preferred_targets: [build-builder@conveyor]
|
|
26
26
|
reviewer:
|
|
27
27
|
skill_refs: [openrig-user, review-team]
|
|
28
28
|
preferred_targets: [review-reviewer@conveyor]
|
|
29
29
|
closer:
|
|
30
|
-
skill_refs: [openrig-user
|
|
30
|
+
skill_refs: [openrig-user]
|
|
31
31
|
preferred_targets: [intake-lead@conveyor]
|
|
32
32
|
steps:
|
|
33
33
|
- id: intake
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public capability and source-map width for the default onboarding walk.
|
|
2
2
|
name: onboarding-width
|
|
3
|
-
version: "0.5.
|
|
3
|
+
version: "0.5.8"
|
|
4
4
|
# OPR.0.5.6.10 — affordances knowledge (what this system can do) is world
|
|
5
5
|
# content under the coining-session definitions.
|
|
6
6
|
taxonomy: world
|