@openrig/cli 0.4.2 → 0.4.4
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/openrig-start.md +6 -0
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +42 -2
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +115 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +12 -12
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +46 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +167 -3
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +31 -0
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +62 -0
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/build-info.d.ts +12 -0
- package/daemon/dist/build-info.d.ts.map +1 -0
- package/daemon/dist/build-info.js +11 -0
- package/daemon/dist/build-info.js.map +1 -0
- package/daemon/dist/db/migrations/045_resume_verification.d.ts +29 -0
- package/daemon/dist/db/migrations/045_resume_verification.d.ts.map +1 -0
- package/daemon/dist/db/migrations/045_resume_verification.js +34 -0
- package/daemon/dist/db/migrations/045_resume_verification.js.map +1 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +41 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js +56 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.d.ts +48 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.js +52 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.js.map +1 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts +18 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts.map +1 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js +22 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts +25 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -0
- package/daemon/dist/domain/activity-endpoint.js +91 -0
- package/daemon/dist/domain/activity-endpoint.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +36 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +90 -0
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +57 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +149 -3
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.d.ts +100 -0
- package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -0
- package/daemon/dist/domain/event-loop-monitor.js +127 -0
- package/daemon/dist/domain/event-loop-monitor.js.map +1 -0
- package/daemon/dist/domain/feed/attention-aggregator.d.ts +31 -0
- package/daemon/dist/domain/feed/attention-aggregator.d.ts.map +1 -0
- package/daemon/dist/domain/feed/attention-aggregator.js +119 -0
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -0
- package/daemon/dist/domain/files/file-write-service.d.ts +11 -2
- package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -1
- package/daemon/dist/domain/files/file-write-service.js +77 -0
- package/daemon/dist/domain/files/file-write-service.js.map +1 -1
- package/daemon/dist/domain/gate-predicate.d.ts +29 -0
- package/daemon/dist/domain/gate-predicate.d.ts.map +1 -0
- package/daemon/dist/domain/gate-predicate.js +73 -0
- package/daemon/dist/domain/gate-predicate.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts +7 -1
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +19 -1
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/hosts/fanout-contract.d.ts +33 -0
- package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/fanout-contract.js +23 -0
- package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +49 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +165 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +35 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js +105 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts +71 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.js +80 -0
- package/daemon/dist/domain/human-route-enforcer.js.map +1 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +8 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +19 -0
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.js +4 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +28 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +125 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +7 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +84 -5
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +11 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts +14 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.js +114 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -0
- package/daemon/dist/domain/ps-projection.d.ts +28 -1
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +39 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +25 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +111 -7
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.d.ts +8 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +109 -27
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +25 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +72 -4
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +44 -2
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +92 -6
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +50 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -0
- package/daemon/dist/domain/resume-token-capture.js +63 -0
- package/daemon/dist/domain/resume-token-capture.js.map +1 -0
- package/daemon/dist/domain/review/brief-spine.d.ts +19 -0
- package/daemon/dist/domain/review/brief-spine.d.ts.map +1 -0
- package/daemon/dist/domain/review/brief-spine.js +86 -0
- package/daemon/dist/domain/review/brief-spine.js.map +1 -0
- package/daemon/dist/domain/review/compose.d.ts +228 -0
- package/daemon/dist/domain/review/compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/compose.js +773 -0
- package/daemon/dist/domain/review/compose.js.map +1 -0
- package/daemon/dist/domain/review/freeze.d.ts +31 -0
- package/daemon/dist/domain/review/freeze.d.ts.map +1 -0
- package/daemon/dist/domain/review/freeze.js +257 -0
- package/daemon/dist/domain/review/freeze.js.map +1 -0
- package/daemon/dist/domain/review/gather.d.ts +100 -0
- package/daemon/dist/domain/review/gather.d.ts.map +1 -0
- package/daemon/dist/domain/review/gather.js +676 -0
- package/daemon/dist/domain/review/gather.js.map +1 -0
- package/daemon/dist/domain/review/types.d.ts +258 -0
- package/daemon/dist/domain/review/types.d.ts.map +1 -0
- package/daemon/dist/domain/review/types.js +35 -0
- package/daemon/dist/domain/review/types.js.map +1 -0
- package/daemon/dist/domain/rig-status-compose.d.ts +62 -0
- package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -0
- package/daemon/dist/domain/rig-status-compose.js +149 -0
- package/daemon/dist/domain/rig-status-compose.js.map +1 -0
- package/daemon/dist/domain/rig-teardown.d.ts +3 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +4 -19
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.d.ts +42 -0
- package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -0
- package/daemon/dist/domain/route-timing-recorder.js +62 -0
- package/daemon/dist/domain/route-timing-recorder.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts +64 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.js +153 -0
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -0
- package/daemon/dist/domain/scope/scope-audit.d.ts +11 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +203 -2
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +50 -7
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +273 -33
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +59 -0
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -0
- package/daemon/dist/domain/seat-identity-reconciler.js +207 -0
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -0
- package/daemon/dist/domain/seat-identity-store.d.ts +27 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -0
- package/daemon/dist/domain/seat-identity-store.js +106 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -0
- package/daemon/dist/domain/seat-switch-client-service.d.ts +57 -0
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-switch-client-service.js +168 -0
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -0
- package/daemon/dist/domain/self-attach-service.d.ts +8 -0
- package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
- package/daemon/dist/domain/self-attach-service.js +20 -7
- package/daemon/dist/domain/self-attach-service.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +35 -4
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +89 -10
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +8 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +143 -37
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +34 -2
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +63 -0
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -0
- package/daemon/dist/domain/startup-proof.js +165 -0
- package/daemon/dist/domain/startup-proof.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +103 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.js +246 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts +49 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js +132 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts +29 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js +60 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts +34 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.js +195 -0
- package/daemon/dist/domain/topology/topology-manifest.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +86 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js +8 -0
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/up-command-router.d.ts +1 -1
- package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
- package/daemon/dist/domain/up-command-router.js +34 -2
- package/daemon/dist/domain/up-command-router.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +17 -0
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +109 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -2
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +4 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +19 -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 +51 -6
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts +11 -0
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +82 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +18 -1
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +26 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +139 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts +17 -0
- package/daemon/dist/routes/compaction.d.ts.map +1 -0
- package/daemon/dist/routes/compaction.js +125 -0
- package/daemon/dist/routes/compaction.js.map +1 -0
- package/daemon/dist/routes/config.d.ts.map +1 -1
- package/daemon/dist/routes/config.js +15 -6
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/files.d.ts.map +1 -1
- package/daemon/dist/routes/files.js +45 -1
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +67 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts +8 -2
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +44 -4
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/restore-check.d.ts +10 -0
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +46 -37
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/review.d.ts +3 -0
- package/daemon/dist/routes/review.d.ts.map +1 -0
- package/daemon/dist/routes/review.js +169 -0
- package/daemon/dist/routes/review.js.map +1 -0
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +70 -1
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-approve.d.ts +3 -0
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -0
- package/daemon/dist/routes/scope-approve.js +55 -0
- package/daemon/dist/routes/scope-approve.js.map +1 -0
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +28 -1
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +53 -2
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +44 -9
- 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 +49 -9
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/snapshots.d.ts.map +1 -1
- package/daemon/dist/routes/snapshots.js +16 -1
- package/daemon/dist/routes/snapshots.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +58 -21
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +12 -5
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +84 -0
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/workspace.js +2 -2
- package/daemon/dist/server.d.ts +33 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +41 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts +1 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +108 -20
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -1
- package/daemon/docs/reference/product-factory-vps-runbook.md +132 -0
- package/daemon/docs/reference/sdlc-conventions.md +187 -0
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +1 -0
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/product-management/pm/guidance/role.md +13 -0
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/shared/agent.yaml +2 -0
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +115 -0
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +69 -23
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +3 -3
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +4 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +1 -1
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +4 -0
- package/dist/build-info.d.ts +8 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +11 -0
- package/dist/build-info.js.map +1 -0
- package/dist/commands/compact.d.ts +15 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +62 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +20 -4
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +18 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/expand.js +1 -1
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/file.d.ts +7 -0
- package/dist/commands/file.d.ts.map +1 -0
- package/dist/commands/file.js +77 -0
- package/dist/commands/file.js.map +1 -0
- package/dist/commands/fork.d.ts +4 -0
- package/dist/commands/fork.d.ts.map +1 -0
- package/dist/commands/fork.js +101 -0
- package/dist/commands/fork.js.map +1 -0
- package/dist/commands/host.d.ts +34 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +448 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +34 -4
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/proof.d.ts +54 -0
- package/dist/commands/proof.d.ts.map +1 -0
- package/dist/commands/proof.js +311 -0
- package/dist/commands/proof.js.map +1 -0
- package/dist/commands/ps.d.ts +41 -7
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +357 -135
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +6 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +154 -4
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/reconcile-session.d.ts.map +1 -1
- package/dist/commands/reconcile-session.js +2 -2
- package/dist/commands/reconcile-session.js.map +1 -1
- package/dist/commands/restore-check.d.ts.map +1 -1
- package/dist/commands/restore-check.js +93 -0
- package/dist/commands/restore-check.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +191 -4
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts +17 -0
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +145 -32
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +161 -11
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/start.d.ts +5 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts +24 -0
- package/dist/commands/startup-proof.d.ts.map +1 -0
- package/dist/commands/startup-proof.js +100 -0
- package/dist/commands/startup-proof.js.map +1 -0
- package/dist/commands/unclaim.js +2 -2
- package/dist/commands/unclaim.js.map +1 -1
- package/dist/commands/up.d.ts +2 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +79 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/watchdog.js +2 -2
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/commands/workspace.js +6 -6
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +4 -0
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +68 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-executor.d.ts +1 -0
- package/dist/cross-host-executor.d.ts.map +1 -1
- package/dist/cross-host-executor.js +4 -1
- package/dist/cross-host-executor.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +23 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +54 -6
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +9 -0
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +32 -2
- package/dist/host-registry.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/codex-auth.d.ts +24 -0
- package/dist/lib/codex-auth.d.ts.map +1 -1
- package/dist/lib/codex-auth.js +89 -17
- package/dist/lib/codex-auth.js.map +1 -1
- package/dist/lib/file-transfer.d.ts +89 -0
- package/dist/lib/file-transfer.d.ts.map +1 -0
- package/dist/lib/file-transfer.js +300 -0
- package/dist/lib/file-transfer.js.map +1 -0
- package/dist/lib/hosts/fanout-contract.d.ts +33 -0
- package/dist/lib/hosts/fanout-contract.d.ts.map +1 -0
- package/dist/lib/hosts/fanout-contract.js +23 -0
- package/dist/lib/hosts/fanout-contract.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts +11 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +203 -2
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/templates.d.ts +1 -0
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +9 -0
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +16 -0
- package/dist/lib/scope-templates/backlog-tech-debt.md +16 -0
- package/dist/lib/scope-templates/bug-fix.md +16 -0
- package/dist/lib/scope-templates/implementation-prd.md +33 -0
- package/dist/lib/scope-templates/mission-placeholder.md +41 -0
- package/dist/lib/scope-templates/mission-progress.md +2 -0
- package/dist/lib/scope-templates/mission-release.md +41 -0
- package/dist/lib/scope-templates/placeholder.md +12 -4
- package/dist/lib/scope-templates/proof.md +6 -0
- package/dist/lib/scope-templates/release-feature.md +14 -6
- package/dist/lib/scope-templates/research.md +16 -0
- package/dist/lib/scope-templates/slice-progress.md +2 -0
- package/dist/openrig-compat.d.ts +19 -0
- package/dist/openrig-compat.d.ts.map +1 -1
- package/dist/openrig-compat.js +31 -1
- package/dist/openrig-compat.js.map +1 -1
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +11 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/index-D69ZhNIr.js +598 -0
- package/ui/dist/assets/index-DJYun-8d.css +32 -0
- package/ui/dist/index.html +23 -2
- package/ui/dist/assets/index-CnqRX7A3.css +0 -32
- package/ui/dist/assets/index-CtL9jXFt.js +0 -582
|
@@ -11,7 +11,7 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers, openrig-user, development-team, test-driven-development, systematic-debugging, verification-before-completion, writing-plans, executing-plans]
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, development-team, test-driven-development, systematic-debugging, verification-before-completion, writing-plans, executing-plans]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
17
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
@@ -7,6 +7,7 @@ You are the implementation side of a dev pair. Your job is to write code, not to
|
|
|
7
7
|
Load these packaged skills now before editing:
|
|
8
8
|
- `using-superpowers`
|
|
9
9
|
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
10
11
|
- `development-team`
|
|
11
12
|
- `test-driven-development`
|
|
12
13
|
- `systematic-debugging`
|
|
@@ -11,7 +11,7 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers, openrig-user, development-team, systematic-debugging, verification-before-completion, agent-browser, dogfood, writing-plans, executing-plans]
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, development-team, systematic-debugging, verification-before-completion, agent-browser, dogfood, writing-plans, executing-plans]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
17
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
@@ -7,6 +7,7 @@ You are the quality assurance side of a dev pair. You gate every edit the implem
|
|
|
7
7
|
Load these packaged skills now before reviewing work or dogfooding:
|
|
8
8
|
- `using-superpowers`
|
|
9
9
|
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
10
11
|
- `development-team`
|
|
11
12
|
- `systematic-debugging`
|
|
12
13
|
- `agent-browser`
|
|
@@ -11,7 +11,7 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers, openrig-user, orchestration-team, systematic-debugging, verification-before-completion, writing-plans, executing-plans, brainstorming]
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, orchestration-team, systematic-debugging, verification-before-completion, writing-plans, executing-plans, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
17
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
@@ -7,6 +7,7 @@ You are the orchestrator. You coordinate the work of other agents in this rig, m
|
|
|
7
7
|
Load these packaged skills now before doing substantive work:
|
|
8
8
|
- `using-superpowers`
|
|
9
9
|
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
10
11
|
- `orchestration-team`
|
|
11
12
|
- `systematic-debugging`
|
|
12
13
|
- `brainstorming`
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
## Role
|
|
4
4
|
Senior Product Manager. Own the "what" and "why" — never architecture, estimates, or implementation details.
|
|
5
5
|
|
|
6
|
+
## Skills Loaded
|
|
7
|
+
|
|
8
|
+
Load these packaged skills now before shaping product work:
|
|
9
|
+
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
11
|
+
- `office-hours`
|
|
12
|
+
- `context-builder`
|
|
13
|
+
- `requirements-writer`
|
|
14
|
+
- `ui-mockup`
|
|
15
|
+
- `plan-review`
|
|
16
|
+
- `exec-summary`
|
|
17
|
+
- `backlog-capture`
|
|
18
|
+
|
|
6
19
|
## 8-Step Feature Flow
|
|
7
20
|
|
|
8
21
|
1. **Capture** — run `backlog-capture` and record the idea in `idea_backlog.md`.
|
|
@@ -11,7 +11,7 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers, openrig-user, review-team, systematic-debugging, verification-before-completion, writing-plans, brainstorming]
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, review-team, systematic-debugging, verification-before-completion, writing-plans, brainstorming]
|
|
15
15
|
guidance: []
|
|
16
16
|
subagents: []
|
|
17
17
|
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
@@ -7,6 +7,7 @@ You are an independent code reviewer. You analyze code on your own merits withou
|
|
|
7
7
|
Load these packaged skills now before reviewing:
|
|
8
8
|
- `using-superpowers`
|
|
9
9
|
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
10
11
|
- `review-team`
|
|
11
12
|
- `systematic-debugging`
|
|
12
13
|
- `brainstorming`
|
|
@@ -26,6 +26,8 @@ resources:
|
|
|
26
26
|
path: skills/core/openrig-architect
|
|
27
27
|
- id: rig-lifecycle
|
|
28
28
|
path: skills/core/rig-lifecycle
|
|
29
|
+
- id: mission-slice-sop
|
|
30
|
+
path: skills/core/mission-slice-sop
|
|
29
31
|
- id: systematic-debugging
|
|
30
32
|
path: skills/process/systematic-debugging
|
|
31
33
|
- id: test-driven-development
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mission-slice-sop
|
|
3
|
+
description: Use when working a mission or slice — the full SDLC flow (intent → mini-requirements + proof contract → mockups → plan-lock → build → QA visual compare → `rig proof` drops → proof-lock) plus how to track, prove, hand off, and carry state across agents and compaction via the canonical files (PROGRESS.md / PROOF.md / MISSION_NOTES.md / MISSION_BRIEF.md / README.md / IMPLEMENTATION-PRD.md). Covers the convention sections the Living Notes UI projects, the two locks, the three role contracts, per-file WHO/WHEN/HOW rules, the four-legs lifecycle, hot-potato queue handoffs, the moment-of-truth checklist, the deterministic `rig scope audit` backstop, and the ghost-text capture gotcha.
|
|
4
|
+
metadata:
|
|
5
|
+
openrig:
|
|
6
|
+
stage: shipped
|
|
7
|
+
last_verified: "2026-07-06"
|
|
8
|
+
distribution_scope: product-bound
|
|
9
|
+
source_evidence: |
|
|
10
|
+
Authored + embedded in release-0.4.3 slice 32 (mission-slice-sop);
|
|
11
|
+
moved into the canonical product skill source and updated in
|
|
12
|
+
release-0.4.4 slice 23 (operationalize the SDLC control plane) to
|
|
13
|
+
teach the full SDLC flow the Living Notes UI projects: the convention
|
|
14
|
+
sections, the proof-contract pairing, the two staged-approval locks,
|
|
15
|
+
C1 proof drops, and the three role contracts. Conventions SSOT:
|
|
16
|
+
docs/reference/sdlc-conventions.md (shipped with the CLI package).
|
|
17
|
+
The deterministic backstop is the `rig scope audit` classifier.
|
|
18
|
+
sibling_skills:
|
|
19
|
+
- queue-handoff
|
|
20
|
+
- seat-continuity-and-handover
|
|
21
|
+
- claude-compaction-restore
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Mission/Slice SOP — how you work a mission & slice
|
|
25
|
+
|
|
26
|
+
Use this skill to actually **do** mission/slice work the way OpenRig expects: author the convention sections, track on the canonical files, prove on them, hand off through them, and survive compaction on them. **Do the work described here; do not merely explain the protocol.** The deterministic backstop is `rig scope audit` — the audit classifier is the source of truth for adherence. The conventions themselves live in ONE place: **`docs/reference/sdlc-conventions.md`** (shipped with the CLI package) — this skill teaches the flow; the SSOT defines the formats.
|
|
27
|
+
|
|
28
|
+
## The SDLC flow (intent → proof)
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
intent → mini-requirements + proof contract → (UI slices: mockups)
|
|
32
|
+
→ plan-lock (rig scope slice approve --scope spec)
|
|
33
|
+
→ build the LOCKED set
|
|
34
|
+
→ QA: mockup ↔ delivered VISUAL compare
|
|
35
|
+
→ proof drops (rig proof add <slice> …)
|
|
36
|
+
→ proof-lock (rig scope slice approve --scope delivery)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
1. **Record intent** verbatim in the slice's `## Intent` section (`rig scope slice create` scaffolds it — every template kind).
|
|
40
|
+
2. **Author the mini-requirements + proof contract**: `## Mini-requirements` is the concise one-glance tier (approval starts there); `## Proof contract` is a checkbox list of promised deliverables, each written as an observable outcome. UI deliverables name their planned mockup. The IMPLEMENTATION-PRD opens with the mini-requirements; everything between intent and proof is **elastic** — for a small slice the mini-requirements may BE the whole PRD.
|
|
41
|
+
3. **Plan-lock**: `rig scope slice approve <slice> --scope spec` — "the PRD matches the intent; THIS artifact set is what gets built." One daemon-side write: frontmatter stamp + append-only audit row.
|
|
42
|
+
4. **Build the locked set** — look at the mockups, not just the spec text.
|
|
43
|
+
5. **QA visual compare**: for each deliverable, load the planned mockup, produce the real artifact in a test/demo environment, visually compare, and record the verdict.
|
|
44
|
+
6. **Drop proof**: `rig proof add <slice> --artifact-type qa --verdict PASS --candidate-sha <tip> --money-evidence "…" --evidences "1,3" --media "walk.webm,panel.png" --self-check "…"` — the C1 header's closed sets validate at drop time; `--evidences` joins the drop to its proof-contract items and `--media` names the curated proof/-relative media the drop stands behind (that pairing + media set is what the UI's DELIVERED section renders).
|
|
45
|
+
7. **Proof-lock**: `rig scope slice approve <slice> --scope delivery` — the terminal sign-off. Approval is freeze/sign-off, **never** proven-green: proven-green requires the recorded C1 verdicts.
|
|
46
|
+
|
|
47
|
+
## The three role contracts
|
|
48
|
+
|
|
49
|
+
- **Planning agent:** authors intent + mini-requirements + the proof contract; produces mockups for UI deliverables and attaches them to the locked set (a UI slice with no mockup is an incomplete plan; non-UI slices have none — not a gate); locks the plan.
|
|
50
|
+
- **Build agent:** builds against the LOCKED set only; looks at the mockups.
|
|
51
|
+
- **QA agent (owns the compare):** visually compares planned vs delivered per deliverable, records verdict + note via proof drops, and **curates** the canonical proof set (bounded, mapped to deliverables; the fix-loop pile stays in `proof/`, one drill-in down). On mismatch: fix-and-re-review or kick back with the reason — never escalate a raw mismatch to the human.
|
|
52
|
+
|
|
53
|
+
## The canonical files (the operating surface)
|
|
54
|
+
|
|
55
|
+
> The canonical files below are the **operating surface of the work** — you track on them, prove on them, hand off through them, and survive compaction on them. They are NOT side-artifacts to "maintain"; keeping them current *is* the work.
|
|
56
|
+
|
|
57
|
+
- **README.md** (mission + slice) — the overview, OPENING with the convention sections (`## Intent` / `## Mini-requirements` / `## Proof contract`). The **mission README carries this SOP at its bottom.**
|
|
58
|
+
- **IMPLEMENTATION-PRD.md** — the full PRD; opens with the mini-requirements; the `## Proof contract` here is what the UI's DELIVERED pairing joins proof against.
|
|
59
|
+
- **PROGRESS.md** — the live delivery state. One line per outcome; links down for detail.
|
|
60
|
+
- **MISSION_NOTES.md** — the accruing handoff + tribal-knowledge doc. Blank-slate onboarding + **compaction-restore** read it. `§1` top-of-mind + per-seat `§A–§X`.
|
|
61
|
+
- **MISSION_BRIEF.md** — the steering doc (the UI "Steering" tab). The 7-section schema.
|
|
62
|
+
- **PROOF.md** (+ `proof/`) — acceptance evidence. **A slice is not done until every proof-contract item has evidence.**
|
|
63
|
+
|
|
64
|
+
## Per-file rules — WHO / WHEN / HOW
|
|
65
|
+
|
|
66
|
+
### PROGRESS.md
|
|
67
|
+
- **WHO:** the orchestrator owns `§1` (current state); every agent logs its own outcomes.
|
|
68
|
+
- **WHEN:** after every slice-done **AND every commit**; on any material state change.
|
|
69
|
+
- **HOW:** one line per outcome (checkbox), link down for detail (workstream-continuity format); keep frontmatter `stage`/`verified` honest.
|
|
70
|
+
|
|
71
|
+
### PROOF.md + proof/
|
|
72
|
+
- **WHO:** the impl/QA pair that worked the slice.
|
|
73
|
+
- **WHEN:** a slice is **NOT "done"** until every proof-contract item has evidence.
|
|
74
|
+
- **HOW:** proof maps **1:1 to the proof contract's deliverables** — put media under `proof/`, then ATTACH it with `rig proof add <slice> … --evidences <item> --media <files>` (the drop writes the C1 header the DELIVERED pairing joins on) + a line in PROOF.md stating what it proves. **Hand-placing files in `proof/` without a drop is the anti-pattern** — the deliverable stays unpaired and `unverified`. No proof → not done.
|
|
75
|
+
|
|
76
|
+
### MISSION_NOTES.md
|
|
77
|
+
- **WHO:** any agent updates `§1` (top-of-mind); each seat owns + appends to its own `§A–§X` section.
|
|
78
|
+
- **WHEN:** on any material change; a compacting agent **files its state here BEFORE compaction and reads it on restore.**
|
|
79
|
+
- **HOW:** accruing tribal knowledge — `§1` ≤ 5–15 lines (gates, open decisions, surprises); per-seat continuation entries (latest = truth; other seats read-only). Pointer-first; don't duplicate.
|
|
80
|
+
|
|
81
|
+
### MISSION_BRIEF.md
|
|
82
|
+
- **WHO:** product/design (steering owner).
|
|
83
|
+
- **WHEN:** when steering changes.
|
|
84
|
+
- **HOW:** the 7-section steering schema (the UI "Steering" tab reads it).
|
|
85
|
+
|
|
86
|
+
### README.md
|
|
87
|
+
- **WHO:** the author at creation; refreshed on rescope.
|
|
88
|
+
- **WHEN:** at mission/slice creation + when scope/theme changes.
|
|
89
|
+
- **HOW:** overview + honest frontmatter (`id`/`stage`/`verified`) + the convention sections up top; the mission README carries this SOP at its bottom.
|
|
90
|
+
|
|
91
|
+
## The lifecycle (4 legs)
|
|
92
|
+
|
|
93
|
+
**SCAFFOLD** (`rig scope` creates the files from templates — every slice kind emits the convention sections + `proof/` + the IMPLEMENTATION-PRD skeleton) → **POPULATE** (agents fill them as work happens, per the rules above) → **PROJECT** (the Living Notes UI reads them into INTENT → PLAN → DELIVERED) → **VERIFY** (`rig scope audit` checks adherence). "Loose freeform write + deterministic verify."
|
|
94
|
+
|
|
95
|
+
## Hot-potato (handoffs)
|
|
96
|
+
|
|
97
|
+
End every turn by passing the ball — a `rig queue` handoff to the next agent (close the qitem with a `closure_reason`). The **durable ball-pass is the queue close, not a chat message.** Never go idle without a handoff.
|
|
98
|
+
|
|
99
|
+
## Verify (deterministic backstop)
|
|
100
|
+
|
|
101
|
+
Run `rig scope audit` at slice-close. It flags: committed-without-touching-PROGRESS; slice-marked-done-without-PROOF; active-mission-without-MISSION_NOTES; MISSION_BRIEF off-schema; proof artifacts violating the C1 header; missing IMPLEMENTATION-PRD on a building slice; missing convention sections (`## Intent`, a well-formed `## Proof contract`, the UI-slice mockup ref). Every convention check is **advisory / fail-open** — it records and advises, never blocks a write. **Fix the flag, don't suppress it.**
|
|
102
|
+
|
|
103
|
+
## Reading terminal captures — KNOWN GOTCHA: ghost-text autocomplete is NOT real
|
|
104
|
+
|
|
105
|
+
When you `rig capture` a pane, **greyed / ghost autocomplete suggestions are NOT real content** — they are autocomplete *previews* (shell autosuggestion, the input-box ghost-text completion), not typed, staged, or committed input. **This is known, expected, and has been faking agents out a lot** — reading a ghost suggestion in a peer's input box as "staged text they're about to send," or as a real prompt, and then reasoning/acting on a string that was never actually there.
|
|
106
|
+
|
|
107
|
+
**Rule:** ignore ghost/autosuggest text entirely. Only *committed/rendered* pane output is real. If a `❯` input line shows text, treat it as an autocomplete artifact unless you have independent evidence it was actually entered. Do not build decisions (or worry about "colliding with staged text") on ghost text. When it matters, verify at source (git, the queue, the actual event) — never off a capture's ghost line.
|
|
108
|
+
|
|
109
|
+
## Moment-of-truth checklist
|
|
110
|
+
|
|
111
|
+
- **Starting a slice?** → intent recorded verbatim? mini-requirements + proof contract authored? mockups attached (UI slices)? plan locked (`--scope spec`)?
|
|
112
|
+
- **Finishing a slice?** → every proof-contract item has curated evidence via `rig proof add … --evidences --media` (C1 drops — never only hand-placed files)? PROGRESS updated? MISSION_NOTES `§1` refreshed? proof locked (`--scope delivery`)? Handed off via queue?
|
|
113
|
+
- **Committing?** → PROGRESS updated?
|
|
114
|
+
- **Compacting?** → filed your state in MISSION_NOTES?
|
|
115
|
+
- **Starting on a mission?** → read the mission README (incl. this SOP) + MISSION_NOTES + `docs/reference/sdlc-conventions.md`?
|
|
@@ -14,7 +14,7 @@ Use it when the problem may be the daemon, the shell/runtime surface, or stale h
|
|
|
14
14
|
|
|
15
15
|
Use this skill when you see:
|
|
16
16
|
- `rig whoami --json` returning partial identity
|
|
17
|
-
- `rig ps --nodes --json` failing while some other `rig` commands still work
|
|
17
|
+
- `rig ps --nodes -A --json` failing while some other `rig` commands still work
|
|
18
18
|
- `Sent to ...` plus `Verified: no`
|
|
19
19
|
- repeated unified-exec-process warnings
|
|
20
20
|
- suspicion that stale helper processes are accumulating
|
|
@@ -28,13 +28,13 @@ Start with the minimum truthful operator read:
|
|
|
28
28
|
```bash
|
|
29
29
|
rig whoami --json
|
|
30
30
|
rig daemon status
|
|
31
|
-
rig ps --nodes --json
|
|
31
|
+
rig ps --nodes -A --json
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Interpret them together, not in isolation:
|
|
35
35
|
- partial `whoami` can mean identity is inferable while daemon-backed surfaces are degraded
|
|
36
36
|
- `daemon status` tells you whether the host daemon is up, not whether every seat can reach it cleanly
|
|
37
|
-
- `ps --nodes --json` is the best machine-readable topology check when it works
|
|
37
|
+
- `ps --nodes -A --json` is the best machine-readable fleet topology check when it works (v0.4.4: `--nodes` needs an explicit scope outside a managed session — `-A` for fleet, `--rig <name>` for one rig; the bare `rig ps` map is the cheap first glance)
|
|
38
38
|
|
|
39
39
|
## Verification Drift Vs Send Failure
|
|
40
40
|
|
|
@@ -104,7 +104,7 @@ If the warning or failure remains after stale-wrapper cleanup, re-check:
|
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
106
|
rig daemon status
|
|
107
|
-
rig ps --nodes --json
|
|
107
|
+
rig ps --nodes -A --json
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
If those remain healthy, the residual issue may still be in the host/tool/session layer rather than in OpenRig topology state.
|
|
@@ -435,27 +435,47 @@ honestly and the UI exposes a one-click open-missing affordance.
|
|
|
435
435
|
|
|
436
436
|
v0.4.0 flips the five most frequently invoked read-commands from firehose-by-default to compact-by-default, and `rig queue list` adopts the docker / kubectl read-command grammar. **All defaults preserve breadth and capability — the firehose is one explicit flag away.**
|
|
437
437
|
|
|
438
|
-
### `rig ps` —
|
|
438
|
+
### `rig ps` — consolidated all-rigs default + the disclosure ladder (v0.4.4)
|
|
439
439
|
|
|
440
440
|
```bash
|
|
441
|
-
rig ps #
|
|
442
|
-
rig ps --json #
|
|
443
|
-
rig ps
|
|
444
|
-
rig ps --
|
|
445
|
-
rig ps --nodes
|
|
446
|
-
rig ps --nodes -A #
|
|
447
|
-
rig ps --nodes --full
|
|
441
|
+
rig ps # ALL ACTIVE RIGS, one compact row each + rollup line + count line + ladder footer (default)
|
|
442
|
+
rig ps --json # bare array of ALL non-archived rigs (incl. stopped; existing keys + additive attentionCount)
|
|
443
|
+
rig ps --rig <name> # one rig's detail
|
|
444
|
+
rig ps --nodes # compact node inventory (current rig — session default, LOCAL only)
|
|
445
|
+
rig ps --nodes --rig <name> # compact node inventory, named rig
|
|
446
|
+
rig ps --nodes -A # fleet node inventory, projected rows
|
|
447
|
+
rig ps --nodes -A --full # complete per-node records (the ONLY full fan-out; resumeToken VALUE retained here for downstream consumers)
|
|
448
448
|
rig ps --nodes --session <sess> # narrow to one canonical session
|
|
449
|
+
rig ps --include-archived # archived history as rows (otherwise ONE count line)
|
|
449
450
|
rig ps --active # opt-in active-state filter (does NOT change the all-states default — ps surfaces topology/readiness, where stopped/recoverable/attention IS the actionable signal)
|
|
450
451
|
```
|
|
451
452
|
|
|
452
|
-
**v0.4.
|
|
453
|
-
- **
|
|
454
|
-
-
|
|
455
|
-
- **
|
|
456
|
-
- **
|
|
453
|
+
**v0.4.4 consolidated default + disclosure ladder (OPR.0.4.4.21)**:
|
|
454
|
+
- **The default is the fleet MAP**: every active rig as one O(rigs) compact row, with the host rollup ("N rigs · M seats · K need attention"), the archived/stopped count line, and the drill-ladder footer. The v0.4.0 current-rig default is RETIRED — it hid running rigs from the operator's field of view.
|
|
455
|
+
- **`-A` has exactly ONE meaning**: the `--nodes` fleet widener. Bare `rig ps -A` errors (all-rigs IS the default; archived history stays behind `--include-archived`).
|
|
456
|
+
- **The session-rig default applies ONLY to `--nodes`, and only locally.** Implicit scope defaults don't cross host boundaries: `rig ps --host <id> --nodes` requires an explicit `--rig` or `-A`; multi-host fan-out is rollup-only by default; the full explicit ladder (`--all-hosts --nodes -A`, `--full` for complete records) fans out per-node with hostId-stamped projected rows.
|
|
457
|
+
- **STATED JSON contract**: default `--json` = bare array of ALL non-archived rigs INCLUDING stopped ones (scope-not-shape: existing keys preserved, additive `attentionCount`); only the human table folds stopped rigs into the count line.
|
|
458
|
+
- **Resume-token security unchanged**: compact output never carries token material; `--full` retains it for consumers that legitimately need it.
|
|
457
459
|
|
|
458
|
-
**
|
|
460
|
+
**The casual status glance is just `rig ps`.** The old fleet firehose is the explicit last rung: `rig ps --nodes -A --full`. The ~77,000-token incident class stays closed (compact + O(rigs) default + explicit ladder).
|
|
461
|
+
|
|
462
|
+
### `rig host` — the multi-host registry verbs (v0.4.4)
|
|
463
|
+
|
|
464
|
+
```bash
|
|
465
|
+
rig host add --id <id> --transport ssh --target <tailnet-alias> --user openrig
|
|
466
|
+
rig host add --id <id> --transport http --url http://100.x.y.z:7433 --bearer-env MY_TOKEN
|
|
467
|
+
rig host list # pointers only — never secret values
|
|
468
|
+
rig host doctor <id> # stepwise: transport -> rig binary -> daemon -> identity
|
|
469
|
+
rig host doctor <id> --posture product-factory-vps [--public-addr <ip>]
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Exactly three verbs (capped); the VPS factory bootstrap is script + runbook
|
|
473
|
+
(`docs/reference/product-factory-vps-runbook.md`). **Transport posture is
|
|
474
|
+
DECIDED and documented** (cli-reference §Cross-host execution): ssh = pane ops
|
|
475
|
+
(`send`/`capture`), http = daemon REST (`up`/`down`/`launch`), `ps`/`whoami`
|
|
476
|
+
follow the DECLARED transport; fan-out is http-only; no cross-transport
|
|
477
|
+
fallback; no http parity for send/capture in 0.4.4. Posture/doctor UNKNOWN is
|
|
478
|
+
never pass — each unknown carries the command that verifies it.
|
|
459
479
|
|
|
460
480
|
### `rig whoami` — compact-by-default + `--full` (`--verbose` alias)
|
|
461
481
|
|
|
@@ -543,6 +563,30 @@ rig scope slice show <slice> # derives read-time effect
|
|
|
543
563
|
|
|
544
564
|
Composes with slice 33's `progress` + scaffolding to make `rig scope` the **deterministic enforcer** of `conventions/scope-and-versioning` §1 (dot-IDs) + §2 (maturity vocabulary). Agents update `stage` / `verified` / `id` through commands rather than hand-editing markdown and drifting. The `--against` MANDATORY rule on `verified` is the anti-stale keystone: bare timestamps are rejected because a bare timestamp is exactly what lets stale trackers lie while looking fresh. **STOP hand-editing the `stage` / `verified` / `id` fields in scope frontmatter; use the new verbs.** Existing missions / slices with `id:null` ghosts or missing `PROGRESS.md` are repaired idempotently via `reconcile`.
|
|
545
565
|
|
|
566
|
+
### The SDLC control plane — convention sections, the two locks, `rig proof` (v0.4.4)
|
|
567
|
+
|
|
568
|
+
The Living Notes UI is a plain projection of well-formed on-disk markdown. The conventions live in ONE shipped document — **`docs/reference/sdlc-conventions.md`** (in the CLI package) — and the operating procedure is the **`mission-slice-sop`** skill. The command surface:
|
|
569
|
+
|
|
570
|
+
```bash
|
|
571
|
+
rig scope slice create <mission> <slug> [--template <kind>] # scaffolds ## Intent / ## Mini-requirements / ## Proof contract
|
|
572
|
+
# + proof/ + PROOF.md + IMPLEMENTATION-PRD.md — EVERY template kind
|
|
573
|
+
|
|
574
|
+
rig scope slice approve <slice> --scope spec # PLAN-LOCK: "the PRD matches my intent; this set gets built"
|
|
575
|
+
rig scope slice approve <slice> --scope delivery # PROOF-LOCK: the terminal sign-off (default scope; fires the freeze)
|
|
576
|
+
|
|
577
|
+
rig proof add <slice> --artifact-type qa --verdict PASS \
|
|
578
|
+
--candidate-sha <tip> --money-evidence "<one line>" \
|
|
579
|
+
--evidences "1,3" --media "walk.webm" \
|
|
580
|
+
--self-check "<looked at it>" # C1 proof drop into proof/; --evidences joins the drop to its
|
|
581
|
+
# proof-contract items and --media names the curated proof/-relative
|
|
582
|
+
# media it stands behind (what the DELIVERED section pairs + renders)
|
|
583
|
+
|
|
584
|
+
rig scope audit <mission> # deterministic backstop — flags missing sections / malformed
|
|
585
|
+
# proof contract / invalid C1 headers; ADVISORY, never blocks
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
The flow: intent → mini-requirements + proof contract (→ mockups for UI slices) → plan-lock → build the locked set → QA visual compare → `rig proof` drops → proof-lock. Approval is freeze/sign-off, **never** proven-green — proven-green requires recorded C1 verdicts.
|
|
589
|
+
|
|
546
590
|
### `rig skill audit` — skill cascade provenance (slice 10)
|
|
547
591
|
|
|
548
592
|
```bash
|
|
@@ -584,7 +628,7 @@ Typical operator loop:
|
|
|
584
628
|
|
|
585
629
|
```bash
|
|
586
630
|
rig up secrets-manager --cwd /path/to/project
|
|
587
|
-
rig ps --nodes --json
|
|
631
|
+
rig ps --nodes --rig secrets-manager --json
|
|
588
632
|
rig send vault-specialist@secrets-manager "Check Vault health and report back." --verify
|
|
589
633
|
rig env status secrets-manager
|
|
590
634
|
rig env logs secrets-manager
|
|
@@ -634,10 +678,12 @@ JSON form exposes `peersNote` directly for programmatic consumers.
|
|
|
634
678
|
rig ps
|
|
635
679
|
rig ps --json
|
|
636
680
|
rig ps --nodes
|
|
637
|
-
rig ps --nodes --json
|
|
681
|
+
rig ps --nodes --rig <name> --json
|
|
682
|
+
rig ps --nodes -A --json
|
|
683
|
+
rig ps --nodes -A --full --json
|
|
638
684
|
```
|
|
639
685
|
|
|
640
|
-
Use `rig ps --nodes --json` for
|
|
686
|
+
Use `rig ps --nodes --rig <name> --json` for one rig's node inventory, or `rig ps --nodes -A --json` for fleet-wide projected node inventory. Use `--full` only when a downstream consumer truly needs complete per-node records. The node inventory surface carries:
|
|
641
687
|
- session name
|
|
642
688
|
- runtime
|
|
643
689
|
- session/startup status
|
|
@@ -964,7 +1010,7 @@ rig whoami --json
|
|
|
964
1010
|
|
|
965
1011
|
Notes:
|
|
966
1012
|
- for tmux-backed self-attach, `rig whoami --json` is the right verification
|
|
967
|
-
- for raw/external self-attach, `rig ps --nodes --json` is currently the more reliable verification surface
|
|
1013
|
+
- for raw/external self-attach, `rig ps --nodes --rig <rigId-or-name> --json` is currently the more reliable verification surface
|
|
968
1014
|
- if the current shell is outside tmux, pass `--display-name <name>` when you want a stable human session label recorded
|
|
969
1015
|
|
|
970
1016
|
### Adopt a topology and bind live sessions
|
|
@@ -1031,13 +1077,13 @@ Verification loop:
|
|
|
1031
1077
|
```bash
|
|
1032
1078
|
rig discover --json
|
|
1033
1079
|
rig adopt <fragment.yaml> --bindings-file <bindings.yaml> --target-rig <rigId>
|
|
1034
|
-
rig ps --nodes --json
|
|
1080
|
+
rig ps --nodes --rig <target-rig-name> --json
|
|
1035
1081
|
rig export <rigId> -o rig.yaml
|
|
1036
1082
|
```
|
|
1037
1083
|
|
|
1038
1084
|
Success looks like:
|
|
1039
1085
|
- the new sessions stop appearing in `rig discover`
|
|
1040
|
-
- the new logical IDs appear in `rig ps --nodes --json`
|
|
1086
|
+
- the new logical IDs appear in `rig ps --nodes --rig <target-rig-name> --json`
|
|
1041
1087
|
- `rig export` includes the new pod
|
|
1042
1088
|
|
|
1043
1089
|
### Mixed-origin rigs are allowed
|
|
@@ -1055,7 +1101,7 @@ Current safety rule:
|
|
|
1055
1101
|
The proven operator pattern is:
|
|
1056
1102
|
- keep one OpenRig manager session outside the rig it manages
|
|
1057
1103
|
- address the target by rig name, not cached rig ID
|
|
1058
|
-
- resolve the current owner from fresh `rig ps --nodes --json`
|
|
1104
|
+
- resolve the current owner from fresh `rig ps --nodes -A --json`
|
|
1059
1105
|
- send the manager the spec path, bindings path, and verification steps with `rig send`
|
|
1060
1106
|
|
|
1061
1107
|
This lets ordinary agents ask the manager for OpenRig help instead of every agent needing to be an OpenRig expert.
|
|
@@ -1152,7 +1198,7 @@ When the CLI behaves strangely, use the smallest truthful check first:
|
|
|
1152
1198
|
```bash
|
|
1153
1199
|
rig whoami --json
|
|
1154
1200
|
rig daemon status
|
|
1155
|
-
rig ps --nodes
|
|
1201
|
+
rig ps --nodes
|
|
1156
1202
|
```
|
|
1157
1203
|
|
|
1158
1204
|
Specific operator rules:
|
|
@@ -1188,7 +1234,7 @@ Design assumptions that hold in the shipped CLI:
|
|
|
1188
1234
|
|
|
1189
1235
|
1. `rig whoami --json`
|
|
1190
1236
|
2. `rig transcript <your-session> --tail 100`
|
|
1191
|
-
3. `rig ps --nodes
|
|
1237
|
+
3. `rig ps --nodes`
|
|
1192
1238
|
4. `rig chatroom history <rig> --limit 50`
|
|
1193
1239
|
|
|
1194
1240
|
## Commands That Do Not Exist
|
|
@@ -10,9 +10,9 @@ You are part of the orchestration pod. Your job is to keep the team productive,
|
|
|
10
10
|
## Startup sequence
|
|
11
11
|
|
|
12
12
|
Before you summarize the rig or assign real work:
|
|
13
|
-
1. Load `using-superpowers`, `openrig-user`, `orchestration-team`, `systematic-debugging`, and `verification-before-completion`.
|
|
13
|
+
1. Load `using-superpowers`, `openrig-user`, `orchestration-team`, `systematic-debugging`, and `verification-before-completion`. Also load `mission-slice-sop` — the operating procedure for the canonical mission/slice files (you own PROGRESS.md `§1`; run `rig scope audit` at slice-close/mission-wrap).
|
|
14
14
|
2. Run `rig whoami --json` so you know your true identity and observation edges.
|
|
15
|
-
3. Run `rig ps --nodes --json` and wait for the expected starter topology to settle.
|
|
15
|
+
3. Run `rig ps --nodes -A --json` (v0.4.4: `--nodes` scopes to the current rig by default; `-A` for the fleet) and wait for the expected starter topology to settle.
|
|
16
16
|
4. Check recent chatroom history or direct startup messages so you know who is actually online and what they already reported.
|
|
17
17
|
5. Only then announce readiness or assign work.
|
|
18
18
|
|
|
@@ -34,7 +34,7 @@ The orchestration pod is responsible for:
|
|
|
34
34
|
**Principle:** monitoring intensity tracks **stakes × how likely you are to need to intervene, bounded to the window where that's true.** Spend tight attention only where it changes what you do, only as long as the risk lasts, then return to default. (Same evidence-not-cadence rule the `watchdog` skill applies to intervention *level*, applied to *intensity*.) **Self-test: "Can I name the stakes AND the condition that ends this close-watch?"** If not, you're hyper-monitoring.
|
|
35
35
|
|
|
36
36
|
**Default (almost always) — token-efficient.** Steady-state your job is the **idle-without-handoff exception**: the queue handles normal handoff; you catch the agent who finished + went idle without closing/handing off.
|
|
37
|
-
- **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps --nodes --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state).
|
|
37
|
+
- **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps` (the consolidated map) / `rig ps --nodes -A --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state).
|
|
38
38
|
- **The watchdog is your clock** (`watchdog`): configure `rig watchdog` to wake you (~3 min); between wakes, idle (zero tokens) — no self-run sleep-loop re-reading panes at steady-state. Prefer one workflow-watchdog + targeted exception handling over many per-seat nag loops.
|
|
39
39
|
- **On each wake — cheap sweep:** `rig queue` + a *filtered* `rig ps` (see "Read cheap" below) first; ONLY for a seat that looks idle/suspicious, `rig capture <session>` last few lines (never a full pane, never huge chunks); **active owner → no-op.**
|
|
40
40
|
- **Read cheap — every status command has a token cost; project to the question.** The queue-first rule is about *where* status lives; this is about *how much you pay to read it*. The token bomb is the broad unfiltered dump, not the pane capture: an unfiltered fleet-wide `rig ps --nodes --json` emits ~77k tokens — for a one-rig or one-qitem question that is almost all waste, and at watchdog cadence it burns the shared account fast.
|
|
@@ -15,3 +15,7 @@ Ship features that solve real customer problems with evidence-backed requirement
|
|
|
15
15
|
- PM agent is the hub. Research and code agents report to PM.
|
|
16
16
|
- Coder can observe researcher output for domain context.
|
|
17
17
|
- When blocked, escalate to PM rather than guessing.
|
|
18
|
+
|
|
19
|
+
## Mission/slice tracking (the SDLC)
|
|
20
|
+
|
|
21
|
+
Requirements and delivery are tracked as missions and slices — on-disk markdown the Living Notes UI projects. Load the packaged `mission-slice-sop` skill; the conventions live in `docs/reference/sdlc-conventions.md` (shipped with the CLI package). PM's leg of the flow: record intent verbatim, author the mini-requirements (the one-glance tier where approval starts) + the proof contract (promised deliverables as observable outcomes; UI deliverables name their planned mockup), then plan-lock with `rig scope slice approve --scope spec`. Proof-lock (`--scope delivery`) is the terminal sign-off after QA's visual compare and `rig proof add … --media` drops (the C1 drop verb).
|
|
@@ -11,7 +11,7 @@ with them and escalate to them when ops decisions need human approval.
|
|
|
11
11
|
rig**; other rigs require explicit operator-initiated restart.
|
|
12
12
|
When the user says "bring my rigs back online":
|
|
13
13
|
1. List rigs that were running pre-reboot using daemon persisted
|
|
14
|
-
state (`rig ps --json
|
|
14
|
+
state (`rig ps --json`) and any operator-saved roster.
|
|
15
15
|
2. Confirm with the user which subset to restart.
|
|
16
16
|
3. Restart each via `rig up <spec>` (or `rig restore <snapshot>`
|
|
17
17
|
if a snapshot exists).
|
|
@@ -34,7 +34,7 @@ tmux sessions are gone. You own the agent-restart workflow:
|
|
|
34
34
|
Other rigs (project rigs the user spun up) are NEVER auto-instantiated
|
|
35
35
|
by the daemon. If the user asks you to bring those back:
|
|
36
36
|
|
|
37
|
-
1. `rig ps --json
|
|
37
|
+
1. `rig ps --json` shows which rigs are persisted but with
|
|
38
38
|
detached sessions.
|
|
39
39
|
2. Confirm with the user which subset to restart.
|
|
40
40
|
3. `rig up <spec>` for cold-start; `rig restore <snapshot> --rig
|
|
@@ -135,3 +135,7 @@ Follow patterns agents already know: docker, git, kubectl, npm.
|
|
|
135
135
|
## What this rig is for
|
|
136
136
|
|
|
137
137
|
This is the advanced product-team lane. Use it when the work needs richer coordination than the conveyor starter. The human sets direction; the team plans, implements, reviews, and surfaces gaps honestly.
|
|
138
|
+
|
|
139
|
+
## Mission/slice tracking (the SDLC)
|
|
140
|
+
|
|
141
|
+
Work is tracked as missions and slices — on-disk markdown the Living Notes UI projects. Load the packaged `mission-slice-sop` skill before authoring or building a slice; the conventions (section names, proof contract, the two locks, C1 proof headers) live in `docs/reference/sdlc-conventions.md` (shipped with the CLI package). The short form: record intent → author mini-requirements + a proof contract (→ mockups for UI slices) → plan-lock (`rig scope slice approve --scope spec`) → build the locked set → QA visually compares planned vs delivered → `rig proof add … --evidences --media` drops (the C1 drop verb — never hand-place evidence) → proof-lock (`--scope delivery`). `rig scope audit` is the advisory backstop — fix the flag, don't suppress it.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-info.d.ts","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,SAKxB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// GENERATED by scripts/build-package.sh — the packaged build-identity stamp.
|
|
2
|
+
export const BUILD_INFO = {
|
|
3
|
+
semver: "0.4.4",
|
|
4
|
+
commit: "ac75777a3cad318592dae9d616a09d824f1398e5",
|
|
5
|
+
dirty: false,
|
|
6
|
+
builtAt: "2026-07-06T08:21:05Z",
|
|
7
|
+
};
|
|
8
|
+
export function stampFields(info = BUILD_INFO) {
|
|
9
|
+
if (!info.commit) return {};
|
|
10
|
+
return { semver: info.semver, commit: info.commit, dirty: info.dirty, builtAt: info.builtAt };
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-info.js","sourceRoot":"","sources":["../src/build-info.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,4EAA4E;AAC5E,6EAA6E;AAC7E,yDAAyD;AASzD,MAAM,CAAC,MAAM,UAAU,GAAc;IACnC,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;CACd,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { DaemonClient } from "../client.js";
|
|
3
|
+
import { type LifecycleDeps } from "../daemon-lifecycle.js";
|
|
4
|
+
export interface CompactDeps {
|
|
5
|
+
lifecycleDeps: LifecycleDeps;
|
|
6
|
+
clientFactory: (url: string) => DaemonClient;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* OPR.0.4.3.14 — `rig compact <session>`: manually run the guided compaction
|
|
10
|
+
* lifecycle (prep → /compact → restore → audit) for one Claude seat, on demand,
|
|
11
|
+
* independent of the auto threshold. Distinct from the read-only `rig
|
|
12
|
+
* compact-plan` triage command.
|
|
13
|
+
*/
|
|
14
|
+
export declare function compactCommand(depsOverride?: CompactDeps): Command;
|
|
15
|
+
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAuB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAQ3F,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAyDlE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { DaemonClient, terminalAuthHeaders } from "../client.js";
|
|
3
|
+
import { getDaemonStatus, getDaemonUrl } from "../daemon-lifecycle.js";
|
|
4
|
+
import { realDeps } from "./daemon.js";
|
|
5
|
+
// The trigger is two-phase (prep → wait-for-idle → /compact); the wait-for-idle
|
|
6
|
+
// half can take up to the daemon's manual-prep ceiling (~120s). Give the HTTP
|
|
7
|
+
// call generous headroom so the client does not time out mid-sequence.
|
|
8
|
+
const MANUAL_COMPACT_REQUEST_TIMEOUT_MS = 180_000;
|
|
9
|
+
/**
|
|
10
|
+
* OPR.0.4.3.14 — `rig compact <session>`: manually run the guided compaction
|
|
11
|
+
* lifecycle (prep → /compact → restore → audit) for one Claude seat, on demand,
|
|
12
|
+
* independent of the auto threshold. Distinct from the read-only `rig
|
|
13
|
+
* compact-plan` triage command.
|
|
14
|
+
*/
|
|
15
|
+
export function compactCommand(depsOverride) {
|
|
16
|
+
const cmd = new Command("compact")
|
|
17
|
+
.description("Manually run the guided compaction sequence (prep → /compact → restore → audit) for one Claude seat")
|
|
18
|
+
.argument("<session>", "Target Claude session name (e.g. dev-impl@my-rig)")
|
|
19
|
+
.option("--json", "JSON output for agents")
|
|
20
|
+
.addHelpText("after", `
|
|
21
|
+
Examples:
|
|
22
|
+
rig compact dev-impl@my-rig Manually compact one Claude seat now
|
|
23
|
+
rig compact dev-impl@my-rig --json JSON output for agents
|
|
24
|
+
|
|
25
|
+
Runs the SAME guided lifecycle the auto-compaction policy runs (pre-compact
|
|
26
|
+
prep → /compact with the trust-bridge → restore-from-marker → read-depth audit)
|
|
27
|
+
on demand, for ONE Claude seat, without waiting for the context threshold. It is
|
|
28
|
+
NOT a bare /compact and NOT the read-only 'rig compact-plan' triage. Non-Claude
|
|
29
|
+
seats are rejected. The /compact is sent only AFTER the prep turn completes.`);
|
|
30
|
+
const getDepsF = () => depsOverride ?? {
|
|
31
|
+
lifecycleDeps: realDeps(),
|
|
32
|
+
clientFactory: (url) => new DaemonClient(url),
|
|
33
|
+
};
|
|
34
|
+
cmd.action(async (session, opts) => {
|
|
35
|
+
const deps = getDepsF();
|
|
36
|
+
const status = await getDaemonStatus(deps.lifecycleDeps);
|
|
37
|
+
if (status.state !== "running" || status.healthy === false) {
|
|
38
|
+
console.error("Daemon is not running. Start it with: rig daemon start");
|
|
39
|
+
process.exitCode = 1;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const client = deps.clientFactory(getDaemonUrl(status));
|
|
43
|
+
const res = await client.post("/api/compaction/trigger", { session }, { headers: terminalAuthHeaders(), timeoutMs: MANUAL_COMPACT_REQUEST_TIMEOUT_MS });
|
|
44
|
+
if (opts.json) {
|
|
45
|
+
console.log(JSON.stringify(res.data));
|
|
46
|
+
if (res.status >= 400)
|
|
47
|
+
process.exitCode = res.status >= 500 ? 2 : 1;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (res.status >= 400) {
|
|
51
|
+
const error = res.data["error"];
|
|
52
|
+
console.error(error ?? `Manual compaction failed (HTTP ${res.status})`);
|
|
53
|
+
process.exitCode = res.status >= 500 ? 2 : 1;
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const stage = res.data["stage"];
|
|
57
|
+
console.log(`Manual compaction triggered for ${session}${stage ? ` (stage: ${stage})` : ""}.`);
|
|
58
|
+
console.log("The restore + read-depth audit prompts follow automatically as the seat drains below threshold.");
|
|
59
|
+
});
|
|
60
|
+
return cmd;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=compact.js.map
|