@openrig/cli 0.6.6 → 0.6.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 (637) hide show
  1. package/README.md +97 -28
  2. package/daemon/assets/claude-team-permissions.cjs +262 -0
  3. package/daemon/assets/onboarding/02-self-and-competent-action.md +20 -13
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +41 -0
  7. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -12
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +13 -2
  9. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
  10. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +6 -0
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -1
  12. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -4
  13. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +24 -13
  14. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  15. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +42 -0
  16. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +6 -0
  17. package/daemon/assets/skills/rigs/SKILL.md +133 -0
  18. package/daemon/context-packs/help/help.md +48 -19
  19. package/daemon/context-packs/help/manifest.yaml +1 -1
  20. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  21. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +239 -43
  22. package/daemon/context-packs/reference/getting-started.md +356 -212
  23. package/daemon/context-packs/reference/instance-layout.md +5 -0
  24. package/daemon/context-packs/reference/manifest.yaml +4 -1
  25. package/daemon/context-packs/reference/rig-spec.md +48 -20
  26. package/daemon/context-packs/reference/whats-new.md +96 -0
  27. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +13 -2
  31. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
  33. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +6 -0
  38. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +3 -0
  40. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -1
  44. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +19 -12
  46. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +17 -16
  48. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +2 -0
  49. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/refocusing/SKILL.md +31 -4
  83. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +24 -13
  85. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  86. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +42 -0
  88. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +6 -0
  90. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  92. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  93. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  94. package/daemon/dist/adapters/claude-code-adapter.d.ts +1 -1
  95. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  96. package/daemon/dist/adapters/claude-code-adapter.js +23 -13
  97. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  98. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  99. package/daemon/dist/adapters/codex-resume.js +17 -0
  100. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  101. package/daemon/dist/adapters/codex-runtime-adapter.js +2 -2
  102. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  103. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  104. package/daemon/dist/adapters/kernel-authority.js +29 -11
  105. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  106. package/daemon/dist/adapters/pi-readiness.d.ts +15 -0
  107. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -0
  108. package/daemon/dist/adapters/pi-readiness.js +90 -0
  109. package/daemon/dist/adapters/pi-readiness.js.map +1 -0
  110. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  111. package/daemon/dist/adapters/pi-runner-protocol.js +1 -0
  112. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  113. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  114. package/daemon/dist/adapters/pi-runner.js +13 -2
  115. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  116. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  117. package/daemon/dist/adapters/tmux.js +9 -6
  118. package/daemon/dist/adapters/tmux.js.map +1 -1
  119. package/daemon/dist/build-info.js +3 -3
  120. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  121. package/daemon/dist/db/all-migrations.js +4 -0
  122. package/daemon/dist/db/all-migrations.js.map +1 -1
  123. package/daemon/dist/db/migrations/096_rig_install_root.d.ts +3 -0
  124. package/daemon/dist/db/migrations/096_rig_install_root.d.ts.map +1 -0
  125. package/daemon/dist/db/migrations/096_rig_install_root.js +5 -0
  126. package/daemon/dist/db/migrations/096_rig_install_root.js.map +1 -0
  127. package/daemon/dist/db/migrations/097_thread_part_map.d.ts +3 -0
  128. package/daemon/dist/db/migrations/097_thread_part_map.d.ts.map +1 -0
  129. package/daemon/dist/db/migrations/097_thread_part_map.js +20 -0
  130. package/daemon/dist/db/migrations/097_thread_part_map.js.map +1 -0
  131. package/daemon/dist/domain/activity-taxonomy.d.ts +7 -0
  132. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  133. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  134. package/daemon/dist/domain/agent-activity-store.d.ts +12 -0
  135. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  136. package/daemon/dist/domain/agent-activity-store.js +55 -30
  137. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  138. package/daemon/dist/domain/agent-images/agent-image-types.d.ts +1 -1
  139. package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -1
  140. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  141. package/daemon/dist/domain/bootstrap-orchestrator.js +6 -4
  142. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  143. package/daemon/dist/domain/bundle-install-context.d.ts +2 -2
  144. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -1
  145. package/daemon/dist/domain/bundle-install-context.js +16 -3
  146. package/daemon/dist/domain/bundle-install-context.js.map +1 -1
  147. package/daemon/dist/domain/bundle-types.d.ts +1 -1
  148. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  149. package/daemon/dist/domain/chat-repository.d.ts +5 -0
  150. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  151. package/daemon/dist/domain/chat-repository.js +8 -0
  152. package/daemon/dist/domain/chat-repository.js.map +1 -1
  153. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  154. package/daemon/dist/domain/claim-service.js +5 -4
  155. package/daemon/dist/domain/claim-service.js.map +1 -1
  156. package/daemon/dist/domain/claude-activity-hooks.d.ts +3 -0
  157. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  158. package/daemon/dist/domain/claude-activity-hooks.js +8 -1
  159. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  160. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +34 -2
  161. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  162. package/daemon/dist/domain/claude-compaction-enforcer.js +195 -107
  163. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  164. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  165. package/daemon/dist/domain/codex-thread-id.js +4 -2
  166. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  167. package/daemon/dist/domain/context-monitor.d.ts +5 -0
  168. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  169. package/daemon/dist/domain/context-monitor.js +23 -6
  170. package/daemon/dist/domain/context-monitor.js.map +1 -1
  171. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  172. package/daemon/dist/domain/execution-view.js +57 -11
  173. package/daemon/dist/domain/execution-view.js.map +1 -1
  174. package/daemon/dist/domain/gateway/connections-projection.d.ts +4 -0
  175. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  176. package/daemon/dist/domain/gateway/connections-projection.js +2 -0
  177. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  178. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -1
  179. package/daemon/dist/domain/gateway/destination-resolver.js +7 -4
  180. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -1
  181. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -1
  182. package/daemon/dist/domain/gateway/human-readiness.js +23 -6
  183. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -1
  184. package/daemon/dist/domain/gateway/human-registry.d.ts +2 -2
  185. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  186. package/daemon/dist/domain/gateway/human-registry.js +2 -2
  187. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  188. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  189. package/daemon/dist/domain/gateway/slack/capabilities.js +3 -1
  190. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  191. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +39 -0
  192. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -0
  193. package/daemon/dist/domain/gateway/slack/channel-map.js +114 -0
  194. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -0
  195. package/daemon/dist/domain/gateway/slack/config.d.ts +7 -0
  196. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  197. package/daemon/dist/domain/gateway/slack/config.js +19 -2
  198. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  199. package/daemon/dist/domain/gateway/slack/inbound.d.ts +24 -1
  200. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  201. package/daemon/dist/domain/gateway/slack/inbound.js +105 -3
  202. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  203. package/daemon/dist/domain/gateway/slack/message.d.ts +7 -0
  204. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  205. package/daemon/dist/domain/gateway/slack/message.js +36 -0
  206. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  207. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +2 -0
  208. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  209. package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  210. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  211. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +7 -2
  212. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  213. package/daemon/dist/domain/gateway/slack/slack-api.js +35 -3
  214. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  215. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +34 -7
  216. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  217. package/daemon/dist/domain/gateway/slack/slack-delivery.js +268 -51
  218. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  219. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +17 -0
  220. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  221. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +107 -24
  222. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  223. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +2 -0
  224. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  225. package/daemon/dist/domain/gateway/slack/socket-inbound.js +40 -0
  226. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  227. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  228. package/daemon/dist/domain/gateway/slack/thread-routing.js +22 -2
  229. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  230. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +14 -0
  231. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  232. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +27 -0
  233. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  234. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -1
  235. package/daemon/dist/domain/generated-file-hygiene.js +7 -4
  236. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
  237. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  238. package/daemon/dist/domain/managed-blocks.js +5 -2
  239. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  240. package/daemon/dist/domain/markdown-address.d.ts.map +1 -1
  241. package/daemon/dist/domain/markdown-address.js +23 -6
  242. package/daemon/dist/domain/markdown-address.js.map +1 -1
  243. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  244. package/daemon/dist/domain/native-process-lineage.js +50 -3
  245. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  246. package/daemon/dist/domain/node-inventory.d.ts +2 -2
  247. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  248. package/daemon/dist/domain/node-inventory.js +30 -4
  249. package/daemon/dist/domain/node-inventory.js.map +1 -1
  250. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  251. package/daemon/dist/domain/node-launcher.js +1 -0
  252. package/daemon/dist/domain/node-launcher.js.map +1 -1
  253. package/daemon/dist/domain/pane-binding-observation.d.ts +1 -0
  254. package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -1
  255. package/daemon/dist/domain/pane-binding-observation.js +3 -1
  256. package/daemon/dist/domain/pane-binding-observation.js.map +1 -1
  257. package/daemon/dist/domain/plugin-vendor-service.d.ts +6 -0
  258. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  259. package/daemon/dist/domain/plugin-vendor-service.js +12 -0
  260. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  261. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  262. package/daemon/dist/domain/profile-resolver.js +54 -15
  263. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  264. package/daemon/dist/domain/ps-projection.d.ts +11 -9
  265. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  266. package/daemon/dist/domain/ps-projection.js +15 -12
  267. package/daemon/dist/domain/ps-projection.js.map +1 -1
  268. package/daemon/dist/domain/queue-nudge-text.d.ts +4 -0
  269. package/daemon/dist/domain/queue-nudge-text.d.ts.map +1 -0
  270. package/daemon/dist/domain/queue-nudge-text.js +35 -0
  271. package/daemon/dist/domain/queue-nudge-text.js.map +1 -0
  272. package/daemon/dist/domain/queue-repository.d.ts +7 -0
  273. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  274. package/daemon/dist/domain/queue-repository.js +50 -20
  275. package/daemon/dist/domain/queue-repository.js.map +1 -1
  276. package/daemon/dist/domain/queue-retention.d.ts +2 -2
  277. package/daemon/dist/domain/queue-retention.js +4 -4
  278. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  279. package/daemon/dist/domain/queue-wait-backoff.js +6 -2
  280. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  281. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  282. package/daemon/dist/domain/queue-waiting.js +7 -2
  283. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  284. package/daemon/dist/domain/queue-wake-ladder.d.ts +15 -2
  285. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  286. package/daemon/dist/domain/queue-wake-ladder.js +29 -6
  287. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  288. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  289. package/daemon/dist/domain/rehydrate-eligibility.js +5 -2
  290. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  291. package/daemon/dist/domain/reply-to-choice.d.ts +6 -2
  292. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  293. package/daemon/dist/domain/reply-to-choice.js +9 -6
  294. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  295. package/daemon/dist/domain/restore-check-service.d.ts +5 -1
  296. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  297. package/daemon/dist/domain/restore-check-service.js +17 -3
  298. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  299. package/daemon/dist/domain/restore-orchestrator.d.ts +1 -0
  300. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  301. package/daemon/dist/domain/restore-orchestrator.js +17 -11
  302. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  303. package/daemon/dist/domain/rig-repository.d.ts +3 -1
  304. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  305. package/daemon/dist/domain/rig-repository.js +13 -4
  306. package/daemon/dist/domain/rig-repository.js.map +1 -1
  307. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  308. package/daemon/dist/domain/rig-teardown.js +6 -0
  309. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  310. package/daemon/dist/domain/rigspec-instantiator.d.ts +1 -0
  311. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  312. package/daemon/dist/domain/rigspec-instantiator.js +1 -1
  313. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  314. package/daemon/dist/domain/rigspec-preflight.d.ts +1 -1
  315. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  316. package/daemon/dist/domain/rigspec-preflight.js +8 -4
  317. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  318. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  319. package/daemon/dist/domain/rigspec-schema.js +19 -4
  320. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  321. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  322. package/daemon/dist/domain/seat-activity-service.js +16 -6
  323. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  324. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  325. package/daemon/dist/domain/seat-handover-service.js +9 -1
  326. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  327. package/daemon/dist/domain/session-jsonl.d.ts.map +1 -1
  328. package/daemon/dist/domain/session-jsonl.js +10 -4
  329. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  330. package/daemon/dist/domain/session-transport.d.ts +16 -21
  331. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  332. package/daemon/dist/domain/session-transport.js +70 -37
  333. package/daemon/dist/domain/session-transport.js.map +1 -1
  334. package/daemon/dist/domain/skill-audit.d.ts +19 -0
  335. package/daemon/dist/domain/skill-audit.d.ts.map +1 -1
  336. package/daemon/dist/domain/skill-audit.js +97 -5
  337. package/daemon/dist/domain/skill-audit.js.map +1 -1
  338. package/daemon/dist/domain/skill-catalog.d.ts +11 -0
  339. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  340. package/daemon/dist/domain/skill-catalog.js +145 -12
  341. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  342. package/daemon/dist/domain/skill-mirror-drift.d.ts +6 -1
  343. package/daemon/dist/domain/skill-mirror-drift.d.ts.map +1 -1
  344. package/daemon/dist/domain/skill-mirror-drift.js +23 -12
  345. package/daemon/dist/domain/skill-mirror-drift.js.map +1 -1
  346. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  347. package/daemon/dist/domain/snapshot-repository.js +12 -32
  348. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  349. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +4 -1
  350. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  351. package/daemon/dist/domain/terminal/herdr-adapter.js +14 -7
  352. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  353. package/daemon/dist/domain/terminal/terminal-provider.d.ts +9 -0
  354. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  355. package/daemon/dist/domain/terminal/terminal-service.d.ts +4 -0
  356. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  357. package/daemon/dist/domain/terminal/terminal-service.js +23 -11
  358. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  359. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  360. package/daemon/dist/domain/transcript-store.js +21 -9
  361. package/daemon/dist/domain/transcript-store.js.map +1 -1
  362. package/daemon/dist/domain/types.d.ts +2 -0
  363. package/daemon/dist/domain/types.d.ts.map +1 -1
  364. package/daemon/dist/domain/types.js.map +1 -1
  365. package/daemon/dist/domain/usage-samples-store.js +2 -2
  366. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  367. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  368. package/daemon/dist/domain/usage-series.js +42 -10
  369. package/daemon/dist/domain/usage-series.js.map +1 -1
  370. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  371. package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
  372. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  373. package/daemon/dist/domain/user-settings/settings-store.js +1 -1
  374. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  375. package/daemon/dist/domain/watchdog-due.d.ts +17 -0
  376. package/daemon/dist/domain/watchdog-due.d.ts.map +1 -0
  377. package/daemon/dist/domain/watchdog-due.js +45 -0
  378. package/daemon/dist/domain/watchdog-due.js.map +1 -0
  379. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  380. package/daemon/dist/domain/watchdog-scheduler.js +3 -7
  381. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  382. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  383. package/daemon/dist/domain/workflow-projector.js +15 -5
  384. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  385. package/daemon/dist/domain/workflow-runtime.js +1 -1
  386. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  387. package/daemon/dist/domain/workflow-step-trail-log.d.ts +6 -0
  388. package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -1
  389. package/daemon/dist/domain/workflow-step-trail-log.js +11 -0
  390. package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -1
  391. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  392. package/daemon/dist/domain/workflow-validator.js +22 -1
  393. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  394. package/daemon/dist/domain/workspace/project-catalog.js +1 -1
  395. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  396. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  397. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  398. package/daemon/dist/gateway-slack-surface.js +2 -1
  399. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  400. package/daemon/dist/index.d.ts +1 -0
  401. package/daemon/dist/index.d.ts.map +1 -1
  402. package/daemon/dist/index.js +7 -7
  403. package/daemon/dist/index.js.map +1 -1
  404. package/daemon/dist/routes/agent-images.js +5 -5
  405. package/daemon/dist/routes/agent-images.js.map +1 -1
  406. package/daemon/dist/routes/bootstrap-failure-response.d.ts +13 -0
  407. package/daemon/dist/routes/bootstrap-failure-response.d.ts.map +1 -0
  408. package/daemon/dist/routes/bootstrap-failure-response.js +52 -0
  409. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -0
  410. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  411. package/daemon/dist/routes/bundles.js +23 -36
  412. package/daemon/dist/routes/bundles.js.map +1 -1
  413. package/daemon/dist/routes/chat.d.ts.map +1 -1
  414. package/daemon/dist/routes/chat.js +16 -1
  415. package/daemon/dist/routes/chat.js.map +1 -1
  416. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  417. package/daemon/dist/routes/restore-check.js +2 -0
  418. package/daemon/dist/routes/restore-check.js.map +1 -1
  419. package/daemon/dist/routes/rigs.js +2 -2
  420. package/daemon/dist/routes/rigs.js.map +1 -1
  421. package/daemon/dist/routes/seat.js +13 -13
  422. package/daemon/dist/routes/seat.js.map +1 -1
  423. package/daemon/dist/routes/sessions.js +11 -11
  424. package/daemon/dist/routes/sessions.js.map +1 -1
  425. package/daemon/dist/routes/skills.d.ts.map +1 -1
  426. package/daemon/dist/routes/skills.js +15 -7
  427. package/daemon/dist/routes/skills.js.map +1 -1
  428. package/daemon/dist/routes/terminal-ws.js +15 -2
  429. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  430. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  431. package/daemon/dist/routes/terminal.js +6 -4
  432. package/daemon/dist/routes/terminal.js.map +1 -1
  433. package/daemon/dist/routes/up.d.ts.map +1 -1
  434. package/daemon/dist/routes/up.js +5 -56
  435. package/daemon/dist/routes/up.js.map +1 -1
  436. package/daemon/dist/startup.d.ts.map +1 -1
  437. package/daemon/dist/startup.js +32 -7
  438. package/daemon/dist/startup.js.map +1 -1
  439. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  440. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -1
  441. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  442. package/daemon/docs/reference/agent-spec.md +10 -10
  443. package/daemon/docs/reference/agent-startup-guide.md +7 -2
  444. package/daemon/docs/reference/bundle-formats.md +6 -4
  445. package/daemon/docs/reference/chain-file-convention.md +2 -2
  446. package/daemon/docs/reference/developing.md +1 -1
  447. package/daemon/docs/reference/edge-types.md +1 -1
  448. package/daemon/docs/reference/getting-started.md +356 -212
  449. package/daemon/docs/reference/help.md +48 -19
  450. package/daemon/docs/reference/instance-layout.md +5 -0
  451. package/daemon/docs/reference/non-interruptive-mode.md +7 -4
  452. package/daemon/docs/reference/project-workspace.md +2 -2
  453. package/daemon/docs/reference/publishing-a-rig-bundle.md +15 -10
  454. package/daemon/docs/reference/refocus-channel.md +14 -2
  455. package/daemon/docs/reference/rig-bundle.md +39 -19
  456. package/daemon/docs/reference/rig-spec.md +48 -20
  457. package/daemon/docs/reference/rosters.md +2 -1
  458. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +1 -1
  459. package/daemon/docs/reference/sdlc-conventions.md +4 -2
  460. package/daemon/docs/reference/slack-app-setup.md +69 -9
  461. package/daemon/docs/reference/topology-naming.md +74 -0
  462. package/daemon/docs/reference/whats-new.md +96 -0
  463. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +6 -0
  464. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +3 -0
  465. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
  466. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +19 -12
  467. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +17 -16
  468. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +2 -0
  469. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +60 -0
  470. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +105 -19
  471. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +5 -2
  472. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +44 -0
  473. package/dist/build-info.js +3 -3
  474. package/dist/cli-error.d.ts.map +1 -1
  475. package/dist/cli-error.js +11 -3
  476. package/dist/cli-error.js.map +1 -1
  477. package/dist/client.d.ts +2 -0
  478. package/dist/client.d.ts.map +1 -1
  479. package/dist/client.js +2 -0
  480. package/dist/client.js.map +1 -1
  481. package/dist/commands/agent-image.js +2 -2
  482. package/dist/commands/agent-image.js.map +1 -1
  483. package/dist/commands/bundle.d.ts.map +1 -1
  484. package/dist/commands/bundle.js +5 -4
  485. package/dist/commands/bundle.js.map +1 -1
  486. package/dist/commands/chatroom.d.ts.map +1 -1
  487. package/dist/commands/chatroom.js +21 -1
  488. package/dist/commands/chatroom.js.map +1 -1
  489. package/dist/commands/context.d.ts.map +1 -1
  490. package/dist/commands/context.js +12 -2
  491. package/dist/commands/context.js.map +1 -1
  492. package/dist/commands/doctor.d.ts +3 -1
  493. package/dist/commands/doctor.d.ts.map +1 -1
  494. package/dist/commands/doctor.js +14 -7
  495. package/dist/commands/doctor.js.map +1 -1
  496. package/dist/commands/down.d.ts.map +1 -1
  497. package/dist/commands/down.js +42 -0
  498. package/dist/commands/down.js.map +1 -1
  499. package/dist/commands/gateway.d.ts.map +1 -1
  500. package/dist/commands/gateway.js +4 -3
  501. package/dist/commands/gateway.js.map +1 -1
  502. package/dist/commands/launch.d.ts.map +1 -1
  503. package/dist/commands/launch.js +114 -8
  504. package/dist/commands/launch.js.map +1 -1
  505. package/dist/commands/package.d.ts.map +1 -1
  506. package/dist/commands/package.js +6 -3
  507. package/dist/commands/package.js.map +1 -1
  508. package/dist/commands/policy.d.ts.map +1 -1
  509. package/dist/commands/policy.js +6 -5
  510. package/dist/commands/policy.js.map +1 -1
  511. package/dist/commands/proof.js +1 -1
  512. package/dist/commands/proof.js.map +1 -1
  513. package/dist/commands/queue.d.ts.map +1 -1
  514. package/dist/commands/queue.js +6 -3
  515. package/dist/commands/queue.js.map +1 -1
  516. package/dist/commands/restore-packet.d.ts.map +1 -1
  517. package/dist/commands/restore-packet.js +6 -4
  518. package/dist/commands/restore-packet.js.map +1 -1
  519. package/dist/commands/scope.js +6 -6
  520. package/dist/commands/scope.js.map +1 -1
  521. package/dist/commands/setup.d.ts +6 -15
  522. package/dist/commands/setup.d.ts.map +1 -1
  523. package/dist/commands/setup.js +121 -332
  524. package/dist/commands/setup.js.map +1 -1
  525. package/dist/commands/skill.d.ts.map +1 -1
  526. package/dist/commands/skill.js +12 -1
  527. package/dist/commands/skill.js.map +1 -1
  528. package/dist/commands/slack.d.ts +5 -1
  529. package/dist/commands/slack.d.ts.map +1 -1
  530. package/dist/commands/slack.js +143 -6
  531. package/dist/commands/slack.js.map +1 -1
  532. package/dist/commands/stream.js +1 -1
  533. package/dist/commands/stream.js.map +1 -1
  534. package/dist/commands/terminal.d.ts +33 -0
  535. package/dist/commands/terminal.d.ts.map +1 -1
  536. package/dist/commands/terminal.js +30 -12
  537. package/dist/commands/terminal.js.map +1 -1
  538. package/dist/commands/tui.js +4 -4
  539. package/dist/commands/tui.js.map +1 -1
  540. package/dist/commands/workflow-follow.d.ts +1 -1
  541. package/dist/commands/workflow-follow.d.ts.map +1 -1
  542. package/dist/commands/workflow-follow.js +4 -3
  543. package/dist/commands/workflow-follow.js.map +1 -1
  544. package/dist/commands/workflow.d.ts.map +1 -1
  545. package/dist/commands/workflow.js +30 -18
  546. package/dist/commands/workflow.js.map +1 -1
  547. package/dist/config-store.js +1 -1
  548. package/dist/config-store.js.map +1 -1
  549. package/dist/front-door.d.ts.map +1 -1
  550. package/dist/front-door.js +4 -2
  551. package/dist/front-door.js.map +1 -1
  552. package/dist/herdr-launch-config.d.ts +3 -0
  553. package/dist/herdr-launch-config.d.ts.map +1 -0
  554. package/dist/herdr-launch-config.js +37 -0
  555. package/dist/herdr-launch-config.js.map +1 -0
  556. package/dist/index.d.ts.map +1 -1
  557. package/dist/index.js +2 -1
  558. package/dist/index.js.map +1 -1
  559. package/dist/launch-plan-guard.d.ts +27 -0
  560. package/dist/launch-plan-guard.d.ts.map +1 -0
  561. package/dist/launch-plan-guard.js +73 -0
  562. package/dist/launch-plan-guard.js.map +1 -0
  563. package/dist/lib/bundle-source.d.ts +2 -0
  564. package/dist/lib/bundle-source.d.ts.map +1 -1
  565. package/dist/lib/bundle-source.js +12 -1
  566. package/dist/lib/bundle-source.js.map +1 -1
  567. package/dist/lib/context-git.d.ts +2 -0
  568. package/dist/lib/context-git.d.ts.map +1 -1
  569. package/dist/lib/context-git.js +55 -5
  570. package/dist/lib/context-git.js.map +1 -1
  571. package/dist/lib/scope/scope-fs.d.ts +3 -2
  572. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  573. package/dist/lib/scope/scope-fs.js +97 -9
  574. package/dist/lib/scope/scope-fs.js.map +1 -1
  575. package/dist/lib/scope/templates.d.ts.map +1 -1
  576. package/dist/lib/scope/templates.js +28 -24
  577. package/dist/lib/scope/templates.js.map +1 -1
  578. package/dist/provider-auth.d.ts +32 -0
  579. package/dist/provider-auth.d.ts.map +1 -0
  580. package/dist/provider-auth.js +128 -0
  581. package/dist/provider-auth.js.map +1 -0
  582. package/dist/terminal-window.d.ts +19 -0
  583. package/dist/terminal-window.d.ts.map +1 -0
  584. package/dist/terminal-window.js +513 -0
  585. package/dist/terminal-window.js.map +1 -0
  586. package/package.json +2 -2
  587. package/tui/dist/commands/registry.js +2 -2
  588. package/tui/dist/commands/registry.js.map +1 -1
  589. package/tui/dist/config/config-model.d.ts.map +1 -1
  590. package/tui/dist/config/config-model.js +1 -0
  591. package/tui/dist/config/config-model.js.map +1 -1
  592. package/tui/dist/connections/connections-model.d.ts +5 -0
  593. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  594. package/tui/dist/connections/connections-model.js +1 -1
  595. package/tui/dist/connections/connections-model.js.map +1 -1
  596. package/tui/dist/daemon-client.d.ts +5 -0
  597. package/tui/dist/daemon-client.d.ts.map +1 -1
  598. package/tui/dist/daemon-client.js.map +1 -1
  599. package/tui/dist/execution/workflow-model.d.ts.map +1 -1
  600. package/tui/dist/execution/workflow-model.js +3 -1
  601. package/tui/dist/execution/workflow-model.js.map +1 -1
  602. package/tui/dist/hydrate.d.ts +1 -1
  603. package/tui/dist/hydrate.d.ts.map +1 -1
  604. package/tui/dist/hydrate.js +3 -1
  605. package/tui/dist/hydrate.js.map +1 -1
  606. package/tui/dist/main.js +39 -15
  607. package/tui/dist/main.js.map +1 -1
  608. package/tui/dist/page-read.js +1 -1
  609. package/tui/dist/page-read.js.map +1 -1
  610. package/tui/dist/pending-address.d.ts +7 -0
  611. package/tui/dist/pending-address.d.ts.map +1 -0
  612. package/tui/dist/pending-address.js +11 -0
  613. package/tui/dist/pending-address.js.map +1 -0
  614. package/tui/dist/render.d.ts.map +1 -1
  615. package/tui/dist/render.js +10 -6
  616. package/tui/dist/render.js.map +1 -1
  617. package/tui/dist/scopes/scopes-model.js +4 -4
  618. package/tui/dist/socket-server.d.ts +3 -1
  619. package/tui/dist/socket-server.d.ts.map +1 -1
  620. package/tui/dist/socket-server.js +6 -0
  621. package/tui/dist/socket-server.js.map +1 -1
  622. package/tui/dist/state.d.ts.map +1 -1
  623. package/tui/dist/state.js +40 -13
  624. package/tui/dist/state.js.map +1 -1
  625. package/tui/dist/stylize.js +1 -1
  626. package/tui/dist/stylize.js.map +1 -1
  627. package/tui/dist/terminals/open-window.d.ts +5 -0
  628. package/tui/dist/terminals/open-window.d.ts.map +1 -0
  629. package/tui/dist/terminals/open-window.js +55 -0
  630. package/tui/dist/terminals/open-window.js.map +1 -0
  631. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  632. package/tui/dist/terminals/terminal-model.js +16 -17
  633. package/tui/dist/terminals/terminal-model.js.map +1 -1
  634. package/tui/dist/types.d.ts +16 -1
  635. package/tui/dist/types.d.ts.map +1 -1
  636. package/ui/dist/assets/{index-HHSvwF97.js → index-D5n8EwkG.js} +1 -1
  637. package/ui/dist/index.html +1 -1
