@openrig/cli 0.4.3 → 0.4.4

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