@openrig/cli 0.4.4 → 0.4.7

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.
Files changed (678) hide show
  1. package/daemon/assets/guidance/CULTURE-default.md +19 -0
  2. package/daemon/assets/guidance/openrig-start.md +20 -5
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
  6. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +34 -22
  7. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
  8. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +11 -16
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +95 -0
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +819 -101
  11. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
  12. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
  13. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
  14. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
  15. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
  16. package/daemon/dist/adapters/cmux-transport.js +8 -1
  17. package/daemon/dist/adapters/cmux-transport.js.map +1 -1
  18. package/daemon/dist/adapters/cmux.d.ts +9 -0
  19. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  20. package/daemon/dist/adapters/cmux.js +21 -0
  21. package/daemon/dist/adapters/cmux.js.map +1 -1
  22. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  23. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  24. package/daemon/dist/adapters/codex-runtime-adapter.js +32 -12
  25. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  26. package/daemon/dist/adapters/pi-resume.d.ts +32 -0
  27. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
  28. package/daemon/dist/adapters/pi-resume.js +125 -0
  29. package/daemon/dist/adapters/pi-resume.js.map +1 -0
  30. package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
  31. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
  32. package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
  33. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
  34. package/daemon/dist/adapters/pi-runner.d.ts +99 -0
  35. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
  36. package/daemon/dist/adapters/pi-runner.js +519 -0
  37. package/daemon/dist/adapters/pi-runner.js.map +1 -0
  38. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
  39. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
  40. package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
  41. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
  42. package/daemon/dist/adapters/tmux.d.ts +22 -1
  43. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  44. package/daemon/dist/adapters/tmux.js +40 -1
  45. package/daemon/dist/adapters/tmux.js.map +1 -1
  46. package/daemon/dist/build-info.js +3 -3
  47. package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
  48. package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
  49. package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
  50. package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
  51. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
  52. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
  53. package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
  54. package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
  55. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
  56. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
  57. package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
  58. package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
  59. package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
  60. package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
  61. package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
  62. package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
  63. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
  64. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
  65. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
  66. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
  67. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
  68. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
  69. package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
  70. package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
  71. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
  72. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
  73. package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
  74. package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
  75. package/daemon/dist/domain/claim-service.d.ts +11 -0
  76. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  77. package/daemon/dist/domain/claim-service.js +3 -1
  78. package/daemon/dist/domain/claim-service.js.map +1 -1
  79. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
  80. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  81. package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
  82. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  83. package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
  84. package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
  85. package/daemon/dist/domain/cmux-layout-service.js +100 -28
  86. package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
  87. package/daemon/dist/domain/context-monitor.d.ts +2 -0
  88. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  89. package/daemon/dist/domain/context-monitor.js +14 -0
  90. package/daemon/dist/domain/context-monitor.js.map +1 -1
  91. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  92. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  93. package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
  94. package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
  95. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +1 -0
  96. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  97. package/daemon/dist/domain/hosts/hosts-registry-reader.js +31 -10
  98. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  99. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
  100. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
  101. package/daemon/dist/domain/hosts/hosts-registry-writer.js +55 -0
  102. package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
  103. package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
  104. package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
  105. package/daemon/dist/domain/hosts/read-through.js +139 -0
  106. package/daemon/dist/domain/hosts/read-through.js.map +1 -0
  107. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +21 -0
  108. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  109. package/daemon/dist/domain/hosts/remote-daemon-http.js +56 -4
  110. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  111. package/daemon/dist/domain/node-inventory.d.ts +10 -1
  112. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  113. package/daemon/dist/domain/node-inventory.js +250 -97
  114. package/daemon/dist/domain/node-inventory.js.map +1 -1
  115. package/daemon/dist/domain/node-launcher.d.ts +11 -0
  116. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  117. package/daemon/dist/domain/node-launcher.js +10 -0
  118. package/daemon/dist/domain/node-launcher.js.map +1 -1
  119. package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
  120. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  121. package/daemon/dist/domain/plugin-vendor-service.js +23 -0
  122. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  123. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
  124. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  125. package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
  126. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  127. package/daemon/dist/domain/projection-lane.d.ts +7 -0
  128. package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
  129. package/daemon/dist/domain/projection-lane.js +28 -0
  130. package/daemon/dist/domain/projection-lane.js.map +1 -0
  131. package/daemon/dist/domain/ps-projection.d.ts +19 -0
  132. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  133. package/daemon/dist/domain/ps-projection.js +81 -30
  134. package/daemon/dist/domain/ps-projection.js.map +1 -1
  135. package/daemon/dist/domain/queue-repository.d.ts +116 -7
  136. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  137. package/daemon/dist/domain/queue-repository.js +226 -16
  138. package/daemon/dist/domain/queue-repository.js.map +1 -1
  139. package/daemon/dist/domain/queue-retention.d.ts +130 -0
  140. package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
  141. package/daemon/dist/domain/queue-retention.js +224 -0
  142. package/daemon/dist/domain/queue-retention.js.map +1 -0
  143. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
  144. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  145. package/daemon/dist/domain/restore-orchestrator.js +29 -2
  146. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  147. package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
  148. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  149. package/daemon/dist/domain/resume-token-capture.js +14 -1
  150. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  151. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  152. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  153. package/daemon/dist/domain/resume-token-validation.js +58 -10
  154. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  155. package/daemon/dist/domain/review/compose.d.ts +127 -5
  156. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  157. package/daemon/dist/domain/review/compose.js +244 -19
  158. package/daemon/dist/domain/review/compose.js.map +1 -1
  159. package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
  160. package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
  161. package/daemon/dist/domain/review/fleet-compose.js +294 -0
  162. package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
  163. package/daemon/dist/domain/review/gather.d.ts +17 -2
  164. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  165. package/daemon/dist/domain/review/gather.js +269 -108
  166. package/daemon/dist/domain/review/gather.js.map +1 -1
  167. package/daemon/dist/domain/review/proof-io.d.ts +2 -0
  168. package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
  169. package/daemon/dist/domain/review/proof-io.js +38 -0
  170. package/daemon/dist/domain/review/proof-io.js.map +1 -0
  171. package/daemon/dist/domain/review/types.d.ts +104 -1
  172. package/daemon/dist/domain/review/types.d.ts.map +1 -1
  173. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  174. package/daemon/dist/domain/rig-expansion-service.js +3 -0
  175. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  176. package/daemon/dist/domain/rig-repository.d.ts +7 -6
  177. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  178. package/daemon/dist/domain/rig-repository.js +33 -11
  179. package/daemon/dist/domain/rig-repository.js.map +1 -1
  180. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  181. package/daemon/dist/domain/rigspec-codec.js +3 -0
  182. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  183. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  184. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  185. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  186. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  187. package/daemon/dist/domain/rigspec-instantiator.js +26 -2
  188. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  189. package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
  190. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  191. package/daemon/dist/domain/rigspec-preflight.js +26 -1
  192. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  193. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  194. package/daemon/dist/domain/rigspec-schema.js +20 -1
  195. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  196. package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
  197. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  198. package/daemon/dist/domain/runtime-verifier.js +39 -1
  199. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  200. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
  201. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
  202. package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
  203. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
  204. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
  205. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
  206. package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
  207. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
  208. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  209. package/daemon/dist/domain/scope/scope-approve.js +22 -1
  210. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  211. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  212. package/daemon/dist/domain/scope/scope-audit.js +57 -20
  213. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  214. package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
  215. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  216. package/daemon/dist/domain/seat-handover-service.js +2 -0
  217. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  218. package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
  219. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  220. package/daemon/dist/domain/seat-identity-store.js +27 -0
  221. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  222. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  223. package/daemon/dist/domain/seat-status-service.js +6 -4
  224. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  225. package/daemon/dist/domain/session-name.d.ts +22 -0
  226. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  227. package/daemon/dist/domain/session-name.js +29 -0
  228. package/daemon/dist/domain/session-name.js.map +1 -1
  229. package/daemon/dist/domain/session-transport.d.ts +17 -0
  230. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  231. package/daemon/dist/domain/session-transport.js +44 -0
  232. package/daemon/dist/domain/session-transport.js.map +1 -1
  233. package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
  234. package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
  235. package/daemon/dist/domain/slices/qitem-membership.js +60 -0
  236. package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
  237. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
  238. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  239. package/daemon/dist/domain/slices/slice-detail-projector.js +161 -16
  240. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  241. package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
  242. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  243. package/daemon/dist/domain/slices/slice-indexer.js +422 -45
  244. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  245. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
  246. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  247. package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
  248. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  249. package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
  250. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  251. package/daemon/dist/domain/startup-orchestrator.js +71 -3
  252. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  253. package/daemon/dist/domain/startup-proof.d.ts +10 -6
  254. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  255. package/daemon/dist/domain/startup-proof.js +35 -7
  256. package/daemon/dist/domain/startup-proof.js.map +1 -1
  257. package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
  258. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  259. package/daemon/dist/domain/successor-session-launcher.js +13 -0
  260. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  261. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +28 -0
  262. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
  263. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +100 -0
  264. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
  265. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +94 -0
  266. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
  267. package/daemon/dist/domain/terminal/herdr-adapter.js +307 -0
  268. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
  269. package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
  270. package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
  271. package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
  272. package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
  273. package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
  274. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
  275. package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
  276. package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
  277. package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
  278. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
  279. package/daemon/dist/domain/terminal/terminal-service.js +174 -0
  280. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
  281. package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
  282. package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
  283. package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
  284. package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
  285. package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
  286. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
  287. package/daemon/dist/domain/terminal/view-composer.js +137 -0
  288. package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
  289. package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
  290. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
  291. package/daemon/dist/domain/tmux-option-defaults.js +132 -0
  292. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
  293. package/daemon/dist/domain/transcript-capture.d.ts +3 -0
  294. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  295. package/daemon/dist/domain/transcript-capture.js +28 -0
  296. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  297. package/daemon/dist/domain/transcript-store.d.ts +10 -0
  298. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  299. package/daemon/dist/domain/transcript-store.js +26 -0
  300. package/daemon/dist/domain/transcript-store.js.map +1 -1
  301. package/daemon/dist/domain/types.d.ts +38 -1
  302. package/daemon/dist/domain/types.d.ts.map +1 -1
  303. package/daemon/dist/domain/types.js.map +1 -1
  304. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  305. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  306. package/daemon/dist/domain/user-settings/settings-store.js +92 -0
  307. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  308. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
  309. package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
  310. package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
  311. package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
  312. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
  313. package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
  314. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
  315. package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
  316. package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
  317. package/daemon/dist/domain/workflow-deadline.js +165 -0
  318. package/daemon/dist/domain/workflow-deadline.js.map +1 -0
  319. package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
  320. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
  321. package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
  322. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
  323. package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
  324. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
  325. package/daemon/dist/domain/workflow-exception-router.js +96 -0
  326. package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
  327. package/daemon/dist/domain/workflow-exception.d.ts +90 -0
  328. package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
  329. package/daemon/dist/domain/workflow-exception.js +122 -0
  330. package/daemon/dist/domain/workflow-exception.js.map +1 -0
  331. package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
  332. package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
  333. package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
  334. package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
  335. package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
  336. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  337. package/daemon/dist/domain/workflow-instance-store.js +66 -10
  338. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  339. package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
  340. package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
  341. package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
  342. package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
  343. package/daemon/dist/domain/workflow-projector.d.ts +117 -2
  344. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  345. package/daemon/dist/domain/workflow-projector.js +672 -41
  346. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  347. package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
  348. package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
  349. package/daemon/dist/domain/workflow-role-context.js +120 -0
  350. package/daemon/dist/domain/workflow-role-context.js.map +1 -0
  351. package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
  352. package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
  353. package/daemon/dist/domain/workflow-role-resolver.js +108 -0
  354. package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
  355. package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
  356. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  357. package/daemon/dist/domain/workflow-runtime.js +718 -11
  358. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  359. package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
  360. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  361. package/daemon/dist/domain/workflow-spec-cache.js +327 -13
  362. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  363. package/daemon/dist/domain/workflow-types.d.ts +143 -8
  364. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  365. package/daemon/dist/domain/workflow-types.js +14 -1
  366. package/daemon/dist/domain/workflow-types.js.map +1 -1
  367. package/daemon/dist/domain/workflow-validator.d.ts +11 -1
  368. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  369. package/daemon/dist/domain/workflow-validator.js +246 -1
  370. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  371. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  372. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
  373. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  374. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  375. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  376. package/daemon/dist/index.d.ts +17 -0
  377. package/daemon/dist/index.d.ts.map +1 -1
  378. package/daemon/dist/index.js +44 -0
  379. package/daemon/dist/index.js.map +1 -1
  380. package/daemon/dist/routes/activity.js +22 -0
  381. package/daemon/dist/routes/activity.js.map +1 -1
  382. package/daemon/dist/routes/hosts.d.ts +5 -0
  383. package/daemon/dist/routes/hosts.d.ts.map +1 -0
  384. package/daemon/dist/routes/hosts.js +346 -0
  385. package/daemon/dist/routes/hosts.js.map +1 -0
  386. package/daemon/dist/routes/mission-control.js +1 -1
  387. package/daemon/dist/routes/mission-control.js.map +1 -1
  388. package/daemon/dist/routes/missions.d.ts +7 -0
  389. package/daemon/dist/routes/missions.d.ts.map +1 -1
  390. package/daemon/dist/routes/missions.js +6 -1
  391. package/daemon/dist/routes/missions.js.map +1 -1
  392. package/daemon/dist/routes/ps.d.ts.map +1 -1
  393. package/daemon/dist/routes/ps.js +5 -1
  394. package/daemon/dist/routes/ps.js.map +1 -1
  395. package/daemon/dist/routes/queue.d.ts +2 -7
  396. package/daemon/dist/routes/queue.d.ts.map +1 -1
  397. package/daemon/dist/routes/queue.js +272 -10
  398. package/daemon/dist/routes/queue.js.map +1 -1
  399. package/daemon/dist/routes/review.d.ts.map +1 -1
  400. package/daemon/dist/routes/review.js +26 -0
  401. package/daemon/dist/routes/review.js.map +1 -1
  402. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  403. package/daemon/dist/routes/rigs.js +21 -10
  404. package/daemon/dist/routes/rigs.js.map +1 -1
  405. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  406. package/daemon/dist/routes/scope-audit.js +141 -135
  407. package/daemon/dist/routes/scope-audit.js.map +1 -1
  408. package/daemon/dist/routes/seat.js +13 -0
  409. package/daemon/dist/routes/seat.js.map +1 -1
  410. package/daemon/dist/routes/sessions.js +2 -1
  411. package/daemon/dist/routes/sessions.js.map +1 -1
  412. package/daemon/dist/routes/slices.d.ts.map +1 -1
  413. package/daemon/dist/routes/slices.js +48 -38
  414. package/daemon/dist/routes/slices.js.map +1 -1
  415. package/daemon/dist/routes/terminal.d.ts +11 -0
  416. package/daemon/dist/routes/terminal.d.ts.map +1 -0
  417. package/daemon/dist/routes/terminal.js +104 -0
  418. package/daemon/dist/routes/terminal.js.map +1 -0
  419. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  420. package/daemon/dist/routes/transcripts.js +62 -33
  421. package/daemon/dist/routes/transcripts.js.map +1 -1
  422. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  423. package/daemon/dist/routes/workflow.js +102 -10
  424. package/daemon/dist/routes/workflow.js.map +1 -1
  425. package/daemon/dist/server.d.ts +5 -0
  426. package/daemon/dist/server.d.ts.map +1 -1
  427. package/daemon/dist/server.js +22 -0
  428. package/daemon/dist/server.js.map +1 -1
  429. package/daemon/dist/startup.d.ts.map +1 -1
  430. package/daemon/dist/startup.js +235 -12
  431. package/daemon/dist/startup.js.map +1 -1
  432. package/daemon/docs/reference/agent-startup-guide.md +1 -0
  433. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
  434. package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
  435. package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
  436. package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
  437. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
  438. package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
  439. package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
  440. package/daemon/specs/agents/development/qa/agent.yaml +12 -2
  441. package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
  442. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +30 -0
  443. package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
  444. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +30 -0
  445. package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
  446. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
  447. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
  448. package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
  449. package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
  450. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
  451. package/daemon/specs/agents/shared/agent.yaml +5 -8
  452. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +13 -1
  453. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
  454. package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
  455. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
  456. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
  457. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
  458. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +25 -8
  459. package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +81 -0
  460. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +153 -0
  461. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
  462. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  463. package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
  464. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
  465. package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
  466. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  467. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
  468. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +4 -4
  469. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +3 -0
  470. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
  471. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
  472. package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
  473. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
  474. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
  475. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +12 -2
  476. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
  477. package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
  478. package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
  479. package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
  480. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
  481. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
  482. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
  483. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
  484. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
  485. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
  486. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  487. package/dist/bin-wrapper.d.ts.map +1 -1
  488. package/dist/bin-wrapper.js +3 -1
  489. package/dist/bin-wrapper.js.map +1 -1
  490. package/dist/build-info.js +3 -3
  491. package/dist/cli-error.d.ts +33 -0
  492. package/dist/cli-error.d.ts.map +1 -0
  493. package/dist/cli-error.js +94 -0
  494. package/dist/cli-error.js.map +1 -0
  495. package/dist/commands/broadcast.d.ts +6 -1
  496. package/dist/commands/broadcast.d.ts.map +1 -1
  497. package/dist/commands/broadcast.js +101 -15
  498. package/dist/commands/broadcast.js.map +1 -1
  499. package/dist/commands/capture.d.ts.map +1 -1
  500. package/dist/commands/capture.js +99 -8
  501. package/dist/commands/capture.js.map +1 -1
  502. package/dist/commands/config-init-workspace.js +1 -1
  503. package/dist/commands/config.d.ts.map +1 -1
  504. package/dist/commands/config.js +4 -0
  505. package/dist/commands/config.js.map +1 -1
  506. package/dist/commands/doctor.d.ts +1 -1
  507. package/dist/commands/doctor.d.ts.map +1 -1
  508. package/dist/commands/doctor.js +17 -11
  509. package/dist/commands/doctor.js.map +1 -1
  510. package/dist/commands/down.d.ts.map +1 -1
  511. package/dist/commands/down.js +5 -0
  512. package/dist/commands/down.js.map +1 -1
  513. package/dist/commands/host.d.ts +14 -0
  514. package/dist/commands/host.d.ts.map +1 -1
  515. package/dist/commands/host.js +361 -23
  516. package/dist/commands/host.js.map +1 -1
  517. package/dist/commands/launch.d.ts.map +1 -1
  518. package/dist/commands/launch.js +5 -0
  519. package/dist/commands/launch.js.map +1 -1
  520. package/dist/commands/proof.js +1 -1
  521. package/dist/commands/proof.js.map +1 -1
  522. package/dist/commands/ps.d.ts.map +1 -1
  523. package/dist/commands/ps.js +26 -6
  524. package/dist/commands/ps.js.map +1 -1
  525. package/dist/commands/queue.d.ts +36 -0
  526. package/dist/commands/queue.d.ts.map +1 -1
  527. package/dist/commands/queue.js +176 -31
  528. package/dist/commands/queue.js.map +1 -1
  529. package/dist/commands/restore-packet.d.ts.map +1 -1
  530. package/dist/commands/restore-packet.js +13 -2
  531. package/dist/commands/restore-packet.js.map +1 -1
  532. package/dist/commands/rig.d.ts.map +1 -1
  533. package/dist/commands/rig.js +122 -0
  534. package/dist/commands/rig.js.map +1 -1
  535. package/dist/commands/scope.js +2 -2
  536. package/dist/commands/scope.js.map +1 -1
  537. package/dist/commands/send.d.ts.map +1 -1
  538. package/dist/commands/send.js +229 -30
  539. package/dist/commands/send.js.map +1 -1
  540. package/dist/commands/slack.d.ts +37 -0
  541. package/dist/commands/slack.d.ts.map +1 -0
  542. package/dist/commands/slack.js +274 -0
  543. package/dist/commands/slack.js.map +1 -0
  544. package/dist/commands/terminal.d.ts +6 -0
  545. package/dist/commands/terminal.d.ts.map +1 -0
  546. package/dist/commands/terminal.js +116 -0
  547. package/dist/commands/terminal.js.map +1 -0
  548. package/dist/commands/transcript.d.ts +6 -1
  549. package/dist/commands/transcript.d.ts.map +1 -1
  550. package/dist/commands/transcript.js +113 -30
  551. package/dist/commands/transcript.js.map +1 -1
  552. package/dist/commands/ui.d.ts +1 -0
  553. package/dist/commands/ui.d.ts.map +1 -1
  554. package/dist/commands/ui.js +2 -0
  555. package/dist/commands/ui.js.map +1 -1
  556. package/dist/commands/up.d.ts.map +1 -1
  557. package/dist/commands/up.js +10 -1
  558. package/dist/commands/up.js.map +1 -1
  559. package/dist/commands/whoami.d.ts.map +1 -1
  560. package/dist/commands/whoami.js +14 -3
  561. package/dist/commands/whoami.js.map +1 -1
  562. package/dist/commands/workflow-errors.d.ts +23 -0
  563. package/dist/commands/workflow-errors.d.ts.map +1 -0
  564. package/dist/commands/workflow-errors.js +100 -0
  565. package/dist/commands/workflow-errors.js.map +1 -0
  566. package/dist/commands/workflow-follow.d.ts +71 -0
  567. package/dist/commands/workflow-follow.d.ts.map +1 -0
  568. package/dist/commands/workflow-follow.js +259 -0
  569. package/dist/commands/workflow-follow.js.map +1 -0
  570. package/dist/commands/workflow-render.d.ts +114 -0
  571. package/dist/commands/workflow-render.d.ts.map +1 -0
  572. package/dist/commands/workflow-render.js +223 -0
  573. package/dist/commands/workflow-render.js.map +1 -0
  574. package/dist/commands/workflow.d.ts +1 -0
  575. package/dist/commands/workflow.d.ts.map +1 -1
  576. package/dist/commands/workflow.js +278 -14
  577. package/dist/commands/workflow.js.map +1 -1
  578. package/dist/config-store.d.ts +15 -1
  579. package/dist/config-store.d.ts.map +1 -1
  580. package/dist/config-store.js +103 -0
  581. package/dist/config-store.js.map +1 -1
  582. package/dist/cross-host-cli-helpers.d.ts +13 -0
  583. package/dist/cross-host-cli-helpers.d.ts.map +1 -1
  584. package/dist/cross-host-cli-helpers.js +27 -0
  585. package/dist/cross-host-cli-helpers.js.map +1 -1
  586. package/dist/cross-host-target.d.ts +49 -0
  587. package/dist/cross-host-target.d.ts.map +1 -0
  588. package/dist/cross-host-target.js +35 -0
  589. package/dist/cross-host-target.js.map +1 -0
  590. package/dist/daemon-lifecycle.d.ts.map +1 -1
  591. package/dist/daemon-lifecycle.js +45 -14
  592. package/dist/daemon-lifecycle.js.map +1 -1
  593. package/dist/host-registry.d.ts +14 -1
  594. package/dist/host-registry.d.ts.map +1 -1
  595. package/dist/host-registry.js +47 -6
  596. package/dist/host-registry.js.map +1 -1
  597. package/dist/host-selection.d.ts +13 -0
  598. package/dist/host-selection.d.ts.map +1 -0
  599. package/dist/host-selection.js +54 -0
  600. package/dist/host-selection.js.map +1 -0
  601. package/dist/index.d.ts +5 -0
  602. package/dist/index.d.ts.map +1 -1
  603. package/dist/index.js +8 -1
  604. package/dist/index.js.map +1 -1
  605. package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
  606. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
  607. package/dist/lib/scope/scaffold-placeholder.js +98 -0
  608. package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
  609. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  610. package/dist/lib/scope/scope-audit.js +57 -20
  611. package/dist/lib/scope/scope-audit.js.map +1 -1
  612. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  613. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  614. package/dist/lib/scope-templates/bug-fix.md +1 -1
  615. package/dist/lib/scope-templates/implementation-prd.md +1 -1
  616. package/dist/lib/scope-templates/mission-notes.md +7 -2
  617. package/dist/lib/scope-templates/mission-placeholder.md +1 -1
  618. package/dist/lib/scope-templates/mission-progress.md +1 -1
  619. package/dist/lib/scope-templates/mission-release.md +1 -1
  620. package/dist/lib/scope-templates/placeholder.md +1 -1
  621. package/dist/lib/scope-templates/proof.md +1 -1
  622. package/dist/lib/scope-templates/release-feature.md +1 -1
  623. package/dist/lib/scope-templates/research.md +1 -1
  624. package/dist/lib/scope-templates/slice-progress.md +1 -1
  625. package/dist/remote-host-ops.d.ts +1 -0
  626. package/dist/remote-host-ops.d.ts.map +1 -1
  627. package/dist/remote-host-ops.js +13 -6
  628. package/dist/remote-host-ops.js.map +1 -1
  629. package/dist/session-name.d.ts +23 -0
  630. package/dist/session-name.d.ts.map +1 -0
  631. package/dist/session-name.js +61 -0
  632. package/dist/session-name.js.map +1 -0
  633. package/dist/slack/config.d.ts +41 -0
  634. package/dist/slack/config.d.ts.map +1 -0
  635. package/dist/slack/config.js +60 -0
  636. package/dist/slack/config.js.map +1 -0
  637. package/dist/slack/inbound.d.ts +75 -0
  638. package/dist/slack/inbound.d.ts.map +1 -0
  639. package/dist/slack/inbound.js +133 -0
  640. package/dist/slack/inbound.js.map +1 -0
  641. package/dist/slack/message.d.ts +26 -0
  642. package/dist/slack/message.d.ts.map +1 -0
  643. package/dist/slack/message.js +60 -0
  644. package/dist/slack/message.js.map +1 -0
  645. package/dist/slack/outbound.d.ts +39 -0
  646. package/dist/slack/outbound.d.ts.map +1 -0
  647. package/dist/slack/outbound.js +52 -0
  648. package/dist/slack/outbound.js.map +1 -0
  649. package/dist/slack/queue-bridge.d.ts +56 -0
  650. package/dist/slack/queue-bridge.d.ts.map +1 -0
  651. package/dist/slack/queue-bridge.js +114 -0
  652. package/dist/slack/queue-bridge.js.map +1 -0
  653. package/dist/slack/secrets.d.ts +21 -0
  654. package/dist/slack/secrets.d.ts.map +1 -0
  655. package/dist/slack/secrets.js +73 -0
  656. package/dist/slack/secrets.js.map +1 -0
  657. package/dist/slack/slack-api.d.ts +49 -0
  658. package/dist/slack/slack-api.d.ts.map +1 -0
  659. package/dist/slack/slack-api.js +110 -0
  660. package/dist/slack/slack-api.js.map +1 -0
  661. package/dist/slack/state-store.d.ts +62 -0
  662. package/dist/slack/state-store.d.ts.map +1 -0
  663. package/dist/slack/state-store.js +132 -0
  664. package/dist/slack/state-store.js.map +1 -0
  665. package/package.json +1 -1
  666. package/ui/dist/assets/index-DkNi0RT8.js +623 -0
  667. package/ui/dist/assets/index-N-SdPj-I.css +32 -0
  668. package/ui/dist/index.html +2 -2
  669. package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
  670. package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
  671. package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
  672. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -115
  673. package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
  674. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
  675. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
  676. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
  677. package/ui/dist/assets/index-D69ZhNIr.js +0 -598
  678. package/ui/dist/assets/index-DJYun-8d.css +0 -32