@@ -76,8 +76,10 @@ The authority lookup is `product-journey-sdlc.md#resolve-the-selected-path`.
76
76
  Bring work with evidence that its promised user outcome actually works.
77
77
 
78
78
  For a release mission, `mission.yaml` also names the Git strategy before build
79
- work starts: the branch/ref that is cumulative integration truth, its base, and
80
- when that truth is reconciled to main. Continuous integration to main and a
79
+ work starts: the branch/ref that is cumulative integration truth
80
+ (`arrangement.source.integration_ref`, the ref `rig view show execution` tests
81
+ a candidate's folding against; `main` when unset), its base, and when that
82
+ truth is reconciled to main. Continuous integration to main and a
81
83
  release-line fold followed by one explicit merge are both valid; leaving the
82
84
  choice implicit is not.
83
85
 
@@ -63,9 +63,10 @@ groups:
63
63
  a member of, and reading channel details.
64
64
  `rig slack verify` checks these.
65
65
  - **Feature scopes**: `files:read` (download attachments people send), `files:write` (upload
66
- attachments to Slack), and `app_mentions:read` (receive @-mentions of the app). `rig slack verify`
67
- warns when one of these is missing (if Slack returns the granted scopes) but does not require
68
- them, so a READY from verify does not prove attachments or mentions will work.
66
+ attachments to Slack), `app_mentions:read` (receive @-mentions of the app), and `reactions:read`
67
+ (receive emoji reactions). `rig slack verify` warns when one of these is missing (if Slack returns
68
+ the granted scopes) but does not require them, so a READY from verify does not prove attachments,
69
+ mentions or reactions will work.
69
70
 
