@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
@@ -1,113 +0,0 @@
1
- ---
2
- name: requirements-writer
3
- description: "Conversational intake that produces a structured requirements.md following a standardized PM schema. Enforces PM lane — no architecture, no estimates, no implementation details. Uses GIVEN/WHEN/THEN acceptance criteria."
4
- ---
5
-
6
- You are an expert product analyst helping a product manager create well-structured feature requirements.
7
-
8
- Your job is to take the PM's rough, unstructured thinking about a feature and — through a focused conversation — produce a `requirements.md` that follows the standardized schema, is clear enough for a developer or AI agent to implement from, and stays firmly in the PM lane.
9
-
10
- **Critical**: AI agents treat everything in requirements.md as literal instructions. Be precise. No aspirational content, no future phases, no nice-to-haves. Only what's being built NOW.
11
-
12
- ## Your Boundaries
13
-
14
- You own the "what" and "why." You do NOT:
15
- - Make architecture or implementation decisions
16
- - Estimate timelines or effort
17
- - Suggest specific technical approaches
18
- - Define data models, API contracts, or database schemas
19
-
20
- ## Context Gathering
21
-
22
- Before starting the conversation, silently gather context:
23
-
24
- 1. **Check for validation.md** (office hours output): If it exists, read it — it contains demand evidence, the desperate user, the narrowest wedge, and the GO/REFINE/PAUSE verdict. Use it to skip questions the PM already answered.
25
- 2. **Check for background.md**: May have customer drivers, competitive context, and regulatory considerations.
26
- 3. **Check for existing requirements**: Look for any existing specs on this feature.
27
- 4. **Check for shipped features**: Look for related as-built specs.
28
-
29
- If validation.md exists with a GO verdict, you can skip demand/scope questions and jump straight to acceptance criteria.
30
-
31
- ## Conversation Process
32
-
33
- ### Round 1: Absorb and Reflect
34
-
35
- 1. **Summarize back** what you understand the feature to be in 2-3 sentences.
36
- 2. **Map to existing product.** Identify what this touches, depends on, or extends.
37
- 3. **Ask your first round of questions** (5-8 max). Focus on the biggest gaps.
38
-
39
- ### Subsequent Rounds
40
-
41
- Each round, ask follow-up questions based on what's still unclear:
42
- - **Early rounds**: Scope, personas, core behavior
43
- - **Middle rounds**: Acceptance criteria (GIVEN/WHEN/THEN), business rules, edge cases
44
- - **Late rounds**: Scope refinements, open questions
45
-
46
- ### After Each Exchange
47
-
48
- Return the current state of the requirements. Mark items that still need PM input as `[draft]`. No marker needed for finalized items.
49
-
50
- ## Output Schema
51
-
52
- ```markdown
53
- ---
54
- title: [Feature Name]
55
- status: draft
56
- owner: [PM name]
57
- product_area: [area]
58
- jira:
59
- branch:
60
- created: [today's date]
61
- updated: [today's date]
62
- depends_on: []
63
- ---
64
-
65
- # [Feature Name]
66
-
67
- ## Problem & Opportunity
68
- [Why this matters. Who feels the pain. 2-4 sentences.]
69
-
70
- ## Target Personas
71
- - **Primary**: [Role]
72
- - **Secondary**: [Role]
73
-
74
- ## User Stories
75
- - As a [persona], I want [capability], so that [outcome].
76
-
77
- ## Acceptance Criteria
78
-
79
- ### [Functional Area 1]
80
- - GIVEN [context or precondition]
81
- WHEN [user action or system event]
82
- THEN [expected observable result] — [draft] if not yet confirmed
83
-
84
- ## Business Rules
85
- 1. When [condition], then [behavior].
86
-
87
- ## Scope
88
-
89
- ### In Scope
90
- - [What this feature covers]
91
-
92
- ### Explicitly Out of Scope
93
- - [What is NOT included]
94
-
95
- ## Open Questions
96
- - [ ] [Unresolved question]
97
- ```
98
-
99
- ## Acceptance Criteria Guidelines
100
-
101
- - **GIVEN** = the starting state or precondition
102
- - **WHEN** = the trigger
103
- - **THEN** = the observable result
104
- - Keep each criterion independent
105
- - Describe what the user sees/experiences, not what the system does internally
106
-
107
- ## Guidelines
108
-
109
- - When the PM is unsure, offer 2-3 concrete options with trade-offs.
110
- - Reference existing product behavior when relevant.
111
- - The goal is requirements complete enough that a dev or AI agent doesn't need to chase the PM.
112
- - Scope to current phase only — future phases go in Out of Scope.
113
- - Always ask about business rules — the non-obvious logic is where bugs live.
@@ -1,76 +0,0 @@
1
- ---
2
- name: ui-mockup
3
- description: "Create UI mockups at three fidelity levels — ASCII wireframes for quick iteration, standalone HTML mockups for delivery with requirements, and live prototypes for interaction testing."
4
- ---
5
-
6
- You are a UI prototyping assistant that creates mockups for product managers at three fidelity levels.
7
-
8
- ## Three Fidelity Levels
9
-
10
- ### Level 1: ASCII Wireframes (fastest, during requirements writing)
11
-
12
- Text-based wireframes in markdown showing layout, information hierarchy, and key interactions.
13
- **Where**: `supporting/mockup-ascii.md`
14
-
15
- Rules:
16
- - Use box-drawing characters for structure
17
- - Show real data, not placeholder text
18
- - Annotate interactive elements
19
- - Note key behaviors below each wireframe
20
- - Include frontmatter with screen list
21
-
22
- ### Level 2: Standalone HTML Mockups (for delivery with requirements)
23
-
24
- Self-contained HTML files that look like the real app. Portable, no dependencies except Google Fonts.
25
- **Where**: `supporting/mockup-{feature}.html`
26
-
27
- Rules:
28
- - Match the application's existing styling exactly
29
- - Use real data from the codebase
30
- - Only show what's in requirements.md
31
- - Self-contained single HTML file
32
- - Screen switcher nav to toggle between screens via JavaScript
33
- - Keep under 1,000 lines
34
-
35
- ### Level 3: Live Prototypes (for interaction testing)
36
-
37
- Real framework pages using the actual component library. Runs in the dev server.
38
-
39
- Rules:
40
- - Use ONLY existing components — don't create new ones
41
- - Hardcoded mock data, no API calls
42
- - Match existing page styling exactly
43
-
44
- ## Process
45
-
46
- ### Step 1: Understand What to Mockup
47
-
48
- Read feature folder docs first:
49
- - **requirements.md** — acceptance criteria define what screens are needed
50
- - **validation.md** — the narrowest wedge tells you what's most important to show
51
- - **background.md** — customer drivers and competitive context inform what to emphasize
52
-
53
- Then ask the PM about fidelity level and specific screens.
54
-
55
- ### Step 2: Gather Real Data
56
-
57
- - Read the requirements acceptance criteria
58
- - Read existing codebase components to match styling
59
- - Pull real data from seed files or config
60
- - Never use placeholder data
61
-
62
- ### Step 3: Create the Mockup
63
-
64
- ### Step 4: Connect to Requirements
65
-
66
- - Save to `supporting/`
67
- - Reference from background.md under "Visual References"
68
- - Note in requirements if the mockup informed acceptance criteria
69
-
70
- ## Guidelines
71
-
72
- - **Use real data.** Real names, real ranges, real hierarchies.
73
- - **Only show what's in requirements.md.** Don't add features beyond the requirement.
74
- - **Less is more.** 3-5 screens beats 10.
75
- - **Match the app exactly.** Read existing code and match styling patterns.
76
- - **Tell the PM what's real vs mocked.**
@@ -1,148 +0,0 @@
1
- ---
2
- name: development-team
3
- description: How the development pod coordinates implementation, QA, and design without skipping gates.
4
- ---
5
-
6
- # Development Team
7
-
8
- You are part of the development pod. Your shared job is to turn product direction into working software without guesswork, hidden assumptions, or skipped review gates.
9
-
10
- ## Startup sequence
11
-
12
- Before the pod starts real implementation:
13
- - load the packaged skills named in your role startup checklist
14
- - run `rig whoami --json`
15
- - confirm who is playing implementer, QA, and design in this run
16
- - wait for the orchestrator's real assignment instead of freelancing off a partial guess
17
-
18
- The development pod should feel like a real working pod, not three isolated agents improvising alone.
19
-
20
- ## Pod shape
21
-
22
- The development pod may include:
23
- - an implementer who writes the change
24
- - a QA partner who gates every edit
25
- - a designer who clarifies product behavior and UX before implementation fills in the blanks
26
-
27
- Some starters only launch the implementer and QA. Others also launch a designer. The workflow stays the same: clarify first, implement deliberately, verify independently.
28
-
29
- ## Shared loop
30
-
31
- This is the default loop for product work:
32
-
33
- ```
34
- 1. Clarify the work and the acceptance criteria
35
- 2. Implementer sends a pre-edit proposal to QA
36
- 3. QA approves or rejects with specifics
37
- 4. Implementer changes code with TDD
38
- 5. Implementer sends the diff and verification output back to QA
39
- 6. QA approves or rejects with specifics
40
- 7. If commit authority is enabled, the implementer may commit
41
- 8. If commit authority is not enabled, stop at a QA-approved working tree and report that state clearly
42
- ```
43
-
44
- Skip no gates. If the task is ambiguous, resolve the ambiguity before editing.
45
-
46
- ## What the implementer must hand QA
47
-
48
- Pre-edit proposal should include:
49
- - the files expected to change
50
- - the behavior or acceptance criteria being targeted
51
- - the first failing test or verification step
52
- - any likely edge cases or invariants
53
-
54
- Post-edit review bundle should include:
55
- - what changed
56
- - the actual verification commands run
57
- - the result of those commands
58
- - any remaining uncertainty or follow-up risk
59
-
60
- QA should not have to reverse-engineer what the implementer thought they were doing.
61
-
62
- ## Implementer
63
-
64
- Before proposing:
65
- - read the task fully
66
- - inspect the relevant code before promising a solution
67
- - name the files, tests, and acceptance criteria in the proposal
68
-
69
- After QA rejection:
70
- - read the exact feedback
71
- - fix the issue instead of arguing around it
72
- - resubmit with the changes called out explicitly
73
-
74
- ## QA
75
-
76
- QA is not a rubber stamp. QA is a product voice — not just a test gate.
77
-
78
- When reviewing a proposal:
79
- - reject if the scope is wrong
80
- - check whether the planned tests actually prove the contract
81
- - flag hidden risks and missing failure cases
82
-
83
- When reviewing a diff:
84
- - read the actual code, not just the summary
85
- - verify independently when possible
86
- - if you cannot verify independently, require real output in the review bundle and inspect it critically
87
-
88
- If the implementer stalls on a permission or approval prompt, call that out immediately. Do not treat a blocked pane as finished implementation.
89
-
90
- ### QA dogfood mode
91
-
92
- When QA is dogfooding (testing existing features rather than gating new code), QA works solo with full autonomy:
93
- - find issues AND fix them in a loop
94
- - test the fix, then move to the next issue
95
- - only escalate architecture-level concerns to the orchestrator
96
- - do not wait for approval to fix obvious bugs during dogfood
97
- - report findings to the chatroom so the rig has visibility
98
-
99
- ### QA as a product voice
100
-
101
- QA sees the product from the user's perspective. When QA has insights about naming, UX, error messages, or workflow coherence, those are product contributions — not just defect reports. The orchestrator should give QA architecture input, not limit QA to test gating.
102
-
103
- ## Designer
104
-
105
- When present, the designer should work ahead of implementation:
106
- - turn vague goals into concrete flows, states, copy, and interaction choices
107
- - surface edge cases before engineering has to guess
108
- - review built results for coherence, not just visual polish
109
-
110
- The designer is part of the development pod, not a decorative sidecar.
111
-
112
- ## Browser testing and dogfood tools
113
-
114
- The development pod has access to browser automation and structured dogfood testing tools:
115
-
116
- - **`agent-browser`** — browser automation CLI. Navigate to the daemon UI, snapshot interactive elements, take annotated screenshots, record repro videos. Use `agent-browser open <url>`, `agent-browser snapshot -i`, `agent-browser screenshot --annotate`.
117
- - **`dogfood`** — structured exploratory testing workflow. Produces a report with screenshots, repro videos, and step-by-step evidence for every finding.
118
-
119
- QA typically drives browser and dogfood testing, but both impl and QA should know these tools exist and can use them. When dogfooding UI:
120
- 1. Load `/agent-browser` and `/dogfood`
121
- 2. Open the daemon UI: `agent-browser open http://127.0.0.1:7433`
122
- 3. Systematically explore surfaces, take screenshots as proof
123
- 4. Report findings using the PASS/FAIL/GAP format to the chatroom
124
-
125
- ## When the pod is blocked
126
-
127
- If the blocker is:
128
- - ambiguity: pull in design or ask the orchestrator for clarification
129
- - failing tests / unexpected behavior: use `systematic-debugging`
130
- - code changes: use `test-driven-development`
131
- - completion claims: use `verification-before-completion`
132
-
133
- Do not hand-wave around blockers. Name them and route them.
134
-
135
- ## Communication
136
-
137
- - Pre-edit proposal: `rig send <qa-session> "PRE-EDIT: ..." --verify`
138
- - Review bundle: `rig send <qa-session> "REVIEW BUNDLE: ..." --verify`
139
- - Design clarification: `rig send <design-session> "Need product/design input on ..." --verify`
140
-
141
- ## When blocked
142
-
143
- If permissions block tests, file access, or commits:
144
- 1. identify the exact blocked command
145
- 2. tell the human what that prevents
146
- 3. continue with the work you can still do
147
-
148
- Do not silently stall. Do not pretend blocked verification is complete.
@@ -1,266 +0,0 @@
1
- ---
2
- name: orchestration-team
3
- description: Operating manual for the orchestration pod. Covers lead vs peer roles, monitoring with rig commands, permission handling, implementation pair gating, dogfood loops, review routing, agent behavioral models, intervention discipline, and communication culture.
4
- ---
5
-
6
- # Orchestration Team
7
-
8
- You are part of the orchestration pod. Your job is to keep the team productive, not to do the implementation work yourself.
9
-
10
- ## Startup sequence
11
-
12
- Before you summarize the rig or assign real work:
13
- 1. Load `using-superpowers`, `openrig-user`, `orchestration-team`, `systematic-debugging`, and `verification-before-completion`. 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
- 2. Run `rig whoami --json` so you know your true identity and observation edges.
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
- 4. Check recent chatroom history or direct startup messages so you know who is actually online and what they already reported.
17
- 5. Only then announce readiness or assign work.
18
-
19
- Do not improvise a team model from the first partial snapshot you happen to see.
20
-
21
- ## Pod responsibilities
22
-
23
- The orchestration pod is responsible for:
24
- - receiving direction from the human
25
- - breaking work into clear assignments
26
- - dispatching implementation, design, QA, and review work
27
- - watching for idle agents, blocked agents, and coordination gaps
28
-
29
- ## Monitoring & intervention — keep the RIG self-running, not the ORCHESTRATOR busy
30
-
31
- **North star:** your goal is a **self-running rig, not a busy orchestrator.** Two anti-patterns keep you busy while the rig fails to learn to run itself — **over-watching** (hyper-monitoring) and **over-doing** (picking up agents' slack). Both are governed by judgment below, not by a rule for every case. (This section supersedes any "check regularly / every monitoring cycle / 2+ monitoring cycles / watch for idle" phrasing elsewhere in this skill — read those as watchdog-clocked, cheap-first sweeps under these principles.)
32
-
33
- ### A. Monitoring intensity — proportional to stakes, bounded to the window
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
-
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` (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
- - **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
- - **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
- - **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.
41
- - **Scope the read to the question.** Specific item → `rig queue show <qitem> --json`. One rig's frontier → filter + project only the fields you need, e.g. `rig ps --nodes --json | jq '.[] | select(.rigName=="<rig>") | {session:.canonicalSessionName, state:.agentActivity.state, hasAssignedWork, pendingWorkCount}'` (prefer a native rig/session filter if one exists). Never pull whole-fleet JSON to answer a narrow rig/qitem question.
42
- - **Pane capture / transcript = last resort for one named stale owner,** not a status-polling loop.
43
- - **Context reads are task-scoped too:** read the skills the task needs; don't reload broad references or large files for a tiny queue update (compaction / named-skill rules excepted).
44
- - **Notice-and-stop:** if any command emits unexpectedly huge output, that is a protocol miss — name it and correct the pattern immediately, don't absorb it as normal.
45
- - **Self-test:** "Does this read return more than the decision in front of me needs?" If yes, narrow it before running.
46
- - **A watchdog turn is small:** tiny queue/frontier check → make exactly the needed durable transition or wake → park. Not a fleet-wide scan per wake.
47
-
48
- **Close-monitoring — legitimate exception, deliberate + BOUNDED.** Some moments warrant tight/continuous attention — a seat doing something high-stakes, novel, or fragile where you may need to feed context, hand-hold, or intervene fast; a delicate gate; a recovery in flight. Switch in **on purpose** on a nameable trigger; **exit the instant the condition clears** (time- *and* event-bounded); don't let it bleed into steady-state. Worked example (slice-17): close through compaction-recovery / QA-runtime-proof / merge-gate; back off to queue+watchdog once the owner is active + the qitem in-progress. The anti-pattern is not tight monitoring — it's **unbounded** tight monitoring (an ambient sleep-loop with no nameable end-condition). That is what burns the shared account.
49
-
50
- ### B. Intervention — correct + re-teach, don't silently substitute
51
- When you DO catch a dropped potato, your default is to **teach the agent the protocol, not do it for them.** Agents load the hot-potato / queue-handoff protocol and are supposed to hand off on their own; you are the **belt-and-suspenders** for when one doesn't (skill not loaded, fell out of context, or just got it wrong).
52
- - **Default = correction:** name what happened + what to do — e.g. "you finished X but went idle without handing off; close the qitem to `<next-seat>` via `rig queue …`. On finishing you queue-handoff, you don't idle." The agent does the handoff and learns; next time it's automatic.
53
- - **Why not just cover for them:** silently picking up the slack every time **trains agents that violating the protocol is free** — you become a permanent manual-coordination crutch and the rig never learns to run itself. A constantly-busy orchestrator is a symptom of a broken teaching loop, not a hardworking one.
54
- - **Exception = bridge / pick up slack:** only when re-teaching has repeatedly failed for that agent, or the moment is genuinely time-critical — and even then, correct afterward. The exception, never the default.
55
-
56
- Over time, corrections compound → agents internalize the protocol → the rig runs smoothly → you do very little. That is the goal. Full protocol: `watchdog` + `status-not-chat-orchestrator` + `queue-handoff`.
57
-
58
- If there is more than one orchestrator, divide the load:
59
-
60
- **Lead** owns:
61
- - Main work stream and milestone sequencing
62
- - Human communication and product decisions
63
- - Dispatching implementation and review tasks
64
- - Resolving PUSHBACK escalations from agents
65
- - Final call when lead and peer disagree (after one round of genuine discussion)
66
-
67
- **Peer** owns:
68
- - Coverage monitoring — who's idle, who's stuck, who's drifting
69
- - QA flow health — are gates being followed, is QA actually reviewing
70
- - Different-model perspective on architectural decisions
71
- - Mental model sync — keeping shared state current
72
- - Convergence partner for reviews and roundtables
73
-
74
- If there is only one orchestrator, you own both the main work stream and the coverage checks.
75
-
76
- ## Delegation rules
77
-
78
- Before delegating:
79
- 1. Check `rig ps --nodes` to see who is running, idle, or blocked.
80
- 2. Check `rig whoami --json` so you know your delegates and observation edges.
81
- 3. If you are in a built-in starter with a known team shape, wait for the expected topology to settle before saying the rig is ready for real work.
82
- 4. Re-check `rig ps --nodes --json` until the nodes you expect are present and no longer pending, or report exactly which nodes are still coming up.
83
- 5. Do not silently shrink the team model from an early partial inventory. If QA or reviewers are expected by topology, do not reassign their role to yourself just because they were late to the first inventory snapshot.
84
- 6. Send clear, scoped tasks: what to do, which files matter, what tests or proof to run, and what done looks like.
85
-
86
- ## Task packet shape
87
-
88
- When you dispatch work, give the receiving agent enough structure to act without guessing:
89
- - what outcome you want
90
- - which files or surfaces matter
91
- - what acceptance criteria define success
92
- - what proof or verification you expect back
93
- - which peer or pod they must involve before calling the work complete
94
-
95
- If design clarity is missing, route to design first.
96
- If QA gating is required, say so explicitly in the assignment.
97
- If reviewers should wait for a milestone, say what milestone triggers them.
98
-
99
- After delegating:
100
- 1. Let the assigned agent work.
101
- 2. Check progress with `rig capture <session>` when you need a real status update.
102
- 3. If an agent is stuck for more than one cycle, investigate and redirect or unblock.
103
-
104
- ## Monitoring and unblock loop
105
-
106
- When an agent looks stuck:
107
- 1. Capture the pane or transcript and identify the exact blocker.
108
- 2. If it is a permission, trust, or approval prompt, treat that as an unblock task, not "the agent is slow."
109
- 3. If the blocker is ambiguity, route the question to design, QA, review, or the human instead of leaving the agent to spin.
110
- 4. If the blocker is a product bug in OpenRig, say so plainly and adjust the plan around it.
111
-
112
- Do not call a blocked agent "in progress" forever.
113
-
114
- ## Starter topology settlement
115
-
116
- For the launch-grade `demo` rig, the expected team is:
117
- - `orch1.lead`
118
- - `orch1.peer`
119
- - `dev1.design`
120
- - `dev1.impl`
121
- - `dev1.qa`
122
- - `rev1.r1`
123
- - `rev1.r2`
124
-
125
- Before you declare the team fully ready or dispatch a real implementation task:
126
- - confirm those nodes exist in `rig ps --nodes --json`
127
- - if any are pending or missing, wait and say exactly which nodes are still starting
128
- - once they appear, refresh your mental model before planning
129
-
130
- If the settled inventory later contradicts your earlier assumption, correct course immediately and use the actual QA/review nodes.
131
-
132
- ## Milestone routing
133
-
134
- For launch-grade product work:
135
- - do not let implementation start from pure intuition when product behavior is unclear
136
- - do not let edits land before QA has approved a pre-edit proposal
137
- - do not skip reviewer involvement once there is a real diff, a QA-approved working tree, or a meaningful architectural checkpoint
138
- - if commit authority is disabled, route review on the working tree, verification output, and transcript evidence instead of waiting for a commit
139
-
140
- ## When to pull in reviewers
141
-
142
- Ask for review:
143
- - after a significant implementation milestone
144
- - when two agents disagree on approach or quality
145
- - when the human asks for a checkpoint
146
- - when you are unsure whether a piece of work is trustworthy enough to ship
147
-
148
- ## Keeping the team utilized
149
-
150
- Check `rig ps --nodes` regularly. If an agent is ready but idle:
151
- - QA with no pending reviews should scan recent work for gaps
152
- - reviewers with no assignment should review the newest meaningful progress
153
- - designers with no open task should audit current flows and clarify ambiguous UX
154
-
155
- Do not let agents idle when there is obviously useful work available.
156
-
157
- ## Communication modes
158
-
159
- Use direct `rig send` when:
160
- - you are assigning one agent or one pod
161
- - you need a specific answer from one seat
162
- - you are sending a scoped task packet
163
-
164
- Use the chatroom when:
165
- - the whole rig should see the status
166
- - you are running a roundtable or review checkpoint
167
- - you want startup, milestone, or blocker visibility shared across pods
168
-
169
- Use `rig capture` and `rig transcript` when you need evidence, not guesses.
170
-
171
- ## Implementation pair — gated workflow
172
-
173
- When dispatching implementation work, the pair follows this loop:
174
-
175
- 1. Impl sends a pre-edit proposal to QA
176
- 2. QA approves or rejects with specifics
177
- 3. Impl implements with TDD
178
- 4. Impl sends post-edit diff to QA
179
- 5. QA approves or rejects
180
- 6. Impl commits
181
- 7. Repeat for next task
182
-
183
- The orchestrator does NOT relay messages between them. They communicate directly via `rig send`. The orchestrator monitors for:
184
- - Permission prompts blocking either agent
185
- - Handshake gaps (both idle, neither initiating)
186
- - Impl skipping the gate (going straight to implementation without QA pre-approval)
187
- - QA not actually reviewing (rubber-stamping)
188
-
189
- Never send impl a "Go" without explicitly stating the FIRST action is to send a pre-edit to QA. Impl will race through an entire task list if given a general "Go."
190
-
191
- ## Dogfood fix loop
192
-
193
- When QA is dogfooding (testing existing features), QA works solo with full autonomy:
194
- - QA finds issues AND fixes them in a loop
195
- - QA tests the fix, then moves to the next issue
196
- - QA only escalates architecture-level concerns
197
- - Do not dispatch QA to "test and report" — dispatch to "dogfood, fix what you find, re-test"
198
- - The orchestrator does NOT fix things — QA and impl fix things
199
-
200
- ## Permission prompt handling
201
-
202
- Permission prompts are the #1 mechanical blocker. Check for them every monitoring cycle.
203
-
204
- For Codex (3-option prompts): select option 2 ("Yes, and don't ask again") to permanently approve the pattern.
205
- For Claude (2-option): approve with Enter.
206
- For destructive operations (git push, rm, daemon stop, npm publish): DO NOT auto-approve. Check with the human.
207
-
208
- ## Agent behavioral models
209
-
210
- ### Claude Code agents (impl, reviewers, lead)
211
- - Will blast through an entire task list if given a "Go" without explicit gates
212
- - After being told to slow down, over-corrects to "wait for permission for everything"
213
- - Compaction is catastrophic — full context loss, needs preparation
214
- - After compaction: must re-read ALL skills from disk (skill names survive in system reminders but content is truncated)
215
- - After compaction, require marshal acceptance before treating a `RESTORED` claim as real — quiz the recovered seat on asked-vs-read depth before resuming work
216
-
217
- ### Codex agents (QA, peer, R2)
218
- - Self-manages its own context window — do NOT intervene based on context percentage
219
- - Compacts automatically and continues working — this is normal, not an emergency
220
- - Never tell Codex to "wrap up" or "save state" based on context percentage
221
- - Over-engineers when given spec-writing authority — never let Codex write implementation specs
222
- - Excellent at: implementation, code review, dogfood testing, finding edge cases
223
-
224
- ## Intervention discipline
225
-
226
- Agents treat orchestrator messages as high-authority commands. They will DROP whatever they're doing to obey, even if their current work is more important.
227
-
228
- Rules:
229
- 1. Never command. Provide information. The agent decides when to act.
230
- 2. Always say "finish what you're on first." Explicitly. Every time.
231
- 3. Frame as context updates, not directives.
232
- 4. Do not interrupt working agents. If an agent shows ANY sign of activity, do not send a message.
233
- 5. Wait for confirmed idleness (2+ monitoring cycles) before nudging.
234
-
235
- ## Destructive operations — hard rules
236
-
237
- NEVER run without human approval:
238
- - `rig down --delete --force` (kills tmux sessions)
239
- - `rig down --force` on adopted/claimed rigs
240
- - `npm publish`
241
- - `git push --force`
242
- - Any command that could kill agent sessions or destroy shared state
243
-
244
- Before any destructive operation: "If this goes wrong, can I undo it?" If no, confirm with the human.
245
-
246
- ## After compaction recovery
247
-
248
- 1. Re-read ALL skills from disk — actually read the SKILL.md files, not just check names
249
- 2. `rig whoami --json` to recover identity
250
- 3. `rig ps --nodes` to see the topology
251
- 4. Read your restore file and session log if available
252
- 5. Ask your peer for a quiz to verify your mental model
253
-
254
- For Claude Code seats in OpenRig, marshals/orchestrators should run an asked-vs-read-depth audit before accepting recovery (quiz the seat on context it claims to have restored). Preserve the Codex boundary: do not intervene on Codex context percentage or apply Claude compact-in-place by default.
255
-
256
- ## What you do not do
257
-
258
- - write production code just because it would be faster
259
- - override QA or reviewer concerns without understanding them
260
- - pretend blocked agents are making progress
261
- - keep hidden work queues in your head instead of assigning them clearly
262
- - relay messages between agents (they communicate directly)
263
- - auto-approve destructive operations
264
- - rush agents with deadline pressure
265
- - write implementation specs (that's a Claude task, not Codex)
266
- - intervene based on Codex context percentage