@@ -1,70 +1,662 @@
1
1
  ---
2
2
  name: openrig-user
3
- description: Use when operating OpenRig with the `rig` CLI and you need the shipped command surface for identity, inventory, communication, lifecycle, specs, recovery, or agent-facing JSON output. NOT for debugging host-side runtime issues (use openrig-operator) or for changing OpenRig itself (work in the openrig product repo).
4
- metadata:
5
- openrig:
6
- stage: factory-approved
7
- last_verified: "2026-05-04"
8
- distribution_scope: product-bound
9
- source_evidence: |
10
- Bootstrap skill — NPM install lands this in personal homes (~/.claude/skills/, ~/.agents/skills/) so agents have it at every boot.
11
- sibling_skills:
12
- - openrig-operator
13
- - openrig-architect
14
- - forming-an-openrig-mental-model
15
- transfer_test: pending
16
- notes: |
17
- Description was already correct (starts with "Use when..."; lists triggering domains without summarizing workflow). No frontmatter rewrite needed.
18
- 2026-05-04 sync: body content updated for OpenRig v0.2.0 release — adds Runtime-Gated Coordination Primitives section (PL-004 Phase A-D commands: rig stream / rig queue / rig project / rig view / rig watchdog / rig workflow), default posture for daemon vs substrate coordination commands, capture discipline section. Frontmatter metadata.openrig.* preserved across the sync.
3
+ description: Use when operating OpenRig with the `rig` CLI and you need the shipped command surface for identity, inventory, communication, lifecycle, specs, recovery, or agent-facing JSON output.
19
4
  ---
