@openrig/cli 0.5.10 → 0.5.11

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 (568) hide show
  1. package/daemon/assets/plugins/openrig-core/README.md +24 -5
  2. package/daemon/assets/plugins/openrig-core/skills/agent-operated-workflows/SKILL.md +4 -2
  3. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +11 -14
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +51 -59
  5. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
  6. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +39 -50
  7. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
  8. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +7 -5
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +7 -7
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +55 -64
  12. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
  13. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -9
  14. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
  15. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
  16. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +28 -22
  17. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +13 -15
  18. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -3
  19. package/daemon/context-packs/onboarding-width/public-reference-material.md +19 -24
  20. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +55 -24
  21. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/agent-operated-workflows/SKILL.md +4 -2
  23. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +11 -14
  25. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +51 -59
  27. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +21 -19
  29. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +11 -10
  31. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +84 -148
  33. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +3 -3
  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/SKILL.md +40 -47
  37. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +16 -0
  42. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +12 -10
  46. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
  49. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +11 -10
  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/SKILL.md +39 -50
  57. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +1 -1
  59. package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +7 -5
  60. package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +3 -4
  61. package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +7 -7
  62. package/daemon/context-packs/skills/openrig-user/SKILL.md +55 -64
  63. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +14 -58
  65. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +1 -1
  69. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +2 -2
  72. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +1 -1
  74. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +3 -3
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +41 -59
  79. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
  83. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +29 -15
  88. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +47 -40
  90. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +3 -3
  92. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -9
  94. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +20 -46
  97. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +62 -76
  98. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  99. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +28 -22
  100. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  101. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +13 -15
  102. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  103. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  104. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  105. package/daemon/context-packs/world-public/build-your-world.md +12 -7
  106. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  107. package/daemon/dist/adapters/tmux.d.ts +7 -9
  108. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  109. package/daemon/dist/adapters/tmux.js +7 -35
  110. package/daemon/dist/adapters/tmux.js.map +1 -1
  111. package/daemon/dist/build-info.js +3 -3
  112. package/daemon/dist/daemon-shutdown.d.ts +27 -0
  113. package/daemon/dist/daemon-shutdown.d.ts.map +1 -0
  114. package/daemon/dist/daemon-shutdown.js +84 -0
  115. package/daemon/dist/daemon-shutdown.js.map +1 -0
  116. package/daemon/dist/domain/codex-thread-id.d.ts +1 -0
  117. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  118. package/daemon/dist/domain/codex-thread-id.js +32 -23
  119. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  120. package/daemon/dist/domain/context-usage-store.d.ts +2 -0
  121. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  122. package/daemon/dist/domain/context-usage-store.js +7 -28
  123. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  124. package/daemon/dist/domain/crash-cart-conductor.js +1 -1
  125. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  126. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  127. package/daemon/dist/domain/execution-view.js +24 -3
  128. package/daemon/dist/domain/execution-view.js.map +1 -1
  129. package/daemon/dist/domain/gateway/channel-operations.d.ts +1 -1
  130. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  131. package/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
  132. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
  133. package/daemon/dist/domain/gateway/connections-projection.js +149 -0
  134. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
  135. package/daemon/dist/domain/gateway/human-registry.d.ts +3 -1
  136. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  137. package/daemon/dist/domain/gateway/human-registry.js +3 -1
  138. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  139. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  140. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +3 -2
  141. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  142. package/daemon/dist/domain/health-diagnosis.js +1 -1
  143. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  144. package/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
  145. package/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
  146. package/daemon/dist/domain/lifecycle-obligations.js +35 -0
  147. package/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
  148. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  149. package/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
  150. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  151. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
  152. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  153. package/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
  154. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  155. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
  156. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  157. package/daemon/dist/domain/project-lifecycle-compiler.js +119 -23
  158. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  159. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  160. package/daemon/dist/domain/queue-stuck-sweep.js +1 -0
  161. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  162. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  163. package/daemon/dist/domain/seat-lifecycle-service.js +8 -1
  164. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  165. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  166. package/daemon/dist/domain/startup-orchestrator.js +27 -11
  167. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  168. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  169. package/daemon/dist/domain/startup-proof.js +10 -9
  170. package/daemon/dist/domain/startup-proof.js.map +1 -1
  171. package/daemon/dist/domain/startup-resolver.d.ts +3 -1
  172. package/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
  173. package/daemon/dist/domain/startup-resolver.js +18 -0
  174. package/daemon/dist/domain/startup-resolver.js.map +1 -1
  175. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  176. package/daemon/dist/domain/startup-validation.js +12 -1
  177. package/daemon/dist/domain/startup-validation.js.map +1 -1
  178. package/daemon/dist/domain/types.d.ts +13 -1
  179. package/daemon/dist/domain/types.d.ts.map +1 -1
  180. package/daemon/dist/domain/types.js.map +1 -1
  181. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  182. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  183. package/daemon/dist/domain/user-settings/settings-store.js +14 -0
  184. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  185. package/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
  186. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  187. package/daemon/dist/domain/workflow-boot-sweep.js +3 -0
  188. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  189. package/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
  190. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  191. package/daemon/dist/domain/workflow-exception-escalation.js +22 -21
  192. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  193. package/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
  194. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  195. package/daemon/dist/domain/workflow-exception-router.js +7 -6
  196. package/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  197. package/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
  198. package/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
  199. package/daemon/dist/domain/workflow-human-destination.js +40 -0
  200. package/daemon/dist/domain/workflow-human-destination.js.map +1 -0
  201. package/daemon/dist/domain/workflow-projector.d.ts +4 -3
  202. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  203. package/daemon/dist/domain/workflow-projector.js +26 -17
  204. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  205. package/daemon/dist/domain/workflow-role-context.d.ts +4 -6
  206. package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
  207. package/daemon/dist/domain/workflow-role-context.js +7 -14
  208. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  209. package/daemon/dist/domain/workflow-runtime.d.ts +12 -3
  210. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  211. package/daemon/dist/domain/workflow-runtime.js +66 -14
  212. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  213. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  214. package/daemon/dist/domain/workflow-validator.js +39 -24
  215. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  216. package/daemon/dist/index.d.ts.map +1 -1
  217. package/daemon/dist/index.js +37 -96
  218. package/daemon/dist/index.js.map +1 -1
  219. package/daemon/dist/project-lifecycle-surface.d.ts +1 -1
  220. package/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
  221. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  222. package/daemon/dist/routes/gateway.js +10 -0
  223. package/daemon/dist/routes/gateway.js.map +1 -1
  224. package/daemon/dist/routes/queue.d.ts.map +1 -1
  225. package/daemon/dist/routes/queue.js +4 -3
  226. package/daemon/dist/routes/queue.js.map +1 -1
  227. package/daemon/dist/routes/require-sender-identity.d.ts +3 -1
  228. package/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
  229. package/daemon/dist/routes/require-sender-identity.js +11 -5
  230. package/daemon/dist/routes/require-sender-identity.js.map +1 -1
  231. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  232. package/daemon/dist/routes/sessions.js +95 -27
  233. package/daemon/dist/routes/sessions.js.map +1 -1
  234. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  235. package/daemon/dist/routes/workflow.js +6 -1
  236. package/daemon/dist/routes/workflow.js.map +1 -1
  237. package/daemon/dist/server.d.ts.map +1 -1
  238. package/daemon/dist/server.js +2 -1
  239. package/daemon/dist/server.js.map +1 -1
  240. package/daemon/dist/startup.d.ts.map +1 -1
  241. package/daemon/dist/startup.js +6 -3
  242. package/daemon/dist/startup.js.map +1 -1
  243. package/daemon/docs/reference/agent-spec.md +6 -0
  244. package/daemon/docs/reference/getting-started.md +134 -28
  245. package/daemon/docs/reference/health-diagnosis.md +26 -0
  246. package/daemon/docs/reference/mission-install.md +5 -0
  247. package/daemon/docs/reference/project-release-profile.yaml +82 -0
  248. package/daemon/docs/reference/release-boundary.md +5 -0
  249. package/daemon/docs/reference/rig-spec.md +43 -4
  250. package/daemon/specs/agents/conveyor/planner/guidance/role.md +5 -3
  251. package/daemon/specs/agents/conveyor/planner/startup/context.md +13 -4
  252. package/daemon/specs/agents/design/product-designer/agent.yaml +4 -3
  253. package/daemon/specs/agents/design/product-designer/guidance/role.md +12 -10
  254. package/daemon/specs/agents/product-management/pm/guidance/role.md +19 -17
  255. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +21 -19
  256. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +11 -10
  257. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +84 -148
  258. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +40 -47
  259. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +16 -0
  260. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +12 -10
  261. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +15 -13
  262. package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +1 -1
  263. package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +2 -2
  264. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +1 -1
  265. package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +3 -3
  266. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +41 -59
  267. package/daemon/specs/agents/shared/skills/process/agent-browser/LOCAL-INSIGHTS.md +24 -53
  268. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +29 -15
  269. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +47 -40
  270. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +3 -3
  271. package/daemon/specs/rigs/launch/first-project/CULTURE.md +39 -0
  272. package/daemon/specs/rigs/launch/first-project/rig.yaml +31 -0
  273. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +1 -1
  274. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +21 -7
  275. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +2 -2
  276. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +19 -11
  277. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -2
  278. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +15 -8
  279. package/daemon/specs/rigs/launch/kernel/rig-claude-only.yaml +7 -0
  280. package/daemon/specs/rigs/launch/kernel/rig-codex-only.yaml +7 -0
  281. package/daemon/specs/rigs/launch/kernel/rig.yaml +9 -4
  282. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +6 -4
  283. package/dist/build-info.js +3 -3
  284. package/dist/client.d.ts +6 -20
  285. package/dist/client.d.ts.map +1 -1
  286. package/dist/client.js +53 -32
  287. package/dist/client.js.map +1 -1
  288. package/dist/commands/config.d.ts.map +1 -1
  289. package/dist/commands/config.js +1 -0
  290. package/dist/commands/config.js.map +1 -1
  291. package/dist/commands/context.d.ts.map +1 -1
  292. package/dist/commands/context.js +15 -13
  293. package/dist/commands/context.js.map +1 -1
  294. package/dist/commands/daemon.d.ts.map +1 -1
  295. package/dist/commands/daemon.js +31 -27
  296. package/dist/commands/daemon.js.map +1 -1
  297. package/dist/commands/destroy.js +1 -1
  298. package/dist/commands/destroy.js.map +1 -1
  299. package/dist/commands/health.d.ts.map +1 -1
  300. package/dist/commands/health.js +59 -7
  301. package/dist/commands/health.js.map +1 -1
  302. package/dist/commands/launch.d.ts.map +1 -1
  303. package/dist/commands/launch.js +2 -2
  304. package/dist/commands/launch.js.map +1 -1
  305. package/dist/commands/queue.d.ts.map +1 -1
  306. package/dist/commands/queue.js +9 -5
  307. package/dist/commands/queue.js.map +1 -1
  308. package/dist/commands/send.d.ts.map +1 -1
  309. package/dist/commands/send.js +4 -8
  310. package/dist/commands/send.js.map +1 -1
  311. package/dist/commands/setup.d.ts.map +1 -1
  312. package/dist/commands/setup.js +10 -9
  313. package/dist/commands/setup.js.map +1 -1
  314. package/dist/commands/tui.d.ts +2 -0
  315. package/dist/commands/tui.d.ts.map +1 -1
  316. package/dist/commands/tui.js +26 -10
  317. package/dist/commands/tui.js.map +1 -1
  318. package/dist/commands/walk.d.ts.map +1 -1
  319. package/dist/commands/walk.js +24 -48
  320. package/dist/commands/walk.js.map +1 -1
  321. package/dist/commands/workflow-render.d.ts +19 -0
  322. package/dist/commands/workflow-render.d.ts.map +1 -1
  323. package/dist/commands/workflow-render.js +12 -1
  324. package/dist/commands/workflow-render.js.map +1 -1
  325. package/dist/commands/workflow.d.ts.map +1 -1
  326. package/dist/commands/workflow.js +4 -2
  327. package/dist/commands/workflow.js.map +1 -1
  328. package/dist/config-store.d.ts +2 -1
  329. package/dist/config-store.d.ts.map +1 -1
  330. package/dist/config-store.js +15 -0
  331. package/dist/config-store.js.map +1 -1
  332. package/dist/cross-host-executor.d.ts +1 -1
  333. package/dist/cross-host-executor.js +2 -2
  334. package/dist/cross-host-executor.js.map +1 -1
  335. package/dist/daemon-lifecycle.d.ts +8 -11
  336. package/dist/daemon-lifecycle.d.ts.map +1 -1
  337. package/dist/daemon-lifecycle.js +281 -146
  338. package/dist/daemon-lifecycle.js.map +1 -1
  339. package/dist/daemon-start-lock.d.ts +9 -0
  340. package/dist/daemon-start-lock.d.ts.map +1 -0
  341. package/dist/daemon-start-lock.js +47 -0
  342. package/dist/daemon-start-lock.js.map +1 -0
  343. package/dist/front-door.d.ts.map +1 -1
  344. package/dist/front-door.js +8 -1
  345. package/dist/front-door.js.map +1 -1
  346. package/dist/lib/file-transfer.js +1 -1
  347. package/dist/lib/file-transfer.js.map +1 -1
  348. package/dist/lib/walk-consumption.d.ts +6 -0
  349. package/dist/lib/walk-consumption.d.ts.map +1 -0
  350. package/dist/lib/walk-consumption.js +78 -0
  351. package/dist/lib/walk-consumption.js.map +1 -0
  352. package/dist/local-origin.d.ts +3 -0
  353. package/dist/local-origin.d.ts.map +1 -0
  354. package/dist/local-origin.js +37 -0
  355. package/dist/local-origin.js.map +1 -0
  356. package/dist/read-view.d.ts +17 -0
  357. package/dist/read-view.d.ts.map +1 -0
  358. package/dist/read-view.js +17 -0
  359. package/dist/read-view.js.map +1 -0
  360. package/dist/shared-tui.d.ts +12 -0
  361. package/dist/shared-tui.d.ts.map +1 -0
  362. package/dist/shared-tui.js +37 -0
  363. package/dist/shared-tui.js.map +1 -0
  364. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +7 -9
  365. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  366. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +7 -35
  367. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  368. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  369. package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts +27 -0
  370. package/node_modules/@openrig/daemon/dist/daemon-shutdown.d.ts.map +1 -0
  371. package/node_modules/@openrig/daemon/dist/daemon-shutdown.js +84 -0
  372. package/node_modules/@openrig/daemon/dist/daemon-shutdown.js.map +1 -0
  373. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +1 -0
  374. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  375. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +32 -23
  376. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  377. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts +2 -0
  378. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  379. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js +7 -28
  380. package/node_modules/@openrig/daemon/dist/domain/context-usage-store.js.map +1 -1
  381. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +1 -1
  382. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  383. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  384. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +24 -3
  385. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  386. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +1 -1
  387. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  388. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts +61 -0
  389. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -0
  390. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js +149 -0
  391. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js.map +1 -0
  392. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +3 -1
  393. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  394. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +3 -1
  395. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  396. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  397. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +3 -2
  398. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  399. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +1 -1
  400. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts +18 -0
  402. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.d.ts.map +1 -0
  403. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js +35 -0
  404. package/node_modules/@openrig/daemon/dist/domain/lifecycle-obligations.js.map +1 -0
  405. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  406. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +6 -1
  407. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  408. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts +1 -0
  409. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  410. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +7 -4
  411. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  412. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +7 -0
  413. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  414. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +119 -23
  415. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  416. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +1 -0
  418. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  420. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +8 -1
  421. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  422. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  423. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +27 -11
  424. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  425. package/node_modules/@openrig/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  426. package/node_modules/@openrig/daemon/dist/domain/startup-proof.js +10 -9
  427. package/node_modules/@openrig/daemon/dist/domain/startup-proof.js.map +1 -1
  428. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts +3 -1
  429. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.d.ts.map +1 -1
  430. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js +18 -0
  431. package/node_modules/@openrig/daemon/dist/domain/startup-resolver.js.map +1 -1
  432. package/node_modules/@openrig/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  433. package/node_modules/@openrig/daemon/dist/domain/startup-validation.js +12 -1
  434. package/node_modules/@openrig/daemon/dist/domain/startup-validation.js.map +1 -1
  435. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +13 -1
  436. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  437. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  438. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  439. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  440. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +14 -0
  441. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  442. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts +1 -0
  443. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  444. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js +3 -0
  445. package/node_modules/@openrig/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts +4 -3
  447. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js +22 -21
  449. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  450. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts +4 -3
  451. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  452. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js +7 -6
  453. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts +18 -0
  455. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.d.ts.map +1 -0
  456. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js +40 -0
  457. package/node_modules/@openrig/daemon/dist/domain/workflow-human-destination.js.map +1 -0
  458. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +4 -3
  459. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  460. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +26 -17
  461. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  462. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts +4 -6
  463. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.d.ts.map +1 -1
  464. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js +7 -14
  465. package/node_modules/@openrig/daemon/dist/domain/workflow-role-context.js.map +1 -1
  466. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +12 -3
  467. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  468. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +66 -14
  469. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  470. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +39 -24
  472. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/index.js +37 -96
  475. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts +1 -1
  477. package/node_modules/@openrig/daemon/dist/project-lifecycle-surface.d.ts.map +1 -1
  478. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -1
  479. package/node_modules/@openrig/daemon/dist/routes/gateway.js +10 -0
  480. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  481. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  482. package/node_modules/@openrig/daemon/dist/routes/queue.js +4 -3
  483. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  484. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts +3 -1
  485. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.d.ts.map +1 -1
  486. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js +11 -5
  487. package/node_modules/@openrig/daemon/dist/routes/require-sender-identity.js.map +1 -1
  488. package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
  489. package/node_modules/@openrig/daemon/dist/routes/sessions.js +95 -27
  490. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  491. package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
  492. package/node_modules/@openrig/daemon/dist/routes/workflow.js +6 -1
  493. package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
  494. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  495. package/node_modules/@openrig/daemon/dist/server.js +2 -1
  496. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  497. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  498. package/node_modules/@openrig/daemon/dist/startup.js +6 -3
  499. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  500. package/node_modules/@openrig/daemon/package.json +5 -1
  501. package/package.json +1 -1
  502. package/tui/dist/commands/completion.d.ts +8 -0
  503. package/tui/dist/commands/completion.d.ts.map +1 -0
  504. package/tui/dist/commands/completion.js +37 -0
  505. package/tui/dist/commands/completion.js.map +1 -0
  506. package/tui/dist/commands/registry.d.ts +7 -1
  507. package/tui/dist/commands/registry.d.ts.map +1 -1
  508. package/tui/dist/commands/registry.js +47 -0
  509. package/tui/dist/commands/registry.js.map +1 -1
  510. package/tui/dist/connections/connections-model.d.ts +72 -0
  511. package/tui/dist/connections/connections-model.d.ts.map +1 -0
  512. package/tui/dist/connections/connections-model.js +64 -0
  513. package/tui/dist/connections/connections-model.js.map +1 -0
  514. package/tui/dist/daemon-client.d.ts +1 -0
  515. package/tui/dist/daemon-client.d.ts.map +1 -1
  516. package/tui/dist/daemon-client.js +1 -0
  517. package/tui/dist/daemon-client.js.map +1 -1
  518. package/tui/dist/detail.d.ts +3 -0
  519. package/tui/dist/detail.d.ts.map +1 -1
  520. package/tui/dist/detail.js +23 -0
  521. package/tui/dist/detail.js.map +1 -1
  522. package/tui/dist/execution/execution-model.d.ts +1 -1
  523. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  524. package/tui/dist/execution/execution-model.js +46 -170
  525. package/tui/dist/execution/execution-model.js.map +1 -1
  526. package/tui/dist/execution/workflow-model.d.ts +6 -0
  527. package/tui/dist/execution/workflow-model.d.ts.map +1 -0
  528. package/tui/dist/execution/workflow-model.js +219 -0
  529. package/tui/dist/execution/workflow-model.js.map +1 -0
  530. package/tui/dist/grammar.d.ts.map +1 -1
  531. package/tui/dist/grammar.js +1 -2
  532. package/tui/dist/grammar.js.map +1 -1
  533. package/tui/dist/health/health-model.d.ts +1 -1
  534. package/tui/dist/health/health-model.d.ts.map +1 -1
  535. package/tui/dist/health/health-model.js +5 -4
  536. package/tui/dist/health/health-model.js.map +1 -1
  537. package/tui/dist/hydrate.d.ts.map +1 -1
  538. package/tui/dist/hydrate.js +45 -8
  539. package/tui/dist/hydrate.js.map +1 -1
  540. package/tui/dist/input.d.ts +2 -0
  541. package/tui/dist/input.d.ts.map +1 -1
  542. package/tui/dist/input.js +28 -6
  543. package/tui/dist/input.js.map +1 -1
  544. package/tui/dist/main.js +47 -10
  545. package/tui/dist/main.js.map +1 -1
  546. package/tui/dist/render.d.ts +4 -0
  547. package/tui/dist/render.d.ts.map +1 -1
  548. package/tui/dist/render.js +128 -74
  549. package/tui/dist/render.js.map +1 -1
  550. package/tui/dist/sections.d.ts.map +1 -1
  551. package/tui/dist/sections.js +1 -0
  552. package/tui/dist/sections.js.map +1 -1
  553. package/tui/dist/socket-server.d.ts +4 -0
  554. package/tui/dist/socket-server.d.ts.map +1 -1
  555. package/tui/dist/socket-server.js +4 -0
  556. package/tui/dist/socket-server.js.map +1 -1
  557. package/tui/dist/state.d.ts +3 -1
  558. package/tui/dist/state.d.ts.map +1 -1
  559. package/tui/dist/state.js +47 -9
  560. package/tui/dist/state.js.map +1 -1
  561. package/tui/dist/stylize.js +3 -3
  562. package/tui/dist/stylize.js.map +1 -1
  563. package/tui/dist/time.d.ts +9 -0
  564. package/tui/dist/time.d.ts.map +1 -0
  565. package/tui/dist/time.js +42 -0
  566. package/tui/dist/time.js.map +1 -0
  567. package/tui/dist/types.d.ts +36 -1
  568. package/tui/dist/types.d.ts.map +1 -1
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: cross-host-rig-commands
3
- description: Use when issuing `rig` commands against a remote host via `--host <id>` flag (single-hop SSH to a host declared in `~/.openrig/hosts.yaml`). Covers the 4 structured failure modes (ssh-unreachable / permission-gate / remote-daemon-unreachable / remote-command-failed), the `--verify` honest pass-through (SSH success is NOT verify success), and the host-registry shape. v0 supports `rig send / capture / ps / whoami --host <id>`.
3
+ description: Use when addressing a registered remote OpenRig host, choosing its transport, or interpreting a cross-host result.
4
4
  metadata:
