@openrig/cli 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) 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/applying-a-permission-policy/SKILL.md +120 -0
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  8. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
  9. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +36 -22
  10. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
  11. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +7 -13
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +88 -0
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +189 -105
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
  15. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
  16. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
  17. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
  18. package/daemon/dist/adapters/claude-code-adapter.d.ts +0 -9
  19. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  20. package/daemon/dist/adapters/claude-code-adapter.js +13 -46
  21. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  22. package/daemon/dist/adapters/claude-resume.d.ts +1 -1
  23. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  24. package/daemon/dist/adapters/claude-resume.js +8 -2
  25. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  26. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
  27. package/daemon/dist/adapters/cmux-transport.js +8 -1
  28. package/daemon/dist/adapters/cmux-transport.js.map +1 -1
  29. package/daemon/dist/adapters/cmux.d.ts +9 -0
  30. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  31. package/daemon/dist/adapters/cmux.js +21 -0
  32. package/daemon/dist/adapters/cmux.js.map +1 -1
  33. package/daemon/dist/adapters/codex-resume.d.ts +1 -1
  34. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  35. package/daemon/dist/adapters/codex-resume.js +4 -2
  36. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  37. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  38. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  39. package/daemon/dist/adapters/codex-runtime-adapter.js +30 -9
  40. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  41. package/daemon/dist/adapters/pi-resume.d.ts +1 -1
  42. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  43. package/daemon/dist/adapters/pi-resume.js +7 -2
  44. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  45. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  46. package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
  47. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  48. package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
  49. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
  50. package/daemon/dist/adapters/yolo-mode.js +49 -0
  51. package/daemon/dist/adapters/yolo-mode.js.map +1 -0
  52. package/daemon/dist/build-info.js +3 -3
  53. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
  54. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
  55. package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
  56. package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
  57. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
  58. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
  59. package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
  60. package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
  61. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
  62. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
  63. package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
  64. package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
  65. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
  66. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
  67. package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
  68. package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
  69. package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
  70. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
  71. package/daemon/dist/domain/builtin-policy-reference.js +58 -0
  72. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
  73. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
  74. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  75. package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
  76. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  77. package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
  78. package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
  79. package/daemon/dist/domain/cmux-layout-service.js +100 -28
  80. package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
  81. package/daemon/dist/domain/context-monitor.d.ts +2 -0
  82. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  83. package/daemon/dist/domain/context-monitor.js +14 -0
  84. package/daemon/dist/domain/context-monitor.js.map +1 -1
  85. package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
  86. package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
  87. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  88. package/daemon/dist/domain/hosts/hosts-registry-reader.js +12 -10
  89. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  90. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -1
  91. package/daemon/dist/domain/hosts/hosts-registry-writer.js +3 -2
  92. package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -1
  93. package/daemon/dist/domain/hosts/read-through.js +1 -1
  94. package/daemon/dist/domain/hosts/read-through.js.map +1 -1
  95. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  96. package/daemon/dist/domain/hosts/remote-daemon-http.js +8 -5
  97. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  98. package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
  99. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  100. package/daemon/dist/domain/native-resume-probe.js +11 -4
  101. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  102. package/daemon/dist/domain/node-inventory.d.ts +3 -12
  103. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  104. package/daemon/dist/domain/node-inventory.js +57 -15
  105. package/daemon/dist/domain/node-inventory.js.map +1 -1
  106. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
  107. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
  108. package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
  109. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
  110. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
  111. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
  112. package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
  113. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
  114. package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
  115. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  116. package/daemon/dist/domain/plugin-vendor-service.js +23 -0
  117. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  118. package/daemon/dist/domain/projection-lane.d.ts +7 -0
  119. package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
  120. package/daemon/dist/domain/projection-lane.js +28 -0
  121. package/daemon/dist/domain/projection-lane.js.map +1 -0
  122. package/daemon/dist/domain/ps-projection.d.ts +19 -0
  123. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  124. package/daemon/dist/domain/ps-projection.js +46 -6
  125. package/daemon/dist/domain/ps-projection.js.map +1 -1
  126. package/daemon/dist/domain/queue-repository.d.ts +14 -10
  127. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  128. package/daemon/dist/domain/queue-repository.js +33 -12
  129. package/daemon/dist/domain/queue-repository.js.map +1 -1
  130. package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
  131. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  132. package/daemon/dist/domain/restore-orchestrator.js +90 -6
  133. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  134. package/daemon/dist/domain/review/compose.d.ts +77 -4
  135. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  136. package/daemon/dist/domain/review/compose.js +152 -16
  137. package/daemon/dist/domain/review/compose.js.map +1 -1
  138. package/daemon/dist/domain/review/fleet-compose.js +1 -1
  139. package/daemon/dist/domain/review/fleet-compose.js.map +1 -1
  140. package/daemon/dist/domain/review/gather.d.ts +1 -1
  141. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  142. package/daemon/dist/domain/review/gather.js +92 -67
  143. package/daemon/dist/domain/review/gather.js.map +1 -1
  144. package/daemon/dist/domain/review/proof-io.d.ts +2 -0
  145. package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
  146. package/daemon/dist/domain/review/proof-io.js +38 -0
  147. package/daemon/dist/domain/review/proof-io.js.map +1 -0
  148. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  149. package/daemon/dist/domain/rig-expansion-service.js +10 -1
  150. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  151. package/daemon/dist/domain/rig-repository.d.ts +45 -0
  152. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  153. package/daemon/dist/domain/rig-repository.js +75 -1
  154. package/daemon/dist/domain/rig-repository.js.map +1 -1
  155. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  156. package/daemon/dist/domain/rigspec-codec.js +6 -0
  157. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  158. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  159. package/daemon/dist/domain/rigspec-exporter.js +8 -0
  160. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  161. package/daemon/dist/domain/rigspec-instantiator.d.ts +18 -1
  162. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  163. package/daemon/dist/domain/rigspec-instantiator.js +202 -10
  164. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  165. package/daemon/dist/domain/rigspec-preflight.d.ts +11 -0
  166. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  167. package/daemon/dist/domain/rigspec-preflight.js +35 -1
  168. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  169. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  170. package/daemon/dist/domain/rigspec-schema.js +25 -0
  171. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  172. package/daemon/dist/domain/runtime-adapter.d.ts +5 -0
  173. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  174. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  175. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
  176. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
  177. package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
  178. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
  179. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
  180. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
  181. package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
  182. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
  183. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  184. package/daemon/dist/domain/scope/scope-approve.js +22 -1
  185. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  186. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  187. package/daemon/dist/domain/scope/scope-audit.js +57 -20
  188. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  189. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  190. package/daemon/dist/domain/seat-handover-service.js +7 -1
  191. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  192. package/daemon/dist/domain/session-transport.d.ts +17 -0
  193. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  194. package/daemon/dist/domain/session-transport.js +44 -0
  195. package/daemon/dist/domain/session-transport.js.map +1 -1
  196. package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
  197. package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
  198. package/daemon/dist/domain/slices/qitem-membership.js +60 -0
  199. package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
  200. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
  201. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  202. package/daemon/dist/domain/slices/slice-detail-projector.js +157 -11
  203. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  204. package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
  205. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  206. package/daemon/dist/domain/slices/slice-indexer.js +422 -45
  207. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  208. package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
  209. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  210. package/daemon/dist/domain/startup-orchestrator.js +71 -3
  211. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  212. package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
  213. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  214. package/daemon/dist/domain/successor-session-launcher.js +2 -0
  215. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  216. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +12 -11
  217. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  218. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +61 -28
  219. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  220. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +27 -10
  221. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  222. package/daemon/dist/domain/terminal/herdr-adapter.js +74 -33
  223. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  224. package/daemon/dist/domain/transcript-capture.d.ts +3 -0
  225. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  226. package/daemon/dist/domain/transcript-capture.js +28 -0
  227. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  228. package/daemon/dist/domain/transcript-store.d.ts +10 -0
  229. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  230. package/daemon/dist/domain/transcript-store.js +26 -0
  231. package/daemon/dist/domain/transcript-store.js.map +1 -1
  232. package/daemon/dist/domain/types.d.ts +21 -0
  233. package/daemon/dist/domain/types.d.ts.map +1 -1
  234. package/daemon/dist/domain/types.js.map +1 -1
  235. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  236. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
  237. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  238. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  239. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  240. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  241. package/daemon/dist/routes/agent-images.js +2 -0
  242. package/daemon/dist/routes/agent-images.js.map +1 -1
  243. package/daemon/dist/routes/mission-control.js +1 -1
  244. package/daemon/dist/routes/mission-control.js.map +1 -1
  245. package/daemon/dist/routes/missions.d.ts +7 -0
  246. package/daemon/dist/routes/missions.d.ts.map +1 -1
  247. package/daemon/dist/routes/missions.js +6 -1
  248. package/daemon/dist/routes/missions.js.map +1 -1
  249. package/daemon/dist/routes/ps.d.ts.map +1 -1
  250. package/daemon/dist/routes/ps.js +5 -1
  251. package/daemon/dist/routes/ps.js.map +1 -1
  252. package/daemon/dist/routes/queue.d.ts.map +1 -1
  253. package/daemon/dist/routes/queue.js +9 -2
  254. package/daemon/dist/routes/queue.js.map +1 -1
  255. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  256. package/daemon/dist/routes/rigs.js +29 -10
  257. package/daemon/dist/routes/rigs.js.map +1 -1
  258. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  259. package/daemon/dist/routes/scope-audit.js +141 -135
  260. package/daemon/dist/routes/scope-audit.js.map +1 -1
  261. package/daemon/dist/routes/sessions.js +2 -1
  262. package/daemon/dist/routes/sessions.js.map +1 -1
  263. package/daemon/dist/routes/slices.d.ts.map +1 -1
  264. package/daemon/dist/routes/slices.js +48 -38
  265. package/daemon/dist/routes/slices.js.map +1 -1
  266. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  267. package/daemon/dist/routes/transcripts.js +62 -33
  268. package/daemon/dist/routes/transcripts.js.map +1 -1
  269. package/daemon/dist/startup.d.ts.map +1 -1
  270. package/daemon/dist/startup.js +42 -12
  271. package/daemon/dist/startup.js.map +1 -1
  272. package/daemon/docs/reference/agent-startup-guide.md +1 -0
  273. package/daemon/docs/reference/rig-spec.md +19 -0
  274. package/daemon/policies/builtin/locked.policy.md +24 -0
  275. package/daemon/policies/builtin/open.policy.md +24 -0
  276. package/daemon/policies/builtin/standard.policy.md +25 -0
  277. package/daemon/policies/builtin/yolo.policy.md +20 -0
  278. package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
  279. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
  280. package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
  281. package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
  282. package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
  283. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
  284. package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
  285. package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
  286. package/daemon/specs/agents/development/qa/agent.yaml +12 -2
  287. package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
  288. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +2 -1
  289. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +2 -1
  290. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
  291. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
  292. package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
  293. package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
  294. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
  295. package/daemon/specs/agents/shared/agent.yaml +5 -8
  296. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -8
  297. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
  298. package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
  299. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
  300. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
  301. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
  302. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +23 -8
  303. package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +0 -5
  304. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +1 -6
  305. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
  306. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  307. package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
  308. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
  309. package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
  310. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  311. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
  312. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
  313. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
  314. package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
  315. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  316. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
  317. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
  318. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +13 -2
  319. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
  320. package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
  321. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
  322. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
  323. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
  324. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
  325. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
  326. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
  327. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  328. package/dist/bin-wrapper.d.ts.map +1 -1
  329. package/dist/bin-wrapper.js +3 -1
  330. package/dist/bin-wrapper.js.map +1 -1
  331. package/dist/build-info.js +3 -3
  332. package/dist/cli-error.d.ts +33 -0
  333. package/dist/cli-error.d.ts.map +1 -0
  334. package/dist/cli-error.js +94 -0
  335. package/dist/cli-error.js.map +1 -0
  336. package/dist/commands/config-init-workspace.js +1 -1
  337. package/dist/commands/doctor.d.ts +1 -1
  338. package/dist/commands/doctor.d.ts.map +1 -1
  339. package/dist/commands/doctor.js +17 -11
  340. package/dist/commands/doctor.js.map +1 -1
  341. package/dist/commands/host.d.ts.map +1 -1
  342. package/dist/commands/host.js +24 -10
  343. package/dist/commands/host.js.map +1 -1
  344. package/dist/commands/proof.js +1 -1
  345. package/dist/commands/proof.js.map +1 -1
  346. package/dist/commands/ps.d.ts.map +1 -1
  347. package/dist/commands/ps.js +16 -2
  348. package/dist/commands/ps.js.map +1 -1
  349. package/dist/commands/queue.d.ts.map +1 -1
  350. package/dist/commands/queue.js +103 -24
  351. package/dist/commands/queue.js.map +1 -1
  352. package/dist/commands/rig.d.ts.map +1 -1
  353. package/dist/commands/rig.js +122 -0
  354. package/dist/commands/rig.js.map +1 -1
  355. package/dist/commands/scope.js +2 -2
  356. package/dist/commands/scope.js.map +1 -1
  357. package/dist/commands/send.d.ts.map +1 -1
  358. package/dist/commands/send.js +118 -24
  359. package/dist/commands/send.js.map +1 -1
  360. package/dist/commands/setup.d.ts +14 -0
  361. package/dist/commands/setup.d.ts.map +1 -1
  362. package/dist/commands/setup.js +131 -8
  363. package/dist/commands/setup.js.map +1 -1
  364. package/dist/commands/slack.d.ts +37 -0
  365. package/dist/commands/slack.d.ts.map +1 -0
  366. package/dist/commands/slack.js +274 -0
  367. package/dist/commands/slack.js.map +1 -0
  368. package/dist/commands/ui.d.ts +1 -0
  369. package/dist/commands/ui.d.ts.map +1 -1
  370. package/dist/commands/ui.js +2 -0
  371. package/dist/commands/ui.js.map +1 -1
  372. package/dist/commands/up.js +1 -1
  373. package/dist/commands/up.js.map +1 -1
  374. package/dist/commands/whoami.d.ts.map +1 -1
  375. package/dist/commands/whoami.js +3 -3
  376. package/dist/commands/whoami.js.map +1 -1
  377. package/dist/daemon-lifecycle.d.ts.map +1 -1
  378. package/dist/daemon-lifecycle.js +45 -14
  379. package/dist/daemon-lifecycle.js.map +1 -1
  380. package/dist/host-registry.d.ts +6 -1
  381. package/dist/host-registry.d.ts.map +1 -1
  382. package/dist/host-registry.js +15 -6
  383. package/dist/host-registry.js.map +1 -1
  384. package/dist/index.d.ts +3 -0
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +6 -1
  387. package/dist/index.js.map +1 -1
  388. package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
  389. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
  390. package/dist/lib/scope/scaffold-placeholder.js +98 -0
  391. package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
  392. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  393. package/dist/lib/scope/scope-audit.js +57 -20
  394. package/dist/lib/scope/scope-audit.js.map +1 -1
  395. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  396. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  397. package/dist/lib/scope-templates/bug-fix.md +1 -1
  398. package/dist/lib/scope-templates/implementation-prd.md +1 -1
  399. package/dist/lib/scope-templates/mission-notes.md +7 -2
  400. package/dist/lib/scope-templates/mission-placeholder.md +1 -1
  401. package/dist/lib/scope-templates/mission-progress.md +1 -1
  402. package/dist/lib/scope-templates/mission-release.md +1 -1
  403. package/dist/lib/scope-templates/placeholder.md +1 -1
  404. package/dist/lib/scope-templates/proof.md +1 -1
  405. package/dist/lib/scope-templates/release-feature.md +1 -1
  406. package/dist/lib/scope-templates/research.md +1 -1
  407. package/dist/lib/scope-templates/slice-progress.md +1 -1
  408. package/dist/remote-host-ops.d.ts.map +1 -1
  409. package/dist/remote-host-ops.js +2 -2
  410. package/dist/remote-host-ops.js.map +1 -1
  411. package/dist/slack/config.d.ts +41 -0
  412. package/dist/slack/config.d.ts.map +1 -0
  413. package/dist/slack/config.js +60 -0
  414. package/dist/slack/config.js.map +1 -0
  415. package/dist/slack/inbound.d.ts +75 -0
  416. package/dist/slack/inbound.d.ts.map +1 -0
  417. package/dist/slack/inbound.js +133 -0
  418. package/dist/slack/inbound.js.map +1 -0
  419. package/dist/slack/message.d.ts +26 -0
  420. package/dist/slack/message.d.ts.map +1 -0
  421. package/dist/slack/message.js +60 -0
  422. package/dist/slack/message.js.map +1 -0
  423. package/dist/slack/outbound.d.ts +39 -0
  424. package/dist/slack/outbound.d.ts.map +1 -0
  425. package/dist/slack/outbound.js +52 -0
  426. package/dist/slack/outbound.js.map +1 -0
  427. package/dist/slack/queue-bridge.d.ts +56 -0
  428. package/dist/slack/queue-bridge.d.ts.map +1 -0
  429. package/dist/slack/queue-bridge.js +114 -0
  430. package/dist/slack/queue-bridge.js.map +1 -0
  431. package/dist/slack/secrets.d.ts +21 -0
  432. package/dist/slack/secrets.d.ts.map +1 -0
  433. package/dist/slack/secrets.js +73 -0
  434. package/dist/slack/secrets.js.map +1 -0
  435. package/dist/slack/slack-api.d.ts +49 -0
  436. package/dist/slack/slack-api.d.ts.map +1 -0
  437. package/dist/slack/slack-api.js +110 -0
  438. package/dist/slack/slack-api.js.map +1 -0
  439. package/dist/slack/state-store.d.ts +62 -0
  440. package/dist/slack/state-store.d.ts.map +1 -0
  441. package/dist/slack/state-store.js +132 -0
  442. package/dist/slack/state-store.js.map +1 -0
  443. package/package.json +1 -1
  444. package/ui/dist/assets/{index-zrFqS7gL.js → index-DkNi0RT8.js} +184 -184
  445. package/ui/dist/assets/index-N-SdPj-I.css +32 -0
  446. package/ui/dist/index.html +2 -2
  447. package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
  448. package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +0 -86
  449. package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +0 -158
  450. package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
  451. package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
  452. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -113
  453. package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
  454. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
  455. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
  456. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
  457. package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
  458. package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
  459. package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
  460. package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
  461. package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
  462. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
  463. package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
  464. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
  465. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
  466. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -210
  467. package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
  468. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
  469. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
  470. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
  471. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
  472. package/ui/dist/assets/index-CFqxa0zW.css +0 -32
