@openrig/cli 0.5.9 → 0.5.10

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 (496) hide show
  1. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +48 -61
  2. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +19 -5
  3. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +25 -0
  4. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  5. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +26 -10
  6. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  7. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  8. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  9. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  10. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  11. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +21 -6
  12. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +48 -61
  16. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +3 -3
  17. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +19 -5
  32. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/openrig-user/SKILL.md +25 -0
  35. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pods/development-team/SKILL.md +40 -139
  45. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -3
  46. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +40 -60
  47. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +3 -3
  48. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pods/review-team/SKILL.md +34 -31
  50. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +3 -3
  51. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +6 -8
  57. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  65. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  66. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  67. package/daemon/dist/build-info.js +3 -3
  68. package/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  69. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  70. package/daemon/dist/domain/gateway/channel-operations.js +35 -0
  71. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  72. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  73. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  74. package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  75. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  76. package/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  77. package/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  78. package/daemon/dist/domain/gateway/human-readiness.js +44 -0
  79. package/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  80. package/daemon/dist/domain/gateway/human-registry.d.ts +2 -7
  81. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  82. package/daemon/dist/domain/gateway/human-registry.js +2 -7
  83. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  84. package/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  85. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  86. package/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  87. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  88. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  89. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  90. package/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  91. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  92. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  93. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  94. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +62 -8
  95. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  96. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  97. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  98. package/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  99. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  100. package/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  101. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  102. package/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  103. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  104. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  105. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  106. package/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  107. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  108. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  109. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  110. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  111. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  112. package/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  113. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  114. package/daemon/dist/domain/health-checkpoints.js +198 -0
  115. package/daemon/dist/domain/health-checkpoints.js.map +1 -0
  116. package/daemon/dist/domain/health-context.d.ts +14 -0
  117. package/daemon/dist/domain/health-context.d.ts.map +1 -0
  118. package/daemon/dist/domain/health-context.js +93 -0
  119. package/daemon/dist/domain/health-context.js.map +1 -0
  120. package/daemon/dist/domain/health-detectors.d.ts +106 -0
  121. package/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  122. package/daemon/dist/domain/health-detectors.js +392 -0
  123. package/daemon/dist/domain/health-detectors.js.map +1 -0
  124. package/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  125. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  126. package/daemon/dist/domain/health-diagnosis.js +249 -0
  127. package/daemon/dist/domain/health-diagnosis.js.map +1 -0
  128. package/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  129. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  130. package/daemon/dist/domain/health-passive-ceremony.js +234 -0
  131. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  132. package/daemon/dist/domain/health-policy.d.ts +45 -0
  133. package/daemon/dist/domain/health-policy.d.ts.map +1 -0
  134. package/daemon/dist/domain/health-policy.js +89 -0
  135. package/daemon/dist/domain/health-policy.js.map +1 -0
  136. package/daemon/dist/domain/health-projection.d.ts +237 -0
  137. package/daemon/dist/domain/health-projection.d.ts.map +1 -0
  138. package/daemon/dist/domain/health-projection.js +312 -0
  139. package/daemon/dist/domain/health-projection.js.map +1 -0
  140. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  141. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  142. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  143. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  144. package/daemon/dist/domain/node-inventory.js +1 -0
  145. package/daemon/dist/domain/node-inventory.js.map +1 -1
  146. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  147. package/daemon/dist/domain/project-lifecycle-compiler.js +35 -6
  148. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  149. package/daemon/dist/domain/queue-repository.d.ts +14 -0
  150. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  151. package/daemon/dist/domain/queue-repository.js +60 -5
  152. package/daemon/dist/domain/queue-repository.js.map +1 -1
  153. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  154. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  155. package/daemon/dist/domain/queue-transition-log.js +28 -0
  156. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  157. package/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  158. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  159. package/daemon/dist/domain/queue-wait-backoff.js +96 -0
  160. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  161. package/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  162. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  163. package/daemon/dist/domain/queue-wake-repository.js +8 -3
  164. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  165. package/daemon/dist/domain/types.d.ts +3 -0
  166. package/daemon/dist/domain/types.d.ts.map +1 -1
  167. package/daemon/dist/domain/types.js.map +1 -1
  168. package/daemon/dist/domain/user-settings/settings-store.d.ts +9 -1
  169. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  170. package/daemon/dist/domain/user-settings/settings-store.js +72 -12
  171. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  172. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  173. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  174. package/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  175. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  176. package/daemon/dist/domain/workflow-projector.d.ts +24 -0
  177. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  178. package/daemon/dist/domain/workflow-projector.js +108 -16
  179. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  180. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  181. package/daemon/dist/domain/workflow-runtime.js +58 -11
  182. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  183. package/daemon/dist/domain/workflow-spec-cache.d.ts +2 -2
  184. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  185. package/daemon/dist/domain/workflow-spec-cache.js +16 -0
  186. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  187. package/daemon/dist/domain/workflow-types.d.ts +8 -0
  188. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  189. package/daemon/dist/domain/workflow-types.js.map +1 -1
  190. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  191. package/daemon/dist/domain/workflow-validator.js +18 -0
  192. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  193. package/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  194. package/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  195. package/daemon/dist/gateway-human-registry-surface.js +1 -0
  196. package/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  197. package/daemon/dist/gateway-slack-surface.d.ts +1 -0
  198. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  199. package/daemon/dist/gateway-slack-surface.js +1 -0
  200. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  201. package/daemon/dist/health-detectors-surface.d.ts +2 -0
  202. package/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  203. package/daemon/dist/health-detectors-surface.js +2 -0
  204. package/daemon/dist/health-detectors-surface.js.map +1 -0
  205. package/daemon/dist/health-projection-surface.d.ts +2 -0
  206. package/daemon/dist/health-projection-surface.d.ts.map +1 -0
  207. package/daemon/dist/health-projection-surface.js +2 -0
  208. package/daemon/dist/health-projection-surface.js.map +1 -0
  209. package/daemon/dist/index.d.ts.map +1 -1
  210. package/daemon/dist/index.js +2 -0
  211. package/daemon/dist/index.js.map +1 -1
  212. package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  213. package/daemon/dist/lib/pane-envelope.js +4 -1
  214. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  215. package/daemon/dist/routes/gateway.d.ts +5 -1
  216. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  217. package/daemon/dist/routes/gateway.js +70 -22
  218. package/daemon/dist/routes/gateway.js.map +1 -1
  219. package/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  220. package/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  221. package/daemon/dist/routes/health-diagnosis.js +47 -0
  222. package/daemon/dist/routes/health-diagnosis.js.map +1 -0
  223. package/daemon/dist/routes/health.d.ts +3 -0
  224. package/daemon/dist/routes/health.d.ts.map +1 -0
  225. package/daemon/dist/routes/health.js +50 -0
  226. package/daemon/dist/routes/health.js.map +1 -0
  227. package/daemon/dist/routes/hosts.d.ts +2 -0
  228. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  229. package/daemon/dist/routes/hosts.js +12 -5
  230. package/daemon/dist/routes/hosts.js.map +1 -1
  231. package/daemon/dist/server.d.ts +8 -0
  232. package/daemon/dist/server.d.ts.map +1 -1
  233. package/daemon/dist/server.js +8 -0
  234. package/daemon/dist/server.js.map +1 -1
  235. package/daemon/dist/startup.d.ts.map +1 -1
  236. package/daemon/dist/startup.js +29 -1
  237. package/daemon/dist/startup.js.map +1 -1
  238. package/daemon/docs/reference/health-diagnosis.md +305 -0
  239. package/daemon/docs/reference/product-journey-sdlc.md +53 -15
  240. package/daemon/docs/reference/sdlc-conventions.md +6 -4
  241. package/daemon/specs/agents/development/implementer/agent.yaml +1 -9
  242. package/daemon/specs/agents/development/implementer/guidance/role.md +21 -43
  243. package/daemon/specs/agents/development/qa/agent.yaml +2 -11
  244. package/daemon/specs/agents/development/qa/guidance/role.md +21 -73
  245. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -9
  246. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +25 -72
  247. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -9
  248. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +20 -35
  249. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +21 -6
  250. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +48 -61
  251. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +40 -139
  252. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +40 -60
  253. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +34 -31
  254. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +6 -8
  255. package/daemon/specs/rigs/launch/demo/CULTURE.md +21 -30
  256. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +3 -3
  257. package/daemon/specs/rigs/preview/product-team/CULTURE.md +26 -71
  258. package/dist/build-info.js +3 -3
  259. package/dist/commands/config.d.ts.map +1 -1
  260. package/dist/commands/config.js +1 -0
  261. package/dist/commands/config.js.map +1 -1
  262. package/dist/commands/gateway.d.ts +17 -0
  263. package/dist/commands/gateway.d.ts.map +1 -1
  264. package/dist/commands/gateway.js +99 -13
  265. package/dist/commands/gateway.js.map +1 -1
  266. package/dist/commands/health.d.ts +12 -0
  267. package/dist/commands/health.d.ts.map +1 -0
  268. package/dist/commands/health.js +351 -0
  269. package/dist/commands/health.js.map +1 -0
  270. package/dist/commands/host.d.ts.map +1 -1
  271. package/dist/commands/host.js +2 -0
  272. package/dist/commands/host.js.map +1 -1
  273. package/dist/commands/queue.d.ts +18 -0
  274. package/dist/commands/queue.d.ts.map +1 -1
  275. package/dist/commands/queue.js +62 -0
  276. package/dist/commands/queue.js.map +1 -1
  277. package/dist/commands/send.d.ts.map +1 -1
  278. package/dist/commands/send.js +4 -1
  279. package/dist/commands/send.js.map +1 -1
  280. package/dist/commands/slack.d.ts.map +1 -1
  281. package/dist/commands/slack.js +39 -11
  282. package/dist/commands/slack.js.map +1 -1
  283. package/dist/commands/workflow.d.ts.map +1 -1
  284. package/dist/commands/workflow.js +8 -6
  285. package/dist/commands/workflow.js.map +1 -1
  286. package/dist/config-store.d.ts +9 -1
  287. package/dist/config-store.d.ts.map +1 -1
  288. package/dist/config-store.js +72 -14
  289. package/dist/config-store.js.map +1 -1
  290. package/dist/daemon-lifecycle.d.ts +5 -1
  291. package/dist/daemon-lifecycle.d.ts.map +1 -1
  292. package/dist/daemon-lifecycle.js +4 -2
  293. package/dist/daemon-lifecycle.js.map +1 -1
  294. package/dist/index.d.ts +4 -0
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +3 -1
  297. package/dist/index.js.map +1 -1
  298. package/dist/lib/scope/scope-fs.js +2 -2
  299. package/dist/lib/scope/scope-fs.js.map +1 -1
  300. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  301. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts +39 -0
  302. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -0
  303. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js +35 -0
  304. package/node_modules/@openrig/daemon/dist/domain/gateway/channel-operations.js.map +1 -0
  305. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -0
  306. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  307. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +3 -0
  308. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  309. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts +37 -0
  310. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.d.ts.map +1 -0
  311. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js +44 -0
  312. package/node_modules/@openrig/daemon/dist/domain/gateway/human-readiness.js.map +1 -0
  313. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +2 -7
  314. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  315. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +2 -7
  316. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  317. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +16 -1
  318. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  319. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +35 -12
  320. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  321. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -0
  322. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  323. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +1 -0
  324. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  325. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +18 -0
  326. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  327. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +62 -8
  328. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  329. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +13 -0
  330. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  331. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +59 -1
  332. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  333. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +21 -0
  334. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  335. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +28 -1
  336. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  337. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +2 -0
  338. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  339. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +6 -1
  340. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  341. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +4 -0
  342. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  343. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +11 -0
  344. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  345. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts +57 -0
  346. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.d.ts.map +1 -0
  347. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js +198 -0
  348. package/node_modules/@openrig/daemon/dist/domain/health-checkpoints.js.map +1 -0
  349. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts +14 -0
  350. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts.map +1 -0
  351. package/node_modules/@openrig/daemon/dist/domain/health-context.js +93 -0
  352. package/node_modules/@openrig/daemon/dist/domain/health-context.js.map +1 -0
  353. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts +106 -0
  354. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts.map +1 -0
  355. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js +392 -0
  356. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js.map +1 -0
  357. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts +143 -0
  358. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts.map +1 -0
  359. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +249 -0
  360. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -0
  361. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts +19 -0
  362. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -0
  363. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js +234 -0
  364. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js.map +1 -0
  365. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts +45 -0
  366. package/node_modules/@openrig/daemon/dist/domain/health-policy.d.ts.map +1 -0
  367. package/node_modules/@openrig/daemon/dist/domain/health-policy.js +89 -0
  368. package/node_modules/@openrig/daemon/dist/domain/health-policy.js.map +1 -0
  369. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts +237 -0
  370. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts.map +1 -0
  371. package/node_modules/@openrig/daemon/dist/domain/health-projection.js +312 -0
  372. package/node_modules/@openrig/daemon/dist/domain/health-projection.js.map +1 -0
  373. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  374. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js +14 -11
  375. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  376. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  377. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +1 -0
  378. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  379. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  380. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +35 -6
  381. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  382. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +14 -0
  383. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  384. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +60 -5
  385. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  386. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  387. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  388. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +28 -0
  389. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  390. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts +21 -0
  391. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -0
  392. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js +96 -0
  393. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +1 -0
  395. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  396. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +8 -3
  397. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  398. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -0
  399. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  400. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +9 -1
  402. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  403. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +72 -12
  404. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  405. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -0
  406. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +5 -0
  408. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +24 -0
  410. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  411. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +108 -16
  412. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  413. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  414. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +58 -11
  415. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  416. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts +2 -2
  417. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  418. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js +16 -0
  419. package/node_modules/@openrig/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  420. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts +8 -0
  421. package/node_modules/@openrig/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  422. package/node_modules/@openrig/daemon/dist/domain/workflow-types.js.map +1 -1
  423. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  424. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js +18 -0
  425. package/node_modules/@openrig/daemon/dist/domain/workflow-validator.js.map +1 -1
  426. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts +1 -0
  427. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.d.ts.map +1 -1
  428. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js +1 -0
  429. package/node_modules/@openrig/daemon/dist/gateway-human-registry-surface.js.map +1 -1
  430. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +1 -0
  431. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  432. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +1 -0
  433. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -1
  434. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts +2 -0
  435. package/node_modules/@openrig/daemon/dist/health-detectors-surface.d.ts.map +1 -0
  436. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js +2 -0
  437. package/node_modules/@openrig/daemon/dist/health-detectors-surface.js.map +1 -0
  438. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts +2 -0
  439. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts.map +1 -0
  440. package/node_modules/@openrig/daemon/dist/health-projection-surface.js +2 -0
  441. package/node_modules/@openrig/daemon/dist/health-projection-surface.js.map +1 -0
  442. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  443. package/node_modules/@openrig/daemon/dist/index.js +2 -0
  444. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  445. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +4 -1
  447. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +5 -1
  449. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -1
  450. package/node_modules/@openrig/daemon/dist/routes/gateway.js +70 -22
  451. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  452. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts +3 -0
  453. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.d.ts.map +1 -0
  454. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js +47 -0
  455. package/node_modules/@openrig/daemon/dist/routes/health-diagnosis.js.map +1 -0
  456. package/node_modules/@openrig/daemon/dist/routes/health.d.ts +3 -0
  457. package/node_modules/@openrig/daemon/dist/routes/health.d.ts.map +1 -0
  458. package/node_modules/@openrig/daemon/dist/routes/health.js +50 -0
  459. package/node_modules/@openrig/daemon/dist/routes/health.js.map +1 -0
  460. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts +2 -0
  461. package/node_modules/@openrig/daemon/dist/routes/hosts.d.ts.map +1 -1
  462. package/node_modules/@openrig/daemon/dist/routes/hosts.js +12 -5
  463. package/node_modules/@openrig/daemon/dist/routes/hosts.js.map +1 -1
  464. package/node_modules/@openrig/daemon/dist/server.d.ts +8 -0
  465. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  466. package/node_modules/@openrig/daemon/dist/server.js +8 -0
  467. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  468. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  469. package/node_modules/@openrig/daemon/dist/startup.js +29 -1
  470. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  471. package/node_modules/@openrig/daemon/package.json +9 -1
  472. package/package.json +1 -1
  473. package/tui/dist/commands/registry.js +1 -1
  474. package/tui/dist/commands/registry.js.map +1 -1
  475. package/tui/dist/daemon-client.d.ts +2 -0
  476. package/tui/dist/daemon-client.d.ts.map +1 -1
  477. package/tui/dist/daemon-client.js +4 -0
  478. package/tui/dist/daemon-client.js.map +1 -1
  479. package/tui/dist/health/health-model.d.ts +25 -0
  480. package/tui/dist/health/health-model.d.ts.map +1 -0
  481. package/tui/dist/health/health-model.js +322 -0
  482. package/tui/dist/health/health-model.js.map +1 -0
  483. package/tui/dist/hydrate.d.ts.map +1 -1
  484. package/tui/dist/hydrate.js +13 -2
  485. package/tui/dist/hydrate.js.map +1 -1
  486. package/tui/dist/input.d.ts.map +1 -1
  487. package/tui/dist/input.js +2 -0
  488. package/tui/dist/input.js.map +1 -1
  489. package/tui/dist/render.d.ts.map +1 -1
  490. package/tui/dist/render.js +23 -2
  491. package/tui/dist/render.js.map +1 -1
  492. package/tui/dist/state.d.ts.map +1 -1
  493. package/tui/dist/state.js +14 -8
  494. package/tui/dist/state.js.map +1 -1
  495. package/tui/dist/types.d.ts +90 -1
  496. package/tui/dist/types.d.ts.map +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: orchestration-team