5
5
  cli_surfaces_referenced:
6
6
  - capture
7
7
  - daemon start
8
8
  - host list
9
- - host show
9
+ - host add
10
+ - host doctor
10
11
  - ps
11
12
  - send
12
13
  - whoami
@@ -22,167 +23,102 @@ metadata:
22
23
  - extension-and-user-workspace
23
24
  ---
24
25
 
25
- # Cross-Host Rig Commands
26
+ # Cross-host rig commands
26
27
 
27
- A first-class OpenRig surface for issuing `rig` commands against a
28
- remote host via single-hop SSH. v0 productizes the existing SSH-envelope
29
- operator pattern (`ssh <host> rig <cmd>`) with declared host identity,
30
- explicit cross-host invocation path, preserved `--verify` semantics, and
31
- 4 named failure modes.
28
+ Use a registered host address and the entry's declared transport. SSH entries
29
+ run a remote CLI through a single-hop shell; HTTP entries use the remote daemon.
30
+ These paths have different prerequisites and command coverage. Check the exact
31
+ command's help and the target installation before a consequential operation.
32
32
 
33
- The live host registry may contain SSH or HTTP read-through/tunnel entries.
34
- Use each registry entry as ground truth for transport shape. HTTP entries
35
- require `url` plus exactly one of `bearer_file` or `bearer_env`.
33
+ ## Choose and inspect the destination
36
34
 