@@ -12,6 +12,22 @@ This is not the config-layer or builder guide. Use the substrate control-plane g
12
12
  and experimental overlays. Use the OpenRig builder guidance when changing OpenRig behavior,
13
13
  doctrine, or release posture.
14
14
 
15
+
16
+ ## Coordination trust boundary
17
+
18
+ Coordinate as openly as the trust boundary you actually control allows. Within a set of machines you
19
+ own that already trust each other — they can reach each other's daemon URLs and the daemon itself
20
+ requires no authentication — direct `rig send`, `rig capture`, and `rig queue` should just work.
21
+ Don't invent bearer placeholders, allowlists, trust handshakes, or guest-reach restrictions the
22
+ environment doesn't require.
23
+
24
+ Do not add or defend a restriction without naming the protected asset, the actual adversary, the
25
+ blocked attack path, and the concrete consequence. Missing capability is not protection — repair the
26
+ route, registration, runtime posture, or product defect directly. Arbitrary boundaries create
27
+ constraint-induced circumvention: under goal pressure, agents build shadow transports, alternate
28
+ credentials, and weaker proof instead of the direct authorized path. Keep only explicitly stated
29
+ external or irreversible boundaries — public push / PR / publish, and destruction of canonical data.
30
+
15
31
  ## Coordination primitives — when to use which
