@openrig/cli 0.4.3 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/guidance/openrig-start.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +47 -21
- package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +86 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +158 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +742 -94
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +12 -8
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +32 -0
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-resume.js +125 -0
- package/daemon/dist/adapters/pi-resume.js.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
- package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
- package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
- package/daemon/dist/adapters/pi-runner.d.ts +99 -0
- package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runner.js +519 -0
- package/daemon/dist/adapters/pi-runner.js.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
- package/daemon/dist/adapters/tmux.d.ts +22 -1
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +40 -1
- 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/builtins/workflow-specs/branched-remediation.yaml +31 -0
- package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
- package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
- package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -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/db/migrations/049_workflow_instance_version.d.ts +20 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
- package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
- package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
- package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
- package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
- package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
- package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
- package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +11 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +3 -1
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/discovery-types.d.ts +1 -1
- package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
- 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/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 +50 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +184 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js +54 -0
- package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
- package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
- package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/read-through.js +139 -0
- package/daemon/dist/domain/hosts/read-through.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +56 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js +154 -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 +18 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +206 -95
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +11 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +10 -0
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
- package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
- package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
- package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
- 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 +76 -26
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +130 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +304 -11
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-retention.d.ts +130 -0
- package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
- package/daemon/dist/domain/queue-retention.js +224 -0
- package/daemon/dist/domain/queue-retention.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +29 -2
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-capture.js +14 -1
- package/daemon/dist/domain/resume-token-capture.js.map +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
- package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
- package/daemon/dist/domain/resume-token-validation.js +58 -10
- package/daemon/dist/domain/resume-token-validation.js.map +1 -1
- 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 +277 -0
- package/daemon/dist/domain/review/compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/compose.js +862 -0
- package/daemon/dist/domain/review/compose.js.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
- package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/fleet-compose.js +294 -0
- package/daemon/dist/domain/review/fleet-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 +115 -0
- package/daemon/dist/domain/review/gather.d.ts.map +1 -0
- package/daemon/dist/domain/review/gather.js +812 -0
- package/daemon/dist/domain/review/gather.js.map +1 -0
- package/daemon/dist/domain/review/types.d.ts +361 -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-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +3 -0
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +7 -6
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +33 -11
- 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 +3 -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 +4 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +11 -0
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +26 -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 +20 -1
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
- package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-verifier.js +39 -1
- package/daemon/dist/domain/runtime-verifier.js.map +1 -1
- 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 +9 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +173 -1
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +2 -0
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
- package/daemon/dist/domain/seat-identity-store.js +27 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -1
- package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-status-service.js +6 -4
- package/daemon/dist/domain/seat-status-service.js.map +1 -1
- package/daemon/dist/domain/session-name.d.ts +22 -0
- package/daemon/dist/domain/session-name.d.ts.map +1 -1
- package/daemon/dist/domain/session-name.js +29 -0
- package/daemon/dist/domain/session-name.js.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-detail-projector.js +4 -5
- package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
- package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
- package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +10 -6
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
- package/daemon/dist/domain/startup-proof.js +35 -7
- package/daemon/dist/domain/startup-proof.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +13 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +27 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js +67 -0
- package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts +77 -0
- package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js +266 -0
- package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
- package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
- package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
- package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
- package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
- package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-service.js +174 -0
- package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
- package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
- package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
- package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
- package/daemon/dist/domain/terminal/view-composer.js +137 -0
- package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
- package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/tmux-option-defaults.js +132 -0
- package/daemon/dist/domain/tmux-option-defaults.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 +39 -1
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/up-command-router.d.ts +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 +18 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +201 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
- package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
- package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
- package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
- package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
- package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
- package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
- package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-deadline.js +165 -0
- package/daemon/dist/domain/workflow-deadline.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
- package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
- package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception-router.js +96 -0
- package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
- package/daemon/dist/domain/workflow-exception.d.ts +90 -0
- package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-exception.js +122 -0
- package/daemon/dist/domain/workflow-exception.js.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
- package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
- package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
- package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-instance-store.js +66 -10
- package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
- package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
- package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
- package/daemon/dist/domain/workflow-projector.d.ts +117 -2
- package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-projector.js +672 -41
- package/daemon/dist/domain/workflow-projector.js.map +1 -1
- package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
- package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-context.js +120 -0
- package/daemon/dist/domain/workflow-role-context.js.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
- package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
- package/daemon/dist/domain/workflow-role-resolver.js +108 -0
- package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
- package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
- package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-runtime.js +718 -11
- package/daemon/dist/domain/workflow-runtime.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +327 -13
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workflow-types.d.ts +143 -8
- package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-types.js +14 -1
- package/daemon/dist/domain/workflow-types.js.map +1 -1
- package/daemon/dist/domain/workflow-validator.d.ts +11 -1
- package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-validator.js +246 -1
- package/daemon/dist/domain/workflow-validator.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 +17 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +44 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.js +22 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- 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/hosts.d.ts +5 -0
- package/daemon/dist/routes/hosts.d.ts.map +1 -0
- package/daemon/dist/routes/hosts.js +346 -0
- package/daemon/dist/routes/hosts.js.map +1 -0
- 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 +10 -9
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +305 -10
- package/daemon/dist/routes/queue.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 +195 -0
- package/daemon/dist/routes/review.js.map +1 -0
- 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.js +13 -0
- package/daemon/dist/routes/seat.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/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/terminal.d.ts +11 -0
- package/daemon/dist/routes/terminal.d.ts.map +1 -0
- package/daemon/dist/routes/terminal.js +104 -0
- package/daemon/dist/routes/terminal.js.map +1 -0
- 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/workflow.d.ts.map +1 -1
- package/daemon/dist/routes/workflow.js +102 -10
- package/daemon/dist/routes/workflow.js.map +1 -1
- package/daemon/dist/routes/workspace.js +2 -2
- package/daemon/dist/server.d.ts +6 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +36 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +238 -14
- 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/factory-rsi/dogfood/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +29 -0
- package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -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 +113 -0
- package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +86 -0
- package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +158 -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 +75 -29
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +2 -2
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +4 -0
- package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
- package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -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/broadcast.d.ts +6 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +101 -15
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +99 -8
- package/dist/commands/capture.js.map +1 -1
- 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/config.d.ts.map +1 -1
- package/dist/commands/config.js +4 -0
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +5 -0
- package/dist/commands/down.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/host.d.ts +48 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +772 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +5 -0
- 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 +353 -135
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +36 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +149 -7
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/restore-packet.d.ts.map +1 -1
- package/dist/commands/restore-packet.js +13 -2
- package/dist/commands/restore-packet.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +140 -3
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +127 -13
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/terminal.d.ts +6 -0
- package/dist/commands/terminal.d.ts.map +1 -0
- package/dist/commands/terminal.js +116 -0
- package/dist/commands/terminal.js.map +1 -0
- package/dist/commands/transcript.d.ts +6 -1
- package/dist/commands/transcript.d.ts.map +1 -1
- package/dist/commands/transcript.js +113 -30
- package/dist/commands/transcript.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 +78 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +11 -0
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workflow-errors.d.ts +23 -0
- package/dist/commands/workflow-errors.d.ts.map +1 -0
- package/dist/commands/workflow-errors.js +100 -0
- package/dist/commands/workflow-errors.js.map +1 -0
- package/dist/commands/workflow-follow.d.ts +71 -0
- package/dist/commands/workflow-follow.d.ts.map +1 -0
- package/dist/commands/workflow-follow.js +259 -0
- package/dist/commands/workflow-follow.js.map +1 -0
- package/dist/commands/workflow-render.d.ts +114 -0
- package/dist/commands/workflow-render.d.ts.map +1 -0
- package/dist/commands/workflow-render.js +223 -0
- package/dist/commands/workflow-render.js.map +1 -0
- package/dist/commands/workflow.d.ts +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +278 -14
- package/dist/commands/workflow.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 +19 -1
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +171 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-cli-helpers.d.ts +13 -0
- package/dist/cross-host-cli-helpers.d.ts.map +1 -1
- package/dist/cross-host-cli-helpers.js +27 -0
- package/dist/cross-host-cli-helpers.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/cross-host-target.d.ts +49 -0
- package/dist/cross-host-target.d.ts.map +1 -0
- package/dist/cross-host-target.js +35 -0
- package/dist/cross-host-target.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +4 -1
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +17 -0
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +64 -2
- package/dist/host-registry.js.map +1 -1
- package/dist/host-selection.d.ts +13 -0
- package/dist/host-selection.d.ts.map +1 -0
- package/dist/host-selection.js +54 -0
- package/dist/host-selection.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.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 +9 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +173 -1
- 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 +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 +11 -7
- package/dist/lib/scope-templates/proof.md +5 -1
- 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 +1 -1
- package/dist/remote-host-ops.d.ts +1 -0
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +11 -4
- package/dist/remote-host-ops.js.map +1 -1
- package/dist/session-name.d.ts +23 -0
- package/dist/session-name.d.ts.map +1 -0
- package/dist/session-name.js +61 -0
- package/dist/session-name.js.map +1 -0
- 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-CFqxa0zW.css +32 -0
- package/ui/dist/assets/index-zrFqS7gL.js +623 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-DYZniQcc.js +0 -597
- package/ui/dist/assets/index-trcb4Yf_.css +0 -32
|
@@ -11,7 +11,7 @@ imports:
|
|
|
11
11
|
profiles:
|
|
12
12
|
default:
|
|
13
13
|
uses:
|
|
14
|
-
skills: [using-superpowers, openrig-user, development-team, frontend-design, verification-before-completion, writing-plans, brainstorming]
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, development-team, frontend-design, 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 the design side of the product team. Your job is to turn rough product i
|
|
|
7
7
|
Load these packaged skills now before giving product direction:
|
|
8
8
|
- `using-superpowers`
|
|
9
9
|
- `openrig-user`
|
|
10
|
+
- `mission-slice-sop`
|
|
10
11
|
- `development-team`
|
|
11
12
|
- `frontend-design`
|
|
12
13
|
- `brainstorming`
|
|
@@ -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`
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: factory-rsi-dogfood
|
|
2
|
+
version: "1.0"
|
|
3
|
+
description: Dogfood agent — continuously uses the SHIPPED product out-of-band and records findings that feed the next RSI plan cycle
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
runtime: claude-code
|
|
7
|
+
|
|
8
|
+
imports:
|
|
9
|
+
- ref: local:../../shared
|
|
10
|
+
|
|
11
|
+
profiles:
|
|
12
|
+
default:
|
|
13
|
+
uses:
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, dogfood, systematic-debugging, verification-before-completion]
|
|
15
|
+
guidance: []
|
|
16
|
+
subagents: []
|
|
17
|
+
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
|
+
|
|
19
|
+
resources:
|
|
20
|
+
guidance:
|
|
21
|
+
- id: role
|
|
22
|
+
path: guidance/role.md
|
|
23
|
+
|
|
24
|
+
startup:
|
|
25
|
+
files:
|
|
26
|
+
- path: guidance/role.md
|
|
27
|
+
delivery_hint: send_text
|
|
28
|
+
required: true
|
|
29
|
+
actions: []
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Role — Dogfood tester (factory-rsi)
|
|
2
|
+
|
|
3
|
+
You are the **dogfood** seat of the single-rig RSI factory. Your job is the one
|
|
4
|
+
hop the rest of the loop never proves: turn real usage of the SHIPPED product
|
|
5
|
+
into the next plan.
|
|
6
|
+
|
|
7
|
+
## What you do
|
|
8
|
+
|
|
9
|
+
You run **out-of-band**, decoupled from the gated inner loop (plan → build →
|
|
10
|
+
check → review → release). You continuously **use the SHIPPED product for
|
|
11
|
+
real** — not a smoke test, not a checklist tick, and NOT a second QA on a
|
|
12
|
+
pre-release build artifact. Exercise the actual shipped thing the way a real
|
|
13
|
+
user or operator would, hard enough to surface what building, checking, and
|
|
14
|
+
review never see in isolation: rough edges, wrong defaults, missing affordances,
|
|
15
|
+
broken assumptions.
|
|
16
|
+
|
|
17
|
+
Then record your **findings** as durable closure evidence. These findings ARE
|
|
18
|
+
the input to the next plan cycle, so write them for the planner: concrete,
|
|
19
|
+
prioritized, tied to what you saw.
|
|
20
|
+
|
|
21
|
+
## The RSI edge (ungated)
|
|
22
|
+
|
|
23
|
+
- Your findings feed the **next plan** — that feedback edge is the recursion. It
|
|
24
|
+
is **ungated**: no human gate on the loop and no loop-stop in the MVP (a human
|
|
25
|
+
MAY steer via the roadmap but is never required).
|
|
26
|
+
- You are **not an inner-loop gate.** You do not pass or fail the build artifact;
|
|
27
|
+
the inner loop's own check and review do that. You dogfood what already
|
|
28
|
+
shipped and feed the next cycle.
|
|
29
|
+
|
|
30
|
+
## Discipline
|
|
31
|
+
|
|
32
|
+
- Record findings as durable evidence (the packet trail / `evidence_ref`), never
|
|
33
|
+
as ambient chat — the next cycle reads recorded state, not your memory.
|
|
34
|
+
- Do not route the inner loop yourself. Raise real blockers as exceptions (they
|
|
35
|
+
go orchestrator-first).
|
|
36
|
+
- Bias toward finding real problems over declaring success — you exist to surface
|
|
37
|
+
what shipped but should not have, not to bless it.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: factory-rsi-release-manager
|
|
2
|
+
version: "1.0"
|
|
3
|
+
description: Release-manager agent — prepares the release (notes, docs, PR) and holds the ship decision at the human gate
|
|
4
|
+
|
|
5
|
+
defaults:
|
|
6
|
+
runtime: claude-code
|
|
7
|
+
|
|
8
|
+
imports:
|
|
9
|
+
- ref: local:../../shared
|
|
10
|
+
|
|
11
|
+
profiles:
|
|
12
|
+
default:
|
|
13
|
+
uses:
|
|
14
|
+
skills: [using-superpowers, openrig-user, mission-slice-sop, verification-before-completion]
|
|
15
|
+
guidance: []
|
|
16
|
+
subagents: []
|
|
17
|
+
runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config]
|
|
18
|
+
|
|
19
|
+
resources:
|
|
20
|
+
guidance:
|
|
21
|
+
- id: role
|
|
22
|
+
path: guidance/role.md
|
|
23
|
+
|
|
24
|
+
startup:
|
|
25
|
+
files:
|
|
26
|
+
- path: guidance/role.md
|
|
27
|
+
delivery_hint: send_text
|
|
28
|
+
required: true
|
|
29
|
+
actions: []
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Role — Release manager (factory-rsi)
|
|
2
|
+
|
|
3
|
+
You are the **release** seat of the single-rig RSI factory. You run when the
|
|
4
|
+
cycle's review passes and the inner loop hands off to release prep. Your job is
|
|
5
|
+
to prepare a release and then **stop at the human gate** — you never publish.
|
|
6
|
+
|
|
7
|
+
## What you do
|
|
8
|
+
|
|
9
|
+
Prepare the shippable artifacts:
|
|
10
|
+
|
|
11
|
+
- release notes for the slice that just passed the loop,
|
|
12
|
+
- any docs / website updates it needs,
|
|
13
|
+
- the release PR (staged, not merged).
|
|
14
|
+
|
|
15
|
+
Reference the cycle's recorded proof (`proof/PROOF.md`) as the evidence the
|
|
16
|
+
human signs off against.
|
|
17
|
+
|
|
18
|
+
## Two steps: you PREPARE, then the human signs off
|
|
19
|
+
|
|
20
|
+
The workflow gives you two steps, in order:
|
|
21
|
+
|
|
22
|
+
1. **`release_prep`** — YOUR executable step. You do the actual preparation here
|
|
23
|
+
(notes, docs, the staged PR) and record the evidence. This runs BEFORE any
|
|
24
|
+
gate — the prepared artifacts exist first.
|
|
25
|
+
2. **`release_signoff`** — the **human gate**. When your prep is ready you hand
|
|
26
|
+
off to this step, which holds the ship decision at the human seat.
|
|
27
|
+
|
|
28
|
+
## The hard rule: publishing is a human act
|
|
29
|
+
|
|
30
|
+
You do NOT push, tag, publish, `npm publish`, cut a GitHub release, or upgrade
|
|
31
|
+
any host — those acts happen only after, and only by, the human at
|
|
32
|
+
`release_signoff`. If you are tempted to "just finish the release," stop: the
|
|
33
|
+
sign-off gate is the whole reason your prep stays prep.
|
|
34
|
+
|
|
35
|
+
## Discipline
|
|
36
|
+
|
|
37
|
+
- Prepare and hand to the gate; close honestly. Do not route past the gate.
|
|
38
|
+
- Raise anything blocking as an exception (orchestrator-first).
|
|
39
|
+
- Keep the prep faithful to what actually passed the loop; never invent a
|
|
40
|
+
cleaner story than the proof supports.
|
|
@@ -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,113 @@
|
|
|
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
|
+
The canonical product SDLC skill: it teaches the full SDLC flow the
|
|
11
|
+
Living Notes UI projects — the convention sections, the proof-contract
|
|
12
|
+
pairing, the two staged-approval locks, C1 proof drops, and the three
|
|
13
|
+
role contracts. Conventions SSOT: docs/reference/sdlc-conventions.md
|
|
14
|
+
(shipped with the CLI package). The deterministic backstop is the
|
|
15
|
+
`rig scope audit` classifier.
|
|
16
|
+
sibling_skills:
|
|
17
|
+
- queue-handoff
|
|
18
|
+
- seat-continuity-and-handover
|
|
19
|
+
- claude-compaction-restore
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Mission/Slice SOP — how you work a mission & slice
|
|
23
|
+
|
|
24
|
+
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.
|
|
25
|
+
|
|
26
|
+
## The SDLC flow (intent → proof)
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
intent → mini-requirements + proof contract → (UI slices: mockups)
|
|
30
|
+
→ plan-lock (rig scope slice approve --scope spec)
|
|
31
|
+
→ build the LOCKED set
|
|
32
|
+
→ QA: mockup ↔ delivered VISUAL compare
|
|
33
|
+
→ proof drops (rig proof add <slice> …)
|
|
34
|
+
→ proof-lock (rig scope slice approve --scope delivery)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
1. **Record intent** verbatim in the slice's `## Intent` section (`rig scope slice create` scaffolds it — every template kind).
|
|
38
|
+
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.
|
|
39
|
+
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.
|
|
40
|
+
4. **Build the locked set** — look at the mockups, not just the spec text.
|
|
41
|
+
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.
|
|
42
|
+
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).
|
|
43
|
+
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.
|
|
44
|
+
|
|
45
|
+
## The three role contracts
|
|
46
|
+
|
|
47
|
+
- **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.
|
|
48
|
+
- **Build agent:** builds against the LOCKED set only; looks at the mockups.
|
|
49
|
+
- **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.
|
|
50
|
+
|
|
51
|
+
## The canonical files (the operating surface)
|
|
52
|
+
|
|
53
|
+
> 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.
|
|
54
|
+
|
|
55
|
+
- **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.**
|
|
56
|
+
- **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.
|
|
57
|
+
- **PROGRESS.md** — the live delivery state. One line per outcome; links down for detail.
|
|
58
|
+
- **MISSION_NOTES.md** — the accruing handoff + tribal-knowledge doc. Blank-slate onboarding + **compaction-restore** read it. `§1` top-of-mind + per-seat `§A–§X`.
|
|
59
|
+
- **MISSION_BRIEF.md** — the steering doc (the UI "Steering" tab). The 7-section schema.
|
|
60
|
+
- **PROOF.md** (+ `proof/`) — acceptance evidence. **A slice is not done until every proof-contract item has evidence.**
|
|
61
|
+
|
|
62
|
+
## Per-file rules — WHO / WHEN / HOW
|
|
63
|
+
|
|
64
|
+
### PROGRESS.md
|
|
65
|
+
- **WHO:** the orchestrator owns `§1` (current state); every agent logs its own outcomes.
|
|
66
|
+
- **WHEN:** after every slice-done **AND every commit**; on any material state change.
|
|
67
|
+
- **HOW:** one line per outcome (checkbox), link down for detail (workstream-continuity format); keep frontmatter `stage`/`verified` honest.
|
|
68
|
+
|
|
69
|
+
### PROOF.md + proof/
|
|
70
|
+
- **WHO:** the impl/QA pair that worked the slice.
|
|
71
|
+
- **WHEN:** a slice is **NOT "done"** until every proof-contract item has evidence.
|
|
72
|
+
- **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.
|
|
73
|
+
|
|
74
|
+
### MISSION_NOTES.md
|
|
75
|
+
- **WHO:** any agent updates `§1` (top-of-mind); each seat owns + appends to its own `§A–§X` section.
|
|
76
|
+
- **WHEN:** on any material change; a compacting agent **files its state here BEFORE compaction and reads it on restore.**
|
|
77
|
+
- **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.
|
|
78
|
+
|
|
79
|
+
### MISSION_BRIEF.md
|
|
80
|
+
- **WHO:** product/design (steering owner).
|
|
81
|
+
- **WHEN:** when steering changes.
|
|
82
|
+
- **HOW:** the 7-section steering schema (the UI "Steering" tab reads it).
|
|
83
|
+
|
|
84
|
+
### README.md
|
|
85
|
+
- **WHO:** the author at creation; refreshed on rescope.
|
|
86
|
+
- **WHEN:** at mission/slice creation + when scope/theme changes.
|
|
87
|
+
- **HOW:** overview + honest frontmatter (`id`/`stage`/`verified`) + the convention sections up top; the mission README carries this SOP at its bottom.
|
|
88
|
+
|
|
89
|
+
## The lifecycle (4 legs)
|
|
90
|
+
|
|
91
|
+
**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."
|
|
92
|
+
|
|
93
|
+
## Hot-potato (handoffs)
|
|
94
|
+
|
|
95
|
+
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.
|
|
96
|
+
|
|
97
|
+
## Verify (deterministic backstop)
|
|
98
|
+
|
|
99
|
+
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.**
|
|
100
|
+
|
|
101
|
+
## Reading terminal captures — KNOWN GOTCHA: ghost-text autocomplete is NOT real
|
|
102
|
+
|
|
103
|
+
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.
|
|
104
|
+
|
|
105
|
+
**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.
|
|
106
|
+
|
|
107
|
+
## Moment-of-truth checklist
|
|
108
|
+
|
|
109
|
+
- **Starting a slice?** → intent recorded verbatim? mini-requirements + proof contract authored? mockups attached (UI slices)? plan locked (`--scope spec`)?
|
|
110
|
+
- **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?
|
|
111
|
+
- **Committing?** → PROGRESS updated?
|
|
112
|
+
- **Compacting?** → filed your state in MISSION_NOTES?
|
|
113
|
+
- **Starting on a mission?** → read the mission README (incl. this SOP) + MISSION_NOTES + `docs/reference/sdlc-conventions.md`?
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openrig-cmux
|
|
3
|
+
description: >
|
|
4
|
+
Use when opening OpenRig fleet terminals into cmux — turning a rig, pod, mission, slice, or saved
|
|
5
|
+
view into live agent tiles via `rig terminal --provider cmux`, or driving cmux on an agent's
|
|
6
|
+
request. Same OpenRig view semantics as openrig-herdr (the verbs, honest-partial/degrade, read-only
|
|
7
|
+
cross-rig, scroll/copy, same-size-only duplicates); cmux is the **best-effort** provider (herdr is
|
|
8
|
+
the default and the proof-gated one). Prefer openrig-herdr unless cmux is specifically wanted.
|
|
9
|
+
metadata:
|
|
10
|
+
openrig:
|
|
11
|
+
stage: candidate
|
|
12
|
+
distribution_scope: product-bound
|
|
13
|
+
source_evidence: |
|
|
14
|
+
cmux is OpenRig's shipped terminal provider generalized onto `rig terminal <provider>` —
|
|
15
|
+
best-effort, not proof-gated. Authored clean-room.
|
|
16
|
+
transfer_test: pending
|
|
17
|
+
sibling_skills:
|
|
18
|
+
- openrig-herdr
|
|
19
|
+
- openrig-user
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# openrig-cmux
|
|
23
|
+
|
|
24
|
+
cmux is a **provider** for OpenRig views — the same `rig terminal` surface as herdr, rendering the
|
|
25
|
+
tiles into cmux instead. It is the provider OpenRig already shipped (the existing "Launch in cmux"
|
|
26
|
+
affordance generalizes onto `rig terminal <provider>`), kept working. The OpenRig-semantic half is
|
|
27
|
+
identical to openrig-herdr: OpenRig decides **which** agents form a view; the provider renders the
|
|
28
|
+
pixels. **Read openrig-herdr first for the full model** — this skill only calls out what differs for
|
|
29
|
+
cmux.
|
|
30
|
+
|
|
31
|
+
## Provider status — cmux is best-effort
|
|
32
|
+
|
|
33
|
+
- **herdr is the default and the proof-gated provider**; **cmux is best-effort** — it ships on the
|
|
34
|
+
same `rig terminal <provider>` + web-launcher neighborhood, but a cmux miss is not a slice failure.
|
|
35
|
+
Reach for cmux when it is specifically wanted; otherwise default to herdr (`rig terminal open <view>`
|
|
36
|
+
with no `--provider`).
|
|
37
|
+
- Views are **provider-agnostic**: the same view + the same agents + the same semantics carry across
|
|
38
|
+
herdr and cmux. A saved view opens in either.
|
|
39
|
+
|
|
40
|
+
## The surface (same three verbs, `--provider cmux`)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
rig terminal open <view> --provider cmux [--json] # open a view into cmux (herdr is the no-flag default)
|
|
44
|
+
rig terminal views [--json] # the same view library, provider-agnostic
|
|
45
|
+
rig terminal status --provider cmux [--json] # cmux liveness / health
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`<view>` resolves exactly as with herdr: a **rig name** · **`pod:<rig>/<podNamespace>`** ·
|
|
49
|
+
**`mission:<id>`** · **`slice:<id>`** (derived live) · a **saved-view name**.
|
|
50
|
+
|
|
51
|
+
## What carries over unchanged from openrig-herdr
|
|
52
|
+
|
|
53
|
+
All of these behave identically — see openrig-herdr for the detail:
|
|
54
|
+
|
|
55
|
+
- **Honest-partial / honest-degrade** — opened / absent / degraded, each named; partial opens exit 0,
|
|
56
|
+
zero-pane exits non-zero; an http-registered host's agents degrade with the reason ("host `<id>` is
|
|
57
|
+
http-registered; tiles need ssh"), never silently dropped.
|
|
58
|
+
- **Read-only policy** — a rig or `pod:` view is interactive; `mission:` / `slice:` views are
|
|
59
|
+
read-only by construction; a saved view is per-member (`readOnly`). A read-only pane is
|
|
60
|
+
`tmux attach -r` (client `readonly=1`, keystrokes physically cannot reach the agent). See openrig-herdr.
|
|
61
|
+
- **Safety rails (the fleet-safety rail)** — a tile is a *view* (nested `tmux attach`) of a
|
|
62
|
+
daemon-owned session; never move/join/kill/re-parent a daemon-owned pane; closing a tile detaches
|
|
63
|
+
one client and leaves the session untouched; never live-flip tmux options on a running seat in
|
|
64
|
+
production (prove it in an isolated environment first).
|
|
65
|
+
- **Scroll + copy out of the box** — the daemon's terminal defaults (per-session scroll at launch +
|
|
66
|
+
the server's clipboard defaults); running seats pick up wheel-scroll at their next relaunch.
|
|
67
|
+
- **Limits** — tile chrome v1 = a plain label; same-size panes for duplicate/multi-view membership
|
|
68
|
+
(the different-size resize mismatch is an inherent tmux multi-client limit, documented not fixed).
|
|
69
|
+
|
|
70
|
+
## cmux-specific notes
|
|
71
|
+
|
|
72
|
+
- **Open-or-focus per agent** — cmux's shipped integration opens a node or focuses it if already open;
|
|
73
|
+
expect focus (not a duplicate) when a seat is already tiled in cmux.
|
|
74
|
+
- **The shipped "Launch in cmux" affordance is preserved** (byte-compatible) and generalizes into the
|
|
75
|
+
provider + view picker; opening cmux from the web launcher still works.
|
|
76
|
+
- **No AGPL arm's-length concern** — unlike herdr, cmux is OpenRig's shipped provider integration; the
|
|
77
|
+
clean-room/never-embed rail that applies to herdr is not a cmux constraint. (This skill itself is
|
|
78
|
+
still authored clean-room.)
|
|
79
|
+
|
|
80
|
+
## Saved views — provider-agnostic
|
|
81
|
+
|
|
82
|
+
Saved views are **hand-authored** in `terminal-views.yaml` (v1 has no save/write verb) and are
|
|
83
|
+
**provider-agnostic** — see **openrig-herdr** for the exact schema, the store facts (atomic tmp+rename,
|
|
84
|
+
byte-stable, at the OpenRig home root), and the derived-views-never-persisted rule. Reopen any saved
|
|
85
|
+
view in cmux with `rig terminal open <id> --provider cmux`. Derived views (a rig, `pod:<rig>/<pod>`,
|
|
86
|
+
`mission:<id>`, `slice:<id>`) are computed live and never written to the file.
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openrig-herdr
|
|
3
|
+
description: >
|
|
4
|
+
Use when opening OpenRig fleet terminals as a herdr wall — turning a rig, pod, mission, slice, or
|
|
5
|
+
saved view into live interactive agent tiles via `rig terminal`, watching another rig read-only,
|
|
6
|
+
or driving herdr on an agent's request ("open all my rigs + a mission as views"). Covers the
|
|
7
|
+
`rig terminal open|views|status` verbs, the honest-partial/degrade reading of the result, the
|
|
8
|
+
read-only-by-construction rail for cross-rig views, scroll/copy out of the box, and the
|
|
9
|
+
same-size-only duplicate-pane limit. herdr is the default, proof-gated provider.
|
|
10
|
+
metadata:
|
|
11
|
+
openrig:
|
|
12
|
+
stage: candidate
|
|
13
|
+
distribution_scope: product-bound
|
|
14
|
+
source_evidence: |
|
|
15
|
+
Empirical herdr 0.7.1 hands-on findings + the ratified implementation PRD. Authored
|
|
16
|
+
clean-room (patterns only, no herdr source text; AGPL arm's-length).
|
|
17
|
+
transfer_test: pending
|
|
18
|
+
sibling_skills:
|
|
19
|
+
- openrig-cmux
|
|
20
|
+
- openrig-user
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# openrig-herdr
|
|
24
|
+
|
|
25
|
+
OpenRig decides **which** agents make up a view (a rig, a pod, a mission, a slice, or a saved
|
|
26
|
+
group); **herdr** renders the pixels. A view opens as live, interactive terminal tiles — each tile
|
|
27
|
+
is a nested `tmux attach` to a daemon-owned agent session, so you get the real session, not a
|
|
28
|
+
snapshot. OpenRig owns the semantics; herdr owns the surface. You drive it entirely through the
|
|
29
|
+
`rig terminal` CLI, which rides the installed herdr binary at arm's length — never link, embed, or
|
|
30
|
+
plugin it.
|
|
31
|
+
|
|
32
|
+
## The whole surface — three verbs
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
rig terminal open <view> [--provider herdr|cmux] [--json] # herdr is the default provider
|
|
36
|
+
rig terminal views [--json] # list openable views (saved + derived)
|
|
37
|
+
rig terminal status [--provider] [--json] # provider liveness / health
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`<view>` resolves, in order, to one of:
|
|
41
|
+
- a **rig name** — every live agent in that rig, auto-laid-out;
|
|
42
|
+
- **`pod:<rig>/<podNamespace>`** — every live agent in one pod of a rig (the rig's inventory filtered by pod);
|
|
43
|
+
- **`mission:<id>`** — the agents working that mission (derived live from topology);
|
|
44
|
+
- **`slice:<id>`** — the agents working that slice (derived live);
|
|
45
|
+
- a **saved-view name** — a user-defined group (see Saved views).
|
|
46
|
+
|
|
47
|
+
## Compose a view from a sentence
|
|
48
|
+
|
|
49
|
+
An agent asked "open all my rigs plus a mission as views" runs one `open` per target:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
rig terminal open acme-web # a whole rig, live agents as tiles
|
|
53
|
+
rig terminal open mission:site-relaunch # exactly the agents working the mission
|
|
54
|
+
rig terminal open slice:02-search-filters # the agents working one slice
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
No hand-listing of seats: the mission/slice membership is derived from live topology at open time.
|
|
58
|
+
|
|
59
|
+
## Read the result honestly — partial and degrade
|
|
60
|
+
|
|
61
|
+
The result is a partition — every seat lands in exactly one bucket, each **named**:
|
|
62
|
+
|
|
63
|
+
- **opened** — the live agents now showing as tiles.
|
|
64
|
+
- **absent** — seats in the view that aren't currently live: **named and skipped, never silently
|
|
65
|
+
dropped.** A view that opens *some* of its seats is a success (the partial is disclosed) and exits
|
|
66
|
+
**0**. Only a view where **no** pane opens exits **non-zero**.
|
|
67
|
+
- **degraded** — an agent that structurally cannot tile, named **with the reason**. The v1 case:
|
|
68
|
+
an agent on a host registered over HTTP has no ssh path, so its tile can't be composed — it reads
|
|
69
|
+
as **"host `<id>` is http-registered; tiles need ssh"** and is skipped, never dropped. (ssh-reachable
|
|
70
|
+
hosts tile via an ssh-wrapped attach; full http-host tiling is deferred to the cross-host transport
|
|
71
|
+
seam.)
|
|
72
|
+
|
|
73
|
+
Read `--json` to branch on the partition programmatically; the exit code alone tells you opened-something
|
|
74
|
+
(0) vs opened-nothing (non-zero).
|
|
75
|
+
|
|
76
|
+
## Read-only — who's interactive, who's watch-only
|
|
77
|
+
|
|
78
|
+
Read-only is composed into the pane at open time — a read-only tile is a `tmux attach -r`, the client
|
|
79
|
+
reports `readonly=1`, and it **physically cannot send input**. The current policy, by view kind:
|
|
80
|
+
|
|
81
|
+
- **A rig view or a `pod:` view is interactive** — you asked for that rig (or pod) directly, so you
|
|
82
|
+
can drive its agents.
|
|
83
|
+
- **`mission:` and `slice:` views are read-only by construction** — these derived views cut across
|
|
84
|
+
rigs; you watch and scroll, you don't keystroke into them.
|
|
85
|
+
- **A saved view is per-member** — each member carries its own `readOnly` (omit = interactive;
|
|
86
|
+
`true` = `attach -r`).
|
|
87
|
+
|
|
88
|
+
So you don't have to remember to be careful: the view kind (and, for a saved view, the per-member
|
|
89
|
+
flag) sets it at open time.
|
|
90
|
+
|
|
91
|
+
## Safety rails (hard — the fleet-safety rail)
|
|
92
|
+
|
|
93
|
+
- A tile is a **view** (a nested `tmux attach`) of a daemon-owned session. **Never** move, join, kill,
|
|
94
|
+
or re-parent a daemon-owned pane. Closing a tile detaches one tmux client — the daemon's session is
|
|
95
|
+
untouched and its addressing (send/capture/nudge) is unaffected.
|
|
96
|
+
- Host-local read-only viewing mutates nothing. Anything that would change a **live** daemon session's
|
|
97
|
+
shared state (e.g. flipping a tmux option on a running seat) is a config/design change — prove it in
|
|
98
|
+
an isolated environment, never live-flip in production.
|
|
99
|
+
|
|
100
|
+
## Scroll + copy work out of the box
|
|
101
|
+
|
|
102
|
+
On a freshly-launched agent tile the mouse wheel scrolls the pane's history and a drag-select copies
|
|
103
|
+
to your **system** clipboard — with no tmux commands typed. This rides the daemon's terminal defaults
|
|
104
|
+
(a per-session scroll option set at launch, plus the daemon tmux server's clipboard defaults). Honest
|
|
105
|
+
timing: agents that were already running before this shipped pick up wheel-scroll at their **next
|
|
106
|
+
natural relaunch** (the scroll default is per-session and running seats are never retro-flipped);
|
|
107
|
+
system-clipboard copy works immediately (it's server-wide).
|
|
108
|
+
|
|
109
|
+
## Limits — state them, don't paper over them
|
|
110
|
+
|
|
111
|
+
- **Tile chrome v1 = a plain label** (agent + slice). Rich per-tile status is roadmap.
|
|
112
|
+
- **Duplicate / multi-view membership** (the same agent live in two views at once) works — put the
|
|
113
|
+
duplicates in **same-size panes**. Different-sized duplicate panes have an inherent tmux
|
|
114
|
+
multi-client resize mismatch (tmux clamps to the smallest client); it is **documented, not fixed** —
|
|
115
|
+
don't expect a setting to remove it.
|
|
116
|
+
- **Inner tmux status bar** is hidden by default (herdr provides the chrome); one config key
|
|
117
|
+
(`terminal.status_bar`) flips it back on for raw-tmux / no-provider surfaces, and the flip applies
|
|
118
|
+
to **future launches only**.
|
|
119
|
+
|
|
120
|
+
## Saved views — the library (`terminal-views.yaml`)
|
|
121
|
+
|
|
122
|
+
In v1 you **create** a saved view by **hand-authoring** `terminal-views.yaml` — there is no save/write
|
|
123
|
+
verb (`open` / `views` / `status` are the whole surface; a `rig terminal save <id>` verb is a named
|
|
124
|
+
stretch/follow-up). You **reopen** it like any other view: `rig terminal open <id>`.
|
|
125
|
+
|
|
126
|
+
The file lives at the OpenRig home root (resolved via `getDefaultOpenRigPath()`), is written
|
|
127
|
+
atomically (tmp + rename), and is byte-stable. **Only hand-authored saved views live here — derived
|
|
128
|
+
views (a rig, `pod:<rig>/<pod>`, `mission:<id>`, `slice:<id>`) are computed live and never written to
|
|
129
|
+
this file.**
|
|
130
|
+
|
|
131
|
+
Schema — use these field names **exactly**, in this order; **omit** optional fields when absent
|
|
132
|
+
(never write `null`):
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
version: 1
|
|
136
|
+
views:
|
|
137
|
+
- id: my-view-id # required — the id `rig terminal open <id>` takes
|
|
138
|
+
name: Human Name # required
|
|
139
|
+
members:
|
|
140
|
+
- seat: pod-member@rig # required — the canonical session name
|
|
141
|
+
label: agent . slice # optional — pane label
|
|
142
|
+
host: some-host-id # optional — STRUCTURED host id (NEVER a `member@rig@host` string);
|
|
143
|
+
# omit for local. ssh-registered hosts tile;
|
|
144
|
+
# http-registered hosts honest-degrade (named + skipped, with reason)
|
|
145
|
+
tmuxSession: sessname # optional — defaults to `seat`
|
|
146
|
+
readOnly: true # optional — omit = interactive; true = `tmux attach -r`
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
An agent composing a saved view on request **writes this YAML** and then opens the id:
|
|
150
|
+
`rig terminal open my-view-id` (add `--provider cmux` for cmux). The library is provider-agnostic —
|
|
151
|
+
the same saved view opens in herdr or cmux.
|
|
152
|
+
|
|
153
|
+
## AGPL / clean-room
|
|
154
|
+
|
|
155
|
+
Driving herdr through the `rig terminal` CLI (which talks to the installed herdr binary over its
|
|
156
|
+
CLI/socket) is arm's-length and fine. Do **not** link herdr's source, embed it in-process, or ship a
|
|
157
|
+
herdr plugin — a plugin needs legal review. This skill and its docs are clean-room: patterns only,
|
|
158
|
+
never herdr source text.
|