3
- description: Operating manual for the orchestration pod. Covers lead vs peer roles, monitoring with rig commands, permission handling, implementation pair gating, dogfood loops, review routing, agent behavioral models, intervention discipline, and communication culture.
3
+ description: Use when coordinating assignments, selected review boundaries, or blocked work across a rig.
4
4
  ---
5
5
 
6
6
  # Orchestration Team
@@ -9,14 +9,18 @@ You are part of the orchestration pod. Your job is to keep the team productive,
9
9
 
10
10
  ## Startup sequence
11
11
 
12
- Before you summarize the rig or assign real work:
13
- 1. Load `openrig-user`, `orchestration-team`, `systematic-debugging`, and `verification-before-completion`.
14
- 2. Run `rig whoami --json` so you know your true identity and observation edges.
15
- 3. Run `rig ps --nodes --json` and wait for the expected starter topology to settle.
16
- 4. Check recent chatroom history or direct startup messages so you know who is actually online and what they already reported.
17
- 5. Only then announce readiness or assign work.
12
+ Run `rig whoami --json`, then resolve `project.yaml -> mission.yaml -> active
13
+ slice.yaml -> selected component or wave map -> addressed context`. The complete
14
+ lookup and precedence rule is `docs/reference/product-journey-sdlc.md#resolve-the-selected-path`
15
+ (installed: `$OPENRIG_HOME/reference/product-journey-sdlc.md#resolve-the-selected-path`).
16
+ Read the selected addresses and source needed for this task; skills available in
17
+ your profile are capabilities, not a mandatory reading list. No composition means
18
+ light Part A. Role names and idle seats add no gates. Explicit rigor and authored
19
+ wave boundaries retain their named checks.
18
20
 