70
71
  If a feature scope was not granted, the effect differs by feature:
71
72
 
@@ -75,12 +76,22 @@ If a feature scope was not granted, the effect differs by feature:
75
76
  the failure appears only in the daemon log (`rig daemon logs`).
76
77
  - **Mentions** (`app_mentions:read`): Slack does not deliver `app_mention` events to the app.
77
78
  Only `rig slack verify` warns that the scope is missing; nothing reports the missing events.
79
+ - **Reactions** (`reactions:read`): Slack does not deliver `reaction_added` events, so a reaction
80
+ on an ask doesn't reach the asking agent. A reply in the ask's thread still does.
78
81
 
79
- So after installing, compare the granted scopes Slack shows for the app with all six scopes that
82
+ So after installing, compare the granted scopes Slack shows for the app with all seven scopes that
80
83
  `rig slack manifest --json` lists.
81
84
 
82
- The app subscribes to messages in public channels it is a member of (`message.channels`) and to
83
- mentions of the app (`app_mention`). It does not request direct-message or private-channel access.
85
+ The app subscribes to messages in public channels it is a member of (`message.channels`), to
86
+ mentions of the app (`app_mention`), and to emoji reactions (`reaction_added`). It does not request
87
+ direct-message or private-channel access.
88
+
89
+ A reaction added to an ask reaches the agent that asked, as a note naming who reacted and with
90
+ which emoji; the agent decides what it means. Every message OpenRig posted for the ask counts:
91
+ its first message, a long ask's numbered parts, and an ask posted as a reply in a thread. A
92
+ reaction on any other message, including a person's reply in the thread, is ignored. An app created from an older manifest has neither the `reactions:read` scope nor the
93
+ `reaction_added` event: add both under **OAuth & Permissions** and **Event Subscriptions**, then
94
+ reinstall the app to the workspace.
84
95
 