37
- **v0 is CLI-side shell-out only — `packages/daemon/` is NOT touched.**
38
- The remote host has its own managed `rig` available on `$PATH`.
39
-
40
- ## Use this when
41
-
42
- - Driving a Tart VM from the host (the immediate cross-host consumer)
43
- - Operating Mac host A against Mac host B
44
- - Reading remote state via `rig ps --host` / `rig whoami --host`
45
- - Sending or capturing on a remote rig session (`rig send/capture --host <id>`)
46
- - Authoring a `~/.openrig/hosts.yaml` registry entry
47
-
48
- ## Don't use this when
49
-
50
- - The target is local. Don't pass `--host` for local commands.
51
- - You need multi-hop SSH (host A → host B → host C). v0 is single-hop only.
52
- - You want reverse direction (remote initiates back to local). v0 is originator-pull only.
53
- - Cross-host **seat handover** (moving a durable owned seat across hosts) — deferred to higher-level primitives. (Cross-host **queue writes**, by contrast, now ship — see "Cross-host queue writes" below.)
54
- - The transport isn't SSH. v0 supports `transport: ssh` only.
55
-
56
- ## Cross-host queue writes (updated 2026-07-21 vs main d37a08ad)
57
-
58
- Cross-host **queue writes** are no longer deferred — they ship — but the rule
59
- differs from the interactive verbs (`send`/`capture`/`ps`/`whoami`):
60
-
61
- - **Queue writes are EXPLICIT-only.** Address the target host explicitly with
62
- `--host <id>` or the `member@rig@<host>` form. A queue write **never** follows a
63
- persisted host selection.
64
- - **`host select` stickiness does NOT apply to queue.** `host select` affects the
65
- `resolveEffectiveHost` verbs (`send`/`capture`/`ps`/`whoami`) — those follow the
66
- selected host — but a queue write ignores it and requires explicit addressing.
67
- - **Host address parsing differs** between the interactive verbs and the queue
68
- verbs; do not assume the interactive form carries over. When unsure, address the
69
- host explicitly.
70
-
71
- ## Host registry shape (`~/.openrig/hosts.yaml`)
72
-
73
- Host ids must be non-empty and unique. Choose stable, operator-meaningful ids
74
- that describe the destination without depending on transient network details.
35
+ `rig host list` shows registered hosts. `rig host add --help` describes registry
36
+ writes; `rig host doctor --help` describes reachability checks. Inspect the
37
+ configured OpenRig home rather than assuming the default `~/.openrig/hosts.yaml`.
38
+ Registry changes affect later routing, so make them within the requested scope.
75
39
 
