@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
@@ -4,7 +4,7 @@ description: Use when about to claim work is complete, fixed, or passing, before
4
4
  metadata:
5
5
  openrig:
6
6
  vendored_from: "Obra Superpowers (https://github.com/obra/superpowers)"
7
- vendoring_pattern: vendored-as-is
7
+ vendoring_pattern: modify-the-file
8
8
  last_upstream_check: "2026-05-13 (diff against plugin source pulled 2026-05-11 = identical)"
9
9
  ---
10
10
 
@@ -116,10 +116,10 @@ Running a verification is necessary but not sufficient: a check can exit clean a
116
116
 
117
117
  - **Assert on CONTENT, never shape or count.** Output that *looks* like success — a non-zero count, a clean exit, no error text — can carry failure as its content. Before trusting a check, ask what its output looks like *when it fails*: if failure and success are indistinguishable at a glance, the check proves nothing. (`[1 lines]` and `No matches found` both read as "a match" to a line-count.)
118
118
  - **Compare the returned value to the value you PASSED — never to a description of it.** A confident label (`evidenceRef NOW SET:` printed above the untouched original) is indistinguishable from a verification in a transcript. Diff the actual result against your actual input, not against a claim about it.
119
- - **Find the untested axis.** Thorough coverage of ONE axis reads as thorough coverage overall. Ask what every one of your tests shares — a healthy manifest, a default option value, the happy path — and treat that shared assumption as the dimension you never tested. (A 15-case "exhaustive" harness whose only defect lived on the one axis every case held constant.)
119
+ - **Find the untested axis.** Thorough coverage of ONE axis reads as thorough coverage overall. Ask what every one of your tests shares — a healthy manifest, a default option value, the happy path — and treat that shared assumption as the dimension you never tested.
120
120
  - **A syntax check proves parseability and nothing else.** A clean `node --check` / lint / parse pass is the *covered* axis; boot and runtime are the untested one. Parseable ≠ sound.
121
121
  - **A failure whose shape is a HANG reports nothing.** A bare `await` against a stated deadline that never re-checks cannot fail loudly. Race it against a timer so failure has a shape you can see.
122
- - **A completeness inventory read through a truncating display is worthless.** When deciding *which occurrences to change*, count with `grep -c` / `grep -o` / full-line output — never `cut`, `head`, or a pager, which can hide a match *past* the cut (a doc pointer on a ~540-char line sat just past `cut -c1-180` and nearly shipped the defect inside its own fix). Distinguish *"I found N"* (a count) from *"I saw N"* (a display). Audit multiline prose **by paragraph, not by line** — a line filter both misses long-line matches and false-flags paragraphs whose companion text is on the next line. Then re-audit with a **different method** than the one that built the inventory — same-method re-checking reproduces the blind spot. (Empty/short output is a claim about your COMMAND until re-proven a second way.)
122
+ - **A completeness inventory read through a truncating display is worthless.** When deciding *which occurrences to change*, count with `grep -c` / `grep -o` / full-line output — never `cut`, `head`, or a pager, which can hide a match *past* the cut. Distinguish *"I found N"* (a count) from *"I saw N"* (a display). Audit multiline prose **by paragraph, not by line** — a line filter both misses long-line matches and false-flags paragraphs whose companion text is on the next line. Then re-audit with a **different method** than the one that built the inventory — same-method re-checking reproduces the blind spot. (Empty/short output is a claim about your COMMAND until re-proven a second way.)
123
123
 
124
124
  ## Why This Matters
125
125
 
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "verification-before-completion"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always"
7
7
  files:
@@ -139,9 +139,8 @@ recipient.
139
139
  into a qitem body. **Link the artifact PATH** (e.g.
140
140
  `missions/<m>/<slice>/proof.md`) or **summarize in prose**, then point