20
5
 
21
-
22
6
  # OpenRig User
23
7
 
24
8
  This is an as-built guide to the shipped `rig` CLI.
25
9
  Use current code and `rig ... --help` as ground truth if anything here ever conflicts with older planning docs.
26
10
 
27
- This is the daily-driving CLI guide for an OpenRig operator. It is not
28
- a guide to OpenRig internals or to changing OpenRig behavior — for that,
29
- work in the openrig product repo.
11
+ If you need a different shipped skill, open `openrig-skills` the global index that routes to every shipped skill in one hop.
12
+
13
+ This is not the config-layer or builder guide. Use the substrate control-plane guidance for `rigx`
14
+ and experimental overlays. Use the OpenRig builder guidance when changing OpenRig behavior,
15
+ doctrine, or release posture.
16
+
17
+
18
+ ## Coordination trust boundary
19
+
20
+ Coordinate as openly as the trust boundary you actually control allows. Within a set of machines you
21
+ own that already trust each other — they can reach each other's daemon URLs and the daemon itself
22
+ requires no authentication — direct `rig send`, `rig capture`, and `rig queue` should just work.
23
+ Don't invent bearer placeholders, allowlists, trust handshakes, or guest-reach restrictions the
24
+ environment doesn't require.
25
+
26
+ Do not add or defend a restriction without naming the protected asset, the actual adversary, the
27
+ blocked attack path, and the concrete consequence. Missing capability is not protection — repair the
28
+ route, registration, runtime posture, or product defect directly. Arbitrary boundaries create
29
+ constraint-induced circumvention: under goal pressure, agents build shadow transports, alternate
30
+ credentials, and weaker proof instead of the direct authorized path. Keep only explicitly stated
31
+ external or irreversible boundaries — public push / PR / publish, and destruction of canonical data.
32
+
33
+ ## Coordination primitives — when to use which
34
+
35
+ Three coordination surfaces, used together for forward-momentum work. Internalize this
36
+ on first read — it shapes every turn you take in a rig.
37
+
38
+ ### `rig send <seat> "<text>"` — intra-pod direct messaging / nudges
39
+
40
+ Use when you need to ask a quick question or give a teammate context that does not
41
+ carry handoff semantics. **NOT for durable work.** NOT for state that must survive
42
+ across turns. The message lands in the target's pane; there is no durable queue
43
+ record. The CLI prints `Sent to ...` (and `Verified: yes/no` with `--verify`); read
44
+ the receipt and move on.
45
+
46
+ Example:
47
+
48
+ ```bash
49
+ rig send guard@your-rig "Heads up — filing per-commit handoff on the rig-up paper-cut fix at tip 6b8673b6." --verify
50
+ ```
51
+
52
+ ### `rig queue create --source <X> --destination <Y> --tags <...> --body "<...>"` — durable work item
53
+
54
+ Use for any substantive work that must not fall through chat — slice handoffs,
55
+ guard verdicts, QA results, full-tip reviews, multi-item batches. Survives agent
56
+ restarts. Tracked in the daemon SQLite schema. Surfaces in Project / queue views
57
+ + in the destination seat's inbox. Tag with mission / slice / gate / checkpoint
58
+ so future-you (and any peer) can find it.
59
+
60
+ Body discipline: substantive bodies go through **`--body-file <path>`** (or `-` for stdin) — the
61
+ purpose-built, corruption-safe surface (it kills the backtick-shell-corruption class for multi-line
62
+ bodies). Do NOT inline a backtick-heavy or multi-line body via `--body`: `rig queue create` body
63
+ parsing breaks on unescaped backticks and rejects flag-like tokens.
64
+
65
+ Example:
66
+
67
+ ```bash
68
+ rig queue create \
69
+ --source driver-2@your-rig \
70
+ --destination redo-guard-2@your-rig \
71
+ --tags "mission:release,slice:rig-up-paper-cut-fix,gate:guard,handoff:per-commit,checkpoint:bug-1-bonus" \
72
+ --body-file /tmp/per-commit-body.txt
73
+ ```
74
+
75
+ ### `rig queue handoff <qitem-id> --to <next> ...` — hot-potato handoff
76
+
77
+ Use when you have completed your turn on a qitem and the work moves to the next
78
+ owner. **This is forward momentum.** The ball passes to the destination seat;
79
+ chain-of-record (the prior qitem id) is preserved so the verdict trail is intact;
80
+ tags carry the phase boundary forward (e.g. `gate:guard` → `gate:qa`).
81
+
82
+ Example:
83
+
84
+ ```bash
85
+ rig queue handoff qitem-20260601012431-d78aa805 \
86
+ --to velocity-qa@your-rig \
87
+ --tags "mission:release,slice:rig-up-paper-cut-fix,gate:qa,handoff:adversarial-dogfood"
88
+ ```
89
+
90
+ ### §1b doctrine — turn ends by passing the ball
91
+
92
+ **A turn ends by passing the ball, never by going idle holding the slice waiting
93
+ on a confirmation the process does not include.** If the work was authorized, the
94
+ per-commit guard + adversarial QA + orch heavy-verify are the guardrails — not an
95
+ operator pre-commit gate. Do the authorized work and pass the ball.
96
+
97
+ Valid pauses are only:
98
+
99
+ - A genuine blocker — file a blocked-state qitem against the blocking peer or
100
+ surface explicitly to orch.
101
+ - A scope-or-architecture question that requires owner input and changes the
102
+ plan — surface to orch with the specific decision needed.
103
+
104
+ Implementing already-authorized work is neither of these. Proceed without
105
+ phantom-gating on an imagined "next prompt" or "operator confirmation" that the
106
+ process does not require.
107
+
108
+ ### Anti-patterns
109
+
110
+ - Using `rig send` for durable work → use `rig queue create` instead. Sends do
111
+ not survive restarts and do not show up in queue/project views.
112
+ - Idle-holding a slice for an imagined "next prompt" or "operator confirmation"
113
+ that the process does not require → pass the ball via `rig queue handoff` and
114
+ proceed to the next slice or stand by for the inbound verdict. See the §1b
115
+ doctrine above.
116
+ - Hand-coding `rigx queue` for new work → `rig queue` is the daemon-backed
117
+ canonical surface since the 2026-05-11 host-CLI fix. `rigx queue` is a
118
+ recovery-only fallback; qitems written via `rigx queue` are invisible to
119
+ daemon-backed reads and break fleet-wide routing discipline.
120
+ - Inlining a multi-line / backtick-heavy body into `rig queue create --body`
121
+ → use `--body-file /tmp/<descriptive-name>.txt` (or `-` for stdin), the
122
+ corruption-safe surface. The body parser does not tolerate raw backticks or
123
+ flag-like tokens inline.
30
124
 