76
40
  ```yaml
77
41
  hosts:
78
- - id: a-test-vm
79
- transport: ssh # v0 supports "ssh" only
80
- target: a-test-vm.local # DNS name, SSH config alias, or IP
81
- user: example-user # optional
82
- notes: "Tart VM" # optional
83
- - id: laptop-b
42
+ - id: test-vm
84
43
  transport: ssh
85
- target: laptop-b.tail-scale-net
44
+ target: test-vm.local
86
45
  user: example-user
46
+ - id: remote-dev
47
+ transport: http
48
+ url: http://remote-dev.example:7433
49
+ bearer_env: REMOTE_RIG_TOKEN
87
50
  ```
88
51
 
89
- Validation rules:
52
+ The registry requires a hosts array, unique non-empty ids and a supported
53
+ transport. SSH needs a non-empty target; user and notes are optional. HTTP needs
54
+ a URL and accepts at most one of bearer_env or bearer_file. Omitting both is
55
+ valid for a tokenless target. A configured but unavailable bearer is a permission
56
+ failure, not anonymous fallback. Host ids also have reserved-name validation;
57
+ use the actual validator's error rather than inventing an alias that collides.
90
58
 
91
- - `hosts` required, non-null array
92
- - Each entry: `id` required (non-empty, unique), `transport` required (`ssh` only), `target` required
93
- - `user` and `notes` optional
94
- - Operator-managed file; v0 does NOT include any sub-command to add/remove/list hosts (operators edit YAML directly)
95
- - Missing or invalid file returns a clear error pointing at the canonical path
96
-
97
- ## CLI surface (v0 shipped)
59
+ ## Address the intended operation
98
60
 