19
- Do not improvise a team model from the first partial snapshot you happen to see.
21
+ Check the queue and actual seats needed for this assignment. A declared topology
22
+ is a capability inventory, not a requirement to fill every lane. Dispatch the
23
+ smallest complete outcome with its selected context and stop condition.
20
24
 
21
25
  ## Pod responsibilities
22
26
 
@@ -66,7 +70,7 @@ If there is more than one orchestrator, divide the load:
66
70
 
67
71
  **Peer** owns:
68
72
  - Coverage monitoring — who's idle, who's stuck, who's drifting
69
- - QA flow health — are gates being followed, is QA actually reviewing
73
+ - Selected QA flow health — is the promised outcome being verified at its authored boundary
70
74
  - Different-model perspective on architectural decisions
71
75
  - Mental model sync — keeping shared state current
72
76
  - Convergence partner for reviews and roundtables
@@ -75,13 +79,11 @@ If there is only one orchestrator, you own both the main work stream and the cov
75
79
 
76
80
  ## Delegation rules
77
81
 
78
- Before delegating:
79
- 1. Check `rig ps --nodes` to see who is running, idle, or blocked.
80
- 2. Check `rig whoami --json` so you know your delegates and observation edges.
81
- 3. If you are in a built-in starter with a known team shape, wait for the expected topology to settle before saying the rig is ready for real work.
82
- 4. Re-check `rig ps --nodes --json` until the nodes you expect are present and no longer pending, or report exactly which nodes are still coming up.
83
- 5. Do not silently shrink the team model from an early partial inventory. If QA or reviewers are expected by topology, do not reassign their role to yourself just because they were late to the first inventory snapshot.
84
- 6. Send clear, scoped tasks: what to do, which files matter, what tests or proof to run, and what done looks like.
82
+ Resolve the selected path first. Derive which seats are available with `rig ps`
83
+ and `rig whoami`; assign only roles the current work needs. One seat may hold
84
+ neighboring components unless the selection requires independence. If a required
85
+ independent evaluator is unavailable, name that specific blocker. Do not wait for
86
+ an entire starter topology or assign extra reviews to occupy it.
85
87
 