16
32
 
17
33
  Three coordination surfaces, used together for forward-momentum work. Internalize this
@@ -28,7 +44,7 @@ the receipt and move on.
28
44
  Example:
29
45
 
30
46
  ```bash
31
- rig send reviewer@acme-web "Heads up — filing the per-commit handoff on the search-filters slice at the current tip." --verify
47
+ rig send guard@your-rig "Heads up — filing per-commit handoff on the rig-up paper-cut fix at tip 6b8673b6." --verify
32
48
  ```
33
49
 
34
50
  ### `rig queue create --source <X> --destination <Y> --tags <...> --body "<...>"` — durable work item
@@ -39,18 +55,19 @@ restarts. Tracked in the daemon SQLite schema. Surfaces in Project / queue views
39
55
  + in the destination seat's inbox. Tag with mission / slice / gate / checkpoint
40
56
  so future-you (and any peer) can find it.
41
57
 
42
- Body discipline: substantive bodies go through a temp-file pattern, not inline
43
- `--body` with raw backticks `rig queue create` body parsing breaks on
44
- unescaped backticks and rejects flag-like tokens.
58
+ Body discipline: substantive bodies go through **`--body-file <path>`** (or `-` for stdin) — the
59
+ purpose-built, corruption-safe surface (it kills the backtick-shell-corruption class for multi-line
60
+ bodies). Do NOT inline a backtick-heavy or multi-line body via `--body`: `rig queue create` body
61
+ parsing breaks on unescaped backticks and rejects flag-like tokens.
45
62
 