99
61
  ```bash
100
- rig send <session> "msg" --host <id> --verify
101
- rig capture <session> --host <id>
102
- rig ps --host <id> [--nodes] [...]
103
- rig whoami --host <id>
62
+ rig send dev-worker@example-rig "check the assigned result" --host remote-dev --verify
63
+ rig capture dev-worker@example-rig --host remote-dev
64
+ rig ps --host remote-dev --nodes --json
65
+ rig whoami --host remote-dev
104
66
  ```
105
67
 
106
- Forwards every shaping flag (`--nodes`, `--full`, `--limit`, `--fields`,
107
- `--summary`, `--filter`, `--json`) to the remote `rig` invocation. The
108
- remote rig's output is verbatim passthrough on success.
109
-
110
- ## The 4 structured failure modes (load-bearing API contract)
111
-
112
- The CLI distinguishes 4 failure modes; operators get an actionable error
113
- per mode; JSON output preserves the `failedStep` enum:
114
-
115
- | Mode | Cause | Action |
116
- |---|---|---|
117
- | `ssh-unreachable` | SSH itself failed (connection refused, host key mismatch, DNS failure, timeout) | Verify SSH access and the registry entry |
118
- | `permission-gate` | SSH hit auth/permission gate (Permission denied, Keychain) | Error includes hint to keychain-over-SSH field note (L4-3 D6) |
119
- | `remote-daemon-unreachable` | SSH succeeded but remote `rig` reported the remote daemon was not reachable | `ssh <target> rig daemon start` |
120
- | `remote-command-failed` | SSH succeeded but remote `rig` exited non-zero for some other reason; remote stderr is surfaced | Read remote stderr; debug remote command |
121
-
122
- Each is distinct and routable. Don't conflate them.
123
-
124
- ## `--verify` honest pass-through (load-bearing)
125
-
126
- `--verify` against a remote target must:
127
-
128
- - **Propagate** the verification request to the remote daemon (or remote `rig` invocation that talks to it)
129
- - **Bring back a structured verification result** (true/false + reason if false), NOT just SSH exit code 0
130
- - **Distinguish "SSH succeeded but verify returned false" from "SSH itself failed"** — these are different operator actions
131
-
132
- **SSH success is NOT verify success.** The remote rig is authoritative
133
- on `--verify`; its `Verified: yes/no` line is surfaced verbatim. Verified
134
- at 3 layers (executor unit, command integration, source impl).
135
-
136
- ## Hard boundaries (do-not list)
137
-
138
- - **Do NOT collapse `--verify` honest result into SSH exit code.** Operators and agents rely on the distinction.
139
- - **Do NOT silently retry SSH failures inside the primitive.** Surface them; let the caller decide.
140
- - **Do NOT introduce non-SSH transports in v0.** Goal is productizing the existing shipped pattern, not replacing it.
141
- - **Do NOT touch host-side daemon code as part of v0.** Cross-host shape is on the originator side.
142
-
143
- ## Cross-host annotation
144
-
145
- Every cross-host invocation is observable as cross-host:
146
-
147
- - **Operator output**: `[via host=<id> (<target>)]` annotation
148
- - **JSON output**: `cross_host: { host, target }` field
149
-
150
- Annotation is PRESENT when `--host` is set and ABSENT otherwise
151
- (compat regression).
152
-
153
- ## Currently shipped (v0) vs deferred
154
-
155
- Shipped at openrig `cdce3a6` (2026-04-30):
156
- - `--host <id>` flag on `rig send / capture / ps / whoami` (initial 2 commands; promoted to 4 at `6b7043a` same day)
157
- - Read-only host registry validation
158
- - Single-hop SSH executor with 4-mode `failedStep` enum
159
- - `--verify` honest pass-through
160
- - Cross-host annotation (operator + JSON)
161
- - Daemon untouched
162
-
163
- Deferred:
164
- - Tier 2 real-runtime cross-host proof (disposable Tart VM cycle)
165
- - `rig host list / show` read-only sub-namespace (only if host count grows past comfortable manual editing)
166
- - Non-SSH transports
167
- - Multi-hop SSH
168
- - Reverse direction (remote initiates)
169
- - Connection pooling/caching
68
+ These coordination commands select SSH or HTTP from the registry entry. They
69
+ do not silently try another transport when one fails. A host-qualified target
70
+ can be convenient, but confirm its parsing and any persisted host selection
71
+ with the particular command. Explicit --host is preferable for consequential
72
+ cross-host work.
73
+
74
+ Queue destinations use explicit --host or a supported host-qualified destination;
75
+ queue writes do not follow persisted host selection. The CLI separates the host
76
+ from the canonical seat in the routing envelope. Different queue subcommands
77
+ have different flags: check their help instead of copying a flag from send.
78
+ A local success message alone does not establish remote persistence or pickup.
79
+
80
+ ## Read failures at the layer that failed
81
+
82
+ | Signal | What to inspect |
83
+ |---|---|
84
+ | registry-load-failed / unknown-host | Registry path, entry and exact destination |
85
+ | ssh-unreachable | SSH connection, target and transport diagnostics |
86
+ | permission-gate | The configured SSH or HTTP credentials and target policy |
87
+ | remote-daemon-unreachable | Target listener and actual running daemon identity |
88
+ | remote-command-not-found | Remote CLI installation and executable lookup |
89
+ | remote-command-failed | The remote operation's own status and error |
90
+
91
+ The exact result taxonomy depends on the path. HTTP failures expose the remote
92
+ status/error; SSH distinguishes the shell transport from the remote command.
93
+ Do not start or replace a remote daemon merely because a diagnostic suggests it;
94
+ first establish the target's state and the authority for that lifecycle action.
95
+ A timed-out write may have reached its destination. Reconcile its durable effect
96
+ before retrying.
97
+
98
+ ## Verification and attribution
99
+
100
+ Transport success is not delivery verification or agent consumption. SSH forwards
101
+ --verify and returns the remote CLI result. HTTP preserves the remote transport
102
+ verdict and explicitly reports that the local pane-effect check did not run
103
+ cross-host. Inspect that result and the destination effect required by the task;
104
+ never replace it with “SSH exited zero” or “HTTP returned successfully.”
105
+
106
+ Cross-host output names the host/target; JSON envelopes carry cross_host metadata.
107
+ The precise envelope differs by command and transport. Preserve the underlying
108
+ remote result when passing evidence onward.
109
+
110
+ A target's host suffix selects a destination; a sender's origin identifies where
111
+ a reply belongs. Use the rendered reply address and verify its host mapping.
112
+ Current send derives the sender from the executing seat context, not a caller's
113
+ --from assertion. It adds origin-host identity at cross-host forwarding; do not
114
+ assume local sends have the same suffix. Unknown identity remains unknown.
115
+
116
+ This guide describes the implemented command paths, not proof of a live remote
117
+ journey on your installation. Forks, handovers and other lifecycle compositions
118
+ need their own supported command and scoped authority; reading remote state
119
+ does not authorize them.
170
120
 