86
88
  ## Task packet shape
87
89
 
@@ -90,7 +92,7 @@ When you dispatch work, give the receiving agent enough structure to act without
90
92
  - which files or surfaces matter
91
93
  - what acceptance criteria define success
92
94
  - what proof or verification you expect back
93
- - which peer or pod they must involve before calling the work complete
95
+ - any independently held component explicitly selected, and the boundary that triggers it
94
96
 
95
97
  **(0.5.0) Assign work *with* its context attached.** Rather than make the assignee grep for the as-built, compose a context pack and ride it on the handoff: `rig context compose --out packs/<brief> --from <files>`, then `rig queue create --destination <seat> --body-context packs/<brief> --summary "…"`. The pack's resolved content is snapshotted into the qitem (plus its ref for provenance), so the context survives compaction and is auditable. See `openrig-user` → "Context packs and paced delivery." (`rig context` composes; the queue delivers — the noun never sends.)
96
98
 
@@ -150,41 +152,24 @@ fourteen-seat rig's seats waiting for nodes that did not exist).
150
152
  - If the settled inventory contradicts your earlier assumption, correct course immediately
151
153
  and use the actual nodes.
152
154
 
153
- ## Milestone routing — gates are CHOSEN, not universal
155
+ ## Milestone routing — follow the selected boundary
154
156
 