46
63
  Example:
47
64
 
48
65
  ```bash
49
66
  rig queue create \
50
- --source builder@acme-web \
51
- --destination reviewer@acme-web \
52
- --tags "mission:site-relaunch,slice:02-search-filters,gate:guard,handoff:per-commit,checkpoint:bug-1" \
53
- --body "$(cat /tmp/per-commit-body.txt)"
67
+ --source driver-2@your-rig \
68
+ --destination redo-guard-2@your-rig \
69
+ --tags "mission:release,slice:rig-up-paper-cut-fix,gate:guard,handoff:per-commit,checkpoint:bug-1-bonus" \
70
+ --body-file /tmp/per-commit-body.txt
54
71
  ```
55
72
 
56
73
  ### `rig queue handoff <qitem-id> --to <next> ...` — hot-potato handoff
@@ -64,8 +81,8 @@ Example:
64
81
 
65
82
  ```bash
66
83
  rig queue handoff qitem-20260601012431-d78aa805 \
67
- --to qa@acme-web \
68
- --tags "mission:site-relaunch,slice:02-search-filters,gate:qa,handoff:adversarial-dogfood"
84
+ --to velocity-qa@your-rig \
85
+ --tags "mission:release,slice:rig-up-paper-cut-fix,gate:qa,handoff:adversarial-dogfood"
69
86
  ```
70
87
 
71
88
  ### §1b doctrine — turn ends by passing the ball
@@ -99,9 +116,9 @@ process does not require.
99
116
  recovery-only fallback; qitems written via `rigx queue` are invisible to
100
117
  daemon-backed reads and break fleet-wide routing discipline.
101
118
  - Inlining a multi-line / backtick-heavy body into `rig queue create --body`
102
- write the body to `/tmp/<descriptive-name>.txt` first, then
103
- `--body "$(cat /tmp/<file>.txt)"`. The body parser does not tolerate raw
104
- backticks or flag-like tokens inline.
119
+ use `--body-file /tmp/<descriptive-name>.txt` (or `-` for stdin), the
120
+ corruption-safe surface. The body parser does not tolerate raw backticks or
121
+ flag-like tokens inline.
105
122
 
106
123
  ## Runtime-Gated Coordination Primitives
107
124
 
@@ -267,11 +284,30 @@ workflow spec.
267
284
  workflow instance + entry-step qitem. Inspect existing surface state with:
268
285
 
269
286
  ```bash
270
- rig workflow specs --json # list registered specs (built-in + operator-authored)
271
- rig workflow list --json # list active workflow instances
272
- rig workflow show <instanceId> --json
287
+ rig workflow specs --json # list registered specs (built-in + operator-authored)
288
+ rig workflow list --json # list active workflow instances
289
+ rig workflow show <instanceId> --json # inspect one instance
290
+ rig workflow project <instanceId> # ADVANCE an instance — projects the next-step packet
291
+ rig workflow continue <instanceId> # read-only inspector of an instance (does NOT advance it)
273
292
  ```
274
293
 
294
+ *(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`.)*
295
+
296
+ ## Permission policy — pick one at setup (onboarding)
297
+
298
+ OpenRig sets only a **minimal usability floor** on your harness permissions and otherwise stays out of the way — then it ships **recommended policies you opt into**. It never bakes a permission policy for you. On install / onboarding this is a required choice, presented as a top-level pick:
299
+
300
+ - **POLICY MODE** — pick a built-in policy and have it applied:
301
+ - **Locked** — deny-by-default whitelist; untrusted rigs/work.
302
+ - **Standard** ⭐ (recommended) — the normal software-factory posture; dev incl. push + PR, destructive actions ask.
303
+ - **Open** — allow-by-default; everything except explicitly-destructive, which ask.
304
+
305
+ The built-in definitions ship as read-only policy spec files (Locked / Standard / Open); applying your pick is the job of the **`applying-a-permission-policy`** skill — it translates the chosen spec into your live harness config (Claude `settings.json` / Codex `config.toml`), interactively, showing the diff before it writes.
306
+ - **YOLO MODE** — done with permissions, just want it to work: OpenRig boots every seat with the harness full-bypass launch flag. No config policy is applied (the bypass overrides it). This is a deterministic OpenRig setting, not a skill.
307
+ - **No choice = the floor** — the minimal usability baseline (Claude `acceptEdits` / Codex workspace-only / Pi `--no-approve`), one consistent minimum, nothing more.
308
+
309
+ The floor and YOLO are **launch flags** OpenRig sets deterministically; the Locked / Standard / Open policies are **config-file** policies the skill applies (agent-driven, because harness config formats drift). A rig **carries** its chosen policy on its spec and boots with it — see Lifecycle → Bring a rig up. To (re)apply or change a policy, open **`applying-a-permission-policy`**.
310
+
275
311
  ## v0.3.x Starter, Workspace, And Plugin Surfaces
276
312
 
277
313
  OpenRig v0.3.0 adds `rig agent-image`, `rig context-pack`, `rig workspace`, and
@@ -388,7 +424,7 @@ reconcile:
388
424
 
389
425
  ```bash
390
426
  rig seat clear-attention <session>
391
- rig seat clear-attention <session> --reason "operator attested: founder re-authed, confirmed live"
427
+ rig seat clear-attention <session> --reason "operator attested: the operator re-authed, confirmed live"
392
428
  rig seat clear-attention <session> --json
393
429
  ```
394
430
 
@@ -435,47 +471,27 @@ honestly and the UI exposes a one-click open-missing affordance.
435
471
 
436
472
  v0.4.0 flips the five most frequently invoked read-commands from firehose-by-default to compact-by-default, and `rig queue list` adopts the docker / kubectl read-command grammar. **All defaults preserve breadth and capability — the firehose is one explicit flag away.**
437
473
 
438
- ### `rig ps` — consolidated all-rigs default + the disclosure ladder (v0.4.4)
474
+ ### `rig ps` — current-rig default + compact-by-default + `-A`/`--all-rigs` + `--full`
439
475
 
440
476
  ```bash
441
- rig ps # ALL ACTIVE RIGS, one compact row each + rollup line + count line + ladder footer (default)
442
- rig ps --json # bare array of ALL non-archived rigs (incl. stopped; existing keys + additive attentionCount)
443
- rig ps --rig <name> # one rig's detail
444
- rig ps --nodes # compact node inventory (current rig — session default, LOCAL only)
445
- rig ps --nodes --rig <name> # compact node inventory, named rig
446
- rig ps --nodes -A # fleet node inventory, projected rows
447
- rig ps --nodes -A --full # complete per-node records (the ONLY full fan-out; resumeToken VALUE retained here for downstream consumers)
477
+ rig ps # CURRENT-RIG, all-states, compact rig summaries (default)
478
+ rig ps --json # compact JSON array (TL;DR per node: session, rig, activity, assigned/pending, resumeTokenPresent boolean)
479
+ rig ps -A # all-rigs (fleet breadth; was the v0.3.4 default)
480
+ rig ps --rig <name> # explicit-rig (overrides current-rig default)
481
+ rig ps --nodes # compact node inventory (current rig)
482
+ rig ps --nodes -A # cross-rig node inventory (was v0.3.4 default)
483
+ rig ps --nodes --full # complete record (the v0.3.4 per-node default shape; resumeToken VALUE retained here for downstream consumers)
448
484
  rig ps --nodes --session <sess> # narrow to one canonical session
449
- rig ps --include-archived # archived history as rows (otherwise ONE count line)
450
485
  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)