85
96
  The manifest also turns on **Interactivity**, so the human can answer a decision's structured
86
97
  questions by clicking a button (`rig queue create --human-questions-file`). In Socket Mode the
@@ -101,11 +112,59 @@ part of OpenRig.
101
112
  - `rig slack status` shows what is still missing, without contacting Slack.
102
113
  - `rig slack verify` checks the granted baseline scopes and channel membership with Slack.
103
114
 
115
+ ## One channel per rig or seat (optional)
116
+
117
+ By default every human-bound item posts to the one channel from `rig slack setup --channel`.
118
+ To follow each rig separately, post a rig's items, or a single seat's, to its own channel:
119
+
120
+ ```bash
121
+ rig slack channel-map set my-rig C0EXAMPLE1
122
+ rig slack channel-map set pr@my-rig C0EXAMPLE2
123
+ rig slack channel-map list
124
+ rig slack channel-map remove pr@my-rig
125
+ ```
126
+
127
+ - **Which channel an item posts to.** The item's seat is matched exactly first (`pr@my-rig`),
128
+ then its rig (`my-rig`). Anything unmapped posts to the default channel, so a config
129
+ without a map behaves exactly as before. Aggregate delivery digests have no single seat and
130
+ always post to the default channel.
131
+ - **Threads.** Updates, `--reply-to` and later notifications for an item stay in its thread.
132
+ With a map configured, if a seat's channel has changed since the thread was opened, the
133
+ next post opens a new thread in the seat's current channel, and `--reply-to` records the
134
+ fallback as `root-other-channel`. With no map, threads behave exactly as before: an item's
135
+ next notification reuses its open thread in whatever channel that thread was posted in.
136
+ - **Changing the map.** A change applies to new posts. A post already in flight (one being
137
+ retried after a failure or an unconfirmed send) finishes in the channel and thread it started
138
+ in, and its retry checks that channel first so it is not posted twice. This includes adding
139
+ the first map: a post first tried before any map existed finishes in the default channel.
140
+ Without a map, OpenRig records nothing about a post's channel, so if the default channel
141
+ changes while a post is being retried, the retry goes to the new default channel (as it always
142
+ has); that also applies to a post first tried before the map was added.
143
+ - **Rate limits on posts.** When Slack rate-limits a post and asks for a pause of 10 seconds or
144
+ less, OpenRig waits that long and retries the post once. A longer pause, or a second refusal,
145
+ is left to the retry of retained posts.
146
+ - **Replies and new messages.** A reply in an item's thread reaches that item's seat, in any
147
+ channel. To answer it in the same thread, the seat sends `rig queue create --human-intent update
148
+ --reply-to <the inbound reply's row>`. A message the human starts (or a reply in a thread OpenRig does not know) goes to
149
+ the connector's inbound destination, whichever channel it is in. Missed-message recovery
150
+ (below) covers the default channel only.
151
+
152
+ Invite the app to every mapped channel (`/invite @OpenRig`). `rig slack verify` checks
153
+ membership in the default channel and every mapped channel, and reports NOT ready until the
154
+ app is in all of them. A saved change reaches a running connector when it next rewires:
155
+ `rig slack disable` then `rig slack enable`, or a daemon restart. The TUI's Connections page
156
+ says whether the running configuration matches the file.
157
+
158
+ The map is stored as `channelMap` in `slack-connector.json`, as a list of `{ "match", "channel" }`
159
+ entries. Saving refuses any other field. A field written by a newer OpenRig is ignored when the
160
+ connector reads the file, and `rig slack status` names it. Private channels and direct messages
161
+ are not supported targets.
162
+
104
163
  ## Reconnect recovery and status