155
- **The owner-ruled chooser law: default-light; the conveyor EARNS entry.** Gates are chosen
156
- per atom at plan-lock by the target's tier (release-gated / shared contracts / heavy tier →
157
- full gate; everything else → light peer check or none), never applied as a universal loop.
158
- When the heavy tier IS chosen for launch-grade product work:
159
- - do not let implementation start from pure intuition when product behavior is unclear
160
- - do not let edits land before QA has approved a pre-edit proposal
161
- - do not skip reviewer involvement once there is a real diff, a QA-approved working tree, or a meaningful architectural checkpoint
162
- - if commit authority is disabled, route review on the working tree, verification output, and transcript evidence instead of waiting for a commit
157
+ Only the authored component/wave selection or an explicit owner assignment admits
158
+ a review or gate. Part A is the fallback; a role label, tier, milestone, prior
159
+ review or available seat cannot choose Part B. If a concrete risk needs a different
160
+ path, ask the owner and record the resulting selection for that work.
163
161
 
164
- ## When to pull in reviewers
162
+ For a wave, builders verify their local slices and the integrator folds serially
163
+ where needed. Independent review fires once at the authored wave boundary, with
164
+ its selected review model. Preserve separately named rigorous-slice exceptions.
165
+ A tiny docs outcome may stay with its builder through verification and return.
165
166
 
166
- Ask for review:
167
- - after a significant implementation milestone
168
- - when two agents disagree on approach or quality
169
- - when the human asks for a checkpoint
170
- - when you are unsure whether a piece of work is trustworthy enough to ship
167
+ ## Keeping work moving
171
168
 
172
- ## Keeping the team utilized
173
-
174
- **Queue depth is your product — keep every worker's queue stocked.** An agent with an empty queue idles
175
- the moment it finishes; an agent with a stocked queue pulls its next item and keeps producing. The
176
- biggest utilization leak is **unstocked worker queues**, so your steady-state job is to keep work
177
- flowing INTO each lane's queue *ahead of* demand. The worker side of this is the pull-after-handoff
178
- circulation in `queue-handoff` (finish → hand the baton off → pull your own next item → idle only when
179
- the queue is truly empty); your side is making sure there is always a next item to pull. Planners are
180
- rarely blocked — keep their queues full; implementers are more sequential but still queueable.
181
-
182
- On a watchdog wake, a cheap scoped `rig ps --nodes` surfaces a ready-but-idle agent (this is an event-driven check, not a poll loop). If one is idle:
183
- - QA with no pending reviews should scan recent work for gaps
184
- - reviewers with no assignment should review the newest meaningful progress
185
- - designers with no open task should audit current flows and clarify ambiguous UX
186
-
187
- Do not let agents idle when there is obviously useful work available.
169
+ Keep already-authorized work visible and route it when its dependencies allow.
170
+ There is no fixed queue buffer. Idle QA/review seats wait for their selected
171
+ boundary or assignment; they do not invent audits or review the newest progress.
172
+ An availability report is enough. Do not create obligations to improve utilization.
188
173
 
189
174
  ## Communication modes
190
175
 
@@ -209,9 +194,8 @@ across the lifecycle, not only when cornered.
209
194
 
210
195
  ## Implementation pair — gated workflow (when the gate is chosen)
211
196
 
212
- **This loop applies when the atom's tier chose the full gate** (see Milestone routing — the
213
- conveyor earns entry; it is not the default shape of all work). When it applies, the pair
214
- follows this loop:
197
+ **This optional loop runs only when the owner or authored composition selects
198
+ pre/post-edit QA for named work.** A tier or pair topology does not select it.
215
199
 
216
200
  1. Impl sends a pre-edit proposal to QA
217
201
  2. QA approves or rejects with specifics
@@ -252,8 +236,7 @@ For destructive operations (git push, rm, daemon stop, npm publish): DO NOT auto
252
236
  - Will blast through an entire task list if given a "Go" without explicit gates
253
237
  - After being told to slow down, over-corrects to "wait for permission for everything"
254
238
  - Compaction is catastrophic — full context loss, needs preparation
255
- - After compaction: must re-read ALL skills from disk (skill names survive in system reminders but content is truncated)
256
- - After compaction, require marshal acceptance before treating a `RESTORED` claim as real — quiz the recovered seat on asked-vs-read depth before resuming work
239
+ - After compaction: restore the active assignment and its selected context; skill names alone are not restored content. Follow the declared continuity policy without adding a universal quiz gate.
257
240
 
258
241
  ### Codex agents (QA, peer, R2)
259
242
  - Self-manages its own context window — do NOT intervene based on context percentage
@@ -286,13 +269,10 @@ Before any destructive operation: "If this goes wrong, can I undo it?" If no, co
286
269
 
287
270
  ## After compaction recovery
288
271
 
