@openrig/cli 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/README.md +95 -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/openrig-skills/SKILL.md +1 -1
  11. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -4
  12. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +24 -13
  13. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  14. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +42 -0
  15. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +6 -0
  16. package/daemon/assets/skills/rigs/SKILL.md +133 -0
  17. package/daemon/context-packs/help/help.md +48 -19
  18. package/daemon/context-packs/help/manifest.yaml +1 -1
  19. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  20. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +218 -39
  21. package/daemon/context-packs/reference/getting-started.md +356 -212
  22. package/daemon/context-packs/reference/manifest.yaml +4 -1
  23. package/daemon/context-packs/reference/rig-spec.md +36 -11
  24. package/daemon/context-packs/reference/whats-new.md +134 -0
  25. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +13 -2
  29. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +4 -0
  31. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -1
  40. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +19 -12
  42. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  44. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +2 -0
  45. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/refocusing/SKILL.md +31 -4
  79. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +24 -13
  81. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -0
  82. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +42 -0
  84. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +6 -0
  86. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  88. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  89. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  90. package/daemon/dist/adapters/claude-code-adapter.d.ts +1 -1
  91. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  92. package/daemon/dist/adapters/claude-code-adapter.js +23 -13
  93. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  94. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  95. package/daemon/dist/adapters/codex-resume.js +17 -0
  96. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  97. package/daemon/dist/adapters/codex-runtime-adapter.js +2 -2
  98. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  99. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  100. package/daemon/dist/adapters/kernel-authority.js +29 -11
  101. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  102. package/daemon/dist/adapters/pi-readiness.d.ts +15 -0
  103. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -0
  104. package/daemon/dist/adapters/pi-readiness.js +90 -0
  105. package/daemon/dist/adapters/pi-readiness.js.map +1 -0
  106. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  107. package/daemon/dist/adapters/pi-runner-protocol.js +1 -0
  108. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  109. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  110. package/daemon/dist/adapters/pi-runner.js +13 -2
  111. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  112. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  113. package/daemon/dist/adapters/tmux.js +9 -6
  114. package/daemon/dist/adapters/tmux.js.map +1 -1
  115. package/daemon/dist/build-info.js +3 -3
  116. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  117. package/daemon/dist/db/all-migrations.js +4 -0
  118. package/daemon/dist/db/all-migrations.js.map +1 -1
  119. package/daemon/dist/db/migrations/096_rig_install_root.d.ts +3 -0
  120. package/daemon/dist/db/migrations/096_rig_install_root.d.ts.map +1 -0
  121. package/daemon/dist/db/migrations/096_rig_install_root.js +5 -0
  122. package/daemon/dist/db/migrations/096_rig_install_root.js.map +1 -0
  123. package/daemon/dist/db/migrations/097_thread_part_map.d.ts +3 -0
  124. package/daemon/dist/db/migrations/097_thread_part_map.d.ts.map +1 -0
  125. package/daemon/dist/db/migrations/097_thread_part_map.js +20 -0
  126. package/daemon/dist/db/migrations/097_thread_part_map.js.map +1 -0
  127. package/daemon/dist/domain/activity-taxonomy.d.ts +7 -0
  128. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  129. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  130. package/daemon/dist/domain/agent-activity-store.d.ts +12 -0
  131. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  132. package/daemon/dist/domain/agent-activity-store.js +55 -30
  133. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  134. package/daemon/dist/domain/agent-images/agent-image-types.d.ts +1 -1
  135. package/daemon/dist/domain/agent-images/agent-image-types.d.ts.map +1 -1
  136. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  137. package/daemon/dist/domain/bootstrap-orchestrator.js +6 -4
  138. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  139. package/daemon/dist/domain/bundle-install-context.d.ts +2 -2
  140. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -1
  141. package/daemon/dist/domain/bundle-install-context.js +16 -3
  142. package/daemon/dist/domain/bundle-install-context.js.map +1 -1
  143. package/daemon/dist/domain/bundle-types.d.ts +1 -1
  144. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  145. package/daemon/dist/domain/chat-repository.d.ts +5 -0
  146. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  147. package/daemon/dist/domain/chat-repository.js +8 -0
  148. package/daemon/dist/domain/chat-repository.js.map +1 -1
  149. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  150. package/daemon/dist/domain/claim-service.js +5 -4
  151. package/daemon/dist/domain/claim-service.js.map +1 -1
  152. package/daemon/dist/domain/claude-activity-hooks.d.ts +3 -0
  153. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  154. package/daemon/dist/domain/claude-activity-hooks.js +8 -1
  155. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  156. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +11 -0
  157. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  158. package/daemon/dist/domain/claude-compaction-enforcer.js +42 -13
  159. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  160. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  161. package/daemon/dist/domain/codex-thread-id.js +4 -2
  162. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  163. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  164. package/daemon/dist/domain/context-monitor.js +2 -0
  165. package/daemon/dist/domain/context-monitor.js.map +1 -1
  166. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  167. package/daemon/dist/domain/execution-view.js +57 -11
  168. package/daemon/dist/domain/execution-view.js.map +1 -1
  169. package/daemon/dist/domain/gateway/connections-projection.d.ts +4 -0
  170. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  171. package/daemon/dist/domain/gateway/connections-projection.js +2 -0
  172. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  173. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -1
  174. package/daemon/dist/domain/gateway/destination-resolver.js +7 -4
  175. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -1
  176. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -1
  177. package/daemon/dist/domain/gateway/human-readiness.js +23 -6
  178. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -1
  179. package/daemon/dist/domain/gateway/human-registry.d.ts +2 -2
  180. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  181. package/daemon/dist/domain/gateway/human-registry.js +2 -2
  182. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  183. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  184. package/daemon/dist/domain/gateway/slack/capabilities.js +3 -1
  185. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  186. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +39 -0
  187. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -0
  188. package/daemon/dist/domain/gateway/slack/channel-map.js +114 -0
  189. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -0
  190. package/daemon/dist/domain/gateway/slack/config.d.ts +7 -0
  191. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  192. package/daemon/dist/domain/gateway/slack/config.js +19 -2
  193. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  194. package/daemon/dist/domain/gateway/slack/inbound.d.ts +24 -1
  195. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  196. package/daemon/dist/domain/gateway/slack/inbound.js +104 -3
  197. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  198. package/daemon/dist/domain/gateway/slack/message.d.ts +7 -0
  199. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  200. package/daemon/dist/domain/gateway/slack/message.js +36 -0
  201. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  202. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +30 -7
  203. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  204. package/daemon/dist/domain/gateway/slack/slack-delivery.js +253 -51
  205. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  206. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  207. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +90 -10
  208. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  209. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +2 -0
  210. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  211. package/daemon/dist/domain/gateway/slack/socket-inbound.js +40 -0
  212. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  213. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  214. package/daemon/dist/domain/gateway/slack/thread-routing.js +22 -2
  215. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  216. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +14 -0
  217. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  218. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +27 -0
  219. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  220. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -1
  221. package/daemon/dist/domain/generated-file-hygiene.js +7 -4
  222. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
  223. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  224. package/daemon/dist/domain/managed-blocks.js +5 -2
  225. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  226. package/daemon/dist/domain/markdown-address.d.ts.map +1 -1
  227. package/daemon/dist/domain/markdown-address.js +23 -6
  228. package/daemon/dist/domain/markdown-address.js.map +1 -1
  229. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  230. package/daemon/dist/domain/native-process-lineage.js +36 -1
  231. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  232. package/daemon/dist/domain/node-inventory.d.ts +2 -2
  233. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  234. package/daemon/dist/domain/node-inventory.js +30 -4
  235. package/daemon/dist/domain/node-inventory.js.map +1 -1
  236. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  237. package/daemon/dist/domain/node-launcher.js +1 -0
  238. package/daemon/dist/domain/node-launcher.js.map +1 -1
  239. package/daemon/dist/domain/pane-binding-observation.d.ts +1 -0
  240. package/daemon/dist/domain/pane-binding-observation.d.ts.map +1 -1
  241. package/daemon/dist/domain/pane-binding-observation.js +3 -1
  242. package/daemon/dist/domain/pane-binding-observation.js.map +1 -1
  243. package/daemon/dist/domain/plugin-vendor-service.d.ts +6 -0
  244. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  245. package/daemon/dist/domain/plugin-vendor-service.js +12 -0
  246. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  247. package/daemon/dist/domain/ps-projection.d.ts +11 -9
  248. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  249. package/daemon/dist/domain/ps-projection.js +15 -12
  250. package/daemon/dist/domain/ps-projection.js.map +1 -1
  251. package/daemon/dist/domain/queue-repository.d.ts +2 -0
  252. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  253. package/daemon/dist/domain/queue-repository.js +39 -14
  254. package/daemon/dist/domain/queue-repository.js.map +1 -1
  255. package/daemon/dist/domain/queue-retention.d.ts +2 -2
  256. package/daemon/dist/domain/queue-retention.js +4 -4
  257. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  258. package/daemon/dist/domain/queue-wait-backoff.js +6 -2
  259. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  260. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  261. package/daemon/dist/domain/queue-waiting.js +7 -2
  262. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  263. package/daemon/dist/domain/queue-wake-ladder.d.ts +15 -2
  264. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  265. package/daemon/dist/domain/queue-wake-ladder.js +29 -6
  266. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  267. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  268. package/daemon/dist/domain/rehydrate-eligibility.js +5 -2
  269. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  270. package/daemon/dist/domain/reply-to-choice.d.ts +6 -2
  271. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  272. package/daemon/dist/domain/reply-to-choice.js +9 -6
  273. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  274. package/daemon/dist/domain/restore-check-service.d.ts +5 -1
  275. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  276. package/daemon/dist/domain/restore-check-service.js +17 -3
  277. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  278. package/daemon/dist/domain/rig-repository.d.ts +3 -1
  279. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  280. package/daemon/dist/domain/rig-repository.js +13 -4
  281. package/daemon/dist/domain/rig-repository.js.map +1 -1
  282. package/daemon/dist/domain/rigspec-instantiator.d.ts +1 -0
  283. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  284. package/daemon/dist/domain/rigspec-instantiator.js +1 -1
  285. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  286. package/daemon/dist/domain/rigspec-preflight.d.ts +1 -1
  287. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  288. package/daemon/dist/domain/rigspec-preflight.js +8 -4
  289. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  290. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  291. package/daemon/dist/domain/rigspec-schema.js +19 -4
  292. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  293. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  294. package/daemon/dist/domain/seat-activity-service.js +16 -6
  295. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  296. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  297. package/daemon/dist/domain/seat-handover-service.js +9 -1
  298. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  299. package/daemon/dist/domain/session-jsonl.d.ts.map +1 -1
  300. package/daemon/dist/domain/session-jsonl.js +10 -4
  301. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  302. package/daemon/dist/domain/session-transport.d.ts +4 -20
  303. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  304. package/daemon/dist/domain/session-transport.js +37 -30
  305. package/daemon/dist/domain/session-transport.js.map +1 -1
  306. package/daemon/dist/domain/skill-audit.d.ts +19 -0
  307. package/daemon/dist/domain/skill-audit.d.ts.map +1 -1
  308. package/daemon/dist/domain/skill-audit.js +97 -5
  309. package/daemon/dist/domain/skill-audit.js.map +1 -1
  310. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  311. package/daemon/dist/domain/skill-catalog.js +9 -0
  312. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  313. package/daemon/dist/domain/skill-mirror-drift.d.ts +6 -1
  314. package/daemon/dist/domain/skill-mirror-drift.d.ts.map +1 -1
  315. package/daemon/dist/domain/skill-mirror-drift.js +23 -12
  316. package/daemon/dist/domain/skill-mirror-drift.js.map +1 -1
  317. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  318. package/daemon/dist/domain/snapshot-repository.js +12 -32
  319. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  320. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +4 -1
  321. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  322. package/daemon/dist/domain/terminal/herdr-adapter.js +14 -7
  323. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  324. package/daemon/dist/domain/terminal/terminal-provider.d.ts +9 -0
  325. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  326. package/daemon/dist/domain/terminal/terminal-service.d.ts +4 -0
  327. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  328. package/daemon/dist/domain/terminal/terminal-service.js +23 -11
  329. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  330. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  331. package/daemon/dist/domain/transcript-store.js +21 -9
  332. package/daemon/dist/domain/transcript-store.js.map +1 -1
  333. package/daemon/dist/domain/types.d.ts +2 -0
  334. package/daemon/dist/domain/types.d.ts.map +1 -1
  335. package/daemon/dist/domain/types.js.map +1 -1
  336. package/daemon/dist/domain/usage-samples-store.js +2 -2
  337. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  338. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  339. package/daemon/dist/domain/usage-series.js +42 -10
  340. package/daemon/dist/domain/usage-series.js.map +1 -1
  341. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  342. package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
  343. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  344. package/daemon/dist/domain/user-settings/settings-store.js +1 -1
  345. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  346. package/daemon/dist/domain/watchdog-due.d.ts +17 -0
  347. package/daemon/dist/domain/watchdog-due.d.ts.map +1 -0
  348. package/daemon/dist/domain/watchdog-due.js +45 -0
  349. package/daemon/dist/domain/watchdog-due.js.map +1 -0
  350. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  351. package/daemon/dist/domain/watchdog-scheduler.js +3 -7
  352. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  353. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  354. package/daemon/dist/domain/workflow-projector.js +15 -5
  355. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  356. package/daemon/dist/domain/workflow-runtime.js +1 -1
  357. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  358. package/daemon/dist/domain/workflow-step-trail-log.d.ts +6 -0
  359. package/daemon/dist/domain/workflow-step-trail-log.d.ts.map +1 -1
  360. package/daemon/dist/domain/workflow-step-trail-log.js +11 -0
  361. package/daemon/dist/domain/workflow-step-trail-log.js.map +1 -1
  362. package/daemon/dist/domain/workspace/project-catalog.js +1 -1
  363. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  364. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  365. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  366. package/daemon/dist/gateway-slack-surface.js +2 -1
  367. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  368. package/daemon/dist/index.d.ts +1 -0
  369. package/daemon/dist/index.d.ts.map +1 -1
  370. package/daemon/dist/index.js +7 -7
  371. package/daemon/dist/index.js.map +1 -1
  372. package/daemon/dist/routes/agent-images.js +5 -5
  373. package/daemon/dist/routes/agent-images.js.map +1 -1
  374. package/daemon/dist/routes/bootstrap-failure-response.d.ts +13 -0
  375. package/daemon/dist/routes/bootstrap-failure-response.d.ts.map +1 -0
  376. package/daemon/dist/routes/bootstrap-failure-response.js +52 -0
  377. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -0
  378. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  379. package/daemon/dist/routes/bundles.js +23 -36
  380. package/daemon/dist/routes/bundles.js.map +1 -1
  381. package/daemon/dist/routes/chat.d.ts.map +1 -1
  382. package/daemon/dist/routes/chat.js +16 -1
  383. package/daemon/dist/routes/chat.js.map +1 -1
  384. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  385. package/daemon/dist/routes/restore-check.js +2 -0
  386. package/daemon/dist/routes/restore-check.js.map +1 -1
  387. package/daemon/dist/routes/rigs.js +2 -2
  388. package/daemon/dist/routes/rigs.js.map +1 -1
  389. package/daemon/dist/routes/seat.js +13 -13
  390. package/daemon/dist/routes/seat.js.map +1 -1
  391. package/daemon/dist/routes/sessions.js +10 -10
  392. package/daemon/dist/routes/sessions.js.map +1 -1
  393. package/daemon/dist/routes/skills.d.ts.map +1 -1
  394. package/daemon/dist/routes/skills.js +15 -7
  395. package/daemon/dist/routes/skills.js.map +1 -1
  396. package/daemon/dist/routes/terminal-ws.js +15 -2
  397. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  398. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  399. package/daemon/dist/routes/terminal.js +6 -4
  400. package/daemon/dist/routes/terminal.js.map +1 -1
  401. package/daemon/dist/routes/up.d.ts.map +1 -1
  402. package/daemon/dist/routes/up.js +5 -56
  403. package/daemon/dist/routes/up.js.map +1 -1
  404. package/daemon/dist/startup.d.ts.map +1 -1
  405. package/daemon/dist/startup.js +32 -7
  406. package/daemon/dist/startup.js.map +1 -1
  407. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  408. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -1
  409. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  410. package/daemon/docs/reference/agent-spec.md +10 -10
  411. package/daemon/docs/reference/agent-startup-guide.md +7 -2
  412. package/daemon/docs/reference/bundle-formats.md +5 -3
  413. package/daemon/docs/reference/chain-file-convention.md +2 -2
  414. package/daemon/docs/reference/developing.md +1 -1
  415. package/daemon/docs/reference/edge-types.md +1 -1
  416. package/daemon/docs/reference/getting-started.md +356 -212
  417. package/daemon/docs/reference/help.md +48 -19
  418. package/daemon/docs/reference/non-interruptive-mode.md +7 -4
  419. package/daemon/docs/reference/project-workspace.md +2 -2
  420. package/daemon/docs/reference/publishing-a-rig-bundle.md +11 -8
  421. package/daemon/docs/reference/refocus-channel.md +14 -2
  422. package/daemon/docs/reference/rig-bundle.md +39 -19
  423. package/daemon/docs/reference/rig-spec.md +36 -11
  424. package/daemon/docs/reference/rosters.md +2 -1
  425. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +1 -1
  426. package/daemon/docs/reference/sdlc-conventions.md +4 -2
  427. package/daemon/docs/reference/slack-app-setup.md +65 -9
  428. package/daemon/docs/reference/whats-new.md +134 -0
  429. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
  430. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +19 -12
  431. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  432. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +2 -0
  433. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +60 -0
  434. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +105 -19
  435. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +5 -2
  436. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +44 -0
  437. package/dist/build-info.js +3 -3
  438. package/dist/cli-error.d.ts.map +1 -1
  439. package/dist/cli-error.js +11 -3
  440. package/dist/cli-error.js.map +1 -1
  441. package/dist/client.d.ts +2 -0
  442. package/dist/client.d.ts.map +1 -1
  443. package/dist/client.js +2 -0
  444. package/dist/client.js.map +1 -1
  445. package/dist/commands/agent-image.js +2 -2
  446. package/dist/commands/agent-image.js.map +1 -1
  447. package/dist/commands/bundle.d.ts.map +1 -1
  448. package/dist/commands/bundle.js +5 -4
  449. package/dist/commands/bundle.js.map +1 -1
  450. package/dist/commands/chatroom.d.ts.map +1 -1
  451. package/dist/commands/chatroom.js +21 -1
  452. package/dist/commands/chatroom.js.map +1 -1
  453. package/dist/commands/context.d.ts.map +1 -1
  454. package/dist/commands/context.js +4 -2
  455. package/dist/commands/context.js.map +1 -1
  456. package/dist/commands/doctor.d.ts +3 -1
  457. package/dist/commands/doctor.d.ts.map +1 -1
  458. package/dist/commands/doctor.js +14 -7
  459. package/dist/commands/doctor.js.map +1 -1
  460. package/dist/commands/down.d.ts.map +1 -1
  461. package/dist/commands/down.js +42 -0
  462. package/dist/commands/down.js.map +1 -1
  463. package/dist/commands/gateway.d.ts.map +1 -1
  464. package/dist/commands/gateway.js +4 -3
  465. package/dist/commands/gateway.js.map +1 -1
  466. package/dist/commands/package.d.ts.map +1 -1
  467. package/dist/commands/package.js +6 -3
  468. package/dist/commands/package.js.map +1 -1
  469. package/dist/commands/policy.d.ts.map +1 -1
  470. package/dist/commands/policy.js +6 -5
  471. package/dist/commands/policy.js.map +1 -1
  472. package/dist/commands/queue.d.ts.map +1 -1
  473. package/dist/commands/queue.js +6 -3
  474. package/dist/commands/queue.js.map +1 -1
  475. package/dist/commands/restore-packet.d.ts.map +1 -1
  476. package/dist/commands/restore-packet.js +6 -4
  477. package/dist/commands/restore-packet.js.map +1 -1
  478. package/dist/commands/scope.js +5 -5
  479. package/dist/commands/scope.js.map +1 -1
  480. package/dist/commands/setup.d.ts +6 -15
  481. package/dist/commands/setup.d.ts.map +1 -1
  482. package/dist/commands/setup.js +121 -332
  483. package/dist/commands/setup.js.map +1 -1
  484. package/dist/commands/skill.d.ts.map +1 -1
  485. package/dist/commands/skill.js +6 -1
  486. package/dist/commands/skill.js.map +1 -1
  487. package/dist/commands/slack.d.ts +5 -1
  488. package/dist/commands/slack.d.ts.map +1 -1
  489. package/dist/commands/slack.js +143 -6
  490. package/dist/commands/slack.js.map +1 -1
  491. package/dist/commands/stream.js +1 -1
  492. package/dist/commands/stream.js.map +1 -1
  493. package/dist/commands/terminal.d.ts +33 -0
  494. package/dist/commands/terminal.d.ts.map +1 -1
  495. package/dist/commands/terminal.js +30 -12
  496. package/dist/commands/terminal.js.map +1 -1
  497. package/dist/commands/tui.js +4 -4
  498. package/dist/commands/tui.js.map +1 -1
  499. package/dist/commands/workflow-follow.d.ts +1 -1
  500. package/dist/commands/workflow-follow.d.ts.map +1 -1
  501. package/dist/commands/workflow-follow.js +4 -3
  502. package/dist/commands/workflow-follow.js.map +1 -1
  503. package/dist/commands/workflow.d.ts.map +1 -1
  504. package/dist/commands/workflow.js +30 -18
  505. package/dist/commands/workflow.js.map +1 -1
  506. package/dist/config-store.js +1 -1
  507. package/dist/config-store.js.map +1 -1
  508. package/dist/front-door.d.ts.map +1 -1
  509. package/dist/front-door.js +4 -2
  510. package/dist/front-door.js.map +1 -1
  511. package/dist/herdr-launch-config.d.ts +3 -0
  512. package/dist/herdr-launch-config.d.ts.map +1 -0
  513. package/dist/herdr-launch-config.js +37 -0
  514. package/dist/herdr-launch-config.js.map +1 -0
  515. package/dist/index.d.ts.map +1 -1
  516. package/dist/index.js +2 -1
  517. package/dist/index.js.map +1 -1
  518. package/dist/lib/bundle-source.d.ts +2 -0
  519. package/dist/lib/bundle-source.d.ts.map +1 -1
  520. package/dist/lib/bundle-source.js +12 -1
  521. package/dist/lib/bundle-source.js.map +1 -1
  522. package/dist/lib/context-git.d.ts +2 -0
  523. package/dist/lib/context-git.d.ts.map +1 -1
  524. package/dist/lib/context-git.js +55 -5
  525. package/dist/lib/context-git.js.map +1 -1
  526. package/dist/lib/scope/scope-fs.d.ts +3 -2
  527. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  528. package/dist/lib/scope/scope-fs.js +97 -9
  529. package/dist/lib/scope/scope-fs.js.map +1 -1
  530. package/dist/lib/scope/templates.d.ts.map +1 -1
  531. package/dist/lib/scope/templates.js +28 -24
  532. package/dist/lib/scope/templates.js.map +1 -1
  533. package/dist/provider-auth.d.ts +32 -0
  534. package/dist/provider-auth.d.ts.map +1 -0
  535. package/dist/provider-auth.js +128 -0
  536. package/dist/provider-auth.js.map +1 -0
  537. package/dist/terminal-window.d.ts +19 -0
  538. package/dist/terminal-window.d.ts.map +1 -0
  539. package/dist/terminal-window.js +513 -0
  540. package/dist/terminal-window.js.map +1 -0
  541. package/package.json +1 -1
  542. package/tui/dist/commands/registry.js +1 -1
  543. package/tui/dist/commands/registry.js.map +1 -1
  544. package/tui/dist/config/config-model.d.ts.map +1 -1
  545. package/tui/dist/config/config-model.js +1 -0
  546. package/tui/dist/config/config-model.js.map +1 -1
  547. package/tui/dist/connections/connections-model.d.ts +5 -0
  548. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  549. package/tui/dist/connections/connections-model.js +1 -1
  550. package/tui/dist/connections/connections-model.js.map +1 -1
  551. package/tui/dist/daemon-client.d.ts +5 -0
  552. package/tui/dist/daemon-client.d.ts.map +1 -1
  553. package/tui/dist/daemon-client.js.map +1 -1
  554. package/tui/dist/execution/workflow-model.d.ts.map +1 -1
  555. package/tui/dist/execution/workflow-model.js +3 -1
  556. package/tui/dist/execution/workflow-model.js.map +1 -1
  557. package/tui/dist/hydrate.d.ts +1 -1
  558. package/tui/dist/hydrate.d.ts.map +1 -1
  559. package/tui/dist/hydrate.js +3 -1
  560. package/tui/dist/hydrate.js.map +1 -1
  561. package/tui/dist/main.js +23 -11
  562. package/tui/dist/main.js.map +1 -1
  563. package/tui/dist/page-read.js +1 -1
  564. package/tui/dist/page-read.js.map +1 -1
  565. package/tui/dist/pending-address.d.ts +7 -0
  566. package/tui/dist/pending-address.d.ts.map +1 -0
  567. package/tui/dist/pending-address.js +11 -0
  568. package/tui/dist/pending-address.js.map +1 -0
  569. package/tui/dist/render.d.ts.map +1 -1
  570. package/tui/dist/render.js +9 -5
  571. package/tui/dist/render.js.map +1 -1
  572. package/tui/dist/socket-server.d.ts +3 -1
  573. package/tui/dist/socket-server.d.ts.map +1 -1
  574. package/tui/dist/socket-server.js +6 -0
  575. package/tui/dist/socket-server.js.map +1 -1
  576. package/tui/dist/state.d.ts.map +1 -1
  577. package/tui/dist/state.js +40 -13
  578. package/tui/dist/state.js.map +1 -1
  579. package/tui/dist/stylize.js +1 -1
  580. package/tui/dist/stylize.js.map +1 -1
  581. package/tui/dist/terminals/open-window.d.ts +5 -0
  582. package/tui/dist/terminals/open-window.d.ts.map +1 -0
  583. package/tui/dist/terminals/open-window.js +55 -0
  584. package/tui/dist/terminals/open-window.js.map +1 -0
  585. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  586. package/tui/dist/terminals/terminal-model.js +16 -17
  587. package/tui/dist/terminals/terminal-model.js.map +1 -1
  588. package/tui/dist/types.d.ts +15 -0
  589. package/tui/dist/types.d.ts.map +1 -1
  590. package/ui/dist/assets/{index-HHSvwF97.js → index-D5n8EwkG.js} +1 -1
  591. package/ui/dist/index.html +1 -1
@@ -24,7 +24,9 @@ rig doctor --json
24
24
  ```
25
25
 
26
26
  Use the installed command's `--help` if an option is unavailable. Read the diagnostic findings; don't treat them as
27
- instructions to reset the machine. If the daemon is involved, `rig daemon status` and `rig daemon logs` show its state
27
+ instructions to reset the machine. `rig doctor` checks Claude and Codex authentication using the same local checks
28
+ as setup, including a configured Codex provider credential variable. A set variable does not prove that the provider accepts it or that managed
29
+ seats receive it. Doctor does not run an agent task: also inspect `rig ps --nodes --rig <rig>`. If the daemon is involved, `rig daemon status` and `rig daemon logs` show its state
28
30
  and recent output.
29
31
 
30
32
  **If OpenRig won't install or `rig` won't run, start here anyway.** Record the attempted package version, install
@@ -34,34 +36,58 @@ help.
34
36
  ## Match the guidance to the installed version
35
37
 
36
38
  The reference documents beside this file describe the version they were installed with. GitHub's default branch can
37
- contain changes that haven't reached your user's version. For release notes and known limitations, open
39
+ contain changes that haven't reached your user's version. After an upgrade, start with the short note on what changed
40
+ in the installed version: `rig context get reference/whats-new.md`. For full release notes and known limitations, open
38
41
  `https://github.com/mvschwarz/openrig/blob/v<version>/docs/releases/v<version>.md`, using the version number from