105
164
 
106
165
  The daemon scans available top-level messages in the configured channel after a
107
166
  Socket Mode connection and on its existing five-minute retry cadence. Recovered
108
- queue rows say **Recovered after a gap** and show the original Slack posting time.
167
+ tasks say **Recovered after a gap** and show the original Slack posting time.
109
168
  They use the same sender admission, routing, attachment handling, fixed identity
110
169
  and dead-letter path as live messages. A durable dead letter is custody of a
111
170
  failed delivery, not successful delivery.
@@ -121,8 +180,9 @@ not covered by that margin. A corrupt or unreadable checkpoint leaves recovery u
121
180
  and preserves the existing file; live inbound continues.
122
181
 
123
182
  Each pass admits at most four pages, 100 entries and 15 seconds of work, with a
124
- five-second history-request ceiling. An already admitted attachment/landing keeps
125
- its owner until it settles. Rate limits retain Slack's Retry-After across restart.
183
+ five-second history-request ceiling. Work already started on a message, such as
184
+ an attachment transfer, is not cancelled by these limits or by a stop, and a new
185
+ pass waits for it to finish. Rate limits retain Slack's Retry-After across restart.
126
186
  Transport and server failures use a five-second backoff unless Slack supplies Retry-After.
127
187
  When Slack reports a plan history limit, recovery still lands the available page
128
188
  and advances normally, retaining an older-history limitation in status across restarts.