141
141
  at the file for the detail. A pasted dump makes `rig queue show <id>
142
- --json` huge — a second-order token bloat: bloated DATA living in the
143
- queue, distinct from the command-default output bombs the token-burn
144
- emergency pack covers.
142
+ --full --json` large. Compact defaults limit a preview, but the stored body
143
+ still costs readers who need full detail. Keep evidence in its durable artifact.
145
144
  - **Substantive bodies go through `--body-file`, not inline `--body`.**
146
145
  For anything beyond a short line, write the body to a file and pass
147
146
  `--body-file <path>` (or `-` for stdin). Inline `--body` with shell
@@ -155,10 +154,10 @@ Heuristic: if the thing you want to include is more than a few lines or
155
154
  contains shell metacharacters (backticks, `$`, quotes, newlines-with-pipes),
156
155
  it belongs in a file you LINK, not in the body you paste.
157
156
 
158
- Product backstop (defense-in-depth, NOT a substitute for this discipline):
159
- `rig queue show` oversized-body truncation/preview is tracked separately
160
- as slice OPR.0.4.1.3. The behavioral rule here is the primary, durable
161
- cure; the product truncation is the safety net.
157
+ The current `rig queue show` returns a bounded body preview by default;
158
+ `--full` returns the complete body and chain fields. Preview truncation does
159
+ not truncate the stored work. Check `bodyTruncated` and `bodyBytes`, then request
160
+ full content when needed; keep large supporting evidence in linked artifacts.
162
161
 
163
162
  ## Failure modes (6; verbatim)
164
163
 
@@ -167,14 +166,14 @@ cure; the product truncation is the safety net.
167
166
  3. Queue item is too small and turns work into bureaucracy.
168
167
  4. Queue item is too broad and loses ownership, proof, or closure criteria.
169
168
  5. Human escalation happens in chat but not as a durable attention item.
170
- 6. Agent pastes a large command dump (ps/nodes, big JSON, proof blob) into the qitem body, bloating the stored DATA so every future `rig queue show --json` read is huge. Link the proof PATH or summarize in prose; substantive bodies go through `--body-file`; no raw backticks inline.
169
+ 6. Agent pastes a large command dump (ps/nodes, big JSON, proof blob) into the qitem body, bloating the stored DATA so every full-body read is large. Link the proof PATH or summarize in prose; substantive bodies go through `--body-file`; no raw backticks inline.
171
170
 
172
171
  ## Durable handoff field shape
173
172
 
174
173
  Every qitem carries:
175
174
 
176
175
  - `handed_off_to` — destination session (qualified `pod-member@rig` form)
177
- - `handed_off_from` — source session
176
+ - `handed_off_from` — predecessor qitem id (the source session is `source_session`)
178
177
  - `state` — one of: `pending | in-progress | done | blocked | failed | denied | canceled | handed-off`
179
178
  - `closure_reason` + `closure_target` — set on terminal closure per hot-potato rule
180
179
 
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "queue-handoff"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when ending a turn, finishing a slice, blocked on another agent's work, or escalating to a human — durable work handoff via queue items so the system keeps moving across compactions, missed messages, and interruptions. Covers the hot-potato terminal-turn-rule (active work ends by passing the ball, not by going idle), default-nudge semantics, and when `--no-nudge` is appropriate for intentional cold park or human gate."
7
7
  files:
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "refocusing"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when a long-running agent may have lost the product outcome, when context was compacted, when work has crossed a major boundary, or when a fresh path-based trace is needed before the next consequential action. Not for fresh-session orientation, waking an idle seat, or checkpoints."
7
7
  files:
@@ -1,48 +1,22 @@
1
1
  # Changelog — retiring-and-inheriting-a-seat
2
2
 
3
- **`SKILL.md` carries the mechanic; this file carries how it got there.** Rationale, superseded
4
- designs, and the incidents that produced a rule live here so the instruction surface stays
5
- instructional.
6
-
7
- ---
8
-
9
- ## 2026-08-13 — wake is a verb now, and the packet must not bound the channel (Wake v0)
10
-
11
- ### Two corrections to the same section
12
-
13
- **1 · The mechanism claim was stale.** The section read *"In v0 this is a practice + skill, not a
14
- `rig` verb — wrap it in a verb only when convenience and consistency earn it."* `rig ask --wake`
15
- had since shipped in CLI 0.5.1, with `--runtime` and `--wake-timeout` (default 180s). A retiring
16
- agent reading the old line would have told its successor a verb existed only in principle.
17
-
18
- The verb is a thin wrapper over the harness resume and is **not yet well-exercised** (mission owner,
19
- 2026-08-13), so the fallback to `claude -p --resume` is stated inline rather than left implied. **A
20
- failing wrapper must never be read as a closed channel** — that inference was made once already and
21
- cost a successor several turns.
22
-
23
- **2 · The retiring side is where the reach-back failure is caused.** Across lineages on record, the
24
- successor consulting its predecessor has almost never happened, and the packet is what suppresses
25
- it. Two shapes, both observed in real packets on this rig:
26
-
27
- - **Bounding the channel in time** — *"ask while the window is open"*, *"after this I am a
28
- transcript, not a conversation"*. Neither is true: a retired tenure stays resumable while its
29
- session record exists, and the only real bound is its own context wall hit while answering. The
30
- second phrasing measurably cost a successor a capability it had (see
31
- `orienting-to-an-inherited-seat/CHANGELOG.md`, 2026-08-13).
32
- - **Offering access without a trigger** — *"predecessor consultation: not needed"* and *"you may
33
- consult your predecessor"* each produced **zero consultations** from otherwise capable successors.
34
-
35
- The distinction worth preserving, because retiring agents keep collapsing it: *"treat my answers as
36
- testimony"* is a **posture** claim and it is correct. *"You can no longer converse with me"* is a
37
- **capability** claim and it is false. They get written as the same sentence.
38
-
39
- ### Why the guidance is phrased as what to write
40
-
41
- Stated positively (*state that the channel does not expire; give your verbatim handle; pre-form the
42
- questions*) rather than as a list of forbidden sentences. A prohibition list in `SKILL.md` would
43
- draw attention to phrasings a retiring agent would otherwise never produce.
44
-
45
- ### Standing
46
-
47
- The fix is unverified. The measurable outcome is whether the next successor asks unprompted, and
48
- more than once — the baseline is zero.
3
+ The skill carries the current handover practice. This changelog records public
4
+ mechanism and wording changes without substituting local experiments for product
5
+ verification.
6
+
7
+ ## 2026-08-13 — record the wake surface and actionable reach-back instructions
8
+
9
+ `rig ask --wake`, introduced in CLI 0.5.1, provides explicit bounded consultation
10
+ of a retained session. The packet guidance therefore includes the exact resume
11
+ handle and questions that only the predecessor can help answer. Check current
12
+ `rig ask --help` for runtime selection and timeout options.
13
+
14
+ A predecessor's answers are testimony; that does not mean its retained history
15
+ became unavailable at retirement. Record the history's actual location and known
16
+ limits. If the wrapper cannot answer, distinguish missing history, runtime failure,
17
+ timeout and context exhaustion; use a supported runtime resume path only when
18
+ its prerequisites and the requested authority permit it.
19
+
20
+ Give the successor triggers for consultation, such as an unexplained tradeoff or
21
+ conflicting artifact, instead of requiring a consultation count. This rationale
22
+ is not a current end-to-end wake test or proof of successor behavior.
@@ -20,7 +20,7 @@ A **planned** seat transition. A long-lived seat accumulates context; as it near
20
20
  window's edge, don't wait for compaction to degrade you into a cold-started agent —
21
21
  **retire deliberately** and hand the seat to a fresh successor primed from a packet plus
22
22
  the seat's accumulated lineage. The **seat address is stable; its occupants are a lineage.**
23
- This is the practice that named the "seat" primitive.
23
+ Keep the transition and its authority explicit.
24
24
 
25
25
  ## Use this when
26
26
 
@@ -48,8 +48,9 @@ threshold you can see coming; fall back to compaction only when a transition was
48
48
 
49
49
  ## The handover sequence
50
50
 
51
- 1. **Trigger** — ~85% context, or a deliberate role transition. The oversight-rig context
52
- detector can fire this for you; you can also self-initiate when you feel the edge.
51
+ 1. **Trigger** — the selected continuity threshold or a deliberate role transition.
52
+ Use the configured policy and named transition owner; a context estimate alone
53
+ does not authorize a cutover.
53
54
  2. **Author the handover packet, deliberately** — a composed context pack carrying current
54
55
  work + next owner, the seat's durable pointers, constraints and authority boundaries, and
55
56
  the accumulated **lineage wisdom** ("those before you learned X"). This IS a restore packet
@@ -66,26 +67,29 @@ threshold you can see coming; fall back to compaction only when a transition was
66
67
  `orienting-to-an-inherited-seat`** — its world model of what a handover *is*. Carry that
67
68
  pointer **in the durable packet artifact itself**; never inject it as a runtime prompt keyed
68
69
  to the seat name (that runtime mechanism is the **ghost-prompt** class the orientation skill
69
- teaches successors to refuse — and it has misfired on real successors). Artifact-carried
70
+ teaches successors to refuse). Artifact-carried
70
71
  survives the swap for free and needs no enabled gate.
71
- 4. **Preserve the physical seat at cutover** — the live seat address and its canonical tmux
72
- session, window, and pane stay stable. Assess the apprentice in a staged session; at the
73
- owner-worded cutover, resume the accepted successor history in the original canonical pane
74
- and remove the empty staging session. The retiring tenure becomes a cold advisor through its
75
- lineage token. Renaming tmux sessions is a repair fallback, because attached clients follow
76
- the physical pane rather than the logical seat name.
77
- 5. **Write your lineage-ledger row + a one-line tombstone** (below).
78
- 6. **Optional warm handoff** — a bounded apprenticeship window: the successor asks questions,
79
- the predecessor judges fitness, *then* the swap completes. Use it when the seat holds a lot
80
- of live judgment; skip it for a clean cut.
72
+ 4. **Assess before cutover.** If an apprenticeship or warm handoff is selected,
73
+ use that staged window for questions and domain work before the owner decides.
74
+ The incumbent retains authority until the owner-worded cutover; do not retire
75
+ it merely to free a name while waiting for that decision.
76
+ 5. **Preserve the physical seat at cutover** — follow the portable SOP linked from
77
+ `seat-continuity-and-handover`. Keep the canonical tmux session, window and pane;
78
+ resume the exact accepted successor history there and reconcile binding,
79
+ environment, queue identity and attached clients. Preserve the incumbent's
80
+ exact token as a cold-advisor handle when that is the selected disposition.
81
+ Renaming tmux sessions is a repair fallback, not the default sequence.
82
+ 6. **Write the lineage-ledger row and tombstone** (below). Record the actual
83
+ outcomes and transfer each standing duty explicitly. Complete the successor's
84
+ post-cutover self-check before unfreezing authority.
81
85
 
82
86
  ## Apprentice mode — incumbent
83
87
 
84
88
  An `apprentice-handover` policy gives you an early preparation boundary, not permission to
85
89
  automate the succession decision. Create a fresh, staged, unbound successor; prove the pinned
86
90
  model before installing context; then open a **conversation, not a gauntlet**. Give coached
87
- errands, answer questions, and judge work in the real domain. The experiment's scored probes are
88
- optional tools whose rigor must match the stakes, not mandatory ceremony.
91
+ errands, answer questions, and judge work in the real domain. Scored probes are optional tools whose rigor must match the stakes, not
92
+ mandatory ceremony.
89
93
 
90
94
  Stay the authority-bearing incumbent until the named owner words the gate and the mechanic records
91
95
  the effect receipt. Before that word, the apprentice may observe, ask, and produce evidence but may
@@ -114,15 +118,15 @@ ledger is the tenure record; work-tree notes remain lived context, not identity
114
118
  **Crash-ended tenures** get their row appended **post-hoc** by the crash-cart / restore path,
115
119
  flagged **honest-approximate** (the boot-captured session id is what makes this recoverable).
116
120
 
117
- ## Do NOT over-inherit — the key lesson from the practice's history
121
+ ## Inherit the seat, not the predecessor's identity
118
122
 
119
123
  **You are inheriting a seat, not becoming your predecessor.** Frame it explicitly to the
120
124
  successor: *"agents sat here before you and learned X; you carry the seat's mission, not their
121
- identity."* The historical failure was agents getting confused about whether they **were** the
122
- predecessor — carrying a stale self-model, over-claiming prior work as their own. Inherit the
125
+ identity."* Do not claim a predecessor's work as your own or use its stale identity
126
+ as the current binding. Inherit the
123
127
  seat's **mission and hard-won lessons**; keep your own **fresh identity and session**.
124
128
 
125
- ## Wake v0 — ask the agent who sat before you (a practice, not a verb)
129
+ ## Reach back to a retained predecessor
126
130
 
127
131
  A retired tenure is a cold advisor you can consult. Look up the seat's ledger → get that
128
132
  generation's session token → resume it for **one question**, then let it sleep again:
@@ -130,19 +134,22 @@ generation's session token → resume it for **one question**, then let it sleep
130
134
  - Claude: `claude -p --resume <session>`
131
135
  - Codex: `codex exec` (resume the rollout)
132
136
 
133
- This is also a `rig` verb: `rig ask <rig> "<q>" --wake <seat[@gen]|token>` (CLI 0.5.1; also
134
- `--runtime`, `--wake-timeout`, default 180s). It wraps the harness resume above and is **not yet
135
- well-exercised** — if it fails, fall back to `claude -p --resume <full-uuid>`. **A failing wrapper is
136
- not a closed channel.** The ledger is how you **find** the right predecessor; wake is how you ask them.
137
+ Use `rig ask <rig> "<q>" --wake <seat[@gen]|token>` for an explicit bounded
138
+ consultation (introduced in CLI 0.5.1). Check `rig ask --help` for `--runtime`
139
+ and `--wake-timeout`. The wrapper uses a runtime resume; its presence is not
140
+ proof that a particular retained history is available. For a Claude history,
141
+ `claude -p --resume <full-uuid>` is the runtime-level fallback when supported.
142
+ Diagnose the specific failure before declaring the channel unavailable.
137
143
 
138
144
  **What to write in your packet about reaching you** — your successor asking you questions is the
139
145
  reason this is a handover and not a compaction:
140
146
 
141
- - **State that the channel does not expire**, and give your **verbatim resume handle**. You stay
142
- reachable after retirement; the only real bound is your own context wall, hit while answering. Ask
143
- them to treat your answers as testimony if you like — that is a posture claim, not a limit on access.
147
+ - **Give your verbatim resume handle and known availability limits.** Retirement alone
148
+ does not expire retained history. Resuming still depends on that history, runtime
149
+ access and remaining context; distinguish these failure modes. The advisor
150
+ supplies testimony and does not regain the live seat's authority.
144
151
  - **Pre-form the questions.** Inventory what only you hold and write the questions out. An affordance
145
- without a trigger goes unused, so *"you may consult your predecessor"* reliably produces none.
152
+ needs a trigger: name the tradeoff, missing rationale or conflict that should prompt a question.
146
153
 
147
154
  **Wake-tenancy — the identity halves (a woken tenure can mistake itself for the live seat).** The
148
155
  hardest thing to apply *checked-not-believed* to is your own identity — a retired tenure resumed for a
@@ -165,57 +172,36 @@ question can answer, and act, as if it still held the seat. Two rules close it:
165
172
  3. **Session id captured at retirement, not boot** — a crash then leaves no row, or an
166
173
  unfindable tenure. Capture at boot.
167
174
  4. **Suffixing the LIVE seat** (`<seat>-v2` as the active address) — lineage leaking into
168
- identity, the wrong shape. The live address stays clean; only the retiree is versioned.
175
+ identity, the wrong shape. The live address stays clean; generation belongs in the ledger.
169
176
  5. **Tombstone omitted or vague** — the ledger can no longer answer "who did this / who to
170
177
  wake." One honest line, every tenure.
171
178
 
172
- ## Field-validated refinements (pilot 2026-08-05 — two live runs, both runtimes)
173
-
174
- Two live handovers (a Claude seat + a Codex seat) ran this sequence end-to-end and sharpened it:
175
-
176
- - **A GATED handover uses STAGED primitives, not an all-in-one verb.** An atomic
177
- create/deliver/verify/rebind verb can't pause for a human go/no-go gate. Decompose it: boot the
178
- successor **staged (unbound)** → prime it → **retire** the incumbent (this frees the clean seat name)
179
- → **HOLD for the gate** → **swap** (bind the successor to the canonical name). The gate sits between
180
- retire and swap; a no-go rolls back by renaming the retiree back.
181
- - **Prime AT BOOT, not walk-after-boot, for a staged successor.** Delivery verbs (`rig walk` / `rig
182
- send`) resolve via the **bound** session registry, so they cannot reach an unbound staged successor.
183
- Boot it **with the packet as startup/priming context** (the "primed from a handover/startup packet"
184
- path). In both runs the successor read the full packet and correctly stated inheritance-not-identity
185
- and held.
186
- - **The lineage ledger is the ONLY reliable wake path — load-bearing, not convenient.** A retired
187
- occupant (`<seat>-vN`) is intentionally **absent from the managed registry** — discovery / walk / send
188
- cannot find it. The ledger's **boot-captured** session id is how you wake it: `claude -p --resume
189
- <id>` (Claude) or `codex exec` resume (Codex) — harness-level, not the rig registry.
190
- - **Tombstone honest-approximate fallback.** If a long-idle retiree can't be woken to self-write its
191
- tombstone, the driver records an honest-approximate one and **flags it as such**.
192
- - **Telemetry-degraded flag when warranted.** If a fresh successor's activity/producer-link telemetry
193
- is degraded, flag its ledger row so no future reader trusts its activity state. (One runtime showed a
194
- fresh-launch telemetry gap; the other was clean — capture the reality, don't assume.)
195
-
196
- ### Production-evidenced (first real-stakes run — a critical-seat generation swap, 2026-08-05)
197
-
198
- The first live swap at a critical seat **succeeded** (the successor ruled a live domain question within the
199
- hour — doctrine intact across the generation) and surfaced two hard refinements:
200
-
201
- - **Boot-window queue re-check is REQUIRED — the successor's first action.** A qitem created *during* the
202
- swap window can land **after** the handover packet was frozen — and its boot nudge fails
203
- `session-not-found` because the seat is mid-cutover. The packet's snapshot is therefore incomplete by
204
- construction. So the successor's first action is a **checked-not-believed queue sweep** (`rig queue list`
205
- by destination / `--mine`), never trusting the packet's snapshot alone. The swap-window delivery seam is a
206
- known product gap until it's closed.
207
- - **Complete the canonical rename AT cutover — or expect three breakages.** If the staged name
208
- (`<seat>-vN-staging`) survives past cutover, it breaks across three identity surfaces with inconsistent
209
- enforcement: **transport** (the staged label doesn't resolve; replies to the signature bounce),
210
- **queue-claim** (`claim_destination_mismatch` rejects the seat's own claim), and **queue-ledger**
211
- (`handoff-and-complete` stamps the phantom staged name durably as `sourceSession`). The product fix is
212
- tracked; until it lands, finish the canonical rename at cutover and treat a lingering staged name as a
213
- live defect, not cosmetic.
214
- - **Pre-announce the swap to oversight at swap START.** A live swap fired oversight's liveness detector
215
- mid-swap (a false positive, cleared). Oversight clears such flags by consulting handover **receipts** —
216
- but receipts only land at swap **end**, so a long swap window can still misfire. So the executing party
217
- sends oversight a **one-line pre-announce at swap start** (seat + expected window); oversight honors it
218
- as a **suppression window** for its liveness / premature-park flags. See `oversight-team`.
179
+ ## Checks around a planned transition
180
+
181
+ - **Stage and assess before the owner calls cutover.** Use startup context when the
182
+ successor is unbound; check its actual address before relying on registry-routed
183
+ delivery. Keep incumbent authority and physical-pane custody until the selected
184
+ SOP's cutover steps apply. A rejected candidate does not require renaming the
185
+ incumbent back into a seat it should still hold.
186
+ - **Preserve exact resume handles.** A retained advisor may have no managed node or
187
+ live pane. The ledger identifies its history independently of the live-seat
188
+ registry; absence from `rig ps` alone does not prove that history is gone.
189
+ - **Recheck work at the boundary.** Queue items can arrive after the packet was
190
+ frozen. The successor reads its current owned queue, reconciles transition-window
191
+ work and staged inputs, and records every remaining obligation.
192
+ - **Verify identity across surfaces.** Canonical binding, provider history,
193
+ process environment, queue identity and attached clients must agree. Correct a
194
+ staged identity residue through the supported cutover/reconciliation path;
195
+ renaming a tmux session alone is not proof that those surfaces agree.
196
+ - **Keep incomplete evidence explicit.** Flag unavailable activity telemetry as
197
+ unavailable, and mark a tombstone written by someone else as approximate.
198
+ - **Coordinate the maintenance window.** Tell the routing/monitoring owner the
199
+ target and expected window before an authorized cutover. Only an explicitly
200
+ configured suppression changes monitoring behavior; close the window with the
201
+ actual effect receipt, deviations and unresolved gaps.
202
+
203
+ These are verification prompts, not a claim that a particular runtime transition
204
+ has passed. Use the linked portable SOP for mechanics and record the actual run.
219
205
 
220
206
  ## See also
221
207
 
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "retiring-and-inheriting-a-seat"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when you are a sitting agent near your context threshold (~85%) and a PLANNED seat transition is due — retire deliberately and hand your seat to a fresh successor primed from a packet, rather than let compaction degrade you. Covers the handover packet, the append-only lineage ledger (one row per tenure), physical-seat continuity, the do-not-over-inherit framing, the optional warm-handoff window, and wake-v0 (consulting a retired predecessor). NOT for unplanned compaction/crash recovery (sess"
7
7
  files:
@@ -24,17 +24,15 @@ A pair of primitive families that separate *who is sitting in a seat* from
24
24
  *what the seat itself is*:
25
25
 
26
26
  1. **Occupant-creation primitives** — `resume`, `fork`, `rebuild`, `fresh` — produce a candidate new occupant. Answer: "where did the new occupant come from?"
27
- 2. **Seat-binding primitives** — `seat handover`, later `seat transfer` / `seat retire` / `seat swap` — bind a candidate occupant into the topology. Answer: "what happened to the stable seat identity?"
27
+ 2. **Seat-binding operations** — handover binds a candidate occupant into the topology. Answer: "what happened to the stable seat identity?" Inspect the current CLI for executable operations; design vocabulary alone does not establish a command.
28
28
 
29
29
  Core architectural decision: **stable seat identity, fluid occupant
30
- identity, explicit provenance.** Today's `lead2`/`lead3`/`lead4`/`lead5`
31
- pattern encodes successor lineage into seat names — that's the wrong
32
- shape. Stable seat name + separately-recorded provenance trail is the
33
- right shape.
30
+ identity, explicit provenance.** Do not encode successive occupants into live
31
+ seat names. Keep the stable address and record lineage separately.
34
32
 
35
33
  ## Use this when
36
34
 
37
- - Replacing a seat's occupant via rebuild, fork, fresh, or future seat-handover
35
+ - Replacing a seat's occupant via rebuild, fork, fresh, or seat-handover
38
36
  - Choosing old-occupant disposition: retire / advise / shadow
39
37
  - Reasoning about whether a seat's lineage is stable or has drifted
40
38
  - Reading or writing the provenance record for a seat
@@ -108,21 +106,28 @@ A seat stays `Stable` even if multiple candidate-occupants were produced and dis
108
106
  ## Hard boundaries (do-not list; verbatim)
109
107
 
110
108
  - **Do NOT collapse `rebuild` and `seat handover` into one primitive.** The design specifically separates them so the system can describe what actually happened.
111
- - **Do NOT introduce successor-suffix seat names** (`lead2`/`lead3`). Stable seat identity is the architectural goal. *(Reconciliation: this governs the **live** seat address, which stays clean — the seat name is whoever sits now. A **retired** tenure IS versioned (`<seat>-vN`) as the separately-recorded provenance trail / cold wake-target — that is the lineage, not a live successor-suffix. See `retiring-and-inheriting-a-seat` and its lineage ledger.)*
109
+ - **Do NOT introduce successor-suffix seat names** (`lead2`/`lead3`). Stable seat identity is the architectural goal. The live address stays stable. A retired tenure is distinguished by its ledger
110
+ generation and exact history token; preserving it does not require a renamed live pane.
111
+
112
112
  - **Do NOT report `seatBindingOutcome: handed_over`** if the provenance record didn't write durably.
113
113
  - **Do NOT auto-rollback a half-completed handover** by re-attaching the old occupant unless detach completed cleanly first.
114
114
 
115
- ## Composition: seat handover over fork
115
+ ## Composition and current command surface
116
116
 
117
- Once `session_source` fork v1 lands (already shipped at openrig
118
- `c7b6df1`), the next composition is **seat handover over fork**:
119
- candidate occupant created via fork, bound into the existing seat via
120
- handover. Continuity outcome is `forked`; binding outcome is independent.
117
+ A fork can create a candidate occupant; handover binds it into an existing seat.
118
+ The continuity outcome is `forked`; the binding outcome is independent.
121
119
 
122
- ## Currently shipped vs deferred
120
+ The packaged `rig handover <seat>` and `rig seat handover <seat>` accept `fresh`,
121
+ `discovered:<id>`, `fork:<id>` and `rebuild` sources. Use `--dry-run` to request
122
+ planning only. Without it, these surfaces can execute; do not infer read-only
123
+ behavior from the shorter seat command's planning-oriented description.
124
+ `rig seat status <seat>` is the read-only observability surface.
123
125
 
124
- - **Option A (rebuild) shipped** at openrig `578bd5c` (2026-04-30): `session_source.mode: rebuild` with `ref.kind: artifact_set`; identity-honesty bedrock at 4 layers (schema dispatch, orchestrator threading, SQLite read-back, negative-grep on resolver output). 26/26 Tier 1 cases green; full daemon regression 2146/2146 PASS.
125
- - **Option B partially shipped, partially deferred to Mode 3**: the `rig seat handover` CLI exists as a planning/observability surface — `status <seat>` reads the seat-handover observability tables (migration `021`); `handover <seat>` plans a safe two-phase handover sequence with actual execution flowing through existing seat-launch surfaces under operator gating. Full code-direct `SeatHandoverService` daemon module + `seat-binding-outcome` provenance record + nodes-table provenance migration remain deferred to Mode 3. MVP composition `seat handover over fork` is highest-leverage v1.
126
+ Source support is declared by the running daemon and depends on actual identity,
127
+ history and artifact prerequisites. Read the returned source, continuity, binding
128
+ and provenance results independently. A help listing or dry-run is not proof of a
129
+ successful transition. The linked cutover SOP supplies the operator mechanics
130
+ and required effect checks after the named owner authorizes the action.
126
131
 
127
132
  ## Why load-bearing for RSI
128
133
 
@@ -133,13 +138,14 @@ destabilize topology references on each cycle. Provenance must be
133
138
  durable AND queryable so RSI loops can decide whether a seat is fresh
134
139
  enough to receive new work or needs re-handover.
135
140
 
136
- ## Discovery-registration gap (pilot-observed 2026-08-05)
141
+ ## Managed binding and retained history
137
142
 
138
- A renamed / retired occupant (`<seat>-vN`, kept alive as a cold advisor) is intentionally **absent from
139
- the managed node registry** — `rig ps`, discovery, and the delivery verbs (`walk` / `send`) cannot find
140
- it. This is by design (only bound occupants are registered), and it makes the **lineage ledger +
141
- boot-captured session id the wake path** (harness-level `--resume` / `codex exec`, not the rig registry).
142
- Two live handovers confirmed this. See `retiring-and-inheriting-a-seat`.
143
+ A retired advisor's history can remain available without a managed node or live
144
+ pane. Query current binding and the lineage ledger separately: one answers who
145
+ holds the seat, the other identifies the retained history and exact resume token.
146
+ Do not infer that a predecessor is unreachable from registry absence alone, or
147
+ that a preserved token proves a successful resume. Check the actual runtime and
148
+ history when consultation is needed; see `retiring-and-inheriting-a-seat`.
143
149
 
144
150
  ## See also
145
151
 
@@ -148,4 +154,4 @@ Two live handovers confirmed this. See `retiring-and-inheriting-a-seat`.
148
154
  - `references/apprentice-evidence-toolkit.md` — optional evidence apparatus selected only when the stakes earn it
149
155
  - `session-source-fork` skill — `fork` occupant-creation primitive (sibling)
150
156
  - `agent-starters` skill — composes occupant-creation + binding into named reusable starting points
151
- - `cross-host-rig-commands` skill — multi-host handover (deferred)
157
+ - `cross-host-rig-commands` skill — remote addressing and transport; verify lifecycle support on the target
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "seat-continuity-and-handover"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when replacing a seat's occupant (rebuild/handover/swap), reasoning about stable-seat-identity vs fluid-occupant-identity, choosing an old-occupant disposition (retire/advise/shadow), or recording provenance for an occupant change. Two independent outcomes (continuityOutcome + seatBindingOutcome) and the 5 failure modes that prevent silent dishonesty."
7
7
  files:
@@ -139,20 +139,18 @@ transcript > touched-files > `restore-summary.json`.**
139
139
 
140
140
  ## Memory surfaces consumed at restore time
141
141
 
142
- This primitive consumes multiple externalized memory surfaces. Per the
143
- externalized-memory-surfaces convention's 13-row first inventory pass,
144
- the primary rows for restore are:
145
-
146
- | Row | Surface |
147
- |---|---|
148
- | 1 | Transcripts |
149
- | 2 | Durable chat |
150
- | 3 | Startup replay context |
151
- | 5 | Checkpoints |
152
- | 12 | Restore/reentry packets and Agent Starters |
153
-
154
- The umbrella's authority-rank + permission-posture columns govern which
155
- surfaces a restore path can write vs only read.
142
+ A restore may consume transcripts, durable messages, startup context,
143
+ checkpoints and a restore packet. Inventory the surfaces actually present for
144
+ this seat, with their source, freshness and purpose. Do not infer that a named
145
+ surface exists or grants write authority.
146
+
147
+ The active project/rig policy and task authorization determine what may be
148
+ written. Treat provider-owned conversation records as evidence to read through
149
+ supported tooling. For placement and durable context, load
150
+ `skills/openrig-operating-model/SKILL.md` with `rig context get`; for the
151
+ selected startup path, use `skills/core/agent-startup-and-context-ingestion/SKILL.md`.
152
+ A packet or marker proves retained/delivered evidence, not successful provider
153
+ restoration; measure the resumed seat against the proof standard above.
156
154
 
157
155
  ## See also
158
156
 
@@ -160,4 +158,4 @@ surfaces a restore path can write vs only read.
160
158
  - `mental-model-ha` skill — HA-pair compaction recovery (different scenario; sister primitive)
161
159
  - `session-source-fork` skill — `fork` mode for native-runtime-continuity-based restoration
162
160
  - `seat-continuity-and-handover` skill — occupant-creation primitives (resume/fork/rebuild/fresh) that this primitive instantiates
163
- - `externalized-memory-surfaces` skill — umbrella convention listing all surfaces this primitive consumes
161
+ - `openrig-operating-model` skill — placement and authority of durable context
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "session-compaction-and-restore"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when reasoning about what survives compaction/context-loss/restart/seat-refresh, designing a high-fidelity restore packet, or distinguishing native runtime resume vs fork vs artifact-backed mental-model rebuild. Covers the 4 failure modes that prevent honest restore (compacted seat drops hot potato; restore packet preserves details but loses product intent; runtime resume mistaken for handover or fork; rebuilt seat starts with stale instructions)."
7
7
  files:
@@ -1,7 +1,7 @@
1
1
  # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
2
  # Package-time projection of a canonical skill; regenerated every build.
3
3
  name: "software-for-agents"
4
- version: "0.5.10"
4
+ version: "0.5.11"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when older OpenRig instructions name software-for-agents or describe agent-in-the-middle or studio software under the former skill name."
7
7
  files:
@@ -1,5 +1,5 @@
1
1
  name: world-example
2
- version: "0.5.10"
2
+ version: "0.5.11"
3
3
  taxonomy: world
4
4
  purpose: "A fill-in template showing the anatomy of an OpenRig world pack."
5
5
  files: