@openrig/cli 0.4.6 → 0.4.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/guidance/CULTURE-default.md +19 -0
- package/daemon/assets/guidance/openrig-start.md +20 -5
- package/daemon/assets/plugins/openrig-core/README.md +1 -1
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +120 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +36 -22
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +7 -13
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +88 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +189 -105
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
- package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +0 -9
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +13 -46
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +8 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux-transport.js +8 -1
- package/daemon/dist/adapters/cmux-transport.js.map +1 -1
- package/daemon/dist/adapters/cmux.d.ts +9 -0
- package/daemon/dist/adapters/cmux.d.ts.map +1 -1
- package/daemon/dist/adapters/cmux.js +21 -0
- package/daemon/dist/adapters/cmux.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +4 -2
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +30 -9
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +7 -2
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
- package/daemon/dist/adapters/yolo-mode.js +49 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -0
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
- package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
- package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
- package/daemon/dist/domain/builtin-policy-reference.js +58 -0
- package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
- package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
- package/daemon/dist/domain/cmux-layout-service.js +100 -28
- package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
- package/daemon/dist/domain/context-monitor.d.ts +2 -0
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +14 -0
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +12 -10
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +3 -2
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -1
- package/daemon/dist/domain/hosts/read-through.js +1 -1
- package/daemon/dist/domain/hosts/read-through.js.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
- package/daemon/dist/domain/hosts/remote-daemon-http.js +8 -5
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +11 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +3 -12
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +57 -15
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +23 -0
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/projection-lane.d.ts +7 -0
- package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
- package/daemon/dist/domain/projection-lane.js +28 -0
- package/daemon/dist/domain/projection-lane.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +19 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +46 -6
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +14 -10
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +33 -12
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +90 -6
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/review/compose.d.ts +77 -4
- package/daemon/dist/domain/review/compose.d.ts.map +1 -1
- package/daemon/dist/domain/review/compose.js +152 -16
- package/daemon/dist/domain/review/compose.js.map +1 -1
- package/daemon/dist/domain/review/fleet-compose.js +1 -1
- package/daemon/dist/domain/review/fleet-compose.js.map +1 -1
- package/daemon/dist/domain/review/gather.d.ts +1 -1
- package/daemon/dist/domain/review/gather.d.ts.map +1 -1
- package/daemon/dist/domain/review/gather.js +92 -67
- package/daemon/dist/domain/review/gather.js.map +1 -1
- package/daemon/dist/domain/review/proof-io.d.ts +2 -0
- package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
- package/daemon/dist/domain/review/proof-io.js +38 -0
- package/daemon/dist/domain/review/proof-io.js.map +1 -0
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +10 -1
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +45 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +75 -1
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +6 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +8 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +18 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +202 -10
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +11 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +35 -1
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +25 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +5 -0
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
- package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
- package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +22 -1
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +57 -20
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +7 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +17 -0
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +44 -0
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
- package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
- package/daemon/dist/domain/slices/qitem-membership.js +60 -0
- package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +157 -11
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.js +422 -45
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +71 -3
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +2 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +12 -11
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +61 -28
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +27 -10
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/terminal/herdr-adapter.js +74 -33
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
- package/daemon/dist/domain/transcript-capture.d.ts +3 -0
- package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-capture.js +28 -0
- package/daemon/dist/domain/transcript-capture.js.map +1 -1
- package/daemon/dist/domain/transcript-store.d.ts +10 -0
- package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
- package/daemon/dist/domain/transcript-store.js +26 -0
- package/daemon/dist/domain/transcript-store.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +21 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.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 +9 -4
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +2 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/mission-control.js +1 -1
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/missions.d.ts +7 -0
- package/daemon/dist/routes/missions.d.ts.map +1 -1
- package/daemon/dist/routes/missions.js +6 -1
- package/daemon/dist/routes/missions.js.map +1 -1
- package/daemon/dist/routes/ps.d.ts.map +1 -1
- package/daemon/dist/routes/ps.js +5 -1
- package/daemon/dist/routes/ps.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +9 -2
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +29 -10
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +141 -135
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/sessions.js +2 -1
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts.map +1 -1
- package/daemon/dist/routes/slices.js +48 -38
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/transcripts.d.ts.map +1 -1
- package/daemon/dist/routes/transcripts.js +62 -33
- package/daemon/dist/routes/transcripts.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +42 -12
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -0
- package/daemon/docs/reference/rig-spec.md +19 -0
- package/daemon/policies/builtin/locked.policy.md +24 -0
- package/daemon/policies/builtin/open.policy.md +24 -0
- package/daemon/policies/builtin/standard.policy.md +25 -0
- package/daemon/policies/builtin/yolo.policy.md +20 -0
- package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
- package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/agent.yaml +12 -2
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +2 -1
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +2 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
- package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
- package/daemon/specs/agents/shared/agent.yaml +5 -8
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -8
- package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
- package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
- package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
- package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +23 -8
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +0 -5
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +1 -6
- package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
- package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
- package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
- package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
- package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
- package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
- package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
- package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
- package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +13 -2
- package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
- package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
- package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
- package/dist/bin-wrapper.d.ts.map +1 -1
- package/dist/bin-wrapper.js +3 -1
- package/dist/bin-wrapper.js.map +1 -1
- package/dist/build-info.js +3 -3
- package/dist/cli-error.d.ts +33 -0
- package/dist/cli-error.d.ts.map +1 -0
- package/dist/cli-error.js +94 -0
- package/dist/cli-error.js.map +1 -0
- package/dist/commands/config-init-workspace.js +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +17 -11
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/host.d.ts.map +1 -1
- package/dist/commands/host.js +24 -10
- package/dist/commands/host.js.map +1 -1
- package/dist/commands/proof.js +1 -1
- package/dist/commands/proof.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +16 -2
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +103 -24
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/rig.d.ts.map +1 -1
- package/dist/commands/rig.js +122 -0
- package/dist/commands/rig.js.map +1 -1
- package/dist/commands/scope.js +2 -2
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +118 -24
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +131 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/slack.d.ts +37 -0
- package/dist/commands/slack.d.ts.map +1 -0
- package/dist/commands/slack.js +274 -0
- package/dist/commands/slack.js.map +1 -0
- package/dist/commands/ui.d.ts +1 -0
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +2 -0
- package/dist/commands/ui.js.map +1 -1
- package/dist/commands/up.js +1 -1
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +3 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +45 -14
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +6 -1
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +15 -6
- package/dist/host-registry.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
- package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
- package/dist/lib/scope/scaffold-placeholder.js +98 -0
- package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +57 -20
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
- package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
- package/dist/lib/scope-templates/bug-fix.md +1 -1
- package/dist/lib/scope-templates/implementation-prd.md +1 -1
- package/dist/lib/scope-templates/mission-notes.md +7 -2
- package/dist/lib/scope-templates/mission-placeholder.md +1 -1
- package/dist/lib/scope-templates/mission-progress.md +1 -1
- package/dist/lib/scope-templates/mission-release.md +1 -1
- package/dist/lib/scope-templates/placeholder.md +1 -1
- package/dist/lib/scope-templates/proof.md +1 -1
- package/dist/lib/scope-templates/release-feature.md +1 -1
- package/dist/lib/scope-templates/research.md +1 -1
- package/dist/lib/scope-templates/slice-progress.md +1 -1
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +2 -2
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/slack/config.d.ts +41 -0
- package/dist/slack/config.d.ts.map +1 -0
- package/dist/slack/config.js +60 -0
- package/dist/slack/config.js.map +1 -0
- package/dist/slack/inbound.d.ts +75 -0
- package/dist/slack/inbound.d.ts.map +1 -0
- package/dist/slack/inbound.js +133 -0
- package/dist/slack/inbound.js.map +1 -0
- package/dist/slack/message.d.ts +26 -0
- package/dist/slack/message.d.ts.map +1 -0
- package/dist/slack/message.js +60 -0
- package/dist/slack/message.js.map +1 -0
- package/dist/slack/outbound.d.ts +39 -0
- package/dist/slack/outbound.d.ts.map +1 -0
- package/dist/slack/outbound.js +52 -0
- package/dist/slack/outbound.js.map +1 -0
- package/dist/slack/queue-bridge.d.ts +56 -0
- package/dist/slack/queue-bridge.d.ts.map +1 -0
- package/dist/slack/queue-bridge.js +114 -0
- package/dist/slack/queue-bridge.js.map +1 -0
- package/dist/slack/secrets.d.ts +21 -0
- package/dist/slack/secrets.d.ts.map +1 -0
- package/dist/slack/secrets.js +73 -0
- package/dist/slack/secrets.js.map +1 -0
- package/dist/slack/slack-api.d.ts +49 -0
- package/dist/slack/slack-api.d.ts.map +1 -0
- package/dist/slack/slack-api.js +110 -0
- package/dist/slack/slack-api.js.map +1 -0
- package/dist/slack/state-store.d.ts +62 -0
- package/dist/slack/state-store.d.ts.map +1 -0
- package/dist/slack/state-store.js +132 -0
- package/dist/slack/state-store.js.map +1 -0
- package/package.json +1 -1
- package/ui/dist/assets/{index-zrFqS7gL.js → index-DkNi0RT8.js} +184 -184
- package/ui/dist/assets/index-N-SdPj-I.css +32 -0
- package/ui/dist/index.html +2 -2
- package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
- package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +0 -86
- package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +0 -158
- package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
- package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -113
- package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
- package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
- package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
- package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
- package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
- package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
- package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
- package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -210
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
- package/ui/dist/assets/index-CFqxa0zW.css +0 -32
|
@@ -174,12 +174,31 @@ edges:
|
|
|
174
174
|
| `name` | string | yes | — | Rig name. Used in session naming (`{pod}-{member}@{name}`), snapshot identification, and spec library lookup. |
|
|
175
175
|
| `summary` | string | no | — | Human-readable description. Shown in spec library, review surfaces, and `rig specs show`. |
|
|
176
176
|
| `culture_file` | string | no | — | Relative path to a rig-wide culture/constitution file. Must be a safe relative path (no `..`, no absolute). |
|
|
177
|
+
| `permission_policy` | string | no | — | Permission policy attached to the rig. Either a built-in (`builtin:locked`, `builtin:standard`, `builtin:open`, `builtin:operator`) or a safe relative path to a custom policy file (resolved from this spec's directory; no `..`, no absolute). Absent leaves the default floor. A member may set its own `permission_policy`, which takes precedence over the rig-level one. See "Attaching a permission policy" below. |
|
|
177
178
|
| `docs` | Doc[] | no | — | Documentation files that should travel with the rig. Included in rig bundles. Each entry has a `path` field (safe relative path). The engine does not consume these — they are for humans and agents setting up the environment before launch. |
|
|
178
179
|
| `startup` | StartupBlock | no | — | Rig-level startup files and actions. Applied to all members via the startup layering model. |
|
|
179
180
|
| `services` | ServicesBlock | no | — | Optional managed services (Docker Compose). When present, services boot before any agent launches. |
|
|
180
181
|
| `pods` | Pod[] | yes | — | At least one pod required. Each pod is a bounded context containing members and pod-local edges. |
|
|
181
182
|
| `edges` | CrossPodEdge[] | no | `[]` | Cross-pod edges connecting members in different pods. Must use fully-qualified `pod.member` IDs. |
|
|
182
183
|
|
|
184
|
+
### Attaching a permission policy
|
|
185
|
+
|
|
186
|
+
Attach a policy to a rig with `permission_policy`, either at the rig level or on a member:
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
# a built-in, by name:
|
|
190
|
+
permission_policy: builtin:standard
|
|
191
|
+
|
|
192
|
+
# or a custom policy file, by relative path (resolved from this spec's directory):
|
|
193
|
+
permission_policy: policies/my-cautious-dev.policy.md
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Built-in policies (`locked` / `standard` / `open` / `operator`) are read-only and are
|
|
197
|
+
referenced as `builtin:<name>`. A custom policy lives in your own project and is
|
|
198
|
+
referenced by a safe relative path (no `..`, no absolute). A shipped example of the
|
|
199
|
+
custom shape is `packages/daemon/policies/examples/my-cautious-dev.policy.md` — copy it
|
|
200
|
+
into your project and edit it to taste.
|
|
201
|
+
|
|
183
202
|
---
|
|
184
203
|
|
|
185
204
|
## Pod
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: builtin
|
|
3
|
+
name: locked
|
|
4
|
+
surface: config
|
|
5
|
+
policy_schema_version: 1
|
|
6
|
+
description: Whitelist posture for untrusted or sensitive work — implicit deny-all plus a minimal explicit allow. Tight, but far more usable than raw harness-default.
|
|
7
|
+
default_posture: deny
|
|
8
|
+
allow: [run_toolchain, rig_up, rig_down]
|
|
9
|
+
ask: []
|
|
10
|
+
deny: []
|
|
11
|
+
destructive_class: [delete_everything, drop_persistent_store, reset_or_discard_vcs, delete_files, force_push]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Locked (built-in policy)
|
|
15
|
+
|
|
16
|
+
The tightest built-in. Everything is denied unless explicitly allowed. Use for untrusted rigs, sensitive repos, or work where the blast radius must be minimal.
|
|
17
|
+
|
|
18
|
+
- **default_posture: deny** — any semantic action not in `allow` is denied.
|
|
19
|
+
- **allow** — only the dev toolchain (`run_toolchain`: npm/node/tsc/test/lint) and rig lifecycle (`rig_up`/`rig_down`). No push, no PR, no publish, no arbitrary shell, no network egress beyond what the toolchain needs, no secret reads.
|
|
20
|
+
- **destructive_class** — listed for completeness; moot here (default-deny already blocks them).
|
|
21
|
+
|
|
22
|
+
**The usability FLOOR is separate and always on** (flag surface, not a config knob): Claude `acceptEdits` + Codex `workspace-write` (the edit/sandbox floor); Pi `--no-approve` is a resource-TRUST posture, not a permission floor (Pi has no permission surface). So a Locked seat can still edit files — it just can't reach beyond the minimal allow-set without an explicit grant.
|
|
23
|
+
|
|
24
|
+
**Translation is the skill's job.** This spec is harness-neutral semantic intent; the `applying-a-permission-policy` skill translates it to each harness (Claude prefix rules / Codex posture / Pi bit) with the version-stamped caveats. Grounded in schema `a8dba0d9`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: builtin
|
|
3
|
+
name: open
|
|
4
|
+
surface: config
|
|
5
|
+
policy_schema_version: 1
|
|
6
|
+
description: High-trust denylist posture — everything allowed except the explicitly-destructive class, which asks. Just below YOLO.
|
|
7
|
+
default_posture: allow
|
|
8
|
+
allow: []
|
|
9
|
+
ask: []
|
|
10
|
+
deny: []
|
|
11
|
+
destructive_class: [delete_everything, drop_persistent_store, reset_or_discard_vcs]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Open (built-in policy)
|
|
15
|
+
|
|
16
|
+
High-trust posture: everything runs without a prompt except the catastrophic-destructive class. Use for trusted autonomous fleets that still want a backstop on disk-destroy-class acts. One step below YOLO.
|
|
17
|
+
|
|
18
|
+
- **default_posture: allow** — everything, including push, PR, publish, merge/release, force_push, arbitrary shell, network, secrets, topology.
|
|
19
|
+
- **destructive_class → ask** — `delete_everything`, `drop_persistent_store`, `reset_or_discard_vcs` ASK, never silent-block (best-effort-safe). This is the only carve-out.
|
|
20
|
+
- Difference from Standard: Standard ASKs the release-class (PR/publish/merge/force_push); Open ALLOWs them and asks only the destructive class.
|
|
21
|
+
|
|
22
|
+
**Autonomous note:** the destructive-class `ask` will freeze a fully-autonomous seat if such an action is attempted — which is the intended backstop. An autonomous fleet that must never pause even on a disk-destroy-class act uses YOLO (flag-surface full-bypass), not Open.
|
|
23
|
+
|
|
24
|
+
**FLOOR (always on, flag surface):** Claude `acceptEdits` + Codex `workspace-write` (the edit/sandbox floor); Pi `--no-approve` is a resource-TRUST posture, not a permission floor (Pi has no permission surface). **Translation is the skill's job.** Grounded in schema `a8dba0d9`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: builtin
|
|
3
|
+
name: standard
|
|
4
|
+
surface: config
|
|
5
|
+
policy_schema_version: 1
|
|
6
|
+
description: The recommended default — the 80% software-factory interactive-dev posture. Routine dev including push; the outward/release/history-rewriting acts ask the human.
|
|
7
|
+
default_posture: allow
|
|
8
|
+
allow: [push_to_remote]
|
|
9
|
+
ask: [create_pr, publish_package, merge_or_release, force_push]
|
|
10
|
+
deny: []
|
|
11
|
+
destructive_class: [delete_everything, drop_persistent_store, reset_or_discard_vcs]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Standard ⭐ (built-in policy — recommended default)
|
|
15
|
+
|
|
16
|
+
The everyday software-factory posture for INTERACTIVE dev. Routine work runs without prompts; the consequential outward and history-rewriting acts defer to the human.
|
|
17
|
+
|
|
18
|
+
- **default_posture: allow** — routine dev (toolchain, arbitrary shell, install deps, scoped file deletion, network, topology) runs without a prompt.
|
|
19
|
+
- **allow: [push_to_remote]** — routine `git push` is allowed (pinned explicitly; the founder rejected gating push as a default).
|
|
20
|
+
- **ask: [create_pr, publish_package, merge_or_release, force_push]** — outward/release/history-rewriting acts ASK the human. **ASK ≠ deny**: OpenRig bakes no block; ASK = defer to the human, the founder's explicit beyond-floor default. `force_push` is additionally best-effort on Claude (prefix rules can't reliably split `git push --force`), so ASK is the honest disposition, not a can't-enforce deny.
|
|
21
|
+
- **destructive_class → ask** — `delete_everything`, `drop_persistent_store`, `reset_or_discard_vcs` default to ASK, never a silent block (best-effort-safe).
|
|
22
|
+
|
|
23
|
+
**INTERACTIVE-dev posture:** an `ask` freezes an autonomous seat by design — autonomous fleets use Open or YOLO, not Standard.
|
|
24
|
+
|
|
25
|
+
**FLOOR (always on, flag surface):** Claude `acceptEdits` + Codex `workspace-write` (the edit/sandbox floor); Pi `--no-approve` is a resource-TRUST posture, not a permission floor (Pi has no permission surface). **Translation is the skill's job** (harness-neutral intent → per-harness format, caveated). Grounded in schema `a8dba0d9`; the ask-set is pinned per cold-transfer `627abbb6`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: builtin
|
|
3
|
+
name: yolo
|
|
4
|
+
surface: flag
|
|
5
|
+
launch_posture: full_bypass
|
|
6
|
+
policy_schema_version: 1
|
|
7
|
+
description: Full-bypass posture — the flag-surface YOLO opt-in. Everything runs, nothing prompts. Guardrailed by skills and starter markdown, not by permission-blocking.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# YOLO (built-in policy — flag surface)
|
|
11
|
+
|
|
12
|
+
The maximum-permissive built-in. The seat runs the harness with its full-bypass launch flag: Claude `--dangerously-skip-permissions`, Codex full-bypass, Pi `--approve`. Nothing prompts; nothing is denied. Use only for fully-trusted autonomous work where any pause is unacceptable.
|
|
13
|
+
|
|
14
|
+
**APPLICATION is deterministic, NOT skill-translated.** YOLO is a `surface: flag` policy: it resolves to a stable launch flag, so it is applied by the deterministic flag-surface opt-in — the rip-out slice's YOLO setting (OPR.0.4.8.2). The `applying-a-permission-policy` skill does **NOT** translate this policy; it simply points at that setting. This is the two-surface distinction: the flag surface is stable enough for deterministic code, so it does not pay the skill-indirection tax.
|
|
15
|
+
|
|
16
|
+
**Config policies are MOOT when YOLO is on.** The full-bypass launch flag overrides any Claude prefix rules / Codex posture, so an attached config-surface policy (Locked/Standard/Open) has no effect while YOLO is active. Pick YOLO OR a config policy, not both.
|
|
17
|
+
|
|
18
|
+
**Guardrails come from skills + starter markdown, not permission-blocking** — a YOLO seat is bounded by what its skills and operating context tell it to do, since the permission layer imposes nothing.
|
|
19
|
+
|
|
20
|
+
**Naming lineage:** the founder's FINAL DESIGN named the fourth built-in **Operator**. The two-surface refinement (2026-08-03) subsumed Operator into this flag-surface full-bypass built-in and renamed it **YOLO** to name the posture plainly; the picker presents all four named postures (Locked / Standard / Open / YOLO) uniformly. Grounded in schema `a8dba0d9`.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
source: custom
|
|
3
|
+
name: my-cautious-dev
|
|
4
|
+
surface: config
|
|
5
|
+
policy_schema_version: 1
|
|
6
|
+
description: An example personal policy — everyday development runs freely, but anything that leaves this machine (push, publish, network) checks with you first.
|
|
7
|
+
default_posture: allow
|
|
8
|
+
allow: []
|
|
9
|
+
ask: [push_to_remote, create_pr, publish_package, merge_or_release, force_push, network_egress]
|
|
10
|
+
deny: []
|
|
11
|
+
destructive_class: [delete_everything, drop_persistent_store, reset_or_discard_vcs]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# my-cautious-dev (example custom policy)
|
|
15
|
+
|
|
16
|
+
A starting point you can copy and adjust. It shows the shape of a personal policy you
|
|
17
|
+
keep in your own project and attach by path — it is **not** one of the built-ins.
|
|
18
|
+
|
|
19
|
+
- **default_posture: allow** — everyday development (editing, building, running the
|
|
20
|
+
toolchain, scoped file changes) runs without a prompt.
|
|
21
|
+
- **ask** — anything that leaves this machine checks with you first: pushing to a remote,
|
|
22
|
+
opening a pull request, publishing a package, merging or releasing, force-pushing, and
|
|
23
|
+
network access. "Ask" means *check with me*, not *blocked*.
|
|
24
|
+
- **destructive_class → ask** — wide-blast-radius actions (wiping a workspace, dropping a
|
|
25
|
+
data store, discarding version-control state) ask before they run.
|
|
26
|
+
|
|
27
|
+
## Using it
|
|
28
|
+
|
|
29
|
+
Keep a policy like this in your own project, then point a rig at it by **relative path**
|
|
30
|
+
— resolved from the directory of the rig spec that references it:
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
# rig.yaml
|
|
34
|
+
permission_policy: policies/my-cautious-dev.policy.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Copy it, rename it, and edit the lists to taste — it's yours to change. The built-in
|
|
38
|
+
policies (locked / standard / open / operator) stay read-only and are referenced as
|
|
39
|
+
`builtin:<name>`; a custom policy like this one lives in your project and is referenced
|
|
40
|
+
by path.
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, systematic-debugging, verification-before-completion, vault-user]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: [development-team, test-driven-development, systematic-debugging, executing-plans, verification-before-completion]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: [orchestration-team, backlog-capture, writing-plans, executing-plans, verification-before-completion, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: [requirements-writer, context-builder, writing-plans, verification-before-completion]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: [review-team, plan-review, systematic-debugging, verification-before-completion]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, development-team, frontend-design, verification-before-completion, writing-plans, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -26,4 +27,13 @@ startup:
|
|
|
26
27
|
- path: guidance/role.md
|
|
27
28
|
delivery_hint: send_text
|
|
28
29
|
required: true
|
|
29
|
-
actions:
|
|
30
|
+
actions:
|
|
31
|
+
- type: send_text
|
|
32
|
+
value: >-
|
|
33
|
+
A task is coming. BEFORE you do anything else, load and invoke your process skills NOW
|
|
34
|
+
using your runtime's supported skill mechanism: using-superpowers, frontend-design,
|
|
35
|
+
verification-before-completion, writing-plans, brainstorming. Load them first, then begin
|
|
36
|
+
the work.
|
|
37
|
+
phase: after_ready
|
|
38
|
+
applies_on: [fresh_start, restore]
|
|
39
|
+
idempotent: true
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, development-team, test-driven-development, systematic-debugging, verification-before-completion, writing-plans, executing-plans]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -26,4 +27,13 @@ startup:
|
|
|
26
27
|
- path: guidance/role.md
|
|
27
28
|
delivery_hint: send_text
|
|
28
29
|
required: true
|
|
29
|
-
actions:
|
|
30
|
+
actions:
|
|
31
|
+
- type: send_text
|
|
32
|
+
value: >-
|
|
33
|
+
A task is coming. BEFORE you do anything else, load and invoke your process skills NOW
|
|
34
|
+
using your runtime's supported skill mechanism: using-superpowers, test-driven-development,
|
|
35
|
+
systematic-debugging, verification-before-completion, writing-plans, executing-plans. Load
|
|
36
|
+
them first, then begin the work.
|
|
37
|
+
phase: after_ready
|
|
38
|
+
applies_on: [fresh_start, restore]
|
|
39
|
+
idempotent: true
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, test-driven-development, development-team, systematic-debugging, verification-before-completion, agent-browser, dogfood, writing-plans, executing-plans]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -26,4 +27,13 @@ startup:
|
|
|
26
27
|
- path: guidance/role.md
|
|
27
28
|
delivery_hint: send_text
|
|
28
29
|
required: true
|
|
29
|
-
actions:
|
|
30
|
+
actions:
|
|
31
|
+
- type: send_text
|
|
32
|
+
value: >-
|
|
33
|
+
A task is coming. BEFORE you do anything else, load and invoke your process skills NOW
|
|
34
|
+
using your runtime's supported skill mechanism: using-superpowers, test-driven-development,
|
|
35
|
+
systematic-debugging, verification-before-completion, agent-browser, dogfood, writing-plans,
|
|
36
|
+
executing-plans. Load them first, then begin the work.
|
|
37
|
+
phase: after_ready
|
|
38
|
+
applies_on: [fresh_start, restore]
|
|
39
|
+
idempotent: true
|
|
@@ -6,6 +6,7 @@ You are the quality assurance side of a dev pair. You gate every edit the implem
|
|
|
6
6
|
|
|
7
7
|
Load these packaged skills now before reviewing work or dogfooding:
|
|
8
8
|
- `using-superpowers`
|
|
9
|
+
- `test-driven-development`
|
|
9
10
|
- `openrig-user`
|
|
10
11
|
- `mission-slice-sop`
|
|
11
12
|
- `development-team`
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, dogfood, systematic-debugging, verification-before-completion]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, verification-before-completion]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, orchestration-team, systematic-debugging, verification-before-completion, writing-plans, executing-plans, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -26,4 +27,13 @@ startup:
|
|
|
26
27
|
- path: guidance/role.md
|
|
27
28
|
delivery_hint: send_text
|
|
28
29
|
required: true
|
|
29
|
-
actions:
|
|
30
|
+
actions:
|
|
31
|
+
- type: send_text
|
|
32
|
+
value: >-
|
|
33
|
+
A task is coming. BEFORE you do anything else, load and invoke your process skills NOW
|
|
34
|
+
using your runtime's supported skill mechanism: using-superpowers, systematic-debugging,
|
|
35
|
+
verification-before-completion, writing-plans, executing-plans, brainstorming. Load them
|
|
36
|
+
first, then begin the work.
|
|
37
|
+
phase: after_ready
|
|
38
|
+
applies_on: [fresh_start, restore]
|
|
39
|
+
idempotent: true
|
|
@@ -15,8 +15,6 @@ profiles:
|
|
|
15
15
|
default:
|
|
16
16
|
uses:
|
|
17
17
|
skills:
|
|
18
|
-
- openrig-user
|
|
19
|
-
- mission-slice-sop
|
|
20
18
|
- office-hours
|
|
21
19
|
- context-builder
|
|
22
20
|
- requirements-writer
|
|
@@ -24,6 +22,7 @@ profiles:
|
|
|
24
22
|
- plan-review
|
|
25
23
|
- exec-summary
|
|
26
24
|
- backlog-capture
|
|
25
|
+
plugins: [shared:openrig-core]
|
|
27
26
|
runtime_resources:
|
|
28
27
|
- shared:claude-default-settings
|
|
29
28
|
- shared:claude-default-mcp
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: []
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [
|
|
14
|
+
skills: []
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -11,9 +11,10 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers,
|
|
14
|
+
skills: [using-superpowers, review-team, systematic-debugging, verification-before-completion, writing-plans, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
|
+
plugins: [shared:openrig-core]
|
|
17
18
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
19
|
|
|
19
20
|
resources:
|
|
@@ -26,4 +27,13 @@ startup:
|
|
|
26
27
|
- path: guidance/role.md
|
|
27
28
|
delivery_hint: send_text
|
|
28
29
|
required: true
|
|
29
|
-
actions:
|
|
30
|
+
actions:
|
|
31
|
+
- type: send_text
|
|
32
|
+
value: >-
|
|
33
|
+
A task is coming. BEFORE you do anything else, load and invoke your process skills NOW
|
|
34
|
+
using your runtime's supported skill mechanism: using-superpowers, systematic-debugging,
|
|
35
|
+
verification-before-completion, writing-plans, brainstorming. Load them first, then begin
|
|
36
|
+
the work.
|
|
37
|
+
phase: after_ready
|
|
38
|
+
applies_on: [fresh_start, restore]
|
|
39
|
+
idempotent: true
|
|
@@ -16,18 +16,10 @@ resources:
|
|
|
16
16
|
path: skills/process/frontend-design
|
|
17
17
|
- id: using-superpowers
|
|
18
18
|
path: skills/process/using-superpowers
|
|
19
|
-
- id: openrig-user
|
|
20
|
-
path: skills/core/openrig-user
|
|
21
|
-
- id: openrig-operator
|
|
22
|
-
path: skills/core/openrig-operator
|
|
23
|
-
- id: openrig-installer
|
|
24
|
-
path: skills/core/openrig-installer
|
|
25
19
|
- id: openrig-architect
|
|
26
20
|
path: skills/core/openrig-architect
|
|
27
21
|
- id: rig-lifecycle
|
|
28
22
|
path: skills/core/rig-lifecycle
|
|
29
|
-
- id: mission-slice-sop
|
|
30
|
-
path: skills/core/mission-slice-sop
|
|
31
23
|
- id: systematic-debugging
|
|
32
24
|
path: skills/process/systematic-debugging
|
|
33
25
|
- id: test-driven-development
|
|
@@ -57,6 +49,11 @@ resources:
|
|
|
57
49
|
path: skills/pm/exec-summary
|
|
58
50
|
- id: backlog-capture
|
|
59
51
|
path: skills/pm/backlog-capture
|
|
52
|
+
plugins:
|
|
53
|
+
- id: openrig-core
|
|
54
|
+
source:
|
|
55
|
+
kind: local
|
|
56
|
+
path: ~/.openrig/plugins/openrig-core
|
|
60
57
|
runtime_resources:
|
|
61
58
|
- id: claude-default-settings
|
|
62
59
|
path: runtime/claude-settings.fragment.json
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-starters
|
|
3
|
+
description: Use when creating, refreshing, packaging, inspecting, promoting, or deprecating a named per-seat starting point — Agent Starter manifest authoring, the 6-state lifecycle (captured → named → inspectable → used → promoted → deprecated), provenance honesty, and refusal rules. NOT a VM image; a managed starting point composed from agent role + startup context + optional native session source + provenance.
|
|
4
|
+
metadata:
|
|
5
|
+
openrig:
|
|
6
|
+
stage: factory-approved
|
|
7
|
+
sibling_skills:
|
|
8
|
+
- claude-compaction-restore
|
|
9
|
+
- mental-model-ha
|
|
10
|
+
- scope-recovery
|
|
11
|
+
- session-compaction-and-restore
|
|
12
|
+
- agent-startup-and-context-ingestion
|
|
13
|
+
- composable-priming-packs
|
|
14
|
+
- session-source-fork
|
|
15
|
+
- seat-continuity-and-handover
|
|
16
|
+
- claude-compact-in-place
|
|
17
|
+
- pre-maintenance-agent-preservation
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Agent Starters
|
|
21
|
+
|
|
22
|
+
A named, reusable per-seat starting point. Composes an agent role, startup
|
|
23
|
+
context, optional native session source, and provenance into something a
|
|
24
|
+
user or rig can choose when creating, refreshing, or packaging a seat.
|
|
25
|
+
|
|
26
|
+
"Agent image" is the analogy. **Agent Starter is the cleaner product
|
|
27
|
+
noun.** This is NOT a VM image — it is a managed starting point for an
|
|
28
|
+
agent seat, with provenance you can inspect.
|
|
29
|
+
|
|
30
|
+
## Use this when
|
|
31
|
+
|
|
32
|
+
- Creating a new seat from a known-good starting context.
|
|
33
|
+
- Refreshing a seat with `rig expand` and `starter_ref`.
|
|
34
|
+
- Authoring a new starter (registry entry).
|
|
35
|
+
- Inspecting an existing starter's provenance, freshness, or recommended status.
|
|
36
|
+
- Promoting / deprecating starters in the registry.
|
|
37
|
+
- Composing a starter with a Composable Priming Pack (record manifest id/version, runtime, source session id or transcript path, ready-check evidence, freshness state).
|
|
38
|
+
|
|
39
|
+
## Don't use this when
|
|
40
|
+
|
|
41
|
+
- You want VM-style deterministic state capture. Starters don't capture VM state.
|
|
42
|
+
- You want to copy provider auth material into a starter. **Starters refer to session sources and context; they do NOT copy credentials.**
|
|
43
|
+
|
|
44
|
+
## What makes a starter valuable
|
|
45
|
+
|
|
46
|
+
A starter is valuable when it is **functional** — it carries the context the seat needs to do its task well. Functional is the *only* measure of a good starter. Size is not: a smaller starter is not a better one, and a bigger one is not worse. Whatever it took for the seat to become genuinely capable at its job is the right starter — 80K tokens or 800K.
|
|
47
|
+
|
|
48
|
+
Capture the seat as it naturally is at a functional, proven point. Don't pad it with context the seat doesn't use, and — just as important — don't strip context out to make it smaller. Size is an *outcome* of what the seat needed, never a target.
|
|
49
|
+
|
|
50
|
+
Never compact, summarize, or shrink a seat in order to make or "lean" a starter. There is nothing valuable in "smaller," and compaction is lossy — you would trade away the exact capability the starter exists to preserve. (Compaction is a separate last-resort step for a seat genuinely near its context limit, with its own before/after plan — never part of capturing a starter.)
|
|
51
|
+
|
|
52
|
+
## State model — 6 states
|
|
53
|
+
|
|
54
|
+
1. **Captured** — a useful seat/session/context pattern is identified.
|
|
55
|
+
2. **Named** — it becomes an Agent Starter with stable id and owner.
|
|
56
|
+
3. **Inspectable** — runtime, context inputs, session source, and provenance are visible.
|
|
57
|
+
4. **Used** — a rig member or `rig expand` operation starts from it.
|
|
58
|
+
5. **Promoted** — evidence shows it is recommended for a role or bundle.
|
|
59
|
+
6. **Deprecated** — replaced, stale, unsafe, or incompatible.
|
|
60
|
+
|
|
61
|
+
## Failure modes (5)
|
|
62
|
+
|
|
63
|
+
1. **Overclaiming image semantics** — UI/docs imply deterministic VM-style state capture. Say "starter," name what's included, show provenance.
|
|
64
|
+
2. **Hidden provenance** — users can't tell what session, context, or spec a starter came from. **Refuse promotion until provenance is inspectable.**
|
|
65
|
+
3. **Stale starter** — points at outdated doctrine, missing files, or invalid native session source. **Inspect must report staleness honestly.**
|
|
66
|
+
4. **Secret leakage** — starter packages or displays provider auth material. **Refuse.** Refer to session sources and context, never copy credentials.
|
|
67
|
+
5. **Runtime mismatch** — starter used with unsupported runtime. **Refuse with a clear error.**
|
|
68
|
+
|
|
69
|
+
## Manifest shape (v0+v1 shipped)
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
agent_starters:
|
|
73
|
+
- id: velocity-reviewer-v1
|
|
74
|
+
runtime: claude-code
|
|
75
|
+
agent_ref: local:reviewer
|
|
76
|
+
context_refs:
|
|
77
|
+
- doctrine:advisor-orchestrator-mode-judgment
|
|
78
|
+
- convention:workstream-continuity
|
|
79
|
+
session_source:
|
|
80
|
+
mode: fork
|
|
81
|
+
ref:
|
|
82
|
+
kind: native_id
|
|
83
|
+
value: "<prior-native-session-id>"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Member usage:
|
|
87
|
+
|
|
88
|
+
```yaml
|
|
89
|
+
members:
|
|
90
|
+
- id: reviewer
|
|
91
|
+
starter_ref:
|
|
92
|
+
name: velocity-reviewer-v1
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
When a starter points at a primed session produced from a Composable
|
|
96
|
+
Priming Pack, record:
|
|
97
|
+
- manifest id/version
|
|
98
|
+
- runtime
|
|
99
|
+
- source session id or transcript path
|
|
100
|
+
- ready-check evidence
|
|
101
|
+
- freshness state
|
|
102
|
+
|
|
103
|
+
## Proof matrix
|
|
104
|
+
|
|
105
|
+
| Surface | Test type | Authority |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| Registry schema accepts minimal starter | unit | daemon or config-layer prototype |
|
|
108
|
+
| Inspect shows provenance and included context | unit / snapshot | daemon or CLI |
|
|
109
|
+
| Member can use `starter_ref` | integration | daemon |
|
|
110
|
+
| Unsupported runtime or stale source refuses honestly | unit + integration | daemon |
|
|
111
|
+
| No secret material copied into starter artifact | grep / fixture | tester |
|
|
112
|
+
| Bundle can include or reference starter | package inspection | bundle layer |
|
|
113
|
+
|
|
114
|
+
## Dependencies on other primitives
|
|
115
|
+
|
|
116
|
+
- **Firm**: `session-source-fork` — native conversation-source continuity for fork-based starters
|
|
117
|
+
- **Firm**: `specification-system` — declarative starter and member references
|
|
118
|
+
- **Soft**: `rig-bundles-and-shareable-artifacts` — shareable starter packaging
|
|
119
|
+
- **Soft**: `context-engineering-and-retrieval` — richer declarative context assembly
|
|
120
|
+
- **Soft**: `seat-continuity-and-handover` — refresh and swap workflows over starters
|
|
121
|
+
|
|
122
|
+
## Required-before-RSI
|
|
123
|
+
|
|
124
|
+
Agent Starters need queryable provenance and honest inspect output before
|
|
125
|
+
RSI loops can rely on them for seat refresh. A workflow must be able to
|
|
126
|
+
answer: "what starter did this seat use, what source session or context was
|
|
127
|
+
included, and is that starter still recommended?"
|
|
128
|
+
|
|
129
|
+
## See also
|
|
130
|
+
|
|
131
|
+
- `session-source-fork` skill — low-level fork primitive that makes native session-based starters possible
|
|
132
|
+
- `composable-priming-packs` skill — manifest-driven layer for producing primed sessions starters reference
|