289
- 1. Re-read ALL skills from disk — actually read the SKILL.md files, not just check names
290
- 2. `rig whoami --json` to recover identity
291
- 3. `rig ps --nodes` to see the topology
292
- 4. Read your restore file and session log if available
293
- 5. Ask your peer for a quiz to verify your mental model
294
-
295
- For Claude Code seats in OpenRig, marshals/orchestrators should run an asked-vs-read-depth audit before accepting recovery (quiz the seat on context it claims to have restored). Preserve the Codex boundary: do not intervene on Codex context percentage or apply Claude compact-in-place by default.
272
+ Derive identity and current queue custody, then resolve the selected path again.
273
+ Read the restore pointer and relevant current sources; load the skills the task
274
+ needs. Follow any explicitly declared continuity checks. Do not require every
275
+ installed skill or a quiz as a universal admission gate.
296
276
 
297
277
  ## What you do not do
298
278
 
@@ -1,10 +1,10 @@
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: "orchestration-team"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
- purpose: "Operating manual for the orchestration pod. Covers lead vs peer roles, monitoring with rig commands, permission handling, implementation pair gating, dogfood loops, review routing, agent behavioral models, intervention discipline, and communication culture."
6
+ purpose: "Use when coordinating assignments, selected review boundaries, or blocked work across a rig."
7
7
  files:
8
8
  - path: "SKILL.md"
9
9
  role: "instruction"
10
- summary: "Operating manual for the orchestration pod. Covers lead vs peer roles, monitoring with rig commands, permission handling, implementation pair gating, dogfood loops, review routing, agent behavioral models, intervention discipline, and communication culture."
10
+ summary: "Use when coordinating assignments, selected review boundaries, or blocked work across a rig."
@@ -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: "oversight-team"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when you are a seat on the oversight pod (a standing monitor-mode rig that keeps OTHER rigs healthy), configuring or running the drift detectors, or choosing whether to intervene vs escalate. Covers the pull-not-poll posture, the v0 detectors (premature-park, process-drift, off-task, token-burn), the intervention ladder (orchestrator-ping -> refocus -> human escalation), and the cheap+deep model economics. NOT for orchestrating your OWN rig (orchestration-team) and NOT the intervention primi"
7
7
  files:
@@ -1,23 +1,40 @@
1
1
  ---
2
2
  name: review-team
3
- description: Complete operating manual for the review pod. Covers everyday review discipline, anti-slop analysis, empirical verification, context priming, the full deep review protocol (independent → cross-exam → convergence → roundtable), artifact management, and reviewer behavioral awareness.
3
+ description: Use when assigned a review or when an authored review boundary is reached.
4
4
  ---
5
5
 
6
6
  # Review Team
7
7
 
8
8
  You are part of the review pod. Your value is fresh scrutiny that implementation and QA do not have.
9
9
 
10
- ## Proportionality — right-size the review to the change (read first)
11
- Review rigor scales to stakes and change size. A small, low-stakes diff gets a fast, focused pass; the full deep protocol (context proof, confidence scores, independent → cross-exam → convergence → roundtable) is for architecture / security / high-blast-radius changes. Don't run the heavy machinery on a one-line fix — that's ceremony, and it delays the ship it exists to protect. Catch what matters, then let good work through. The point of review is **better product shipped, not review performed.**
10
+ ## Entry and proportionality
11
+
12
+ Run `rig whoami --json`, then resolve `project.yaml -> mission.yaml -> active
13
+ slice.yaml -> selected component or wave map -> addressed context`. The complete
14
+ lookup and precedence rule is `docs/reference/product-journey-sdlc.md#resolve-the-selected-path`
15
+ (installed: `$OPENRIG_HOME/reference/product-journey-sdlc.md#resolve-the-selected-path`).
16
+ Read the selected addresses and source needed for this task; skills available in
17
+ your profile are capabilities, not a mandatory reading list. No composition means
18
+ light Part A. Role names and idle seats add no gates. Explicit rigor and authored
19
+ wave boundaries retain their named checks.
20
+
21
+ Start a review only for an explicit owner assignment or an authored component/wave
22
+ review event. A visible milestone, idle queue, or available reviewer is not an
23
+ assignment. At a wave boundary review the accumulated outcome once; preserve a
24
+ named slice's explicit exception. Authors do not perform their own selected
25
+ independent review.
26
+
27
+ Match the selected review to the consequence. A small diff gets a focused pass;
28
+ the deep protocol below runs only when explicitly selected for named work.
29
+ Importance, size or a prior finding alone cannot self-select it. If another review
30
+ seems necessary, name the concrete unresolved risk to the owner while continuing
31
+ the selected path.
12
32
 
13
33
  ## Startup sequence
14
34
 
15
- Before you announce a review position:
16
- - load `openrig-user`, `review-team`, `systematic-debugging`, and `verification-before-completion`
17
- - run `rig whoami --json`
18
- - inspect the current rig state so you know whether you are reviewing a diff, a working tree, verification output, or only startup behavior
19
-
20
- If there is no real review target yet, say that plainly and stay ready.
35
+ Derive the selection before forming a review position. If the assigned boundary
36
+ has not arrived, record readiness and wait for its event; do not scan for work to
37
+ turn into additional required reviews.
21
38
 
22
39
  ## Context priming — always do this first
23
40
 
@@ -96,20 +113,10 @@ rig chatroom send <rig> "[review] <structured findings>"
96
113
 
97
114
  ## When to review
98
115
 
99
- Do not wait forever for a perfect formal handoff. Review when:
100
- - the orchestrator assigns a review checkpoint
101
- - a meaningful implementation milestone appears
102
- - you can see active work and the team would benefit from fresh eyes
103
-
104
- Check for reviewable work with:
105
- ```bash
106
- rig capture <impl-session> --lines 30
107
- rig transcript <impl-session> --tail 50
108
- git log --oneline -10
109
- git diff --stat
110
- ```
111
-
112
- If commit authority is disabled, review the working tree, verification output, and implementation transcript instead of waiting for a commit that may never happen.
116
+ Review the exact target when its selected entry condition holds. Read source and
117
+ verification evidence for that target; a working tree may be the target when the
118
+ assignment says so. Do not watch implementation increments or start a second
119
+ review merely because a milestone appeared.
113
120
 