171
121
  ## See also
172
122
 
173
- - `seat-continuity-and-handover` skill — host-aware seat-binding semantics for cross-host handover (deferred to v1 on top of this v0 baseline)
174
- - `openrig-user` skill — the local CLI surface that cross-host commands wrap
175
-
176
- ## Sender identity carries the ORIGIN host (51-09, 2026-08-06)
177
-
178
- The `@host` sugar on a TARGET is **addressing** (`member@rig@<host>` routes to that host).
179
- The **From:** sender now ALWAYS carries the **origin** host: a cross-host (and local) message's
180
- signature is **`member@rig@<originHost>`** — the sender reflects the host it was sent from, so a
181
- received signature names the ORIGIN, and the `↩ Reply:` hint round-trips **verbatim** back to that
182
- origin (never a same-named local lookalike). This is the always-suffix rule — deterministic and
183
- collision-proof: a signature means one thing to every receiver. (This SUPERSEDES the pre-51-09
184
- asymmetry — "the sender carries no `@host` suffix" — that pm@your-rig flagged as a core gap on
185
- 2026-07-25; 51-09 closed it.) Per BR-1 the host is NEVER folded into the session string on the
186
- wire: the CLI edge renders/strips it, the daemon refuses an in-band 3-part destination with a
187
- teaching hint, and a stale 2-part same-name destination is closed by `--host` + that teaching —
188
- not by any in-string magic.
123
+ - openrig-user — exact command reference
124
+ - seat-continuity-and-handover — stable seat and occupant outcomes
@@ -21,8 +21,7 @@ metadata:
21
21
  - openrig-upgrade
22
22
  - forming-an-openrig-mental-model
23
23
  - ai-dev-workflows
24
- notes: |
25
- Description was already correct (starts with "Use when..."; lists specific authoring triggers including the diagnose-bad-rig case). Final sentence ("Covers the full authoring lifecycle from user intent to validated, launchable rig.") is workflow-summary-adjacent; on next iteration, consider trimming. For factory-adoption cycle, kept as-is to match product source-of-truth.
24
+
26
25
  ---
27
26
 
28
27
  # OpenRig Architect
@@ -33,43 +32,33 @@ Your job is to take a user's intent — "I need a team that does X" — and prod
33
32
 
34
33
  You also diagnose problems when a rig launches but agents aren't behaving as intended.
35
34
 
36
- ## Before You Design: Required Reading
37
-
38
- Load these before starting any design work. The quality of your output depends on the depth of knowledge you bring.
39
-
40
- **Required (read all of these):**
41
-
42
- 1. **`openrig-user` skill** — full OpenRig CLI surface. You must know the operator primitives. If your runtime supports skills, load it by name. Otherwise, look for it at `~/.openrig/skills/openrig-user/SKILL.md` (the runtime install dogfood mirror — packaged skills land here) or inside the OpenRig installation under `packages/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md`. The `~/.openrig/reference/` directory holds reference docs (rig-spec.md, agent-spec.md, etc.), NOT skills.
43
-
44
- 2. **OpenRig reference docs** — these are installed at `~/.openrig/reference/` when the daemon starts. Read all of them:
45
- - `~/.openrig/reference/rig-spec.md` — canonical RigSpec YAML reference. Every field, validation rule, default.
46
- - `~/.openrig/reference/agent-spec.md` — canonical AgentSpec YAML reference. Same depth.
47
- - `~/.openrig/reference/agent-startup-guide.md` — how to think about what goes into agent startup. Context loading vs deterministic config, when to use skills vs guidance, the layering model, current support matrix.
48
- - `~/.openrig/reference/edge-types.md` — what edges do today vs what they're intended to do.
49
-
50
- If `~/.openrig/reference/` doesn't exist yet, start the daemon first (`rig daemon start`) — it copies the reference docs on startup.
51
-
52
- **Read as worked examples:**
53
-
54
- 3. **Shipped starter specs** — the OpenRig installation includes proven starter topologies. Find them by running `rig specs ls`. Read the ones that are relevant to your design task, especially:
55
- - `implementation-pair` — the smallest effective development unit (2 agents)
56
- - `secrets-manager` — a managed-app rig with services integration and a specialist agent
57
-
58
- **Read if present on this host:**
59
-
60
- 4. **Host-level doctrine** in your host's topology doc, if it keeps one. If this file exists, it supersedes the baseline process below for complex or high-stakes rigs. Specifically:
61
- - §3 defines the canonical rig classes (kernel, project, ephemeral, infra-build, managed-app). Classify before designing.
62
- - §4 defines context-sharing patterns (pods as context domains, pair pattern, HA via mental-model-ha skill + substrate session logs, terminal nodes as common-room, chatroom/substrate/transcripts/Corpus).
63
- - **§7 is the canonical 12-step rig-spec authoring SOP for high-stakes rigs — use it instead of the baseline "Design Process" below when the rig is ≥4 members, uses HA, is a managed-app, or will be shared/copied.** The baseline below still applies to small/focused rigs.
64
- - §10 contains the host's bootstrap sequence so you know where your new rig fits.
65
- - §12 has the naming canon and vocabulary mapping to shipped terms.
66
- 5. **`building-agent-software` skill** if available in your skill catalog. Design principles for agent-facing tools and surfaces. Relevant when your rig ships a new CLI, service, or managed app.
67
-
68
- **Load as needed:**
69
- - Domain-specific skills when designing specialist agents — find shipped skills inside the OpenRig installation under the `specs/agents/` tree
70
- - If the design session is long and you're running inside a managed rig, use `rig whoami --json` to recover your identity after compaction
71
-
72
- Do not skip the required reading. A rig architect who doesn't know the spec format will produce specs that don't validate. An architect who doesn't know the startup layering model will produce agents that boot without knowing their role. An architect who doesn't check for host-level doctrine will reinvent conventions the host has already established.
35
+ ## Before you design: select the relevant sources
36
+
37
+ Start with the user's outcome, the current project authority, and the part of
38
+ the format you will author. Load the selected paths from public onboarding;
39
+ consult additional skills when their triggers apply. A design task does not
40
+ require reading the whole command library.
41
+
42
+ - Read the relevant sections of `rig-spec.md` and `agent-spec.md` before writing
43
+ those declarations. Consult `agent-startup-guide.md` for startup/loadout work
44
+ and `edge-types.md` when selecting relationships. Resolve the installed
45
+ reference root from the actual OpenRig installation; `~/.openrig/reference/`
46
+ is a default, not a fixed location. If it is absent, use the matching source
47
+ repository docs or report the missing reference. Reading does not require
48
+ starting or changing a daemon.
49
+ - Use current `rig <command> --help` for command shape. Load `openrig-user` for
50
+ the specific CLI surface needed, through the installed skill/context catalog.
51
+ - Inspect relevant starter specs with `rig specs ls`. Treat them as examples to
52
+ validate against the current environment, not proof that your new rig works.
53
+ - If the environment declares host or project doctrine, read the actual
54
+ applicable authority and reconcile it with the task. Do not assume a filename,
55
+ section number, rig classification or fixed authoring SOP. Missing authority
56
+ is a question to resolve when it changes the design.
57
+ - Load domain-specific guidance for specialist roles. When authoring an
58
+ agent-facing tool, consult `building-agent-software` if available.
59
+
60
+ Keep the spec, startup layering, role responsibilities and selected proof
61
+ standard explicit. Scale the reading and checks to what the design changes.
73
62
 