451
486
  ```
452
487
 
453
- **v0.4.4 consolidated default + disclosure ladder (OPR.0.4.4.21)**:
454
- - **The default is the fleet MAP**: every active rig as one O(rigs) compact row, with the host rollup ("N rigs · M seats · K need attention"), the archived/stopped count line, and the drill-ladder footer. The v0.4.0 current-rig default is RETIRED — it hid running rigs from the operator's field of view.
455
- - **`-A` has exactly ONE meaning**: the `--nodes` fleet widener. Bare `rig ps -A` errors (all-rigs IS the default; archived history stays behind `--include-archived`).
456
- - **The session-rig default applies ONLY to `--nodes`, and only locally.** Implicit scope defaults don't cross host boundaries: `rig ps --host <id> --nodes` requires an explicit `--rig` or `-A`; multi-host fan-out is rollup-only by default; the full explicit ladder (`--all-hosts --nodes -A`, `--full` for complete records) fans out per-node with hostId-stamped projected rows.
457
- - **STATED JSON contract**: default `--json` = bare array of ALL non-archived rigs INCLUDING stopped ones (scope-not-shape: existing keys preserved, additive `attentionCount`); only the human table folds stopped rigs into the count line.
458
- - **Resume-token security unchanged**: compact output never carries token material; `--full` retains it for consumers that legitimately need it.
459
-
460
- **The casual status glance is just `rig ps`.** The old fleet firehose is the explicit last rung: `rig ps --nodes -A --full`. The ~77,000-token incident class stays closed (compact + O(rigs) default + explicit ladder).
461
-
462
- ### `rig host` — the multi-host registry verbs (v0.4.4)
463
-
464
- ```bash
465
- rig host add --id <id> --transport ssh --target <tailnet-alias> --user openrig
466
- rig host add --id <id> --transport http --url http://100.x.y.z:7433 --bearer-env MY_TOKEN
467
- rig host list # pointers only — never secret values
468
- rig host doctor <id> # stepwise: transport -> rig binary -> daemon -> identity
469
- rig host doctor <id> --posture product-factory-vps [--public-addr <ip>]
470
- ```
488
+ **v0.4.0 breadth + projection changes**:
489
+ - **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.
490
+ - **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.
491
+ - **All-states stays default** (different from `rig queue list` which defaults to active-only) for `ps`, non-running states ARE often the actionable signal.
492
+ - **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).
471
493
 
472
- Exactly three verbs (capped); the VPS factory bootstrap is script + runbook
473
- (`docs/reference/product-factory-vps-runbook.md`). **Transport posture is
474
- DECIDED and documented** (cli-reference §Cross-host execution): ssh = pane ops
475
- (`send`/`capture`), http = daemon REST (`up`/`down`/`launch`), `ps`/`whoami`
476
- follow the DECLARED transport; fan-out is http-only; no cross-transport
477
- fallback; no http parity for send/capture in 0.4.4. Posture/doctor UNKNOWN is
478
- never pass — each unknown carries the command that verifies it.
494
+ **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).
479
495
 
480
496
  ### `rig whoami` — compact-by-default + `--full` (`--verbose` alias)
481
497
 
@@ -503,7 +519,7 @@ rig queue list --source <s> # sourced by <s>
503
519
  rig queue show <qitemId> # full single item (kubectl describe)
504
520
  ```
505
521
 
506
- 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 bomb on this host) is opt-in via `-A -a --full`.
522
+ 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`.
507
523
 
508
524
  ### `rig restore-check` — summary + not-ready-only default + `--full`
509
525
 
@@ -535,16 +551,16 @@ This release closes the host-version-aged token-burn class: on this host the rea
535
551
 
536
552
  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.
537
553
 
538
- ### `rig scope mission|slice progress` — deterministic progress updates (slice 33)
554
+ ### `rig scope mission|slice progress` — deterministic progress updates
539
555
 
540
556
  ```bash
541
- rig scope mission progress <mission> --status <state> --milestone <text>
542
- rig scope slice progress <slice-path> --status <state> --note <text>
557
+ rig scope mission progress <mission> --add "<line>" # append a progress line; --set replaces; --section <heading> (default Rail); --status active|done|blocked
558
+ rig scope slice progress <slice-path> --add "<line>" # same flags: --add / --set, --section <heading>, --status active|done|blocked
543
559
  ```
544
560
 
545
561
  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`.
546
562
 
547
- ### `rig scope mission|slice stage / verified / reconcile` — deterministic maturity vocabulary (slice 35)
563
+ ### `rig scope mission|slice stage / verified / repair` — deterministic maturity vocabulary
548
564
 
549
565
  ```bash
550
566
  rig scope slice stage <slice> <new-stage> # wip / provisional / established / canonical / superseded / retired
@@ -554,40 +570,16 @@ rig scope mission stage <mission> <new-stage> # same enum + rules at mis
554
570
  rig scope slice verified <slice> --against "<source>" # stamp `verified: <today> against <source>`; --against MANDATORY
555
571
  rig scope mission verified <mission> --against "<source>"
556
572
 
557
- rig scope slice reconcile <slice> # idempotent repair: backfill PROGRESS.md, conform id/stage/verified, repair ghosts
558
- rig scope mission reconcile <mission> # mission-tier idempotent repair
573
+ rig scope slice repair <slice> # idempotent repair: backfill PROGRESS.md, conform id/stage/verified, repair ghosts
574
+ rig scope mission repair <mission> # mission-tier idempotent repair
559
575
 
560
576
  rig scope slice show <slice> # derives read-time effective-reliability from (stage × verified)
561
577
  # — stale-`verified` `canonical` reported as effectively `provisional`
562
578
  ```
563
579
 