39
- `rig --version` (without the commit it may show in parentheses). If the matching document isn't available, say so
42
+ `rig --version` (without the commit it may show in parentheses). When that file doesn't exist, use the version's
43
+ section of `https://github.com/mvschwarz/openrig/blob/v<version>/CHANGELOG.md`. If neither is available, say so
40
44
  rather than treating a newer command as installed.
41
45
 
42
46
  ## Find your next step
43
47
 
44
48
  ### Installation or platform problems
45
49
 
46
- Supported platforms are macOS and Linux. Native Windows is not supported yet, and WSL2 has not been tested. OpenRig needs
47
- Node.js 22 or 24 and tmux. A WSL error needs its actual versions, commands and error text; don't assume a
48
- Windows-related pull request fixes it.
50
+ Supported platforms are macOS and Linux, and WSL2 on Windows; native Windows isn't supported. OpenRig's automated tests
51
+ don't run on WSL2 yet; one user's [reported working setup](getting-started.md#wsl2-a-reported-working-setup) lists what
52
+ mattered. OpenRig needs
53
+ Node.js 22 or 24 and tmux. A Linux distribution's own Node.js can be older; check `node --version`. With npm 11 or
54
+ later, an `npm warn install-scripts` line for `@openrig/cli` means only the postinstall Node.js and SQLite check was
55
+ skipped; `node "$(npm root -g)/@openrig/cli/scripts/check-abi.mjs"` runs it. A WSL error needs its actual versions,
56
+ commands and error text; don't assume a Windows-related pull request fixes it.
57
+
58
+ The one-command install ([getting-started](getting-started.md#install-and-sign-in)) prints its plan with
59
+ `--dry-run` and changes nothing. When a step fails it prints `FAILED [n/4] <command or check> (exit <code>)` and
60
+ stops. Read its diagnostic: if it names a runnable command, run that command by hand for the full error and record it
61
+ in a report; otherwise follow the accompanying diagnostic. If the only remaining failures are provider sign-ins under
62
+ "Some steps need attention", the install steps finished: sign in to each selected provider and continue.
49
63
 
50
64
  ### Installation finished, but there is nobody to talk to
51
65
 
52
- Follow [Open the kernel conversations](getting-started.md#open-the-kernel-conversations)
53
- (`rig context get reference/getting-started.md#open-the-kernel-conversations`). The default
54
- `rig terminal open saved:kernel --provider herdr` needs no saved-view YAML or starter team. After the selected login
55
- works, start the daemon if stopped, then read `rig status` and `rig ps --nodes --rig kernel`. Started is not ready;
56
- the view can open while the agents finish starting, with that state reported honestly.
57
- Ask **“Open the OpenRig view now?”** Yes opens a new space using installed herdr, else cmux, else the guide's exact
58
- new-terminal command. No gives the command to open it later. Over SSH or without a display, give the exact
59
- connection/attach command. Keep your own terminal and existing user spaces intact; no new view provider is needed.
60
- No, SSH and headless use are valid background outcomes. For herdr, open or attach the actual session and check the
61
- visible view; a created workspace or a CLI running in a new OS window is not visual proof.
62
- Show TUI | advisor | operator for Claude-only, Codex-only and mixed kernels; the queue worker stays accessible through
63
- the TUI. Talk to the operator about your goal before choosing and launching a first project team.
64
- Use the existing recovery routes for unavailable seats; opening a view does not create another kernel or new accounts.
66
+ Load the `rigs` skill and follow its step 2: it opens the OpenRig view (`rig terminal open saved:kernel --window`),
67
+ gives the attach commands when the window can't open or over SSH, and hands the person's goal to the operator.
68
+ [Install and sign in](getting-started.md#install-and-sign-in) says how to load it. The reference for the view, manual
69
+ attachment and the table of what can interrupt it is
70
+ [Open the kernel conversations](getting-started.md#open-the-kernel-conversations)
71
+ (`rig context get reference/getting-started.md#open-the-kernel-conversations`). Started is not ready: the view can
72
+ open while the kernel's agents finish starting, and opening it creates no other kernel or account.
73
+
74
+ ### A step interrupted setup or the OpenRig view
75
+
76
+ Name the exact command and result, the reason it stopped and the next useful step. A harness's permission rules,
77
+ sandbox or automatic permission decision can refuse an installing agent's tool call before OpenRig runs.
78
+ Claude Code's [auto mode can deny calls](https://code.claude.com/docs/en/auto-mode-config); explain the reported
79
+ refusal and let the person review that step in their harness controls or run it themselves, within their chosen
80
+ permissions. Do not silently claim installation failed or completed from a refused call.
81
+
82
+ For missing tools, downloads or selected logins, use the specific setup hint. A Herdr install warning leaves plain
83
+ tmux available. A requested Ghostty install can fail setup; resolve it or decline with `--no-ghostty` and keep the
84
+ earlier choices. Terminal.app remains available; required tools and logins still matter. macOS may ask for
85
+ Automation permission; a missing display or remote daemon needs the documented headless/manual route.
86
+ Herdr may show an intro (Return to continue) and an agent-integration panel (Esc to close); the view does not
87
+ require installing those integrations. Enlarge a cramped 80×24 window. Use authorized desktop tools to inspect the
88
+ window contents, or state that visibility is unconfirmed and ask the person to check. A successful command or
89
+ window listing alone is not visual proof. The [OpenRig view guide and friction table](getting-started.md#open-the-kernel-conversations)
90
+ connects each observation to its next step. Preserve existing conversations while resolving it.
65
91
 
66
92
  ### The team did not start, or a terminal is missing
67
93
 
@@ -114,6 +140,9 @@ issue's current status; a similar symptom alone is not a diagnosis.
114
140
  - A Codex seat on the default `workspace-write` sandbox starts without network access, so it can't reach the local
115
141
  daemon, when its Codex configuration sets network access off, a managed requirement could restrict it, or Codex
116
142
  doesn't answer OpenRig's configuration read in time: [#275](https://github.com/mvschwarz/openrig/issues/275).
143
+ - Kernel seats fail within a second of the first start on a distribution tmux whose server exits on `capture-pane`
144
+ (`tmux -V` prints `next-3.4`): [#980](https://github.com/mvschwarz/openrig/issues/980). The check and recovery
145
+ are in [Incomplete setup and restart](getting-started.md#incomplete-setup-and-restart).
117
146
 
118
147
  For everything else, search [open issues](https://github.com/mvschwarz/openrig/issues).
119
148
 
@@ -6,7 +6,8 @@ This does not sign in to a provider or change any seat's permission policy.
6
6
 
7
7
  The option applies only to seats whose resolved launch posture is `full_bypass`.
8
8
  This must be declared through `builtin:yolo`, a `full_bypass` flag policy, or an explicit `full_bypass` selection;
9
- ambient `OPENRIG_YOLO` alone without an attached policy is not covered.
9
+ ambient `OPENRIG_YOLO` alone without an attached policy is not covered. One exception: kernel Codex seats on the
10
+ kernel's operational default always get the Codex notice overrides below, without this option.
10
11
 
11
12
  - Claude Code receives `--settings '{"skipDangerousModePermissionPrompt":true}'`, accepting its bypass-permissions warning.
12
13
  A seat with an explicitly selected native permission mode other than `bypassPermissions` doesn't get it.
@@ -24,7 +25,8 @@ Turning it on for an existing rig works the same way: `rig down <rig-name>`, the
24
25
 
25
26
  For an operator default on **new rigs**, use `rig config set launch.non_interruptive true`, or set
26
27
  `OPENRIG_LAUNCH_NON_INTERRUPTIVE` in the daemon's environment (it overrides the config file).
27
- The default is false; an explicit positive or negative command-line flag overrides it. Existing rigs
28
+ The default is false; a rig spec's `non_interruptive` overrides it (see below), and an explicit positive or
29
+ negative command-line flag overrides both. Existing rigs
28
30
  keep their saved choice when the operator default changes. On a remote install the receiving daemon's
29
31
  default applies.
30
32
 
@@ -34,8 +36,9 @@ and, for each affected seat, "Non-interruptive: OpenRig accepted Claude's bypass
34
36
  Codex's full-access and GPT-5.1 migration notices… no warning-acceptance settings were written."
35
37
 
36
38
  A bundle's before-install view (`rig bundle inspect`) says when this option is available for its full-bypass
37
- Claude and Codex seats, and that Claude Code asks once to accept its warning otherwise. See
38
- [bundle formats](bundle-formats.md).
39
+ Claude and Codex seats, and that Claude Code asks once to accept its warning otherwise. When the bundle's `rig.yaml`
40
+ declares `non_interruptive: true`, it says instead that the bundle's launches are non-interruptive by default, and
41
+ leaves out the asks-once note. See [bundle formats](bundle-formats.md).
39
42
 
40
43
  This feature writes no warning-acceptance settings to Claude or Codex files. It uses the launch-flag
41
44
  surfaces checked in Claude Code 2.1.282 and Codex 0.153.4. Other notices introduced by later harness
@@ -115,7 +115,7 @@ an explicit install whose `install.skills` is empty clears it. This keeps
115
115
  catalog, the workspace root itself is the project (`selectedBy: workspace`, or
116
116
  `explicit` with a matching `--project`), and `--project` must match its
117
117
  `project.yaml` id. Operating posture uses steps 3-5
118
- the same way when a queue row names no project (see
118
+ the same way when a task names no project (see
119
119
  [scoped operating posture](scoped-operating-posture.md)).
120
120
 
121
121
  1. `--project <id>`;
@@ -160,7 +160,7 @@ existing file-reader allowlist. Catalog membership does not grant file-read or
160
160
  execution permission. These views only read; they do not select a lifecycle
161
161
  operation or activate a mission. Execution and slice queue membership require
162
162
  an exact `project:<id>` tag; lifecycle instances use their authored project
163
- identity. Unscoped historical queue rows and global review artifacts without
163
+ identity. Unscoped historical tasks and global review artifacts without
164
164
  project binding are excluded from project-specific claims.
165
165
 
166
166
  The read API adds `GET /api/scopes/projects` and optional `project` and
@@ -35,9 +35,9 @@ Two optional files sit beside `rig.yaml`:
35
35
  rig bundle check ./my-team # checks the folder against the standard; launches nothing
36
36
  ```
37
37
 
38
- Fix what it reports, or say in your README why a finding doesn't apply. Any finding exits 1, and `--json` names the file
39
- each finding is about. It checks the folder on disk, including files you haven't committed, so check again at the
40
- commit you share. README completeness and embedded secrets always read `not_checked`: those are yours to review.
38
+ Fix what it reports, or say in your README why a finding doesn't apply. Any finding exits 1, and the output names the
39
+ file a finding is about when there is one. It checks the folder on disk, including files you haven't committed, so
40
+ check again at the commit you share. README completeness and embedded secrets always read `not_checked`: those are yours to review.
41
41
 
42
42
  You can also build and look inside the archive:
43
43
 
@@ -77,12 +77,15 @@ ask.
77
77
 
78
78
  Links need `git`, a running local OpenRig daemon, and a public GitHub link without credentials; they don't work with
79
79
  `--host`. If the team uses `permission_policy: builtin:yolo` (no permission prompts), `--non-interruptive` lets OpenRig accept the harnesses'
80
- first-launch warnings for you (see [non-interruptive mode](non-interruptive-mode.md)).
80
+ first-launch warnings for you (see [non-interruptive mode](non-interruptive-mode.md)). As the author, you can make that
81
+ the install default by declaring `non_interruptive: true` in `rig.yaml`; `--no-non-interruptive` overrides it.
81
82
 
82
83
  Installing writes the bundle's files into the install target (`--target`, the current directory if you leave it
83
84
  out) and launches the team from there, with the seats working in `--cwd`. If the target already
84
- has a different file at the same path, install refuses and writes nothing, so use an empty or dedicated directory. The
85
- reference's "Install a bundle" section has the details.
85
+ has a different file at the same path, install refuses and writes nothing, so use an empty or dedicated directory.
86
+ Installing again over a stopped team of the same name replaces it, and in its own install folder the changed files are
87
+ backed up first under `~/.openrig/bundle-backups/`. A running team of the same name is refused, so stop it with
88
+ `rig down` first. The reference's "Install a bundle" section has the details.
86
89
 
87
90
  ## 5. Choose your harnesses (when a bundle offers configurations)
88
91
 
@@ -99,14 +102,14 @@ or **"Not tested by OpenRig"**, which means exactly that. You're welcome to run
99
102
 
100
103
  ## 6. Submit it to openrig.dev/rigs
101
104
 
102
- Open a pull request to [mvschwarz/openrig-world](https://github.com/mvschwarz/openrig-world) that adds one file,
105
+ Open a pull request to [mvschwarz/openrig-registry](https://github.com/mvschwarz/openrig-registry) that adds one file,
103
106
  `registry/submissions/<your-team>.yaml`, with three fields: `repository` (your GitHub repository URL), `folder` (the
104
107
  folder holding `rig.yaml`, or `.` for the repository root) and `ref` (a branch, tag or commit). No pull requests? Open
105
108
  an issue there with the same three things. A maintainer then writes the full entry, in the `registry-entry.v1` format
106
109
  defined in the [bundle formats reference](bundle-formats.md), with the parts only a review can produce, such as the
107
110
  pinned commit and each configuration's package digest.
108
111
 
109
- Rig names are unique on the site. If `registry/<your-team>.yaml` already exists, the check says the name is taken;
112
+ Rig names are unique on the site. If `registry/<your-team>.yaml` already exists, openrig-registry's registry check says the name is taken;
110
113
  choose a distinct one, for example `<taken-name>-<your-name>`.
111
114
 
112
115
  What happens next:
@@ -14,7 +14,7 @@ it is the mechanism that makes shipped chain files (see
14
14
  |---|---|---|---|
15
15
  | UserPromptSubmit | ✓ | ✓ | deliver due or on-demand context at a model-visible boundary |
16
16
  | Stop | ✓ | — | catch a long Claude turn crossing the growth threshold |
17
- | PostCompact | ✓ | ✓ | retain exact compaction due-state; deliver on the next prompt |
17
+ | PostCompact | ✓ | ✓ | retain exact compaction due-state; deliver on the next actionable prompt |
18
18
 
19
19
  Claude's additional firing signal is **transcript growth** — not turns (one turn
20
20
  can burn 200k tokens across fifty tool calls) and not wall-clock (the failure is
@@ -25,7 +25,12 @@ redundant double-fire around Codex's own compaction cadence. Set
25
25
  `OPENRIG_REFOCUS_NOW=1` for an on-demand refocus and
26
26
  `OPENRIG_REFOCUS_ENABLED=0` to disable the feature. Fresh `SessionStart` is
27
27
  always a no-op: the default onboarding pack owns fresh orientation. Both
28
- runtimes retain `PostCompact` due-state for the next prompt. Otherwise the hook
28
+ runtimes retain `PostCompact` due-state for the next prompt. After a managed Claude
29
+ compaction, the acknowledgement-only boundary and other prompts (for up to 10 minutes)
30
+ are skipped without consuming that state, so the hook delivers on the restore request
31
+ (after 10 minutes, on the next prompt);
32
+ that request asks the seat to read the refocusing skill and consume the delivered
33
+ traces rather than rerun them, and the read-depth audit accounts for them. Otherwise the hook
29
34
  is a no-op (it writes a stderr advisory when the transcript shrinks or the
30
35
  session has no identity), and it degrades to silence on unrelated hook errors.
31
36
  Both runtimes stop the hook after 5 seconds, and the content REF lookup gets 2;
@@ -34,6 +39,13 @@ configured REF resolution failure instead degrades
34
39
  loudly in the delivered payload while still completing the hook — a refocus
35
40
  must never break a seat's turn.
36
41
 
42
+ Failed trace or configured-content resolution keeps refocus due. After three
43
+ consecutive failed attempts for the same seat and occupant, the hook emits one
44
+ idempotent issue-stream item tagged `issue,refocus`, visible through `rig stream
45
+ list --tag refocus`. A successful delivery resets that failure episode. An
46
+ unconfirmed stream write keeps the same item ID for the next failed attempt; it
47
+ does not send a wake, change seat status, or prove the agent read the content.
48
+
37
49
  Because the hook runs at the seat's own turn boundaries, delivery to a
38
50
  RUNNING seat needs no relaunch, no operator action, and no message traffic:
39
51
  the next prompt the seat processes carries the content. The latency bound is
@@ -1,8 +1,8 @@
1
1
  # RigBundle Reference
2
2
 
3
3
  Version: 2 (pod-aware)
4
- Last validated against code: 2026-10-05, whole document, at main `a350c59b`
5
- Source of truth: `packages/daemon/src/domain/bundle-types.ts`, `packages/daemon/src/domain/bundle-archive.ts`, `packages/daemon/src/domain/pod-bundle-assembler.ts`, `packages/daemon/src/routes/bundles.ts`, `packages/cli/src/commands/bundle.ts`
4
+ Last validated against code: 2026-10-07, at the 0.6.6 cut `2620dea8` (whole document at `a350c59b`; changes to its sources since then checked)
5
+ Source of truth: `packages/daemon/src/domain/bundle-types.ts`, `packages/daemon/src/domain/bundle-archive.ts`, `packages/daemon/src/domain/pod-bundle-assembler.ts`, `packages/daemon/src/routes/bundles.ts`, `packages/cli/src/commands/bundle.ts`, `packages/daemon/src/domain/bundle-install-context.ts`, `packages/daemon/src/domain/bundle-source-resolver.ts`, `packages/daemon/src/domain/bootstrap-orchestrator.ts`
6
6
 
7
7
  A `.rigbundle` is a self-contained distributable archive that packages a rig spec, all referenced agent specs, their resources (skills, guidance, startup files), culture file, documentation, and an integrity manifest into a single file. The recipient can install and launch the rig without needing the original source tree.
8
8
 
@@ -20,8 +20,8 @@ Replace `COMMIT` with a full commit ID. Branches and tags are also accepted, inc
20
20
  resolve once to a full commit before fetching. Each result names the resolved source, configuration ID, package digest
21
21
  and assembler. Save the printed commit-pinned URL to repeat the same source selection. Only a full 40-character commit
22
22
  ID counts as a commit; a shorter one is looked up as a branch or tag name. `--preset` and repeatable
23
- `--seat pod.member=runtime` select only configurations the folder declares. A link build is named `github-bundle`
24
- unless `--name` says otherwise.
23
+ `--seat pod.member=runtime` select only configurations the folder declares. A link build takes the rig's `name` from
24
+ its `rig.yaml` unless `--name` says otherwise, and is named `github-bundle` when `rig.yaml` has no readable name.
25
25
 
26
26
  Link import needs a running, verified local daemon and a credential-free, publicly readable GitHub URL. It does not
27
27
  upload files to remote daemons. For a remote target, run the link command on that host, or create an archive, transfer
@@ -59,7 +59,8 @@ checks pod-aware rig validity, README inclusion in `docs`, readable declared fil
59
59
  minimum-version shape, declared preset consistency and known sensitive filenames. It does not contact a daemon,
60
60
  build an archive, run preflight or launch anything. Findings give exit status 1; they are never an install gate. It
61
61
  reads the folder on disk, not a link or a commit, so files that aren't committed are checked too. Human output gives
62
- each rule's status, ID and reason; `--json` also names the files a finding is about.
62
+ each rule's status, ID and reason, then the file it's about in parentheses when there is one; `--json` carries the
63
+ same as a `path` field.
63
64
 
64
65
  README completeness and arbitrary embedded secrets need human review and are reported as `not_checked`. A bounded
65
66
  or unreadable scan is also `not_checked`, never a clean scan. The check is advice for authors, not a security audit or
@@ -283,7 +284,7 @@ rig bundle create <spec-path-or-github-link> -o <output.rigbundle> [--rig-root <
283
284
  | `--seat <pod.member=runtime>` | no | — | Use this runtime for one seat, within what `configurations.yaml` allows. Repeatable; applied after `--preset`. An undeclared choice is refused with the allowed set, and nothing is built. |
284
285
  | `--context-pack <dir>` | no | — | Carry the context pack in `<dir>`. Repeatable. The directory may be outside the rig folder, for example a world pack whose `manifest.yaml` is at its repository root. Only `manifest.yaml` and the files it declares are carried, the same set `rig context add --git` installs, and the pack lands in the bundle at `context-packs/<manifest name>/`. Needs a pod-aware spec. |
285
286
  | `--project-dir <dir>` | no | — | Carry the project the rig works in: the folder holding its `project.yaml` (which must declare an `id`) and files beside it, such as `SPEC.md`. On install the project is registered in the workspace catalog and the rig is associated with it, before any seat launches (see [project-workspace.md](project-workspace.md)). Needs a pod-aware spec. |
286
- | `--name` | no | `my-bundle` (`github-bundle` for a link) | Bundle name in the manifest. |
287
+ | `--name` | no | the rig's `name` in `rig.yaml`; `my-bundle` (`github-bundle` for a link) when it has no readable name | Bundle name in the manifest. |
287
288
  | `--bundle-version` | no | `0.1.0` | Bundle version in the manifest. |
288
289
  | `--min-cli-version`, `--min-daemon-version` | no | — | The oldest OpenRig CLI or daemon that may install the bundle, checked on install. For a link they override the author's `bundle.yaml` minimums. |
289
290
  | `--notes <text>` | no | — | Notes stored in the manifest's provenance. |
@@ -334,7 +335,9 @@ Under "Needs (not checked)" the view lists the author's setup preconditions, wit
334
335
  shell, in order". For a declared full-bypass Claude seat it notes that Claude Code asks once to accept its bypass
335
336
  warning, and when any Claude or Codex seat is full bypass it says that `--non-interruptive` is available (see
336
337
  [non-interruptive mode](non-interruptive-mode.md)). It doesn't select the mode or check whether you've already
337
- accepted the warning.
338
+ accepted the warning. When the bundle's `rig.yaml` declares `non_interruptive: true`, the view instead says that the
339
+ bundle declares non-interruptive launches for those seats, with broad file, command and network access, and that
340
+ `--no-non-interruptive` overrides it; the asks-once note is left out.
338
341
 
339
342
  `rig bundle install` and bundle-form `rig up` print this same view to stderr before the existing action, including
340
343
  `--plan`. With `--json`, stdout remains one result; its optional `behaviour` field carries the structured view.
@@ -367,9 +370,9 @@ rig bundle install <bundle-path-or-github-link> [--plan] [--yes] [--target <root
367
370
  | `--target <root>` | yes in apply mode, for an archive path | the current directory for a link | Directory the bundle is installed into and launched from. Required for an archive path unless `--plan` is used. |
368
371
  | `--cwd <dir>` | no | — | Working directory for every launched member, for this install only (for example, the repository the rig works on). Does not change the install target. |
369
372
  | `--preset <name>`, `--seat <pod.member=runtime>` | no | — | For a GitHub link, the declared configuration to build and install. |
370
- | `--non-interruptive` | no | off, or the operator setting `launch.non_interruptive` | Accept the harnesses' first-launch warnings for this rig's full-bypass Claude and Codex seats with launch flags, writing nothing to your settings. The choice is saved on the rig. `--no-non-interruptive` turns a saved choice off; stop a running rig with `rig down` first. See [non-interruptive mode](non-interruptive-mode.md). |
373
+ | `--non-interruptive` | no | the bundle `rig.yaml`'s `non_interruptive`, else the operator setting `launch.non_interruptive`, else off | Accept the harnesses' first-launch warnings for this rig's full-bypass Claude and Codex seats with launch flags, writing nothing to your settings. The choice is saved on the rig. `--no-non-interruptive` turns a saved choice off; stop a running rig with `rig down` first. See [non-interruptive mode](non-interruptive-mode.md). |
371
374
  | `--skip-version-check` | no | off | Skip the compatibility check below. Not for routine use. |
372
- | `--force` | no | off | Skip the rig-name conflict check below. Not for routine use: a conflict can leave a partial install. |
375
+ | `--force` | no | off | Skip the running-team check below. Not for routine use. A pod-aware bundle is still refused before target files are written when a team with the same name is running; a legacy (schema 1) bundle can be left partly installed. |
373
376
  | `--json` | no | `false` | Emit machine-readable JSON. |
374
377
 
375
378
  Install **launches the rig**; it does not just unpack it. It extracts the bundle to a temporary directory, validates integrity, and bootstraps the rig. In apply mode, the daemon requires `targetRoot`, so `rig bundle install` must be given `--target <root>` for an archive path unless you are running with `--plan`.
@@ -377,16 +380,28 @@ Install **launches the rig**; it does not just unpack it. It extracts the bundle
377
380
  Before it plans or applies, install runs two checks on the archive, both also under `--plan`:
378
381
  - **compatibility:** the manifest's `min_daemon_version` and `min_cli_version` against this daemon and CLI. A failure
379
382
  reports "Bundle compatibility check failed" with the versions involved.
380
- - **rig-name conflict:** the bundle's rig name against every rig this daemon knows, running or not. A match reports
381
- "Bundle install conflict check failed".
383
+ - **running team:** a running team with the bundle's rig name refuses the install with "Bundle install conflict check
384
+ failed". The error names the installed and the offered team and lists three choices: use the existing team, stop it
385
+ with `rig down` and retry to replace it, or cancel. This check does not refuse a stopped team with that name.
382
386
 
383
- Each error lists its fixes, including the override flag.
387
+ Each error lists its fixes; the compatibility error also names `--skip-version-check`. `--skip-version-check` and
388
+ `--force` skip only these two checks: the manifest safety check of its `rig_spec` and `project` entries always runs.
389
+
390
+ For a pod-aware (schema version 2) bundle, installing a team whose rig name matches a stopped team replaces it: the
391
+ earlier team is archived when the new one is created, and the result gives the `rig unarchive <id>` command that
392
+ restores it. If OpenRig cannot confirm the earlier team is stopped, install refuses with `generation_unconfirmed` and
393
+ creates no replacement team. For an install into that team's own install folder, OpenRig makes this check before
394
+ writing any files; for any other target, bundle files already copied there stay.
395
+
396
+ A legacy (schema version 1) bundle does not replace a stopped team. Its approved external and package install steps run
397
+ first, and then its rig-name check fails preflight with "Rig name '<name>' already exists".
384
398
 
385
399
  For a pod-aware (schema version 2) bundle, apply copies every extracted file (`bundle.yaml`, `rig.yaml`, `agents/`, culture and docs files, and any carried `project/`, `context-packs/` and author-declared contents) into the target and launches from there, then removes the temporary extraction. So:
386
400
 
387
401
  - the target becomes the rig root: `agent_ref` paths resolve inside it, and a member with `cwd: "."` starts in the target (every pod-aware member must declare a `cwd`);
388
402
  - an absolute member `cwd` stays as authored, and `--cwd <dir>` (on `rig bundle install` or `rig up`) still overrides every member's cwd;
389
- - if the target already has a file with **different** content at any bundle path (for example its own `rig.yaml`), install refuses with `target_conflict` and writes nothing. Identical target files don't cause a target-content conflict; the other installation checks above, including the rig-name conflict check, still apply. Use an empty or dedicated directory as the target.
403
+ - if the target already has a file with **different** content at any bundle path (for example its own `rig.yaml`), install refuses with `target_conflict` and writes nothing. Identical target files don't cause a target-content conflict; the other installation checks above, including the running-team check, still apply. Use an empty or dedicated directory as the target.
404
+ - exception: reinstalling over a stopped team into that team's own install folder (the target's `bundle.yaml` is schema version 2 with the same bundle name, or with `my-bundle` or `github-bundle`, the default names before 0.6.7) replaces its files there. Each differing path is first copied under `<OpenRig home>/bundle-backups/reinstall-*/files/`, with a `RESTORE.json` beside it; other files in the folder are kept. The files stay installed even if a later launch fails.
390
405
 
391
406
  The bundle's declared skills, plugins, workflow specs, context packs and agent images are routed into your libraries **before any member launches**, and the context-pack library is rescanned, so a member's first turn can already read a pack the bundle carried. A routing failure does not stop the install: it is printed as a warning, returned in `routingFailures`, and recorded in the install audit. The human output lists what each declared kind routed and any entry that was not routed.
392
407
 
@@ -437,17 +452,20 @@ rig up <bundle-path-or-github-link> [--target <root>] [--cwd <dir>] [--plan] [--
437
452
  take different routes:
438
453
  - **A GitHub link** builds the archive and installs it through the `rig bundle install` path, with its compatibility
439
454
  and rig-name checks and the install audit.
440
- - **A local `.rigbundle` path** goes through the bundle bootstrap path directly. It skips the compatibility and
441
- rig-name checks, isn't recorded in the install audit (so `rig bundle history` doesn't list it), and doesn't print the
442
- routing summary. A legacy (schema 1) archive gets no post-install routing this way. To get the checks and the audit
443
- for a local archive, use `rig bundle install` or `rig bootstrap`.
455
+ - **A local `.rigbundle` path** goes through the bundle bootstrap path directly. It skips the compatibility check,
456
+ isn't recorded in the install audit (so `rig bundle history` doesn't list it), and doesn't print the routing summary.
457
+ For a pod-aware archive, a running team with the same name is still refused before target files are written, and a
458
+ stopped one is replaced as described under "Install a bundle". A legacy (schema 1) archive runs its approved install
459
+ steps before its rig-name check, which then refuses a running team and fails preflight for a stopped one; it also
460
+ gets no post-install routing this way. To get the checks and the audit for a local archive, use `rig bundle install`
461
+ or `rig bootstrap`.
444
462
 
445
463
  `rig bootstrap <bundle-path>` also accepts archives and uses the ordinary bundle
446
464
  install path, including compatibility checks and the install audit. Use `--plan`
447
465
  to preview, or `--target <root>` to choose the persistent install directory. Its
448
466
  default target is the caller's current directory; `--cwd` only changes the agents'
449
467
  working directory. YAML files and library spec names keep the spec bootstrap path.
450
- It prints no behaviour view and has no `--non-interruptive` option.
468
+ It prints no behaviour view and has no `--non-interruptive` option; a bundle's declared `non_interruptive` still applies.
451
469
 
452
470
  - `--target <root>` is the install target described above (for a schema-version-2 bundle, the directory the bundle is copied into and launched from)
453
471
  - if `--target` is omitted for a `.rigbundle` or a link, the CLI defaults the install target to the current working directory, so the bundle's files are written there
@@ -609,4 +627,6 @@ Equivalent explicit form:
609
627
  rig up /path/to/my-team.rigbundle --target ~/projects/my-project
610
628
  ```
611
629
 
612
- The bundle is extracted to a temporary directory and its integrity is verified. A schema-version-2 bundle is then copied into the target root (refused if the target holds different files at the same paths) and the rig is launched from there, with all agents and resources from the bundle. If you also want agents to launch with a different working directory for that run, pass `--cwd <dir>` separately.
630
+ The bundle is extracted to a temporary directory and its integrity is verified. A schema-version-2 bundle is then copied into the target root and the rig is launched from there, with all agents and resources from the bundle. If you also want agents to launch with a different working directory for that run, pass `--cwd <dir>` separately.
631
+
632
+ A running team must be stopped before reinstalling. Reinstalling into a stopped team's recorded install folder preserves conflicting files in the instance's `bundle-backups` directory; the result names the backup. The folder must still contain that bundle's installed manifest. A copied same-name manifest in another folder does not authorize replacing its conflicting files. Other targets retain first-install behavior: different files at the same paths are refused before writing. New installations record the canonical target folder for each generation, independently of `--cwd`. Older generations and new generations created directly from `rig.yaml` have no recorded folder and retain the manifest-only check until their next successful bundle installation, so a copied same-name manifest can still qualify for those generations.
@@ -1,8 +1,8 @@
1
1
  # RigSpec Reference
2
2
 
3
3
  Version: 0.2 (pod-aware)
4
- Last validated against code: 2026-10-05, at main `fcaf1f8e`
5
- Source of truth: `packages/daemon/src/domain/rigspec-schema.ts`, `packages/daemon/src/domain/types.ts`, `packages/daemon/src/domain/startup-validation.ts`, `packages/daemon/src/domain/permission-policy/policy-ref.ts`, `packages/daemon/src/domain/profile-resolver.ts`, `packages/daemon/src/domain/rigspec-preflight.ts`
4
+ Last validated against code: 2026-10-07, at the 0.6.6 cut `2620dea8` (whole document at `fcaf1f8e`; changes to its sources since then checked)
5
+ Source of truth: `packages/daemon/src/domain/rigspec-schema.ts`, `packages/daemon/src/domain/types.ts`, `packages/daemon/src/domain/startup-validation.ts`, `packages/daemon/src/domain/permission-policy/policy-ref.ts`, `packages/daemon/src/domain/profile-resolver.ts`, `packages/daemon/src/domain/rigspec-preflight.ts`, `packages/daemon/src/adapters/kernel-authority.ts`, `packages/daemon/src/domain/native-permission-store.ts`, `packages/daemon/src/domain/codex-team-workspace.ts`
6
6
 
7
7
  This is the canonical reference for the pod-aware RigSpec YAML format. Every field, validation rule, and default documented here was traced from the actual parser and validator code, not from prior documentation.
8
8
 
@@ -226,12 +226,35 @@ Claude keeps `acceptEdits` and receives inline session settings allowing ordinar
226
226
  `rig` commands, project reads and common project test commands (for example,
227
227
  `npm test`, `pnpm test`, `pytest`, `go test` and `cargo test`). Lifecycle commands
228
228
  such as `rig up`, `rig down`, `rig restore`, `rig bundle install` and seat stop or
229
- handover are listed as **ask** rules. Native deny and ask rules take precedence
230
- over allow rules. These are native command-matching rules, not filesystem
231
- containment: a project's test command can execute code. Flags before the verb
232
- (for example, `rig --host vps up`) or wrapper commands may not match the lifecycle
233
- prefixes. OpenRig does not write these settings into a personal or project
234
- permission file.
229
+ handover ask through a session `PreToolUse` hook. Their literal help forms, such
230
+ as `rig down --help`, `rig bundle install -h` and `rig help down`, run without
231
+ that lifecycle prompt. Native personal, project and managed deny/ask rules still
232
+ apply; OpenRig does not remove or override them.
233
+
234
+ For allowances, the hook recognizes literal command words (including quoted or absolute paths),
235
+ leading environment assignments that do not change executable lookup or startup,
236
+ and `env`, `command` and `exec` wrappers without options other than `--`.
237
+ Relative executable paths and assignments such as `PATH` or `NODE_OPTIONS` stay
238
+ with native checks. The same existing team allowances apply after spelling
239
+ normalization; project `node_modules/.bin/vitest` and `jest` paths match their
240
+ existing `npx` allowances. It does not automatically allow pipelines, command
241
+ substitutions, redirects, heredocs, shell functions or other unrecognized syntax.
242
+ Lifecycle prefixes are checked at every word position, including after wrappers,
243
+ control-flow words and CLI argument separators. A `--` separator before or after
244
+ the subcommand ends option parsing, so a later `--help` is an operand and still
245
+ asks. Ask detection also scans with comment text retained, so a `#` inside a
246
+ substitution does not hide a later lifecycle command. Unquoted prose or comments
247
+ containing a lifecycle command may also ask; ordinary trailing comments do not
248
+ change allowance matching. Quoted messages and quoted heredoc bodies remain data.
249
+ Arithmetic shifts are not treated as heredoc operators. These are command
250
+ allowances, not containment: a project's test command can execute code. The
251
+ hook and allowances are passed with `--settings` at launch, including resume
252
+ and fork; nothing is written to personal or project permission files.
253
+
254
+ If the helper asset is missing at launch, OpenRig falls back to the native lifecycle
255
+ ask rules; help can prompt in that fallback. A helper that disappears or times out
256
+ after launch cannot supply a decision, leaving Claude's remaining native rules
257
+ in effect. The hook is a convenience policy, not a containment boundary.
235
258
 
236
259
  Codex keeps `workspace-write` with its existing approval policy and receives the
237
260
  configured OpenRig workspace root plus its pod's shared state directory as
@@ -267,7 +290,8 @@ The destructive class is `delete_everything`, `drop_persistent_store` and
267
290
  **At launch.** `builtin:yolo` selects Claude `--dangerously-skip-permissions`, Codex
268
291
  `-s danger-full-access -a never`, and Pi `--approve`. `builtin:auto` selects Claude
269
292
  `--permission-mode auto`, while Codex and Pi do not have an auto mode and launch at the floor.
270
- Every other seat launches at the floor:
293
+ Every other seat launches at the floor (a non-kernel seat with no policy also gets the
294
+ [team launch default](#team-launch-defaults) above):
271
295
  - Claude `--permission-mode acceptEdits`;
272
296
  - Codex `-s workspace-write`, or `-p <profile>` when the member sets
273
297
  `codex_config_profile`, in which case the profile governs its own sandbox;
@@ -276,7 +300,8 @@ Every other seat launches at the floor:
276
300
  Seats of the rig named `kernel` are the exception. With no member or rig policy, no
277
301
  per-seat choice and (for Codex) no named profile, Claude launches in `acceptEdits` with a
278
302
  per-launch `--settings` allow list for its file tools and operational commands, and Codex
279
- launches with `-s danger-full-access -a never`.
303
+ launches with `-s danger-full-access -a never`, plus per-launch `-c` overrides that hide its
304
+ full-access and GPT-5.1 migration notices, whatever the rig's non-interruptive choice.
280
305
 
281
306
  **Config-surface policies are recorded, not applied at launch.** The seat still starts at
282
307
  the floor. The `allow`, `ask` and `deny` rules take effect once they are translated into the
@@ -388,7 +413,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
388
413
 
389
414
  - **State:** Each seat uses `$OPENRIG_HOME/state/pi/<session>/agent` as its Pi agent directory, with `sessions/` beside it, instead of your default `~/.pi/agent`. The runner sets `PI_CODING_AGENT_DIR` to that directory. `<session>` is the seat's session name, unchanged; for a pod member it is `{podId}-{memberId}@{rigName}`. `$OPENRIG_HOME` defaults to `~/.openrig`. OpenRig creates these directories at launch and does not copy anything from `~/.pi/agent`.
390
415
  - **Custom models:** Pi reads `models.json` from its agent directory, so a seat reads `$OPENRIG_HOME/state/pi/<session>/agent/models.json`, not `~/.pi/agent/models.json`. Custom provider and model definitions for a seat go in that file. A seat that uses only providers Pi already includes does not need one. OpenRig does not create or write `models.json`.
391
- - **Credentials:** The Pi process receives only `PATH`, `HOME`, `USER`, `LOGNAME`, `TERM`, `LANG`, `LC_ALL`, `SHELL`, `TMPDIR`, a fixed set of OpenRig seat and instance variables, `PI_CODING_AGENT_DIR`, `PI_CODING_AGENT_SESSION_DIR`, and at most one provider key. That key is `OPENROUTER_API_KEY`, `ZAI_API_KEY` or `KIMI_API_KEY`, passed only when it is set in the seat's environment and the seat's `model` is written as `openrouter/<id>`, `zai/<id>` or `kimi-coding/<id>`. Naming that variable in `recovery.provider_auth_env_allowlist` (empty by default) makes the daemon add it, when set in the daemon's environment, to the seat's launch environment. No other variable reaches Pi, including other providers' keys and a custom provider's own key variable.
416
+ - **Credentials:** The Pi process receives only `PATH`, `HOME`, `USER`, `LOGNAME`, `TERM`, `LANG`, `LC_ALL`, `SHELL`, `TMPDIR`, a fixed set of OpenRig seat and instance variables, `PI_CODING_AGENT_DIR`, `PI_CODING_AGENT_SESSION_DIR`, and at most one provider key. That key is `OPENROUTER_API_KEY`, `ZAI_API_KEY`, `KIMI_API_KEY` or `MINIMAX_API_KEY`, passed only when it is set in the seat's environment and the seat's `model` is written as `openrouter/<id>`, `zai/<id>`, `kimi-coding/<id>` or `minimax/<id>`. Naming that variable in `recovery.provider_auth_env_allowlist` (empty by default) makes the daemon add it, when set in the daemon's environment, to the seat's launch environment. No other variable reaches Pi, including other providers' keys and a custom provider's own key variable.
392
417
 
393
418
  ### Oh My Pi (`runtime: omp`)
394
419
 
@@ -4,7 +4,8 @@ A roster records who to involve for a purpose and why. The same seat can appear
4
4
  rosters with different capabilities and engagement. Membership is a recommendation, not an
5
5
  assignment or a grant of authority. Contact someone with the existing `rig send` or `rig queue` commands.
6
6
 
7
- Put JSON files in `<workspace.root>/rosters/`. Read `workspace.root` with
7
+ Put JSON files in `<workspace.root>/rosters/`; the included starter and factory leads write
8
+ their team's `<rig>.json` there at first start and never replace an existing one. Read `workspace.root` with
8
9
  `rig config get workspace.root`, or use `--folder` to read another folder in place.
9
10
 
10
11
  ```sh
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://openrig.dev/schemas/registry-entry.v1.json",
4
- "title": "Registry entry (openrig-world/registry/<slug>.yaml)",
4
+ "title": "Registry entry (openrig-registry/registry/<slug>.yaml)",
5
5
  "type": "object",
6
6
  "required": [
7
7
  "schema",
@@ -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