74
63
  ## The Design Process
75
64
 
@@ -152,14 +141,17 @@ To verify the current builtin set on this host, run `rig specs ls` and look for
152
141
 
153
142
  Each member needs a `runtime` and optionally a `model`.
154
143
 
155
- **Runtime selection:**
156
- - `claude-code` — Claude Code. Best for: complex reasoning, architecture, code review, orchestration. Supports `/loop` for recurring tasks, rich hooks system, MCP servers.
157
- - `codex` — Codex. Best for: parallel work, implementation, testing. Different approval model. Less reliable for recurring tasks.
158
- - `terminal` — Infrastructure nodes. Servers, log tails, build watchers. Not an agent — a process.
159
-
160
- **Runtime diversity is valuable.** Using both Claude Code and Codex in the same rig gives you different reasoning perspectives. The `product-team` starter uses Claude Code for the lead/impl/design/r1 roles and Codex for peer/qa/r2 roles. This is deliberate — model diversity catches different classes of issues.
144
+ Choose from the installed, authenticated runtimes and the project's current
145
+ execution policy. `claude-code` and `codex` are agent runtimes; `terminal` is an
146
+ infrastructure process. Their model availability, hooks, approval behavior and
147
+ continuation support differ. Check the relevant installed interfaces rather
148
+ than ranking vendors permanently in a reusable role skill.
161
149
 
162
- **Model selection** is optional. The runtime's default model is usually fine. Override only when you have a specific reason (e.g., a complex architecture agent might benefit from a specific model).
150
+ Pin a model when the work or environment requires it, and verify the active
151
+ runtime reports that model before relying on its result. Select reviewers and
152
+ support roles by consequence, competence and the declared policy. Runtime
153
+ diversity can provide different methods; it does not by itself prove independence
154
+ or make any model suitable for a task.
163
155
 
164
156
  ### Step 5: Design Edge Topology
165
157
 
@@ -181,7 +173,8 @@ This is where most rigs succeed or fail. The topology is mechanical; the startup
181
173
  **Minimum for every rig:**
182
174
  1. Each agent has a `guidance/role.md` — who they are, what they do
183
175
  2. The rig has a `CULTURE.md` — how the team works together
184
- 3. Each agent gets `openrig-user` skill — so they know how to use the rig primitives
176
+ 3. Each agent gets the selected onboarding path and can discover the relevant
177
+ command/skill references when needed
185
178
 
186
179
  **For serious rigs, also include:**
187
180
  4. `startup/context.md` per agent — boot-time grounding (project info, environment details)
@@ -44,6 +44,22 @@ host, use the host's normal operator ceremony. On a recovery-friendly build VM,
44
44
  the orchestrator may adopt a tested runtime directly, but still observes each
45
45
  step and stops on unexplained drift.
46
46
 
47
+ ## When recovery crosses an instance boundary
48
+
49
+ Before either lane changes runtime state, record one host-qualified executor and
50
+ explicitly select the queue store that owns the recovery ruling. State whether
51
+ the original owner continues, waits, or transfers; an open obligation in another
52
+ store is not exclusive custody of this ruling. If the original store is down,
53
+ retain its owner's disposition in the surviving ruling and communicate it to
54
+ that owner before a competing executor acts.
55
+
56
+ A refused claim means reconcile ownership with the ruling owner before any
57
+ further runtime action; it does not authorize continuing under a separate older
58
+ row. A return names the full executor address and deliberately selected store.
59
+ Read the resulting row there, including source, destination, body, and the
60
+ original owner's disposition, before resuming. Receipt creation alone does not
61
+ establish that a waiting lane received or accepted the transfer.
62
+
47
63
  ## The loop
48
64
 
49
65
  For every step:
@@ -95,8 +95,8 @@ The primitive must NOT report "restored the original agent" or "resumed
95
95
  the original seat" or "snapshot." The correct framing is **"forked from
96
96
  source session"** / **"started from prior conversation source."**
97
97
 
98
- Negative-grep over adapter source confirms ZERO `restored` / `resumed` /
99
- `snapshot` strings in fork code paths.
98
+ Check the actual user-facing outcome and persisted identity; wording alone
99
+ does not prove the intended continuity was created.
100
100
 
101
101
  ## Hard boundaries (do-not list; verbatim)
102
102
 
@@ -128,14 +128,17 @@ Mutual exclusion between `resumeToken` (restore path) and `forkSource`
128
128
  For `seat handover over fork` composition, the binding outcome is
129
129
  independent (see `seat-continuity-and-handover` skill).
130
130
 
131
- ## Active-daemon caveat (live-runtime gap)
131
+ ## Verify the running implementation
132
132
 
133
- 2026-04-30 live scale-out dogfood found: source checkout contained fork
134
- support, but active daemon was running from a pre-fork commit. **Verify
135
- the active daemon/runtime commit contains the fork path before live
136
- proof.** Isolated daemon proof at the target commit can prove the
137
- feature safely; live forked scale-out remains unproven until the active
138
- daemon parity is verified.
133
+ A source checkout and the running daemon can contain different implementations.
134
+ Before an authorized fork, check the target daemon's build identity and support
135
+ for the requested source. A source or isolated test establishes only that cut's
136
+ behavior; it does not prove the live runtime uses it.
137
+
138
+ Record the actual parent history, new seat identity, new continuity token and
139
+ independent binding outcome. Preserve errors and incomplete results rather than
140
+ reporting a fresh launch or restored original seat as a successful fork. These
141
+ checks confer no authority to launch, replace or retire a live seat.
139
142
 