@@ -0,0 +1,74 @@
1
+ # Naming rigs, pods and seats
2
+
3
+ Names tell people and agents what a team does and who does each part. Use the
4
+ team's purpose for the rig, a domain for each pod, and a role for each seat.
5
+ These are authoring conventions, not additional parser restrictions.
6
+
7
+ ## What each name means
8
+
9
+ | Level | Meaning | Example |
10
+ | --- | --- | --- |
11
+ | Fleet | A group of OpenRig instances | Your development fleet |
12
+ | Instance | One daemon and its rigs; several instances can share a machine | The instance selected by a registered host route |
13
+ | Rig | A team or project purpose | `starter`, `workshop`, `factory`, or your project's name |
14
+ | Pod | A domain or shared context | `orch`, `dev`, `review`, `research`, `sre` |
15
+ | Seat (member) | A role within that pod | `lead`, `advisor`, `build`, `qa`, `design`, `review` |
16
+
17
+ The logical seat ID is `pod.member`: `dev.build`. Its session address is
18
+ `pod-member@rig`: `dev-build@workshop`. A cross-instance command also selects the
19
+ registered host route; a display label is not a route. Discover actual addresses
20
+ with `rig ps --nodes` and host routes with `rig host list` before sending work.
21
+
22
+ Runtime, model and account belong in configuration. Changing a provider does not
23
+ change the role's name. Keep machine and instance identifiers stable rather than
24
+ renaming them whenever their workload changes.
25
+
26
+ ## How the software teams grow
27
+
28
+ | Team | Logical seats |
29
+ | --- | --- |
30
+ | Starter | `dev.build`, `dev.review` |
31
+ | Workshop | `orch.lead`, `dev.build`, `dev.qa`, `dev.review` |
32
+ | Factory | `orch.lead`, `orch.advisor`, `dev.build`, `dev.qa`, `dev.design`, `review.r1`, `review.r2` |
33
+
34
+ Starter and Factory are built-in teams. Workshop is a
35
+ [bundle](https://github.com/mvschwarz/openrig-world/tree/main/rigs/workshop).
36
+ The built-in specs live under `packages/daemon/specs/rigs/launch/` in the product
37
+ source. Runtime presets keep these logical names.
38
+
39
+ Workshop's one code reviewer is `dev.review`; Factory has an independent review
40
+ pod with `review.r1` and `review.r2`. Both are intentional. A small team does not
41
+ need every pod or role from a larger one.
42
+
43
+ ## Name a new team
44
+
45
+ Start with the outcome, then group its work by domain. For a team studying a
46
+ dataset, `research.analyst` and `research.synthesizer` describe useful roles.
47
+ For operating a service, `sre.admin` describes the domain and responsibility.
48
+ Use a project-specific rig name when that helps distinguish two teams.
49
+
50
+ Avoid a generic operation such as `check` as the pod name: it does not say whether
51
+ the team owns software quality, research validation or service health. Put the
52
+ role in its domain, such as `dev.qa`. This is a rule for choosing new names, not a
53
+ word blacklist or a demand that all teams share one roster.
54
+
55
+ Use the same IDs in the rig spec, edges, workflow targets, configuration presets,
56
+ startup instructions and terminal views. Validate those references together.
57
+ See [RigSpec](rig-spec.md) and [publishing a bundle](publishing-a-rig-bundle.md).
58
+
59
+ ## Existing identities and retained references
60
+
61
+ An existing team's address remains its actual address until it is deliberately
62
+ migrated. Changing a label does not rename a seat or move its conversation, queue
63
+ or work. Preserve those records and verify the new routes when doing a migration;
64
+ do not edit a database or restart a team just to make a display match an example.
65
+
66
+ `first-project` is the compatibility name for Starter; it is not a second team
67
+ template. Existing-name safeguards still apply. See
68
+ [getting started](getting-started.md) before using the alias.
69
+
70
+ The `factory-rsi` bundle is a retained reference with original workflow-bound
71
+ addresses, including `build.implementer` and `check.qa`. It is distinct from the
72
+ current built-in Factory and is not the naming template for a new team. Old
73
+ release notes, pinned bundles, run records and compatibility tests keep the
74
+ identities they describe.
@@ -0,0 +1,96 @@
1
+ # What changed in OpenRig 0.6.8
2
+
3
+ This note is for an agent on an install that was just upgraded to 0.6.8. It lists only what behaves differently from
4
+ 0.6.7 and what to do about it. For everything OpenRig can do, read the capability map:
5
+ `rig context get onboarding-width/public-what-you-can-do.md`. Each release replaces this file, so
6
+ `rig context get reference/whats-new.md` describes the installed version once the upgraded daemon is running. Without
7
+ a running daemon, read `$OPENRIG_HOME/reference/whats-new.md`. The daemon refreshes that copy when it starts, so right
8
+ after an upgrade it can still hold the previous version's note.
9
+
10
+ ## Skills from the managed catalog
11
+
12
+ - **A skill with uncommitted changes in the catalog now blocks only itself.** Before, one edited skill made the whole
13
+ catalog unavailable to work-install, launch and restore preflight. Now that skill is skipped and named, and the
14
+ remaining clean skills stay available for projection.
15
+ - **Read the warning, don't retry.** `catalog_skill_skipped` names a skill nobody selected; `selected_skill_skipped`
16
+ names the selector and the folder. The fix is to commit or restore that folder's content in the catalog, then run the
17
+ projection again.
18
+ - **A selected skipped skill makes the inspection commands exit 1.** `rig context work-install --runtime <runtime>`
19
+ and `rig skill loadout --runtime <runtime>` inspect by default. Use `--apply-skills` with work-install or `--apply`
20
+ with skill loadout to project the remaining clean skills. Read the warnings and projection result; exit 1 alone does
21
+ not say whether files were changed. With `--json`, skipped skills are in `skillLoadout.skipped` or
22
+ `loadout.skipped`, respectively.
23
+ - **A seat keeps the copy it already has** of a skipped skill, unchanged. After the catalog change is committed or
24
+ restored, the next applied projection can refresh it. No seat receives the skipped skill's uncommitted files, and
25
+ launch only warns about the skip.
26
+ - **An uncommitted `catalog.yaml` still makes the whole catalog unavailable,** because it changes every selection.
27
+
28
+ ## Launch plans
29
+
30
+ - **`rig launch <rig> <seat> --plan` previews one seat's launch** without launching it, locally or with `--host`. Use
31
+ it before starting a single seat, as `--seats … --plan` already allowed for several.
32
+ - **A plan is never sent to a daemon older than 0.5.9,** which would ignore the flag and launch. If `rig launch --plan`
33
+ refuses for that reason, restart or upgrade that daemon. If it exits non-zero saying the daemon may have acted, check
34
+ `rig ps --nodes -A` before retrying.
35
+
36
+ ## Slack
37
+
38
+ - **Answer a person's thread reply in that thread.** When someone replies inside a thread OpenRig opened, answer with
39
+ `rig queue create --human-intent update --reply-to <the inbound reply's row>`, and the answer posts in that thread.
40
+ A top-level message is still answered top-level.
41
+ - **A short rate limit is waited out.** When Slack asks for a pause of 10 seconds or less, OpenRig waits and retries the
42
+ post once. A longer pause is still left to the usual retry of retained messages.
43
+
44
+ ## Managed compaction
45
+
46
+ - **A quiet seat is restored after `/compact`.** The turn boundary, the restore request and the read-depth
47
+ audit now reach a Claude seat that takes no turn after compacting. Before, they waited for the seat's next turn,
48
+ so a seat with nothing to do could sit unrestored. Each stage still waits until the seat's screen shows it idle.
49
+
50
+ ## Workflows
51
+
52
+ - **Validate before you run.** `rig workflow validate` reports `step_cannot_finish` when no allowed exit can finish a
53
+ step or route onward, and such a workflow cannot be instantiated. Allow `done` or an exit with a route onward. In a
54
+ dependency graph, `handoff` can also finish a sink without a next step. A spec that validated on 0.6.7 may need a
55
+ correction.
56
+
57
+ ## The TUI
58
+
59
+ - **Type whole commands on an empty command line.** The footer toggle is now `F`, and in a selected Scopes view the
60
+ mini-requirements and narrative keys are `M` and `N`, so `find`, `feed`, `mission`, `narrative` and `needs` reach the
61
+ command line intact.
62
+ - **`j` and `k` move the selection down and up** when the command line is empty. With text on the line they're ordinary
63
+ letters.
64
+
65
+ ## Smaller changes
66
+
67
+ - **A Claude seat launched with `--remote-control`** confirms its identity instead of staying "identity not confirmed".
68
+ - **`rig down` still saves its recovery snapshot** when finding one seat's resume details fails.
69
+ - **A wake for a handed-off task shows its summary** on one line, so read it to see what the task is for.
70
+ - **`rig scope audit` accepts slice folders numbered 100 and above.** `rig proof add --file` keeps a leading UTF-8
71
+ byte-order mark.
72
+ - **Building from source no longer needs POSIX shell tools** for the CLI and TUI output. It hasn't been run on Windows
73
+ yet; WSL2 is still the way to run OpenRig there.
74
+ - **A topology naming reference** explains how to name a team's pods and seats: `rig context get
75
+ reference/topology-naming.md`.
76
+
77
+ ## What to stop doing
78
+
79
+ - **Stop treating a non-zero work-install exit as proof that nothing changed.** Read the skipped-skill warnings and
80
+ projection result. Inspection alone changes no skill files; an applied projection can update clean skills while
81
+ reporting a skipped one.
82
+ - **Stop scripting around the TUI's single-letter keys.** Type the command whole.
83
+ - **Stop assuming a workflow that validated on 0.6.7 can finish.** Validate it again on 0.6.8.
84
+
85
+ ## Known gaps in 0.6.8
86
+
87
+ - **Not yet checked on a real machine:** the full first install from nothing, on Mac, Linux and Windows.
88
+ - **Only one selected lifecycle-help command has been checked in a live Claude session;** source and parser coverage
89
+ is broader. If a help command still asks, report it.
90
+ - **Codex team seats aren't asked before lifecycle commands yet.**
91
+ - **The send gate trusts the most recently recorded hook.** If hooks are recorded out of order, it can hold a send for
92
+ a question that's already answered, or miss one that's waiting. `rig capture` shows the real screen.
93
+ - **A Codex seat whose permission request was approved automatically can still read "needs input".**
94
+ - **A launched team still writes its skills into its working folder.**
95
+ - **After a restart, `rig status` shows `Kernel: skipped` whatever the kernel seats' state.** Read them with
96
+ `rig ps --nodes --rig kernel --full`.
@@ -92,6 +92,12 @@ the human (a pending human decision, or a row parked on the human), since a
92
92
  reply in that thread would answer the decision. In every such case the
93
93
  `--verify` result says `threaded: false` with the reason.
94
94
 
95
+ To answer a reply the human typed inside one of your threads, `--reply-to` the
96
+ row their reply landed as. The update posts in that thread unless one of the
97
+ cases above applies, and `--verify` reports it the same way. A message the
98
+ human started at the top level of the channel has no thread yet, so the answer
99
+ posts as a new message.
100
+
95
101
  A **decision** with a few clear choices can carry `--human-questions-file <path>`:
96
102
  a JSON array of 1–4 questions, each
97
103
  `{"id", "question", "options": [{"id", "label", "recommended"?}]}` with 2–4
@@ -39,6 +39,9 @@ the format you will author. Load the selected paths from public onboarding;
39
39
  consult additional skills when their triggers apply. A design task does not
40
40
  require reading the whole command library.
41
41
 
42
+ - Read `topology-naming.md` before choosing new identities: rig = purpose, pod =
43
+ domain, member = role. Keep names stable across runtime choices and match every
44
+ edge, preset and workflow target to the declared IDs.
42
45
  - Read the relevant sections of `rig-spec.md` and `agent-spec.md` before writing
43
46
  those declarations. Consult `agent-startup-guide.md` for startup/loadout work
44
47
  and `edge-types.md` when selecting relationships. Resolve the installed
@@ -57,7 +57,7 @@ These are auto-delivered to every rig; their name+description are already in you
57
57
  - **loading-addressable-markdown** — a task names Markdown as `path#h2-slug` or `path#h2-slug/h3-slug` outside the context-pack library.
58
58
  - **session-compaction-and-restore** — preparing for, or recovering from, compaction (any runtime). The write- and read-side protocol.
59
59
  - **queue-handoff** — you're passing durable work to another seat or ending your turn. The queue is the work ledger, not chat.
60
- - **refocusing** — a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
60
+ - **refocusing** — invoke as `refocusing` when a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
61
61
  - **seat-continuity-and-handover** — handing your seat's work across a restart or to another owner.
62
62
  - **orienting-to-an-inherited-seat** — you just inherited an existing seat through a planned handover and need to verify its identity, state, and testimony.
63
63
  - **retiring-and-inheriting-a-seat** — you're planning a seat transition and need to retire the current occupant into a fresh successor without losing continuity.
@@ -51,7 +51,7 @@ or `codex login` once when that selected login is missing. No credential copying
51
51
  unused provider prerequisite or silent model/provider fallback.
52
52
 
53
53
  Read the compatible getting-started guide's **Choose your providers** and
54
- **Kernel startup stays automatic** sections before launch. The choice selects
54
+ **Start the kernel and check its state** sections before launch. The choice selects
55
55
  the two project agents. Kernel auto-boot independently uses available
56
56
  authenticated accounts, so it may use both even when the project uses one.
57
57
  Do not add an unused-provider login gate or manual kernel setup to this path.
@@ -63,7 +63,8 @@ Show the chosen team, resolved runtimes/models and exact
63
63
  retain `gpt-6-astra`; Claude seats use the configured native default without an
64
64
  OpenRig model override. Confirm that model with the user and its availability;
65
65
  verify the native session's actual model before consequential work. Use the
66
- chosen rig name in owner/checker addresses throughout the same task and return.
66
+ chosen rig name in owner/checker addresses (in the starter, `dev-build@<rig>` and
67
+ `dev-review@<rig>`) throughout the same task and return.
67
68
 
68
69
  ## Establish the working agreement
69
70
 
@@ -79,16 +80,21 @@ model turns, but delivered wakes and resumed work **can spend tokens**. Prefer
79
80
  an event-driven wait to frequent empty reminders. Wakes cannot answer a user
80
81
  question, clear a permission prompt or guarantee progress.
81
82
 
82
- **Ask once before launching or assigning work:** “Allow your agents to run
83
- OpenRig commands without repeated permission prompts?” **Yes — recommended** /
84
- **No — keep prompts**. Reuse an existing explicit choice for this scope. Explain
85
- that this covers all `rig` verbs, including starting/stopping agents and changing
86
- configuration, at personal project scope unless the user explicitly chooses
87
- user-wide sessions. It is not global YOLO or permission to invent work.
83
+ **Ask once before launching or assigning work.** For a team with no permission
84
+ policy, seat choice or named Codex profile, recommend keeping the team default:
85
+ Claude team seats run ordinary `rig` commands, project reads and common tests
86
+ without prompts, and lifecycle commands such as `rig up` and `rig down` still
87
+ ask. Only if they want more, offer: “Remember these selected OpenRig commands in
88
+ your native settings for this project?” **Yes** / **No — keep the team default**.
89
+ Reuse an existing explicit choice for this scope.
90
+ Explain that a remembered allowance can cover all `rig` verbs, but Claude team
91
+ seats still ask before lifecycle commands, at personal project scope unless the
92
+ user explicitly chooses user-wide sessions. It is not global YOLO or permission
93
+ to invent work.
88
94
  On an actual Yes, follow [Applying a permission policy](#find-the-compatible-permission-guide)
89
95
  to add existing native rules, preserve stricter/unrelated settings, and verify
90
- the target conversation. No or no answer leaves settings alone and continues
91
- with existing prompts. Remember the explicit choice and exact additions in the
96
+ the target conversation. No or no answer leaves settings alone and keeps the
97
+ team default. Remember the explicit choice and exact additions in the
92
98
  existing onboarding context; “Undo the OpenRig command allowances added by this
93
99
  setup” removes only those additions. Broader access remains a separate opt-in.
94
100
 
@@ -102,8 +108,9 @@ or explicitly reports none. Preserve work and custody before a supported stop.
102
108
 
103
109
  Choose the team size separately from the coordination method above:
104
110
 
105
- 1. **Use the two-agent starter.** Keep the existing owner and independent checker
106
- while that pair meets the workload. The owner can implement and coordinate.
111
+ 1. **Use the two-agent starter.** Keep its builder (the owner) and independent
112
+ reviewer (the checker) while that pair meets the workload. The builder can
113
+ implement and coordinate.
107
114
  2. **Add one or two seats to the running rig.** This is the usual next step.
108
115
  Follow [Grow the running team](references/worked-example.md#grow-the-running-team)
109
116
  for `rig grow` commands, readiness/context/work
@@ -86,8 +86,8 @@ permissions, supplies a missing product decision or authorizes more work.
86
86
 
87
87
  ## Permissions at the point of work
88
88
 
89
- Before the first task, ask the agent to configure your choice: keep prompts,
90
- remember selected commands, or deliberately select broader access. Use
89
+ Before the first task, ask the agent to configure your choice: keep the team
90
+ default, remember selected commands, or deliberately select broader access. Use
91
91
  `rig context get skills/applying-a-permission-policy/SKILL.md`, or the
92
92
  [compatible source/package paths](../SKILL.md#find-the-compatible-permission-guide).
93
93
  The agent handles setup and verifies the actual conversation; the user need not
@@ -120,25 +120,26 @@ rig grow --help
120
120
 
121
121
  Set `RIG_ID` to the `rigId` for the running `starter`, and `PROJECT_ROOT`
122
122
  to the absolute code repository. Verify its existing `dev` pod and choose unused
123
- member names. When the user has authorized the added capacity and cost, run:
123
+ member names. Here `parser` owns CSV parsing and `cli` owns the command interface.
124
+ When the user has authorized the added capacity and cost, run:
124
125
 
125
126
  ```sh
126
- rig grow "$RIG_ID" a b --pod dev --runtime codex --cwd "$PROJECT_ROOT" --json
127
+ rig grow "$RIG_ID" parser cli --pod dev --runtime codex --cwd "$PROJECT_ROOT" --json
127
128
  rig ps --nodes --rig starter --json
128
129
  ```
129
130
 
130
- For one builder, omit `b`. The expected new logical IDs are `dev.a` and `dev.b`,
131
- with addresses `dev-a@starter` and `dev-b@starter`; use the actual
131
+ For one builder, omit `cli`. The expected new logical IDs are `dev.parser` and `dev.cli`,
132
+ with addresses `dev-parser@starter` and `dev-cli@starter`; use the actual
132
133
  returned identities. The command adds and launches the named seats.
133
134
 
134
135
  To put those seats in a **new** pod instead, choose this alternative once, with an
135
- unused pod ID; do not run both examples for the same desired capacity:
136
+ unused domain pod such as `data`; do not run both examples for the same desired capacity:
136
137
 
137
138
  ```sh
138
- rig grow "$RIG_ID" a b --new-pod build --runtime codex --cwd "$PROJECT_ROOT" --json
139
+ rig grow "$RIG_ID" parser cli --new-pod data --runtime codex --cwd "$PROJECT_ROOT" --json
139
140
  ```
140
141
 
141
- That alternative produces `build.a`/`build.b` and corresponding `build-...`
142
+ That alternative produces `data.parser`/`data.cli` and corresponding `data-...`
142
143
  addresses. `--pod` and `--new-pod` are mutually exclusive. With one existing pod,
143
144
  `--pod` can be inferred; select it explicitly when the intended target matters.
144
145
  The runtime defaults to `claude-code` and cwd defaults to the caller's current
@@ -153,7 +154,7 @@ agent specs, use the optional Architect path below and `rig expand --help`.
153
154
  Inspect each node's status/error and native pane. Confirm existing seats and work
154
155
  remain present; a created node is not readiness. Partial results can leave nodes
155
156
  persisted. After a timeout, reconcile topology before retrying. Fix the reported
156
- cause, then use `rig launch "$RIG_ID" dev.a` only for an already-created seat that
157
+ cause, then use `rig launch "$RIG_ID" dev.parser` only for an already-created seat that
157
158
  failed to start. That command does not create a missing seat.
158
159
 
159
160
  New seats do not inherit the owner's conversation or task. Record the agreed
@@ -163,8 +164,8 @@ checks, next owner and stopping condition. Then deliver the context instruction,
163
164
  for example for the first builder:
164
165
 
165
166
  ```sh
166
- rig send dev-a@starter "Read $PROJECT_ROOT/SPEC.md and the addressed sources in $PROJECT_ROOT/.openrig/factory/TASK-A.md. Run rig whoami --json and rig queue list --owned --json in your own seat; report your identity, scope and any native readiness/permission blocker. Await the bounded queue assignment."
167
- rig capture dev-a@starter
167
+ rig send dev-parser@starter "Read $PROJECT_ROOT/SPEC.md and the addressed sources in $PROJECT_ROOT/.openrig/factory/TASK-A.md. Run rig whoami --json and rig queue list --owned --json in your own seat; report your identity, scope and any native readiness/permission blocker. Await the bounded queue assignment."
168
+ rig capture dev-parser@starter
168
169
  ```
169
170
 
170
171
  Read the actual reply and pane; resolve startup/login/permission prompts under the
@@ -174,7 +175,7 @@ the coordinator creates the distinct agreed task (or hands off an existing owned
174
175
  task instead of duplicating it):
175
176
 
176
177
  ```sh
177
- rig queue create --destination dev-a@starter \
178
+ rig queue create --destination dev-parser@starter \
178
179
  --body-file "$PROJECT_ROOT/.openrig/factory/TASK-A.md" \
179
180
  --summary 'Implement the agreed independent change A' --json
180
181
  ```
@@ -191,7 +192,7 @@ working agreement and assigned work, not the seat's name or default agent label.
191
192
  | Seat in this example | Deliberately agreed responsibility |
192
193
  | --- | --- |
193
194
  | `dev-build@starter` | Initially implements and coordinates; can become the dedicated orchestrator, selecting outcomes, separating tasks, owning integration and retaining next-work custody. |
194
- | `dev-a@starter`, `dev-b@starter` | Implement distinct authorized tasks and return exact candidates/evidence. Neither silently edits the other's files or folds both candidates without integration ownership. |
195
+ | `dev-parser@starter`, `dev-cli@starter` | Implement distinct authorized tasks and return exact candidates/evidence. Neither silently edits the other's files or folds both candidates without integration ownership. |
195
196
  | `dev-review@starter` | Retains independent judgment under the project's review policy. The implementer does not count its own check as independent review. |
196
197
 
197
198
  This is one progression, not a required four-seat layout. One extra builder may
@@ -240,8 +241,8 @@ YAML authoring is optional; ordinary growth uses the commands above.
240
241
  ### Remove capacity deliberately
241
242
 
242
243
  When a seat is no longer needed, preserve its work and next owner first.
243
- `rig remove "$RIG_ID" dev.a` removes that seat; `rig shrink "$RIG_ID" build`
244
- removes the whole optional build pod. These end the affected sessions. Removal
244
+ `rig remove "$RIG_ID" dev.parser` removes that seat; `rig shrink "$RIG_ID" data`
245
+ removes the whole optional data pod. These end the affected sessions. Removal
245
246
  refuses active work unless you explicitly select a live `--fallback <live-seat>`
246
247
  to receive it. Check the exact targets, handoff and returned outcomes; do not use
247
248
  fallback to discard an obligation or remove seats merely because they look idle.
@@ -239,6 +239,8 @@ host in front of you.
239
239
  mechanism; this skill does not rewrite launchers.
240
240
  11. Record the observed result, remaining local preservation decisions, and the
241
241
  exact rollback runtime and backup.
242
+ 12. Read what changed in the new version, `rig context get reference/whats-new.md`,
243
+ and tell your user anything in it that changes how they work.
242
244
 
243
245
  ## Stop and hand back when
244
246
 
@@ -21,3 +21,63 @@ When the goal is done, close the operator's row with the result.
21
21
 
22
22
  `rig down` and `rig seat stop` end agents' sessions and any work in progress, and `rig up <spec>` on a stopped team's
23
23
  name replaces it with a new team. Don't run them unless the person asked; check `rig ps --nodes` first.
24
+
25
+ ## Publish the team's roster
26
+
27
+ A roster tells anyone who uses `rig roster find` who to ask on this team and why. Write one the first time you start,
28
+ alongside the goal, and never replace one that exists:
29
+
30
+ 1. Take the rig's name from `rig whoami --json` (`identity.rigName`). It is `factory` unless this team was launched
31
+ under another name; `<rig>` below means that name. If it is null, the rig name is unavailable: skip the roster
32
+ for now and try again when identity is available.
33
+ 2. Run `rig roster list`. If it shows a roster with id `<rig>`, stop here.
34
+ 3. The file is `<workspace.root>/rosters/<rig>.json`; `rig config get workspace.root` gives the root. If the file
35
+ exists, stop here too. Create the `rosters/` folder if it is missing.
36
+ 4. Run `rig ps --nodes --rig <rig> --json --fields canonicalSessionName,hostSelfId`. It gives each seat's exact address
37
+ and the host that serves it.
38
+ 5. Match `orch-lead` (you) to lead, `orch-advisor` to advisor, `dev-build` to builder, `dev-qa` to QA,
39
+ `dev-design` to designer, and `review-r1` and `review-r2` to the two reviewers, using the actual addresses from step 4.
40
+ Write the file with those addresses and hosts, today's date, and yourself as curator (format: OpenRig's
41
+ `$OPENRIG_HOME/reference/rosters.md`):
42
+
43
+ ```json
44
+ {
45
+ "version": 1,
46
+ "id": "<rig>",
47
+ "name": "Factory",
48
+ "purpose": "Plan, build, design and check software in this repository as a full team",
49
+ "curator": { "seat": "<your address>", "host": "<your host>" },
50
+ "updated_at": "<YYYY-MM-DD>",
51
+ "members": [
52
+ { "seat": "<lead>", "host": "<host>", "capabilities": ["planning", "routing work"],
53
+ "engagement": ["consult", "delegate"], "use_when": "Deciding what to build next, or who should take a piece",
54
+ "why": "Leads this team, talks to the person and routes the work" },
55
+ { "seat": "<advisor>", "host": "<host>", "capabilities": ["product intent", "ideas"],
56
+ "engagement": ["consult"], "use_when": "Shaping an idea, or checking that work still serves the goal",
57
+ "why": "The lead's idea and intent partner" },
58
+ { "seat": "<builder>", "host": "<host>", "capabilities": ["implementation"],
59
+ "engagement": ["delegate"], "use_when": "A planned piece needs building",
60
+ "why": "Builds the changes the lead routes to it" },
61
+ { "seat": "<QA seat>", "host": "<host>", "capabilities": ["testing", "verification"],
62
+ "engagement": ["review"], "use_when": "A change needs its checks run and reported",
63
+ "why": "Runs the checks a change calls for and says what each one proved" },
64
+ { "seat": "<designer>", "host": "<host>", "capabilities": ["product design", "user experience"],
65
+ "engagement": ["consult", "review"], "use_when": "A change affects what people see or how they use it",
66
+ "why": "Designs and reviews the user-facing side" },
67
+ { "seat": "<reviewer 1>", "host": "<host>", "capabilities": ["code review"],
68
+ "engagement": ["review"], "use_when": "A change needs an independent review",
69
+ "why": "One of two independent reviewers" },
70
+ { "seat": "<reviewer 2>", "host": "<host>", "capabilities": ["code review"],
71
+ "engagement": ["review"], "use_when": "A change needs an independent review",
72
+ "why": "The second independent reviewer; ask both for important changes" }
73
+ ]
74
+ }
75
+ ```
76
+
77
+ 6. Run `rig roster list` to see it listed, then tell the person in one line.
78
+
79
+ Running this again, after `rig seat continue` or a restore, changes nothing. When a seat takes on a capability worth
80
+ asking it about, add it to that seat's `capabilities` and set `updated_at` to today; starting again never replaces the
81
+ file.
82
+
83
+ Need expertise your team lacks? `rig roster find <topic>` lists who to ask and why.