564
- Composes with slice 33's `progress` + scaffolding to make `rig scope` the **deterministic enforcer** of `conventions/scope-and-versioning` §1 (dot-IDs) + §2 (maturity vocabulary). Agents update `stage` / `verified` / `id` through commands rather than hand-editing markdown and drifting. The `--against` MANDATORY rule on `verified` is the anti-stale keystone: bare timestamps are rejected because a bare timestamp is exactly what lets stale trackers lie while looking fresh. **STOP hand-editing the `stage` / `verified` / `id` fields in scope frontmatter; use the new verbs.** Existing missions / slices with `id:null` ghosts or missing `PROGRESS.md` are repaired idempotently via `reconcile`.
580
+ 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`.
565
581
 
566
- ### The SDLC control plane convention sections, the two locks, `rig proof` (v0.4.4)
567
-
568
- The Living Notes UI is a plain projection of well-formed on-disk markdown. The conventions live in ONE shipped document — **`docs/reference/sdlc-conventions.md`** (in the CLI package) — and the operating procedure is the **`mission-slice-sop`** skill. The command surface:
569
-
570
- ```bash
571
- rig scope slice create <mission> <slug> [--template <kind>] # scaffolds ## Intent / ## Mini-requirements / ## Proof contract
572
- # + proof/ + PROOF.md + IMPLEMENTATION-PRD.md — EVERY template kind
573
-
574
- rig scope slice approve <slice> --scope spec # PLAN-LOCK: "the PRD matches my intent; this set gets built"
575
- rig scope slice approve <slice> --scope delivery # PROOF-LOCK: the terminal sign-off (default scope; fires the freeze)
576
-
577
- rig proof add <slice> --artifact-type qa --verdict PASS \
578
- --candidate-sha <tip> --money-evidence "<one line>" \
579
- --evidences "1,3" --media "walk.webm" \
580
- --self-check "<looked at it>" # C1 proof drop into proof/; --evidences joins the drop to its
581
- # proof-contract items and --media names the curated proof/-relative
582
- # media it stands behind (what the DELIVERED section pairs + renders)
583
-
584
- rig scope audit <mission> # deterministic backstop — flags missing sections / malformed
585
- # proof contract / invalid C1 headers; ADVISORY, never blocks
586
- ```
587
-
588
- The flow: intent → mini-requirements + proof contract (→ mockups for UI slices) → plan-lock → build the locked set → QA visual compare → `rig proof` drops → proof-lock. Approval is freeze/sign-off, **never** proven-green — proven-green requires recorded C1 verdicts.
589
-
590
- ### `rig skill audit` — skill cascade provenance (slice 10)
582
+ ### `rig skill audit`skill cascade provenance
591
583
 
592
584
  ```bash
593
585
  rig skill audit # human report of findings
@@ -596,12 +588,46 @@ rig skill audit --severity warn # stale + mirror-drift only
596
588
  rig skill audit --rig <name> # narrow to embedded skill copies for one rig
597
589
  ```
598
590
 
599
- Read-only audit of the skill cascade. Detects `missing` / `stale` / `self-referential` / `invalid-date` / `mirror-drift` across the canonical `openrig-work/skills/` → 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`.
591
+ 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`.
600
592
 
601
- ### `rig seat clear-attention` — extended to derived projection staleness (slice 16)
593
+ ### `rig seat clear-attention` — extended to derived projection staleness
602
594
 
603
595
  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.
604
596
 
597
+ ### Native Codex session id capture
598
+
599
+ Codex seats can now record the real native session id from the Codex
600
+ `SessionStart` hook instead of relying on scrape-shaped identity. The proof
601
+ lane for v0.4.0 matched the same id across the hook payload, rollout log, and
602
+ SQLite. Treat hook-sourced ids as stronger resume/identity evidence than
603
+ terminal scraping when present.
604
+
605
+ Managed-seat hook trust is a 0.4.1 carry: the v0.4.0 surface proves native
606
+ capture and hook-trust constraints, but do not assume every managed Codex seat
607
+ has already migrated from scrape-backed to hook-sourced ids.
608
+
609
+ ### Codex resume preserves approval posture
610
+
611
+ Resuming a Codex seat preserves the launching seat's approval/sandbox posture
612
+ and profile flags. Product-emitted resume commands carry the posture flags
613
+ instead of silently falling back to implicit-deny or an unrelated profile.
614
+
615
+ Do not "fix" a resumed Codex seat by relaunching it with broader approvals
616
+ unless the operator explicitly grants a bounded window. Verify the seat's
617
+ active posture first, and preserve it when composing recovery commands.
618
+
619
+ ### `rig seat set-resume-token --token-stdin`
620
+
621
+ ```bash
622
+ printf '%s' "$RESUME_TOKEN" | rig seat set-resume-token <session> --token-stdin
623
+ ```
624
+
625
+ Use this command to set or restore a seat resume token. It replaces direct
626
+ SQLite edits, rejects unauthorized writes and bad/null token false-ready paths,
627
+ records redacted audit/provenance, and keeps token material out of command
628
+ arguments, stdout, logs, and normal status rows. Use stdin, not an inline flag,
629
+ when passing token material.
630
+
605
631
  ## Core Loop
606
632
 
607
633
  Most work in OpenRig reduces to this loop:
@@ -628,7 +654,7 @@ Typical operator loop:
628
654
 
629
655
  ```bash
630
656
  rig up secrets-manager --cwd /path/to/project
631
- rig ps --nodes --rig secrets-manager --json
657
+ rig ps --nodes --json
632
658
  rig send vault-specialist@secrets-manager "Check Vault health and report back." --verify
633
659
  rig env status secrets-manager
634
660
  rig env logs secrets-manager
@@ -675,19 +701,18 @@ JSON form exposes `peersNote` directly for programmatic consumers.
675
701
  ## Inventory and Monitoring
676
702
 
677
703
  ```bash
678
- rig ps
679
- rig ps --json
680
- rig ps --nodes
681
- rig ps --nodes --rig <name> --json
682
- rig ps --nodes -A --json
683
- rig ps --nodes -A --full --json
704
+ rig ps # CURRENT-RIG, compact rig summaries (v0.4.0 default)
705
+ rig ps --nodes # compact node inventory (current rig)
706
+ rig ps -A # all-rigs breadth (was the pre-0.4.0 default)
707
+ rig ps --nodes --full # complete per-node record (the firehose — opt-in)
708
+ rig ps --nodes --json # compact JSON node inventory (add --full for the full record)
684
709
  ```
685
710
 
686
- Use `rig ps --nodes --rig <name> --json` for one rig's node inventory, or `rig ps --nodes -A --json` for fleet-wide projected node inventory. Use `--full` only when a downstream consumer truly needs complete per-node records. The node inventory surface carries:
711
+ **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:
687
712
  - session name
688
713
  - runtime
689
714
  - session/startup status
690
- - restore outcome
715
+ - restore outcome (compact: `resumeTokenPresent` boolean; the token VALUE is in `--full`)
691
716
  - attach/resume commands
692
717
  - latest error
693
718
 
@@ -719,13 +744,25 @@ rig transcript <session> --json
719
744
  ```bash
720
745
  rig send <session> "message"
721
746
  rig send <session> "message" --verify
722
- rig send <session> "message" --force
747
+ rig send <session> "message" --wait-for-idle <seconds>
748
+ rig send <session> "message" --raw
749
+ rig send <session> "message" --dangerously-interact --reason "<why>"
750
+ rig send <session> "message" --host <id>
723
751
  rig send <session> "message" --json
724
752
  ```