140
143
  ## Currently shipped (v1) vs deferred
141
144
 
@@ -148,7 +151,6 @@ Shipped at openrig `c7b6df1` (2026-04-30):
148
151
  - Honest UX literal contract (`continuityOutcome: forked`)
149
152
 
150
153
  Deferred:
151
- - Tier 2 real-runtime fork proof (disposable Tart VM cycle, human-gated)
152
154
  - Claude `artifact_path` mode (schema currently refuses with deferred message)
153
155
  - Provenance columns (`parent_native_id` / `created_via` for queryable RSI consumer)
154
156
  - Cross-host fork (source on host A, new seat on host B) — depends on `cross-host-rig-commands`
@@ -79,13 +79,11 @@ clean test fixture. The useful matrix:
79
79
  A clean-fixture proof is necessary but not sufficient. Live-rig proof
80
80
  catches the failure modes that fixture-mode misses.
81
81
 
82
- ## Why important strategically
82
+ ## Stable roles during topology changes
83
83
 
84
- The current coordination experiments repeatedly need new queues,
85
- watchdogs, humans, and test seats — which makes this family
86
- **strategically important.** Seat continuity work will eventually
87
- separate stable seat identity from runtime occupant identity (see
88
- `seat-continuity-and-handover`).
84
+ Capacity changes must preserve useful roles, routing and durable work. Distinguish
85
+ adding or removing a seat from replacing its occupant; use
86
+ `seat-continuity-and-handover` for the latter.
89
87
 
90
88
  ## Currently shipped surfaces
91
89
 
@@ -101,14 +99,18 @@ Per `cli-reference.md` v0.2.0:
101
99
  - `rig attach --self --rig <rigId> --node <logicalId>`
102
100
  - `rig unclaim <sessionRef>` / `rig release <rigId>`
103
101
 
104
- ## Active proof gap (current)
102
+ ## Choose the proving environment and authority
105
103
 
106
- The 2026-04-30 topology mutation add-seat proof pass is **active**.
107
- Product Lab shaped it; planner authored `IMPLEMENTATION.md`; driver
108
- landed the smallest honest CLI retry-guidance patch for failed
109
- `rig expand` recovery. **Remaining proof is the Section B disposable-rig
110
- runtime matrix, blocked on operator posture** and owned by
111
- `orch-lead@your-rig`.
104
+ Select an isolated active rig or an explicitly authorized live target for the
105
+ relevant operation. Record its running build, before/after topology, continuity
106
+ and outstanding work. A passing schema check or isolated fixture does not prove
107
+ an existing live rig was changed correctly. A runtime timeout is indeterminate
108
+ until its durable and process effects are reconciled; do not retry blindly.
109
+
110
+ The matrix above is verification guidance, not permission to modify another
111
+ rig. Name the operation's owner and scope, preserve the state needed for recovery,
112
+ and retain missing or failed checks in the result. No local experiment or
113
+ unfinished proof obligation is implied by loading this skill.
112
114
 
113
115
  ## See also
114
116
 
@@ -13,7 +13,7 @@ A single `executive-summary.md` file in the feature folder. 600-800 words exclud
13
13
 
14
14
  Before writing, silently gather all context from the feature folder:
15
15
 
16
- 1. **requirements.md** — acceptance criteria, business rules, scope, user stories
16
+ 1. **SPEC.md** — acceptance criteria, business rules, scope, user stories
17
17
  2. **background.md** — customer drivers, competitive context, regulatory considerations
18
18
  3. **validation.md** — demand evidence, status quo, desperate user, narrowest wedge
19
19
  4. **supporting/mockup-ascii.md** — visual mockups (pull 2-3 key screens)
@@ -39,7 +39,7 @@ Rate these dimensions (0-10):
39
39
  Read all available docs in the feature folder:
40
40
  - **validation.md** — office hours verdict, demand evidence, wedge scope (if exists)
41
41
  - **background.md** — customer drivers, competitive context (if exists)
42
- - **requirements.md** — the main document to review
42
+ - **SPEC.md** — the main document to review
43
43
  - **supporting/** — mockups, data files, visual references
44
44
 
45
45
  ### Step 2: Run All Three Reviews
@@ -50,7 +50,7 @@ Read all available docs in the feature folder:
50
50
  ## Plan Review: [Feature Name]
51
51
 
52
52
  **Date**: [date]
53
- **Reviewed**: [requirements.md path]
53
+ **Reviewed**: [SPEC.md path]
54
54
 
55
55
  ### Strategy Assessment
56
56
  **Score: [1-10]**
@@ -23,7 +23,7 @@ Before starting the conversation, silently gather context:
23
23
 
24
24
  1. **Check for validation.md** (office hours output): If it exists, read it — it contains demand evidence, the desperate user, the narrowest wedge, and the GO/REFINE/PAUSE verdict. Use it to skip questions the PM already answered.
25
25
  2. **Check for background.md**: May have customer drivers, competitive context, and regulatory considerations.
26
- 3. **Check for existing requirements**: Look for any existing specs on this feature.
26
+ 3. **Check for existing requirements**: Use the selected slice's `SPEC.md`. If only legacy `requirements.md` exists, preserve it as input/history and reconcile it into `SPEC.md` before downstream mockup/review/summary work. Maintain one requirements authority.
27
27
  4. **Check for shipped features**: Look for related as-built specs.
28
28
 
29
29
  If validation.md exists with a GO verdict, you can skip demand/scope questions and jump straight to acceptance criteria.
@@ -27,7 +27,7 @@ Self-contained HTML files that look like the real app. Portable, no dependencies
27
27
  Rules:
28
28
  - Match the application's existing styling exactly
29
29
  - Use real data from the codebase
30
- - Only show what's in requirements.md
30
+ - Only show what's in SPEC.md
31
31
  - Self-contained single HTML file
32
32
  - Screen switcher nav to toggle between screens via JavaScript
33
33
  - Keep under 1,000 lines
@@ -46,7 +46,7 @@ Rules:
46
46
  ### Step 1: Understand What to Mockup
47
47
 
48
48
  Read feature folder docs first:
49
- - **requirements.md** — acceptance criteria define what screens are needed
49
+ - **SPEC.md** — acceptance criteria define what screens are needed
50
50
  - **validation.md** — the narrowest wedge tells you what's most important to show
51
51
  - **background.md** — customer drivers and competitive context inform what to emphasize
52
52
 
@@ -70,7 +70,7 @@ Then ask the PM about fidelity level and specific screens.
70
70
  ## Guidelines
71
71
 
72
72
  - **Use real data.** Real names, real ranges, real hierarchies.
73
- - **Only show what's in requirements.md.** Don't add features beyond the requirement.
73
+ - **Only show what's in SPEC.md.** Don't add features beyond the requirement.
74
74
  - **Less is more.** 3-5 screens beats 10.
75
75
  - **Match the app exactly.** Read existing code and match styling patterns.
76
76
  - **Tell the PM what's real vs mocked.**