31
125
  ## Runtime-Gated Coordination Primitives
32
126
 
33
- OpenRig v0.2.0 is published publicly as `@openrig/cli@0.2.0` and GitHub Release
34
- `v0.2.0`. It includes the bundled PL-004 Coordination Primitive System: Phase A
127
+ OpenRig v0.3.1 is published publicly as `@openrig/cli@0.3.1` and GitHub Release
128
+ `v0.3.1`. It includes the bundled PL-004 Coordination Primitive System: Phase A
35
129
  `rig stream` / `rig queue`, Phase B `rig project` / `rig view`, Phase C
36
130
  `rig watchdog`, and Phase D `rig workflow` / `workflow-keepalive`.
37
131
 
38
- Do not confuse public package truth with this host's active daemon truth. As of 2026-05-04, the
39
- human reports the production daemon has been upgraded to v0.2.0; a local check showed `rig
40
- --version` and the product package version at `0.2.0`, with the daemon running on port 7433.
132
+ These are shipped product surfaces in v0.3.x, but they require a compatible
133
+ v0.3.x daemon and matching SQLite schema at runtime the installed package
134
+ version is not automatically the version of the daemon serving you. If a
135
+ coordination command behaves unexpectedly, confirm the running daemon with
136
+ `rig whoami --json` and daemon status before assuming a product bug.
41
137
 
42
- Default posture on this host now:
138
+ Default posture:
43
139
 
44
140
  - Treat daemon `rig queue`, `rig stream`, `rig project`, `rig view`, `rig watchdog`, and
45
- `rig workflow` as active-host coordination surfaces for PL-004-backed work.
46
- - **CANONICAL SURFACE NOTE (2026-05-11)**: `rig queue` (daemon-backed SQLite) is the
47
- canonical surface for queue routing since the 2026-05-11 host-CLI fix landed. Use
48
- `rig queue create / handoff / update / show / list` for all substantive work.
49
- - Use substrate `rigx queue`, `rigx stream`, `rigx project`, and `rigx view-proto` only where the
50
- current workflow is still explicitly operating on the temporary substrate coordination layer or
51
- a legacy artifact has not migrated. For queue specifically, `rigx queue` is recovery-only
52
- fallback; qitems written via `rigx queue` are invisible to daemon-backed reads and break
53
- fleet-wide routing discipline.
141
+ `rig workflow` as the product coordination surfaces when the active daemon is v0.2.0 or newer.
142
+ - **CANONICAL SURFACE NOTE (2026-05-11)**: `rig queue` (daemon-backed SQLite) became
143
+ the canonical queue-routing surface when the 2026-05-11 host-CLI fix landed. The
144
+ coordination model is now load-bearing at the top of this skill see
145
+ "Coordination primitives when to use which" above for the send / queue /
146
+ queue-handoff usage model and the §1b doctrine. Auxiliary queue verbs:
147
+ `rig queue update / show / list` complement `rig queue create / handoff`
148
+ for in-flight inspection and state mutation.
149
+ - Use temporary substrate overlays such as `rigx queue`, `rigx stream`, `rigx project`, and
150
+ `rigx view-proto` only where the current OpenRig workstream explicitly says that legacy/control
151
+ layer is still in use. For queue specifically, `rigx queue` is recovery-only fallback;
152
+ qitems written via `rigx queue` are invisible to daemon-backed reads and break fleet-wide
153
+ routing discipline.
54
154
  - If a daemon-backed coordination command fails, debug the command/runtime/schema edge directly;