725
753
 
726
- Use `--verify` when you want delivery evidence. Use `--force` only when you intentionally want to bypass activity-risk checks.
754
+ **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:
755
+ - `--verify` — delivery evidence.
756
+ - `--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.)*
757
+ - `--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).
758
+ - `--raw` — send exact text/keystrokes without the From/To messaging envelope (still guarded against interactive prompts).
759
+ - `--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).
760
+ - `--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).
761
+ - `--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).
762
+
763
+ > **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.
727
764
 
728
- As of v0.3.3 (slice 17), content beginning with `--` or `-` is safe:
765
+ As of v0.3.3, content beginning with `--` or `-` is safe:
729
766
  `rig send <session> "content starting with -- or - is now safe"` delivers
730
767
  literally. The daemon's `send_text` path carries an explicit `--`
731
768
  end-of-options sentinel so tmux no longer parses dash-prefixed content
@@ -774,7 +811,17 @@ rig broadcast "message"
774
811
  rig broadcast --rig <name> "message" --json
775
812
  ```
776
813
 
777
- Without `--rig` or `--pod`, broadcast targets all running sessions.
814
+ **Use `rig broadcast` sparingly — prefer `rig send` fan-out.** Without `--rig` or `--pod`, broadcast targets
815
+ **every running session across ALL rigs** (plus attached external_cli nodes) — the fastest way to cause a
816
+ broadcast storm. Reserve `rig broadcast` for small rigs or a genuine all-hands emergency. For the normal
817
+ "message several seats at once" case, use `rig send`, which scopes the fan-out and keeps the messaging
818
+ envelope, the delivery/interactive-prompt guards, and per-recipient results:
819
+
820
+ ```bash
821
+ rig send --to dev-impl@my-rig,dev-qa@my-rig "message to specific seats" # named seats (comma-list or repeat --to)
822
+ rig send --pod dev "message to one pod" # scoped fan-out
823
+ rig send --rig my-rig "message to one rig" # scoped fan-out
824
+ ```
778
825
 
779
826
  ### Chatroom
780
827
 
@@ -792,6 +839,27 @@ rig chatroom watch <rig> [--tmux]
792
839
  - `history` — retrieve with composable filters (sender, since, after, topic)
793
840
  - `wait` — block until new matching messages arrive (polls history, times out honestly)
794
841
  - `clear` — delete all messages for the rig (destructive, rig-scoped)
842
+
843
+ ## See something, say something
844
+
845
+ OpenRig has an **observation stream** — the fleet's zero-friction institutional memory, mined for
846
+ real product improvements. When you notice **anything worth externalizing**, say something and keep
847
+ working:
848
+
849
+ - a **bug**, a rough edge, or something that needs fixing
850
+ - a **feature idea** or an improvement
851
+ - something that **worked really well** — a technique, tool, or pattern worth spreading
852
+ - an **observation**, positive or negative feedback, or something genuinely cool, productive, or funny
853
+
854
+ ```bash
855
+ rig stream emit --source <your-session> --body "what you noticed"
856
+ ```
857
+
858
+ That's the whole reflex. **Don't** decide where it goes or who it's for — the intake router triages
859
+ (destination/type/urgency/tags are optional hints — `--hint-type review|handoff|idea`,
860
+ `--hint-urgency routine|urgent|critical`, `--hint-tags` — never required). One command, then carry
861
+ on; the value is the habit, not the polish. **Don't overdo it, either:** stream real signal, not
862
+ narration — a good observation beats ten noisy ones. It's a passing thought you externalize, not a chore.
795
863
  - `topic` — set a topic marker
796
864
  - `watch` — SSE or tmux-based live stream
797
865
 
@@ -822,6 +890,21 @@ Current shipped behavior:
822
890
 
823
891
  This is an evidence/context command. It is not a hidden second-LLM call.
824
892
 
893
+ ### `rig auth` — agent auth-profile management (v0.4.1, product-native)
894
+
895
+ 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`.
896
+
897
+ ```bash
898
+ rig auth status --runtime codex # presence / mode / parseability / login-state (never prints token contents)
899
+ rig auth list --runtime codex # saved profiles
900
+ rig auth save <profile> --runtime codex # snapshot the auth FILE (mode-guarded), never echoes contents
901
+ rig auth switch <profile> --runtime codex
902
+ rig auth validate <profile> --runtime codex
903
+ rig auth seats … --runtime codex # seat -> profile registry (metadata only; NOT proof of a live account)
904
+ ```
905
+
906
+ **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.
907
+
825
908
  ## Lifecycle
826
909
 
827
910
  ### Bring a rig up
@@ -862,6 +945,7 @@ Current behavior notes:
862
945
  - `local:` `agent_ref` values resolve relative to the rig spec directory, not your shell cwd.
863
946
  - if you copy a built-in spec elsewhere, keep its `agents/` tree beside the YAML or rewrite those refs to `path:/absolute/path`
864
947
  - `rig specs add <directory>` installs a full spec tree when the directory contains `rig.yaml` or `agent.yaml`.
948
+ - **Permission policy:** a rig carries a permission policy and boots with it (never changed on the fly). Default if none set = the minimum floor (Claude `acceptEdits` / Codex workspace-only / Pi `--no-approve`); otherwise a chosen built-in (Locked / Standard / Open) or deliberately none. When you spec or bring up a rig, decide its policy — apply it via `applying-a-permission-policy` (see also the onboarding menu, "Permission policy — pick one at setup").
865
949
 
866
950
  Legacy/spec-specific surfaces still ship too:
867
951
 
@@ -1010,7 +1094,7 @@ rig whoami --json
1010
1094
 
1011
1095
  Notes:
1012
1096
  - for tmux-backed self-attach, `rig whoami --json` is the right verification
1013
- - for raw/external self-attach, `rig ps --nodes --rig <rigId-or-name> --json` is currently the more reliable verification surface
1097
+ - for raw/external self-attach, `rig ps --nodes --json` is currently the more reliable verification surface
1014
1098
  - if the current shell is outside tmux, pass `--display-name <name>` when you want a stable human session label recorded
1015
1099
 
1016
1100
  ### Adopt a topology and bind live sessions
@@ -1077,13 +1161,13 @@ Verification loop:
1077
1161
  ```bash
1078
1162
  rig discover --json
1079
1163
  rig adopt <fragment.yaml> --bindings-file <bindings.yaml> --target-rig <rigId>
1080
- rig ps --nodes --rig <target-rig-name> --json
1164
+ rig ps --nodes --json
1081
1165
  rig export <rigId> -o rig.yaml