114
121
  ## When there is no spec
115
122
 
@@ -121,7 +128,7 @@ When reviewing work that was implemented without a pre-existing spec (ad hoc, do
121
128
 
122
129
  ## Deep review protocol
123
130
 
124
- For significant milestones, the review team follows a structured multi-phase process. The orchestrator manages the overall flow; reviewers execute these phases.
131
+ Only when the owner or composition explicitly selects this protocol for named work, the orchestrator coordinates these phases. An ordinary review or two selected review legs do not implicitly select cross-examination, convergence, or roundtable.
125
132
 
126
133
  ### Phase 1: Context priming gate
127
134
 
@@ -203,11 +210,7 @@ The host writes the final roundtable document with:
203
210
 
204
211
  Disagreement is useful. Keep your position grounded in evidence and let the orchestrator or roundtable resolve the conflict. Do not collapse your view just to create false consensus. If you're right, defend it. If you're wrong, retract it honestly.
205
212
 
206
- ## When there is nothing obvious to review
207
-
208
- If the team is between milestones:
209
- - check topology state with `rig ps --nodes`
210
- - scan for coverage gaps or risky areas
211
- - offer the orchestrator a proactive review target
213
+ ## When there is no assigned review
212
214
 
213
- Do not idle without saying so. If you are available, make that explicit.
215
+ Make availability visible once, then wait for the selected boundary or assignment.
216
+ An idle seat does not create a coverage audit, mandatory review, or new gate.
@@ -1,10 +1,10 @@
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: "review-team"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
- purpose: "Complete operating manual for the review pod. Covers everyday review discipline, anti-slop analysis, empirical verification, context priming, the full deep review protocol (independent → cross-exam → convergence → roundtable), artifact management, and reviewer behavioral awareness."
6
+ purpose: "Use when assigned a review or when an authored review boundary is reached."
7
7
  files:
8
8
  - path: "SKILL.md"
9
9
  role: "instruction"
10
- summary: "Complete operating manual for the review pod. Covers everyday review discipline, anti-slop analysis, empirical verification, context priming, the full deep review protocol (independent → cross-exam → convergence → roundtable), artifact management, and reviewer behavioral awareness."
10
+ summary: "Use when assigned a review or when an authored review boundary is reached."
@@ -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: "agent-browser"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction."
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: "context-engineering"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when designing, reviewing, or debugging how an agent's context window gets filled, pruned, or shared — choosing what loads at boot versus on demand, sizing an install or an always-loaded file, fixing an agent that drifts, repeats itself, or forgets constraints mid-task, planning compaction or summarization, deciding single-agent versus subagents, engineering handoffs between agents, or picking a tool loadout. NOT for rewording a prompt's tone, choosing which model to pin, or debugging busine"
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: "dogfood"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to \"dogfood\", \"QA\", \"exploratory test\", \"find issues\", \"bug hunt\", \"test this app/site/platform\", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams."
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: "frontend-design"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics."
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: "systematic-debugging"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes"
7
7
  files:
@@ -33,14 +33,12 @@ Write the test first. Watch it fail. Write minimal code to pass.
33
33
 
34
34
  Thinking "skip TDD just this once"? Stop. That's rationalization.
35
35
 
36
- **Chunk size is a dial, and it points up (2026-08) — this is NOT "skip TDD".** *How much* you build per
37
- red-green cycle is configurable, and with frontier agents handling hour-plus goal-oriented work it is
38
- **much larger than the classic tiny ping-pong**, and rising. Keep everything below — the Iron Law, red
39
- before green, two sets of eyes, the guard structure — **fully intact**; only the *cadence / granularity*
40
- loosens. You still write the failing test(s) first for the chunk; the chunk is simply bigger. Tiny
41
- back-and-forth is overhead, not virtue, once the SDLC's gates (QA, review, guards) bound a larger chunk's
42
- risk. Match the chunk to the task; treat it as a configured lever — never as license to write code before
43
- its test (that's the rationalization this skill exists to stop).
36
+ **Chunk size follows the outcome.** Keep red → green → refactor for the behavior
37
+ being changed and build a coherent chunk. TDD does not require two people,
38
+ pre-edit permission or a guard: independence and review cadence come from the
39
+ project/mission/slice component or wave selection. An explicitly selected gate
40
+ still applies; an unselected role cannot add one.
41
+
44
42
 
45
43
  ## The Iron Law
46
44
 
@@ -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: "test-driven-development"
4
- version: "0.5.9"
4
+ version: "0.5.10"
5
5
  taxonomy: "skills"
6
6
  purpose: "Use when implementing any feature or bugfix, before writing implementation code"
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: "verification-before-completion"
4
- version: "0.5.9"
4
+ version: "0.5.10"
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:
@@ -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.9"
4
+ version: "0.5.10"
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.9"
4
+ version: "0.5.10"
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,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.9"
4
+ version: "0.5.10"
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:
@@ -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.9"
4
+ version: "0.5.10"
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:
@@ -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.9"
4
+ version: "0.5.10"
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.9"
4
+ version: "0.5.10"
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.9"
2
+ version: "0.5.10"
3
3
  taxonomy: world
4
4
  purpose: "A fill-in template showing the anatomy of an OpenRig world pack."
5
5
  files:
@@ -1,5 +1,5 @@
1
1
  name: world-public
2
- version: "0.5.9"
2
+ version: "0.5.10"
3
3
  taxonomy: world
4
4
  purpose: "A portable operating-world primer that derives volatile facts and teaches agents to author their own world."
5
5
  files:
@@ -1,9 +1,9 @@
1
1
  // GENERATED by scripts/build-package.sh — the packaged build-identity stamp.
2
2
  export const BUILD_INFO = {
3
- semver: "0.5.9",
4
- commit: "dbf05f9d59ef3b0ae14fc00174c643df4858d45a",
3
+ semver: "0.5.10",
4
+ commit: "b4c833c646f8e49ae47cbee7b0e941be7b49f160",
5
5
  dirty: false,
6
- builtAt: "2026-09-05T02:09:38Z",
6
+ builtAt: "2026-09-06T18:25:23Z",
7
7
  };
8
8
  export function stampFields(info = BUILD_INFO) {
9
9
  if (!info.commit) return {};
@@ -0,0 +1,39 @@
1
+ /** Deliberately small, value-free snapshots: credentials, handles, message bodies,
2
+ * and connector responses never enter the lifecycle ledger. */
3
+ export interface ChannelState {
4
+ enabled?: boolean;
5
+ active?: boolean;
6
+ digest?: string;
7
+ ready?: boolean | null;
8
+ }
9
+ export interface ChannelActor {
10
+ actor: string;
11
+ provenance: "transport:v1" | "claimed:v1";
12
+ reason: string;
13
+ }
14
+ export interface ChannelOperation extends ChannelActor {
15
+ id: string;
16
+ at: string;
17
+ action: "enable" | "disable" | "configure" | "verify" | "binding";
18
+ subject: string;
19
+ before: ChannelState;
20
+ after: ChannelState | null;
21
+ effect: "started" | "applied" | "no-op" | "observed" | "failed";
22
+ }
23
+ export declare function channelStateDigest(value: unknown): string;
24
+ /** A start receipt survives a crash between the effect and its completion receipt.
25
+ * Failure to write the start refuses BEFORE the effect; incomplete is never success. */
26
+ export declare function runChannelOperation<T>(input: ChannelActor & {
27
+ action: ChannelOperation["action"];
28
+ subject: string;
29
+ before: ChannelState;
30
+ run: () => Promise<{
31
+ value: T;
32
+ after: ChannelState;
33
+ effect: "applied" | "no-op" | "observed";
34
+ }>;
35
+ }, home?: string): Promise<{
36
+ value: T;
37
+ receipt: ChannelOperation;
38
+ }>;
39
+ //# sourceMappingURL=channel-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-operations.d.ts","sourceRoot":"","sources":["../../../src/domain/gateway/channel-operations.ts"],"names":[],"mappings":"AAKA;+DAC+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,cAAc,GAAG,YAAY,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CACjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;wFACwF;AACxF,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG;IACjE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;KAAE,CAAC,CAAC;CACjG,EAAE,IAAI,SAAmB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAsB5E"}
@@ -0,0 +1,35 @@
1
+ import { appendFileSync, mkdirSync } from "node:fs";
2
+ import { createHash, randomUUID } from "node:crypto";
3
+ import { join } from "node:path";
4
+ import { getOpenRigHome } from "../../openrig-compat.js";
5
+ export function channelStateDigest(value) {
6
+ return createHash("sha256").update(JSON.stringify(value)).digest("hex");
7
+ }
8
+ /** A start receipt survives a crash between the effect and its completion receipt.
9
+ * Failure to write the start refuses BEFORE the effect; incomplete is never success. */
10
+ export async function runChannelOperation(input, home = getOpenRigHome()) {
11
+ if (!input.actor.trim() || !input.reason.trim())
12
+ throw new Error("channel operation requires actor and reason");
13
+ const dir = join(home, "state");
14
+ const file = join(dir, "human-channel-operations.jsonl");
15
+ mkdirSync(dir, { recursive: true });
16
+ const base = {
17
+ id: randomUUID(), actor: input.actor, provenance: input.provenance,
18
+ reason: input.reason, action: input.action, subject: input.subject, before: input.before,
19
+ };
20
+ const append = (after, effect) => {
21
+ const receipt = { ...base, at: new Date().toISOString(), after, effect };
22
+ appendFileSync(file, JSON.stringify(receipt) + "\n", { mode: 0o600 });
23
+ return receipt;
24
+ };
25
+ append(null, "started");
26
+ try {
27
+ const result = await input.run();
28
+ return { value: result.value, receipt: append(result.after, result.effect) };
29
+ }
30
+ catch (error) {
31
+ append(null, "failed");
32
+ throw error;
33
+ }
34
+ }
35
+ //# sourceMappingURL=channel-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-operations.js","sourceRoot":"","sources":["../../../src/domain/gateway/channel-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA2BzD,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;wFACwF;AACxF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAI,KAK5C,EAAE,IAAI,GAAG,cAAc,EAAE;IACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;QAClE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;KACzF,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,KAA0B,EAAE,MAAkC,EAAoB,EAAE;QAClG,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -18,6 +18,7 @@ export interface GatewayWire {
18
18
  dispatcher: GatewayDispatcher;
19
19
  stop(): void;
20
20
  startServices?(): void;
21
+ status?(): Record<string, unknown>;
21
22
  }
22
23
  export interface InProcessWireOpts {
23
24
  home: string;
@@ -44,6 +45,8 @@ export interface GatewaySubsystemStatus {
44
45
  activatedAt?: string;
45
46
  /** Durable un-delivered decisions awaiting delivery/replay (undefined until first start). */
46
47
  pendingDispatches?: number;
48
+ /** Connector-owned live observations; never inferred when the wire has none. */
49
+ connector?: Record<string, unknown>;
47
50
  }
48
51
  export interface GatewaySubsystemDeps {
49
52
  home: string;