55
- do not fall back to stale pre-upgrade assumptions about this host.
56
- - Do not run daemon stop/start, wrapper mutation, production DB copy/mutation, git push, tags, npm
57
- publish, or GitHub release unless a human grants the specific bounded gate. The public release
58
- already exists; further release operations need explicit scope.
155
+ do not assume the right workaround is to drop back to a config-layer primitive.
156
+ - Do not perform daemon stop/start, production DB copy/mutation, release, publish, or other
157
+ consequence-boundary actions unless the operator/workstream has granted that specific gate.
158
+
159
+ ## First-user workspace setup
160
+
161
+ When booting into a rig on a host where the workspace is unset, gap-ridden, or
162
+ points at a stale layout, address that before substantive project work. The
163
+ shipped surface is small + bounded — reach for the canonical commands rather
164
+ than improvising.
165
+
166
+ ### Detect workspace state at boot
167
+
168
+ Agent-actionable when the daemon is reachable.
169
+
170
+ ```bash
171
+ rig workspace validate --json
172
+ rig workspace validate <path> --kind <user|project|knowledge|lab|delivery> --json
173
+ ```
174
+
175
+ `rig workspace validate` walks the workspace root and emits a structured
176
+ frontmatter-gap report against the v0 contract. Exit code is non-zero when
177
+ gaps exist (operators chain into hygiene fix loops). Default root is the
178
+ current directory; pass a positional path to validate elsewhere. `--kind`
179
+ scopes the contract to a specific workspace kind; omit for a kind-agnostic
180
+ structural check.
181
+
182
+ If `rig workspace validate` reports a non-zero `gapCount` OR the workspace
183
+ root is unset / unwritable, the workspace needs instantiation — see the next
184
+ section.
185
+
186
+ ### Instantiate the canonical workspace scaffold
187
+
188
+ Agent-actionable. Idempotent on existing dirs without `--force`.
189
+
190
+ ```bash
191
+ rig config init-workspace
192
+ rig config init-workspace --root <path>
193
+ rig config init-workspace --dry-run --json
194
+ ```
195
+
196
+ `rig config init-workspace` scaffolds the canonical workspace layout at the
197
+ configured `workspace.root` (default `~/.openrig/workspace`):
198
+
199
+ - `missions/` — release missions + slices
200
+ - `artifacts/` — work artifacts produced inside the workspace
201
+ - `evidence/` — non-dogfood evidence (release evidence, proof packets, etc.)
202
+ - `progress/` — progress index + per-mission rails
203
+ - `field-notes/` — operator + agent observations
204
+ - `specs/` — spec library (rig + agent + workflow YAML lives here)
205
+ - `dogfood-evidence/` — dogfood proof packets + run artifacts
206
+
207
+ The scaffold seeds one example mission (`getting-started`) with multiple
208
+ slices, and drops a workspace README.md + STEERING.md so a fresh install has
209
+ browsable Project content. `--root <path>` targets a non-default root for
210
+ this call; `--dry-run` reports what would be created without writing.
211
+ `--force` overwrites existing FILES but never deletes
212
+ directories — operator content is safe.
213
+
214
+ ### Redirect the workspace root
215
+
216
+ Operator-gated when persistent. Agent-actionable when one-shot via env-var.
217
+
218
+ For a single command:
219
+
220
+ ```bash
221
+ OPENRIG_WORKSPACE_ROOT=<path> rig <command> ...
222
+ ```
223
+
224
+ For a persistent host-level redirect, the operator changes the config file or
225
+ runs the setter:
226
+
227
+ ```bash
228
+ rig config set workspace.root <path>
229
+ ```
230
+
231
+ ConfigStore precedence: `OPENRIG_WORKSPACE_ROOT` env > config-file
232
+ `workspace.root` > built-in default `~/.openrig/workspace`. The same
233
+ precedence governs `OPENRIG_WORKSPACE_SPECS_ROOT` → `workspace.specs_root`
234
+ (default `<workspace_root>/specs`).
235
+
236
+ Prefer the env-var form for one-shot redirects (transparent to operators);
237
+ reserve `rig config set` for changes the operator owns.
238
+
239
+ ### Build a workspace from scratch
240
+
241
+ Agent-actionable. Same surface as the canonical scaffold above; the
242
+ `workspace.root` cascade handles non-existent host paths.
243
+
244
+ ```bash
245
+ rig config init-workspace --root /path/to/new/workspace
246
+ ```
247
+
248
+ The command creates the root dir if missing (idempotent: existing root +
249
+ populated subdirs is a no-op). Run
250
+ `rig workspace validate /path/to/new/workspace --json` after to confirm the
251
+ contract holds.
252
+
253
+ ### Create a workflow inside an existing workspace
254
+
255
+ Authoring is operator-or-agent; validation + instantiation are
256
+ agent-actionable.
257
+
258
+ Workflow spec files live at:
259
+
260
+ ```
261
+ <workspace_root>/specs/workflows/<name>.yaml
262
+ ```
263
+
264
+ `<workspace_root>` resolves via the ConfigStore precedence named above.
265
+ There is no `rig workflow create` verb in v0.3.x — the spec YAML is authored
266
+ directly. Template by hand from the documented schema, or copy a built-in
267
+ starter from `<openrig install>/dist/builtins/workflow-specs/` and adapt.
268
+ Once written:
269
+
270
+ ```bash
271
+ rig workflow validate <workspace_root>/specs/workflows/<name>.yaml --json
272
+
273
+ rig workflow instantiate <workspace_root>/specs/workflows/<name>.yaml \
274
+ --root-objective "<one-line objective for the run>" \
275
+ --created-by <your-session>@<your-rig> \
276
+ --json
277
+ ```
278
+
279
+ Both `--root-objective <text>` and `--created-by <session>` are REQUIRED
280
+ on `instantiate` — omitting either yields a Commander required-option
281
+ error before the daemon is contacted. `--entry-owner <session>` is an
282
+ optional override for the entry-step owner; default routing is per the
283
+ workflow spec.
284
+
285
+ `validate` returns a structured ok/error report; `instantiate` creates a
286
+ workflow instance + entry-step qitem. Inspect existing surface state with:
287
+
288
+ ```bash
289
+ rig workflow specs --json # list registered specs (built-in + operator-authored)
290
+ rig workflow list --json # list active workflow instances
291
+ rig workflow show <instanceId> --json # inspect one instance
292
+ rig workflow project <instanceId> # ADVANCE an instance — projects the next-step packet
293
+ rig workflow continue <instanceId> # read-only inspector of an instance (does NOT advance it)
294
+ ```
295
+
296
+ *(Surface note — the current `rig workflow` command group registers **13** subcommands: `validate`, `instantiate`, `project`, `list`, `specs`, `show`, `trace`, `continue`, `run`, `watch`, `route`, `resume`, `status`. There is still no `create` verb — the spec YAML is authored on disk. `project` is the advancing verb (it projects the next-step packet); `continue` is a read-only inspector, NOT an advance — do not conflate them. The 13-verb set and the project-vs-continue semantics are verified against current product main `d37a08ad` (`packages/cli/src/commands/workflow.ts`, 13 registered `.command(...)` entries; the earlier "6-verb surface / continue-advances" claim here was stale). Verify individual subcommand flags with `rig workflow --help`.)*
297
+
298
+ ## v0.3.x Starter, Workspace, And Plugin Surfaces
299
+
300
+ OpenRig v0.3.0 adds `rig agent-image`, `rig context-pack`, `rig workspace`, and
301
+ `rig config init-workspace`. It also shifts fresh-user starter guidance toward
302
+ `product-team` for human-directed work and `conveyor` for workflow-oriented
303
+ work. Treat `demo` as legacy/test content unless a task specifically asks for
304
+ the old demo spec.
305
+
306
+ OpenRig v0.3.1 adds public package/source surfaces for Plugin Primitive v0,
307
+ Claude Auto-Compaction Policy, migration `040_workflow_specs_diagnostic`,
308
+ Library Explorer finishing, Settings Destination Explorer, Dashboard/For You
309
+ vellum refresh, storytelling adapter, and action outcome + inline error UX.
310
+
311
+ `rig plugin` is read-only at v0:
312
+
313
+ ```bash
314
+ rig plugin list
315
+ rig plugin show <id>
316
+ rig plugin used-by <id>
317
+ rig plugin validate <path>
318
+ ```
319
+
320
+ There is no `rig plugin install` verb in v0.3.1. Plugin installation remains
321
+ explicit operator copy/symlink to `$OPENRIG_HOME/plugins/<plugin-id>/`.
322
+
323
+ Claude auto-compaction policy is opt-in default-off. The v0.3.1 package and
324
+ this host's active daemon ship `policies.claude_compaction.*` ConfigStore keys,
325
+ but no behavior changes unless the operator enables the policy.
326
+
327
+ Known v0.3.0/v0.3.1 caveats:
328
+ - `rig down` now accepts a rig name or id (symmetric with `rig up`): the earlier
329
+ name-to-404 caveat (the D1 path) is resolved in v0.3.3. An ambiguous name
330
+ matching more than one active rig is refused with the matching ids; re-run
331
+ with `rig down <id>`.
332
+ - `rig queue` / `rig view` JSON and limit compatibility drift is an open
333
+ follow-up from host-adoption proof; treat it as a compatibility caveat, not a
334
+ daemon-health failure.
335
+ - Queue/view JSON/limit drift is now refined as a wrapper-layer routing issue,
336
+ not a daemon-layer issue; use human-readable output for affected wrapper
337
+ commands until v0.3.2.
338
+ - First v0.3.1 daemon start hit a plugin-vendor fallback health-probe timeout;
339
+ controlled retry succeeded. Manual retry is the current workaround.
340
+ - Topology mobile drawer restoration and plugin source-label taxonomy are
341
+ v0.3.2 carry-forwards.
342
+
343
+ ## Recovery and Resilience (v0.3.4+)
344
+
345
+ v0.3.4's theme is Recovery + Resilience. The surfaces below compose into a
346
+ single boot-to-running-rig path that survives crashes, hand-resumed sessions,
347
+ profile-load drift, and partial workspace state without silently fudging
348
+ status.
349
+
350
+ ### `rig start` — recovery entrypoint
351
+
352
+ `rig start` is the top-level recovery sequencer. It does not invent recovery;
353
+ it composes existing primitives (daemon start + kernel verify + per-rig
354
+ restore) into one call.
355
+
356
+ ```bash
357
+ rig start # interactive: daemon + kernel + pick-and-restore
358
+ rig start --last # headless: restore all rigs that were last running
359
+ rig start --all # headless: restore all rigs with restore-usable snapshots
360
+ rig start --rigs <name> [<name>...] # headless: restore only the named rigs
361
+ rig start --json # JSON output for agents
362
+ ```
363
+
364
+ Framing: `rig start` is the RECOVERY entry point, not the getting-started
365
+ hero. The fresh-user boot hero remains `rig up <starter>` (typically
366
+ `rig up product-team`). Reach for `rig start` after a host reboot, daemon
367
+ restart, or any "bring my rigs back" moment.
368
+
369
+ ### `rig reconcile-session` — no-launch adopt of a hand-resumed session
370
+
371
+ When an operator has externally resumed an agent session (e.g. attached a
372
+ shell, restarted a runtime by hand) and you want OpenRig to reconcile its
373
+ lifecycle state without re-launching or sending input, use:
374
+
375
+ ```bash
376
+ rig reconcile-session <session>
377
+ rig reconcile-session <session> --rig <rigId> --node <logicalId>
378
+ rig reconcile-session <session> --no-launch
379
+ rig reconcile-session <session> --json
380
+ ```
381
+
382
+ This is a no-launch, no-input adopt. `--rig`/`--node` disambiguate when the
383
+ canonical session name does not uniquely resolve. `--no-launch` is accepted
384
+ for explicitness (it is the only mode this command has).
385
+
386
+ ### Five-term restore status vocabulary
387
+
388
+ The shipped restore vocabulary is intentionally honest. It surfaces in
389
+ `rig up` / `rig restore` / `rig ps`. Use the term that fits — do not collapse
390
+ to a generic "ok/failed":
391
+
392
+ - `resumed` — seat resumed from its original session/snapshot and is live.
393
+ - `fresh-primed` — seat opted into `--fresh` and was freshly started.
394
+ - `awaiting-decision` — zero-session honest state. There is no resumable
395
+ session AND no `--fresh` opt-in was given; the seat is waiting for an
396
+ operator decision. Previously fudged as `failed`; that was wrong — nothing
397
+ is broken, the system is asking for input.
398
+ - `attention_required` — seat is in a state needing operator attention; not
399
+ a transport failure. Clear via `rig seat clear-attention` once the
400
+ attention has been resolved.
401
+ - `failed` — the send transport or launch genuinely failed.
402
+
403
+ This replaces the prior collapsed model (the v0.3.3 four-term vocabulary, in
404
+ which `rebuilt` was a term, is retired).
405
+
406
+ ### `rig seat clear-attention` — audited reconcile of stuck attention
407
+
408
+ When a seat is stuck in `attention_required`, do NOT hand-edit SQLite to
409
+ fake-clear the state. Use the evidence-gated, operator-attested, audited
410
+ reconcile:
411
+
412
+ ```bash
413
+ rig seat clear-attention <session>
414
+ rig seat clear-attention <session> --reason "operator attested: the operator re-authed, confirmed live"
415
+ rig seat clear-attention <session> --json
416
+ ```
417
+
418
+ `--reason <text>` is the operator-attestation override path; without it the
419
+ command runs the evidence gate. Either way the action is audited.
420
+
421
+ ### Periodic snapshots — crash-insurance floor
422
+
423
+ The daemon ships a periodic-snapshot scheduler. It runs independently of
424
+ teardown events and provides the crash-insurance floor that prior
425
+ event-only/teardown-only snapshots could not provide on hard crashes.
426
+
427
+ Config keys (SettingsStore):
428
+ - `snapshots.periodic.enabled` — default `true`
429
+ - `snapshots.periodic.interval_seconds` — default `300`
430
+ - `snapshots.periodic.retention_keep` — default `10`
431
+
432
+ Newest-wins semantics: when both `auto-periodic` and `auto-pre-down`
433
+ snapshots exist for a rig, the freshest of the two is selected for restore.
434
+ A newer `auto-periodic` beats a stale `auto-pre-down` (the crash fix); a
435
+ genuinely-fresher `auto-pre-down` still wins on graceful cycles. Manual
436
+ snapshots are handled separately. See
437
+ `packages/daemon/src/domain/snapshot-repository.ts` for the ordering rule.
438
+
439
+ The last-snapshot floor surfaces in `rig ps` / status output so an operator
440
+ can see at a glance how recent the crash-insurance floor is.
441
+
442
+ ### Codex profile-v2 preflight
443
+
444
+ Profile-bearing launch/restore surfaces run a profile-load preflight. When
445
+ profile-load issues are detected, the failure is honest and actionable
446
+ (named error + remediation pointer) instead of a silent partial launch that
447
+ would later look like an attention_required seat with no explanation.
448
+
449
+ ### cmux launch readiness
450
+
451
+ cmux-backed launches no longer produce silent partial workspace state. When
452
+ parts of the workspace are missing, the launch surfaces partial state
453
+ honestly and the UI exposes a one-click open-missing affordance.
454
+
455
+ (See also `## Token-Efficient Defaults (v0.4.0+)` below for the compact-by-default read-command surface that lands in 0.4.0.)
456
+
457
+ ## Token-Efficient Defaults (v0.4.0+)
458
+
459
+ 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.**
460
+
461
+ ### `rig ps` — current-rig default + compact-by-default + `-A`/`--all-rigs` + `--full`
462
+
463
+ ```bash
464
+ rig ps # CURRENT-RIG, all-states, compact rig summaries (default)
465
+ rig ps --json # compact JSON array (TL;DR per node: session, rig, activity, assigned/pending, resumeTokenPresent boolean)
466
+ rig ps -A # all-rigs (fleet breadth; was the v0.3.4 default)
467
+ rig ps --rig <name> # explicit-rig (overrides current-rig default)
468
+ rig ps --nodes # compact node inventory (current rig)
469
+ rig ps --nodes -A # cross-rig node inventory (was v0.3.4 default)
470
+ rig ps --nodes --full # complete record (the v0.3.4 per-node default shape; resumeToken VALUE retained here for downstream consumers)
471
+ rig ps --nodes --session <sess> # narrow to one canonical session
472
+ 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)
473
+ ```
474
+
475
+ **v0.4.0 breadth + projection changes**:
476
+ - **Default breadth is CURRENT-RIG** (derived from `OPENRIG_SESSION_NAME`'s `@<rig>` suffix), not all-rigs. `-A` / `--all-rigs` widens to fleet. Matches the `rig queue list -A` pattern.
477
+ - **Per-node TL;DR projection (compact) is the default**; `--full` returns the raw byte-equivalent passthrough. Daemon-side `recoveryGuidance` relocated to a guidance-by-reference map (no longer duplicated per-node) — even `--full` benefits.
478
+ - **All-states stays default** (different from `rig queue list` which defaults to active-only) — for `ps`, non-running states ARE often the actionable signal.
479
+ - **Resume-token security**: `--full` JSON emits `resumeTokenPresent` (boolean) — the actual `resumeToken` value also remains in `--full` for downstream consumers that legitimately need it, but the compact default never carries it (an orch glance never accidentally leaks token material).
480
+
481
+ **STOP using `rig ps --nodes --json` as a fleet-wide casual status check assuming the v0.3.4 shape.** The v0.4.0 default is CURRENT-RIG + compact; explicit `-A --full` is the fleet firehose. The ~77,000-token status-glance incident is closed twice over (compact + scope).
482
+
483
+ ### `rig whoami` — compact-by-default + `--full` (`--verbose` alias)
484
+
485
+ ```bash
486
+ rig whoami # compact: identity + peers names + edges + transcript path
487
+ rig whoami --json # compact JSON (~192 tokens)
488
+ rig whoami --full # complete payload (~909 tokens; v0.3.4 default shape)
489
+ rig whoami --verbose # alias of --full
490
+ ```
491
+
492
+ The first command every agent runs on boot AND every compaction-restore. The compact default keeps identity-recovery essentials (`identity`, `peers` names + sessionNames, `edges` directional `kind` + `to.sessionName`, `transcriptPath`). `--full` adds `contextUsage`, `commands`, `peersNote`, `runtimeContext`. The compact-default is an ALLOWLIST projection — future payload fields default to `--full` and cannot silently re-bloat the every-boot path.
493
+
494
+ ### `rig queue list` — active-frontier + docker/kubectl grammar
495
+
496
+ ```bash
497
+ rig queue list # active, compact, CURRENT-rig (docker-ps default)
498
+ rig queue list -a # + closed/done history within current breadth (docker -a)
499
+ rig queue list -A # cross-rig breadth (kubectl -A)
500
+ rig queue list --full # add body + chain-of-record + transition history
501
+ rig queue list -o json # compact JSON (token-safe, machine-parseable)
502
+ rig queue list --full -o json # full JSON
503
+ rig queue list --mine # just the caller's items
504
+ rig queue list --destination <s> # destined to <s>
505
+ rig queue list --source <s> # sourced by <s>
506
+ rig queue show <qitemId> # full single item (kubectl describe)
507
+ ```
508
+
509
+ Four orthogonal axes (scope × history × field-breadth × encoding), all composable. **STOP using bare `rig queue list` as the cross-rig firehose.** Default is now active + compact + current-rig. The cross-rig + history + full-body firehose (the ~64,000-token payload spike) is opt-in via `-A -a --full`.
510
+
511
+ ### `rig restore-check` — summary + not-ready-only default + `--full`
512
+
513
+ ```bash
514
+ rig restore-check # summary counts + not-ready seats (with reasons) only
515
+ rig restore-check --full # complete per-seat readiness across the fleet (v0.3.4 default)
516
+ rig restore-check --rig <name> # narrow
517
+ rig restore-check --as <session> # narrow to one seat
518
+ ```
519
+
520
+ Closes the largest measured bomb (~79,000 → low thousands). Summary correctly identifies EVERY not-ready seat (no false-ready omission); detail is dropped only for ready seats.
521
+
522
+ ### `rig context` — compact summary + `--full`
523
+
524
+ ```bash
525
+ rig context # compact summary
526
+ rig context --full # complete current payload
527
+ rig context --rig <name> # narrow to one rig
528
+ rig context --threshold 80 # filter to seats at/above 80%
529
+ ```
530
+
531
+ Lower leverage than the others but keeps the read-command surface compact-by-default after the upgrade.
532
+
533
+ ### Why this matters
534
+
535
+ This release closes the host-version-aged token-burn class: on this host the read-commands accumulated to ~225,000 tokens of context-window cost over a typical orchestrator session, almost all of it firehose-when-a-glance-was-wanted. Compact defaults restore the lean-monitoring doctrine: a narrow status check must be cheap. The full payloads remain one flag away when actually needed.
536
+
537
+ ### Token-efficiency-boot-guardrail pack (interim) — CLI-prohibitions RETIRE at host-upgrade
538
+
539
+ The interim `token-efficiency-boot-guardrail` pack (the CLI-command prohibitions on `rig queue list` unfiltered, `rig ps --nodes --json` unfiltered, `rig restore-check`, `rig context`, `rig whoami --json`) is a host-version workaround for the bloated defaults this release closes. **The CLI-command-prohibitions half retires when 0.4.0 lands on the host.** The pack's bounded-local-search rule + scope / over-flag discipline GRADUATE to a standing convention (`conventions/bounded-local-search-and-flag-scope`) and continue to apply host-independently.
540
+
541
+ ### `rig scope mission|slice progress` — deterministic progress updates
542
+
543
+ ```bash
544
+ rig scope mission progress <mission> --add "<line>" # append a progress line; --set replaces; --section <heading> (default Rail); --status active|done|blocked
545
+ rig scope slice progress <slice-path> --add "<line>" # same flags: --add / --set, --section <heading>, --status active|done|blocked
546
+ ```
547
+
548
+ Replaces hand-editing `PROGRESS.md` with markdown. Writes the canonical structure the OpenRig PROGRESS UI page reads. `rig scope mission create` + `rig scope slice create` now scaffold `PROGRESS.md` automatically per `conventions/scope-and-versioning/README.md`.
549
+
550
+ ### `rig scope mission|slice stage / verified / repair` — deterministic maturity vocabulary
551
+
552
+ ```bash
553
+ rig scope slice stage <slice> <new-stage> # wip / provisional / established / canonical / superseded / retired
554
+ rig scope slice stage <slice> superseded --successor <id> # superseded REQUIRES --successor (rejected otherwise)
555
+ rig scope mission stage <mission> <new-stage> # same enum + rules at mission tier
556
+
557
+ rig scope slice verified <slice> --against "<source>" # stamp `verified: <today> against <source>`; --against MANDATORY
558
+ rig scope mission verified <mission> --against "<source>"
559
+
560
+ rig scope slice repair <slice> # idempotent repair: backfill PROGRESS.md, conform id/stage/verified, repair ghosts
561
+ rig scope mission repair <mission> # mission-tier idempotent repair
562
+
563
+ rig scope slice show <slice> # derives read-time effective-reliability from (stage × verified)
564
+ # — stale-`verified` `canonical` reported as effectively `provisional`
565
+ ```
566
+
567
+ Composes with the `progress` command + 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 `repair`.
568
+
569
+ ### `rig skill audit` — skill cascade provenance
570
+
571
+ ```bash
572
+ rig skill audit # human report of findings
573
+ rig skill audit --json # structured findings
574
+ rig skill audit --severity warn # stale + mirror-drift only
575
+ rig skill audit --rig <name> # narrow to embedded skill copies for one rig
576
+ ```
577
+
578
+ Read-only audit of the skill cascade. Detects `missing` / `stale` / `self-referential` / `invalid-date` / `mirror-drift` across the canonical skills workspace → product mirror → hub cwd → installed plugin chain. Findings route back to the lifecycle for shaped propagation runs. **False-green prevention**: when audit evidence is unavailable, the CLI emits `unable-to-audit` with exit code `2` rather than reporting `clean`.
579
+
580
+ ### `rig seat clear-attention` — extended to derived projection staleness
581
+
582
+ v0.3.4 shipped `clear-attention` gating on `session.startupStatus` only. v0.4.0 extends the verb to also reach **restoreOutcome-derived** attention (seat is `startupStatus=ready` + `sessionStatus=running` but carries `restoreOutcome=failed` / `continuityOutcome=failed`). Same evidence-gated audit row applies; the `--reason <text>` operator-attestation override carries the runtime / cwd-uncertainty disclosure honestly.
583
+
584
+ ### Native Codex session id capture
585
+
586
+ Codex seats can now record the real native session id from the Codex
587
+ `SessionStart` hook instead of relying on scrape-shaped identity. The proof
588
+ lane for v0.4.0 matched the same id across the hook payload, rollout log, and
589
+ SQLite. Treat hook-sourced ids as stronger resume/identity evidence than
590
+ terminal scraping when present.
591
+
592
+ Managed-seat hook trust is a 0.4.1 carry: the v0.4.0 surface proves native
593
+ capture and hook-trust constraints, but do not assume every managed Codex seat
594
+ has already migrated from scrape-backed to hook-sourced ids.
595
+
596
+ ### Codex resume preserves approval posture
597
+
598
+ Resuming a Codex seat preserves the launching seat's approval/sandbox posture
599
+ and profile flags. Product-emitted resume commands carry the posture flags
600
+ instead of silently falling back to implicit-deny or an unrelated profile.
601
+
602
+ Do not "fix" a resumed Codex seat by relaunching it with broader approvals
603
+ unless the operator explicitly grants a bounded window. Verify the seat's
604
+ active posture first, and preserve it when composing recovery commands.
605
+
606
+ ### `rig seat set-resume-token --token-stdin`
607
+
608
+ ```bash
609
+ printf '%s' "$RESUME_TOKEN" | rig seat set-resume-token <session> --token-stdin
610
+ ```
611
+
612
+ Use this command to set or restore a seat resume token. It replaces direct
613
+ SQLite edits, rejects unauthorized writes and bad/null token false-ready paths,
614
+ records redacted audit/provenance, and keeps token material out of command
615
+ arguments, stdout, logs, and normal status rows. Use stdin, not an inline flag,
616
+ when passing token material.
59
617
 
60
618
  ## Core Loop
61
619
 
62
620
  Most work in OpenRig reduces to this loop:
63
- - recover identity: `rig whoami --json`
64
- - inspect inventory: `rig ps` (fleet map) / `rig ps --nodes -A --json` (fleet nodes)
621
+ - recover identity: `rig whoami` (compact default; add `--full` only when you need the heavy payload)
622
+ - inspect inventory: `rig ps --nodes` (compact default; add `--full` only when you need the firehose)
65
623
  - read context: `rig transcript ...`, `rig ask ...`, `rig chatroom history ...`
66
624
  - act: `rig send`, `rig capture`, `rig broadcast`, lifecycle commands
67
625
 
626
+ ## Agent-Managed Apps
627
+
628
+ An agent-managed app is a deployable OpenRig unit made of:
629
+ - the software or service
630
+ - one specialist agent dedicated to that software
631
+
632
+ Treat the specialist as the domain delegate for that app.
633
+ The current canonical example is:
634
+ - rig: `secrets-manager`
635
+ - pod: `vault`
636
+ - member: `specialist`
637
+ - logical ID: `vault.specialist`
638
+ - session: `vault-specialist@secrets-manager`
639
+
640
+ Typical operator loop:
641
+
642
+ ```bash
643
+ rig up secrets-manager --cwd /path/to/project
644
+ rig ps --nodes --json
645
+ rig send vault-specialist@secrets-manager "Check Vault health and report back." --verify
646
+ rig env status secrets-manager
647
+ rig env logs secrets-manager
648
+ ```
649
+
650
+ Cross-rig communication is valid when the target session resolves uniquely.
651
+ Example:
652
+
653
+ ```bash
654
+ rig send vault-specialist@secrets-manager "Read secret/data/dogfood and report the value." --verify
655
+ ```
656
+
657
+ Use the specialist instead of teaching every peer the same app-specific toolchain.
658
+ For Vault, ask `vault.specialist` to do secrets-domain work rather than improvising curl or Vault CLI usage in unrelated agents.
659
+
68
660
  ## Identity and Recovery
69
661
 
70
662
  Start here after launch, compaction, or confusion:
@@ -87,20 +679,27 @@ rig whoami --node-id <id>
87
679
 
88
680
  If the daemon is unreachable but identity can still be inferred, `--json` may return a partial result instead of crashing.
89
681
 
682
+ `WhoamiResult` (v0.3.3+) carries a required `peersNote` field with three pointers
683
+ the agent can use to navigate the rest of the rig from a cold start. The
684
+ human-formatted CLI output preserves the literal `Peers:` line prefix verbatim
685
+ (parser/test compatibility) and surfaces the clarifier in-band beneath it; the
686
+ JSON form exposes `peersNote` directly for programmatic consumers.
687
+
90
688
  ## Inventory and Monitoring
91
689
 
92
690
  ```bash
93
- rig ps # ALL active rigs, one compact row each (v0.4.4 default)
94
- rig ps --json # bare array, all non-archived rigs
95
- rig ps --nodes # current rig's nodes (session default, local only)
96
- rig ps --nodes -A --json # fleet node inventory (explicit)
691
+ rig ps # CURRENT-RIG, compact rig summaries (v0.4.0 default)
692
+ rig ps --nodes # compact node inventory (current rig)
693
+ rig ps -A # all-rigs breadth (was the pre-0.4.0 default)
694
+ rig ps --nodes --full # complete per-node record (the firehose — opt-in)
695
+ rig ps --nodes --json # compact JSON node inventory (add --full for the full record)
97
696
  ```
98
697
 
99
- Use `rig ps --nodes -A --json` for the current node inventory across rigs (v0.4.4: `--nodes` needs an explicit scope outside a managed session). It is the best machine-readable operator surface for:
698
+ **v0.4.0 flipped these to compact-by-default — see the `rig ps` compact-defaults section above; STOP using bare `rig ps --nodes --json` as a fleet-wide firehose (the ~77k-token status-glance incident).** The compact `rig ps --nodes` node inventory (add `--full` only when you need the complete record, `-A` for cross-rig breadth) carries, per node:
100
699
  - session name
101
700
  - runtime
102
701
  - session/startup status
103
- - restore outcome
702
+ - restore outcome (compact: `resumeTokenPresent` boolean; the token VALUE is in `--full`)
104
703
  - attach/resume commands
105
704
  - latest error
106
705
 
@@ -112,6 +711,9 @@ rig daemon status
112
711
  rig config
113
712
  rig preflight
114
713
  rig doctor
714
+ rig env status <rig>
715
+ rig env logs <rig>
716
+ rig env down <rig>
115
717
  ```
116
718
 
117
719
  ## Transcript and Communication
@@ -129,15 +731,46 @@ rig transcript <session> --json
129
731
  ```bash
130
732
  rig send <session> "message"
131
733
  rig send <session> "message" --verify
132
- rig send <session> "message" --force
734
+ rig send <session> "message" --wait-for-idle <seconds>
735
+ rig send <session> "message" --raw
736
+ rig send <session> "message" --dangerously-interact --reason "<why>"
737
+ rig send <session> "message" --host <id>
133
738
  rig send <session> "message" --json
134
739
  ```
135
740
 
136
- Use `--verify` when you want delivery evidence. Use `--force` only when you intentionally want to bypass activity-risk checks.
741
+ **The send-guard (v0.4.0) the default is SAFE.** A default `rig send` is guarded: it will NOT submit into an interactive prompt / permission block on the target pane (the footgun that prematurely shipped 0.4.0). Flags:
742
+ - `--verify` — delivery evidence.
743
+ - `--force` — **a back-compat no-op on the send DECISION**: it never bypasses the interactive-prompt/permission guard and never changes whether a message is delivered (a mid-task/busy pane already sends-with-advisory by default). *(It does NOT "bypass activity-risk checks" — that earlier teaching is retired.)* It is **not fully inert**, though — it is still parsed solely to be **rejected in combination with `--wait-for-idle`**: `rig send … --force --wait-for-idle <n>` prints `--wait-for-idle cannot be combined with --force`, exits 1, and sends nothing. So do not read "no-op" as "`--force --wait-for-idle` is harmless"; that pairing errors. *(Verified against current product main `d37a08ad`: the guard-bypass no-op is declared at `send.ts` and confirmed by runtime capture — a plain `--force` send delivers through the ordinary path; the `--wait-for-idle` rejection is enforced at `send.ts`, `routes/transport.ts`, and `session-transport.ts`, and confirmed by runtime capture — exit 1, nothing sent.)*
744
+ - `--wait-for-idle <seconds>` — wait until the target is explicitly idle before sending. **Cannot be combined with `--force`** (that pairing is rejected: exit 1, nothing sent).
745
+ - `--raw` — send exact text/keystrokes without the From/To messaging envelope (still guarded against interactive prompts).
746
+ - `--dangerously-interact --reason "<why>"` — the ONLY override of the prompt/permission guard: deliberately drive an interactive prompt/permission block (implies `--raw`, requires `--reason`, audit-logged).
747
+ - `--host <id>` — send on a remote host declared in `~/.openrig/hosts.yaml` (ssh hosts shell out; http hosts go CLI-direct to the remote daemon).
748
+ - `--from <session>` — originating session for the envelope sender/actor (provenance; defaults to `$OPENRIG_SESSION_NAME`, and is plumbed through cross-host sends so the remote envelope names the origin, not the relay).
749
+
750
+ > **Durable work goes to the QUEUE, not `send`.** `rig send` is an *ephemeral* message to a pane — it can be missed, and its delivery status is pane-render, not receipt. If you are **assigning work, or the message is important enough that losing it would be a real bummer**, use `rig queue` (below): it's durable, owned, tracked, and survives compaction and restart. Reach for `send` for a quick conversational nudge; reach for the **queue** for anything that must not get lost. Do not default to `send` for work — that's the most common mistake.
751
+
752
+ As of v0.3.3, content beginning with `--` or `-` is safe:
753
+ `rig send <session> "content starting with -- or - is now safe"` delivers
754
+ literally. The daemon's `send_text` path carries an explicit `--`
755
+ end-of-options sentinel so tmux no longer parses dash-prefixed content
756
+ as its own flags. The CLI surface itself is unchanged. For multi-line
757
+ or large bodies handed off as durable work, use
758
+ `rig queue create --body-file <path>` (`-` for stdin) — that's the
759
+ queue-side surface, not `rig send`.
760
+
761
+ `--verify` delivery outcomes (v0.3.3+):
762
+ - `delivered` — text + Enter both succeeded and capture re-confirmed the body landed.
763
+ - `rendered-unconfirmed` — text + Enter both succeeded but capture could not re-confirm the body (TUI redraw race or scroll). The message landed; the post-send re-check could not prove it. Treat as landed-but-unconfirmable, NOT failure.
764
+ - `failed` — the send transport itself failed.
765
+
766
+ The legacy `Verified: yes/no` line is preserved verbatim (parser/test
767
+ compatibility). A new `Delivery: <outcome>` line carries the named outcome
768
+ above.
137
769
 
138
770
  Observed operator nuance for `--verify`:
139
- - `Sent to ...` + `Verified: yes` = strong positive delivery evidence.
140
- - `Sent to ...` + `Verified: no` = ambiguous delivery, not automatic failure. We have repeatedly seen the message still land; treat this as verification drift until disproven.
771
+ - `Sent to ...` + `Verified: yes` (`Delivery: delivered`) = strong positive delivery evidence.
772
+ - `Sent to ...` + `Verified: no` + `Delivery: rendered-unconfirmed` = the message landed; capture could not re-prove it. Don't blind-retry check reply / `rig capture` / transcript before sending again.
773
+ - `Sent to ...` + `Verified: no` + `Delivery: failed` = send-transport failure.
141
774
  - no `Sent to ...` line or a hard error = send failure.
142
775
 
143
776
  When you get `Verified: no`, do not immediately retry blindly. First check one of:
@@ -156,13 +789,6 @@ rig capture --pod <name> --rig <name>
156
789
  rig capture --rig <name> --json
157
790
  ```
158
791
 
159
- Capture discipline:
160
- - Default to bounded captures: `rig capture <session> --lines 80`.
161
- - Use `--lines 120` when the latest activity is ambiguous.
162
- - Use `--lines 200` or more only for explicit recovery/debug reconstruction, such as post-compaction restore, context-wall diagnosis, or a failed handoff.
163
- - Prefer targeted `rig transcript <session> --tail ...`, `rig transcript <session> --grep ...`, queue files, or status commands over large pane captures.
164
- - Do not use large captures as routine monitoring; they waste operator context and can hide the actual latest state in old scrollback.
165
-
166
792
  ### Broadcast
167
793
 
168
794
  ```bash
@@ -172,7 +798,17 @@ rig broadcast "message"
172
798
  rig broadcast --rig <name> "message" --json
173
799
  ```
174
800
 
175
- Without `--rig` or `--pod`, broadcast targets all running sessions.
801
+ **Use `rig broadcast` sparingly — prefer `rig send` fan-out.** Without `--rig` or `--pod`, broadcast targets
802
+ **every running session across ALL rigs** (plus attached external_cli nodes) — the fastest way to cause a
803
+ broadcast storm. Reserve `rig broadcast` for small rigs or a genuine all-hands emergency. For the normal
804
+ "message several seats at once" case, use `rig send`, which scopes the fan-out and keeps the messaging
805
+ envelope, the delivery/interactive-prompt guards, and per-recipient results:
806
+
807
+ ```bash
808
+ rig send --to dev-impl@my-rig,dev-qa@my-rig "message to specific seats" # named seats (comma-list or repeat --to)
809
+ rig send --pod dev "message to one pod" # scoped fan-out
810
+ rig send --rig my-rig "message to one rig" # scoped fan-out
811
+ ```
176
812
 
177
813
  ### Chatroom
178
814
 
@@ -190,6 +826,27 @@ rig chatroom watch <rig> [--tmux]
190
826
  - `history` — retrieve with composable filters (sender, since, after, topic)
191
827
  - `wait` — block until new matching messages arrive (polls history, times out honestly)
192
828
  - `clear` — delete all messages for the rig (destructive, rig-scoped)
829
+
830
+ ## See something, say something
831
+
832
+ OpenRig has an **observation stream** — the fleet's zero-friction institutional memory, mined for
833
+ real product improvements. When you notice **anything worth externalizing**, say something and keep
834
+ working:
835
+
836
+ - a **bug**, a rough edge, or something that needs fixing
837
+ - a **feature idea** or an improvement
838
+ - something that **worked really well** — a technique, tool, or pattern worth spreading
839
+ - an **observation**, positive or negative feedback, or something genuinely cool, productive, or funny
840
+
841
+ ```bash
842
+ rig stream emit --source <your-session> --body "what you noticed"
843
+ ```
844
+
845
+ That's the whole reflex. **Don't** decide where it goes or who it's for — the intake router triages
846
+ (destination/type/urgency/tags are optional hints — `--hint-type review|handoff|idea`,
847
+ `--hint-urgency routine|urgent|critical`, `--hint-tags` — never required). One command, then carry
848
+ on; the value is the habit, not the polish. **Don't overdo it, either:** stream real signal, not
849
+ narration — a good observation beats ten noisy ones. It's a passing thought you externalize, not a chore.
193
850
  - `topic` — set a topic marker
194
851
  - `watch` — SSE or tmux-based live stream
195
852
 
@@ -220,6 +877,21 @@ Current shipped behavior:
220
877
 
221
878
  This is an evidence/context command. It is not a hidden second-LLM call.
222
879
 
880
+ ### `rig auth` — agent auth-profile management (v0.4.1, product-native)
881
+
882
+ Product-native switching of agent auth profiles from the CLI. The runtime is a **flag** (`--runtime <codex>`), not a command noun — never `rig codex-auth`.
883
+
884
+ ```bash
885
+ rig auth status --runtime codex # presence / mode / parseability / login-state (never prints token contents)
886
+ rig auth list --runtime codex # saved profiles
887
+ rig auth save <profile> --runtime codex # snapshot the auth FILE (mode-guarded), never echoes contents
888
+ rig auth switch <profile> --runtime codex
889
+ rig auth validate <profile> --runtime codex
890
+ rig auth seats … --runtime codex # seat -> profile registry (metadata only; NOT proof of a live account)
891
+ ```
892
+
893
+ **Hard secret boundary:** no token value is ever printed, logged, queued, streamed, or committed; status/validate report presence/mode/login-state only; seat labels are metadata, not live-account proof. MVP is `--runtime codex`; other runtimes use the same surface with a different `--runtime`, never a parallel command.
894
+
223
895
  ## Lifecycle
224
896
 
225
897
  ### Bring a rig up
@@ -228,6 +900,9 @@ This is an evidence/context command. It is not a hidden second-LLM call.
228
900
  rig up <source>
229
901
  rig up <source> --plan
230
902
  rig up <source> --yes
903
+ rig up <source> --cwd /path/to/project
904
+ rig up <source> --existing
905
+ rig up <source> --fresh <seat...>
231
906
  rig up <source> --json
232
907
  ```
233
908
 
@@ -241,14 +916,22 @@ Bare names are special:
241
916
  - if they do not match a library spec, `rig up` treats the name as an existing-rig restore/power-on target
242
917
  - if both exist, `rig up` fails loudly on ambiguity
243
918
 
919
+ Resume-original-by-default (v0.3.4+):
920
+ - For an existing rig, `rig up <name>` resumes each seat from its original session/snapshot by default (operation A). Seats that successfully resume report `resumed`.
921
+ - `--fresh <seat...>` is the per-seat opt-in for deliberate fresh-prime (operation B). Named seats are reported as `fresh-primed`.
922
+ - `--existing` forces existing-rig restore semantics on a bare name, bypassing library-spec resolution. Useful when a rig name collides with a library spec name.
923
+ - Example: `rig up --existing my-rig --fresh dev-impl` — resume everything in `my-rig` except `dev-impl`, which is freshly primed.
924
+ - Seats with no resumable session land in `awaiting-decision` (zero-session honest state, NOT `failed`); see the five-term restore vocabulary in "Recovery and Resilience" below.
925
+
926
+ `--plan` (v0.3.4+):
927
+ - `rig up <source> --plan` produces a read-only restore plan preview. It surfaces per-seat resume/fresh-prime intent and any awaiting-decision seats without mutating state. Honest async timeout: a stuck plan reports the timeout rather than hanging silently.
928
+
244
929
  Current behavior notes:
245
930
  - `--target <root>` is only for `.rigbundle` / package installation. It does not change agent cwd.
931
+ - `rig up --cwd` is shipped. `rig up --cwd <path>` sends a per-run cwd override for all members in that launch.
246
932
  - `local:` `agent_ref` values resolve relative to the rig spec directory, not your shell cwd.
247
933
  - if you copy a built-in spec elsewhere, keep its `agents/` tree beside the YAML or rewrite those refs to `path:/absolute/path`
248
- - `rig up --cwd <path>` exists as a launch working-directory override applied to all members for that run (verify with `rig up --help`)
249
- - Source at OpenRig `6af2754` adds member-level `starter_ref` for named Agent
250
- Starter registry entries. Active host availability still depends on the
251
- running daemon; `rig-real-17812d5` does not resolve `starter_ref`.
934
+ - `rig specs add <directory>` installs a full spec tree when the directory contains `rig.yaml` or `agent.yaml`.
252
935
 
253
936
  Legacy/spec-specific surfaces still ship too:
254
937
 
@@ -257,27 +940,6 @@ rig bootstrap <spec> [--plan] [--yes] [--json]
257
940
  rig requirements <spec> [--json]
258
941
  ```
259
942
 
260
- ### Agent Starter `starter_ref`
261
-
262
- Source `>= 6af2754` lets a RigSpec member set:
263
-
264
- ```yaml
265
- starter_ref:
266
- name: my-team-starter--claude-code
267
- ```
268
-
269
- The daemon resolves the named entry from the Agent Starter registry, applies the
270
- credential scan, and prepends the starter content as `guidance_merge` on fresh
271
- launch. It supports Claude and Codex members, rejects terminal members, rejects
272
- `starter_ref + session_source.mode: fork`, and allows
273
- `starter_ref + session_source.mode: rebuild`.
274
-
275
- Runtime-truth rule: verify active daemon/runtime provenance before depending on
276
- this. If the live daemon is still `rig-real-17812d5`, `starter_ref` is source
277
- truth only and should not be used against the active control plane. After a
278
- runtime at or after `6af2754` is active, `rig up --plan --json` should expose a
279
- `resolve_starter` stage with `detail.starterContent`.
280
-
281
943
  ### Tear a rig down
282
944
 
283
945
  ```bash
@@ -288,12 +950,44 @@ rig down <rig> --force
288
950
  rig down <rig> --json
289
951
  ```
290
952
 
291
- `rig down` accepts a rig name or id (symmetric with `rig up`); the earlier
292
- name-to-404 caveat is resolved in v0.3.3. An ambiguous name matching more than
293
- one active rig is refused with the matching ids; re-run with `rig down <id>`.
294
-
295
953
  If `--snapshot` succeeds, human output includes the restore hint.
296
954
 
955
+ ### Archive a stopped rig (recoverable) — v0.3.3+
956
+
957
+ ```bash
958
+ rig archive <rig> [--json]
959
+ rig unarchive <rig> [--json]
960
+ ```
961
+
962
+ `rig archive` marks a stopped rig as archived (sets `archivedAt`) without
963
+ discarding it. The rig is preserved for later restoration via `rig unarchive`,
964
+ which clears `archivedAt` and returns the rig to the active set.
965
+
966
+ Archive vs delete:
967
+ - `rig down --delete` — permanent removal; not recoverable.
968
+ - `rig archive` — recoverable; the rig is hidden from the default active view but its record + snapshots are preserved.
969
+
970
+ Visibility in `rig ps`:
971
+ - `rig ps` — active rigs only (default).
972
+ - `rig ps --include-archived` — includes archived rigs, marked with `*`.
973
+
974
+ SSE events `rig.archived` / `rig.unarchived` drive Project / dashboard updates;
975
+ consumers that depend on the rig list should subscribe rather than poll.
976
+
977
+ ### Environment services
978
+
979
+ ```bash
980
+ rig env status <rig>
981
+ rig env logs <rig> [service]
982
+ rig env down <rig>
983
+ ```
984
+
985
+ Use these for service-backed rigs and agent-managed apps.
986
+ For `secrets-manager`, these are the fastest CLI surfaces for:
987
+ - confirming whether Vault is healthy
988
+ - reading Vault container logs
989
+ - stopping the Vault env without tearing down the specialist session first
990
+
297
991
  ### Release management without killing live claimed sessions
298
992
 
299
993
  ```bash
@@ -386,7 +1080,7 @@ rig whoami --json
386
1080
 
387
1081
  Notes:
388
1082
  - for tmux-backed self-attach, `rig whoami --json` is the right verification
389
- - for raw/external self-attach, `rig ps --nodes -A --json` is currently the more reliable verification surface
1083
+ - for raw/external self-attach, `rig ps --nodes --json` is currently the more reliable verification surface
390
1084
  - if the current shell is outside tmux, pass `--display-name <name>` when you want a stable human session label recorded
391
1085
 
392
1086
  ### Adopt a topology and bind live sessions
@@ -404,8 +1098,8 @@ A bindings file is the durable map from authored logical IDs to live sessions. S
404
1098
 
405
1099
  ```yaml
406
1100
  bindings:
407
- dev1.impl2: dev1-impl2@rigged-buildout
408
- dev1.qa: dev1-qa@rigged-buildout
1101
+ dev1.impl2: dev1.impl2@rigged-buildout
1102
+ dev1.qa: dev1.qa@rigged-buildout
409
1103
  ```
410
1104
 
411
1105
  Spec + bindings is the proven recovery pair for adopted rigs.
@@ -453,13 +1147,13 @@ Verification loop:
453
1147
  ```bash
454
1148
  rig discover --json
455
1149
  rig adopt <fragment.yaml> --bindings-file <bindings.yaml> --target-rig <rigId>
456
- rig ps --nodes -A --json
1150
+ rig ps --nodes --json
457
1151
  rig export <rigId> -o rig.yaml
458
1152
  ```
459
1153
 
460
1154
  Success looks like:
461
1155
  - the new sessions stop appearing in `rig discover`
462
- - the new logical IDs appear in `rig ps --nodes -A --json`
1156
+ - the new logical IDs appear in `rig ps --nodes --json`
463
1157
  - `rig export` includes the new pod
464
1158
 
465
1159
  ### Mixed-origin rigs are allowed
@@ -477,7 +1171,7 @@ Current safety rule:
477
1171
  The proven operator pattern is:
478
1172
  - keep one OpenRig manager session outside the rig it manages
479
1173
  - address the target by rig name, not cached rig ID
480
- - resolve the current owner from fresh `rig ps --nodes -A --json`
1174
+ - resolve the current owner from fresh `rig ps --nodes --json`
481
1175
  - send the manager the spec path, bindings path, and verification steps with `rig send`
482
1176
 
483
1177
  This lets ordinary agents ask the manager for OpenRig help instead of every agent needing to be an OpenRig expert.
@@ -487,11 +1181,39 @@ This lets ordinary agents ask the manager for OpenRig help instead of every agen
487
1181
  ```bash
488
1182
  rig expand <rig-id> <pod-fragment-path> [--rig-root <path>] [--json]
489
1183
  rig launch <rigId> <nodeRef> [--json]
1184
+ rig launch <rigId> --seats <a,b,c> [--hold-reason <text>] [--json]
490
1185
  rig remove <rigId> <nodeRef> [--json]
491
1186
  rig shrink <rigId> <podRef> [--json]
492
1187
  rig unclaim <sessionRef> [--json]
493
1188
  ```
494
1189
 
1190
+ Node-granular managed partial restore (v0.3.4+):
1191
+ - `rig launch <rigId> <nodeRef>` relaunches a single seat by logical id or node id through orchestration.
1192
+ - `rig launch <rigId> --seats <a,b,c>` relaunches a comma-separated subset of seats.
1193
+ - `--hold-reason <text>` records a reason for holding non-target seats during the partial launch.
1194
+ - This is a SUPPORTED managed path. The prior `pod_aware_launch_unsupported` dead-end is retired; pod-aware narrow launch now goes through this surface rather than ad-hoc rebuilds.
1195
+
1196
+ ### Add a member to an existing pod — v0.3.3+
1197
+
1198
+ ```bash
1199
+ rig add <rig> <member-fragment-path> [--json]
1200
+ rig add-member <rig> <member-fragment-path> [--json]
1201
+ ```
1202
+
1203
+ `rig add` (alias `rig add-member`) is the top-level verb for the `add_member`
1204
+ converge op. It adds a single member to an existing pod from a YAML/JSON member
1205
+ fragment file. The fragment must declare the target pod; the daemon resolves
1206
+ the pod by that declared identity, validates the member, runs preflight, and
1207
+ launches the member in place.
1208
+
1209
+ HTTP outcomes:
1210
+ - `201` — member added; per-node launch state included in the response.
1211
+ - `400` — `validation_failed` or `preflight_failed` (the fragment or its launch posture is rejected before any state change).
1212
+ - `409` — `member_conflict` (a member with that identity already exists in the pod).
1213
+
1214
+ Use `rig add` when you want additive growth inside a pod without re-running
1215
+ the full `rig expand` pod-fragment path or rebuilding the rig.
1216
+
495
1217
  ## Specs and Validation
496
1218
 
497
1219
  ### Validate specs
@@ -514,8 +1236,6 @@ rig specs remove <name-or-id> [--json]
514
1236
  rig specs rename <name-or-id> <new-name> [--json]
515
1237
  ```
516
1238
 
517
- `rig specs add <directory>` installs a full spec tree when the directory contains `rig.yaml` or `agent.yaml`.
518
-
519
1239
  ## MCP
520
1240
 
521
1241
  ```bash
@@ -548,7 +1268,7 @@ When the CLI behaves strangely, use the smallest truthful check first:
548
1268
  ```bash
549
1269
  rig whoami --json
550
1270
  rig daemon status
551
- rig ps --nodes -A --json
1271
+ rig ps --nodes --json
552
1272
  ```
553
1273
 
554
1274
  Specific operator rules:
@@ -570,7 +1290,7 @@ Do not mass-kill:
570
1290
  - `codex ...`
571
1291
  - `claude ...`
572
1292
 
573
- For deeper host/runtime triage, use the companion `openrig-operator` skill.
1293
+ For deeper host/runtime triage, use the companion `openrig-operator` skill if it is available in your seat.
574
1294
 
575
1295
  ## JSON and Error Posture
576
1296
 
@@ -584,7 +1304,7 @@ Design assumptions that hold in the shipped CLI:
584
1304
 
585
1305
  1. `rig whoami --json`
586
1306
  2. `rig transcript <your-session> --tail 100`
587
- 3. `rig ps --nodes -A --json`
1307
+ 3. `rig ps --nodes --json`
588
1308
  4. `rig chatroom history <rig> --limit 50`
589
1309
 
590
1310
  ## Commands That Do Not Exist
@@ -593,5 +1313,3 @@ Do not assume these exist unless the shipped help starts listing them:
593
1313
  - `rig claim`
594
1314
  - `rig blame`
595
1315
  - `rig replay`
596
-
597
- `rig env` IS shipped (was previously listed as not-present). It exposes `status`, `logs`, and `down` for service-backed rigs and managed apps; verify with `rig env --help`.