1082
1166
  ```
1083
1167
 
1084
1168
  Success looks like:
1085
1169
  - the new sessions stop appearing in `rig discover`
1086
- - the new logical IDs appear in `rig ps --nodes --rig <target-rig-name> --json`
1170
+ - the new logical IDs appear in `rig ps --nodes --json`
1087
1171
  - `rig export` includes the new pod
1088
1172
 
1089
1173
  ### Mixed-origin rigs are allowed
@@ -1101,7 +1185,7 @@ Current safety rule:
1101
1185
  The proven operator pattern is:
1102
1186
  - keep one OpenRig manager session outside the rig it manages
1103
1187
  - address the target by rig name, not cached rig ID
1104
- - resolve the current owner from fresh `rig ps --nodes -A --json`
1188
+ - resolve the current owner from fresh `rig ps --nodes --json`
1105
1189
  - send the manager the spec path, bindings path, and verification steps with `rig send`
1106
1190
 
1107
1191
  This lets ordinary agents ask the manager for OpenRig help instead of every agent needing to be an OpenRig expert.
@@ -1198,7 +1282,7 @@ When the CLI behaves strangely, use the smallest truthful check first:
1198
1282
  ```bash
1199
1283
  rig whoami --json
1200
1284
  rig daemon status
1201
- rig ps --nodes
1285
+ rig ps --nodes --json
1202
1286
  ```
1203
1287
 
1204
1288
  Specific operator rules:
@@ -1234,7 +1318,7 @@ Design assumptions that hold in the shipped CLI:
1234
1318
 
1235
1319
  1. `rig whoami --json`
1236
1320
  2. `rig transcript <your-session> --tail 100`
1237
- 3. `rig ps --nodes`
1321
+ 3. `rig ps --nodes --json`
1238
1322
  4. `rig chatroom history <rig> --limit 50`
1239
1323
 
1240
1324
  ## Commands That Do Not Exist
@@ -2,14 +2,31 @@
2
2
  name: queue-handoff
3
3
  description: Use when ending a turn, finishing a slice, blocked on another agent's work, or escalating to a human — durable work handoff via queue items so the system keeps moving across compactions, missed messages, and interruptions. Covers the hot-potato terminal-turn-rule (active work ends by passing the ball, not by going idle), default-nudge semantics, and when `--no-nudge` is appropriate for intentional cold park or human gate.
4
4
  metadata:
5
+ cli_surfaces_referenced:
6
+ - queue
7
+ - queue create
8
+ - queue handoff
9
+ - queue handoff-and-complete
5
10
  openrig:
6
11
  stage: factory-approved
7
- last_verified: "2026-06-24"
8
- distribution_scope: product-bound
9
- source_evidence: |
10
- Daemon-backed `rig queue` shipped in v0.2.0 (PL-004 Phase A) with handed-off-to / handed-off-from / state field shape. `rig queue` is canonical for new work; `rigx queue` is recovery-only fallback. The daemon enforces hot-potato strict-rejection at the API. Body resynced from canonical 2026-06-24 (demo-blocker fix: corrected the default-nudge guidance — the default already nudges; the previously-described extra notify flag does not exist on the shipped CLI).
11
- sibling_skills: []
12
- transfer_test: pending
12
+ sibling_skills:
13
+ - workflow-runtime
14
+ - watchdog
15
+ - alignment-trace
16
+ - looping-workflows
17
+ - intake-routing
18
+ - human-in-the-loop
19
+ - attention-queue
20
+ - dispatching-parallel-agents
21
+ - subagent-driven-development
22
+ - structured-ack-dispatch
23
+ - control-plane-capabilities
24
+ - status-not-chat-orchestrator
25
+ - control-plane-queue
26
+ - control-plane-watchdog
27
+ - control-plane-workflows
28
+ - control-plane-delivery-loop
29
+ - control-plane-rollout-manager
13
30
  ---
14
31
 
15
32
  # Queue Handoff
@@ -67,7 +84,7 @@ every surface (CLI, MCP, future UI) inherits the same guarantee.
67
84
  | `rig queue create` | yes | New qitem created from scratch |
68
85
  | `rig queue handoff` | yes | Transactional close-as-handed-off + create-new |
69
86
  | `rig queue handoff-and-complete` | yes | Atomic close + create-new; default nudge wakes the new owner |
70
- | `rigx queue handoff` (filesystem v0 prototype; **recovery-only fallback since 2026-05-11**) | yes | Legacy artifact; qitems invisible to daemon-backed reads; deprecated with removal queued. Use `rig queue handoff` (daemon-backed) for all new substantive work. |
87
+ | `rigx queue handoff` (filesystem v0 prototype; **recovery-only fallback since 2026-05-11**) | yes | Legacy artifact; qitems invisible to daemon-backed reads; deprecation warning + removal queued at `missions/bug-fix/slices/rigx-queue-deprecation-message/`. Use `rig queue handoff` (daemon-backed) for all new substantive work. |
71
88
 
72
89
  **Footgun**: `--no-nudge` accidentally added to a live-loop handoff.
73
90
  The shipped 0.3.1 CLI nudges by default on every queue write surface
@@ -96,8 +113,8 @@ recipient.
96
113
  at the file for the detail. A pasted dump makes `rig queue show <id>
97
114
  --json` huge — a second-order token bloat: bloated DATA living in the
98
115
  queue, distinct from the command-default output bombs the token-burn
99
- emergency pack covers. (Sensor: dev1-guard token-burn-flag 8ea201e4,
100
- 2026-06; founder-directed cure.)
116
+ emergency pack covers. (Sensor: guard token-burn-flag 8ea201e4,
117
+ 2026-06; operator-directed cure.)
101
118
  - **Substantive bodies go through `--body-file`, not inline `--body`.**
102
119
  For anything beyond a short line, write the body to a file and pass
103
120
  `--body-file <path>` (or `-` for stdin). Inline `--body` with shell
@@ -4,16 +4,17 @@ description: Use when replacing a seat's occupant (rebuild/handover/swap), reaso
4
4
  metadata:
5
5
  openrig:
6
6
  stage: factory-approved
7
- last_verified: "2026-05-04"
8
- distribution_scope: product-bound
9
- source_evidence: |
10
- Option A rebuild MVP shipped 2026-04-30. Option B (full code-direct
11
- seat handover via SeatHandoverService daemon module) is a future
12
- follow-on.
13
7
  sibling_skills:
14
8
  - claude-compaction-restore
9
+ - mental-model-ha
10
+ - scope-recovery
11
+ - session-compaction-and-restore
15
12
  - agent-startup-and-context-ingestion
16
- transfer_test: pending
13
+ - agent-starters
14
+ - composable-priming-packs
15
+ - session-source-fork
16
+ - claude-compact-in-place
17
+ - pre-maintenance-agent-preservation
17
18
  ---
18
19
 
19
20
  # Seat Continuity and Handover
@@ -133,5 +134,6 @@ enough to receive new work or needs re-handover.
133
134
 
134
135
  ## See also
135
136
 
136
- - `claude-compaction-restore` skill — packet-driven restore after Claude compaction
137
- - `agent-startup-and-context-ingestion` skill — ingestion path for restore packets at agent boot
137
+ - `session-source-fork` skill — `fork` occupant-creation primitive (sibling)
138
+ - `agent-starters` skill — composes occupant-creation + binding into named reusable starting points
139
+ - `cross-host-rig-commands` skill — multi-host handover (deferred)