@openrig/cli 0.5.2 → 0.5.4

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 (586) hide show
  1. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  2. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  5. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  6. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +152 -0
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  9. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  10. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +26 -1
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  15. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  16. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  17. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  18. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  19. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  20. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  21. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +31 -9
  22. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  23. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  24. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  25. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  26. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  27. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  28. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  29. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  30. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  31. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  32. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  33. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  34. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  35. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  36. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  37. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  38. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  39. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  40. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  41. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  42. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  43. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  44. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  45. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  46. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  47. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  48. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  49. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  50. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  51. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  52. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  53. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  54. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  55. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  56. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  57. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  58. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  59. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  60. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  61. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  62. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  63. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  64. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  65. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  66. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  67. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  68. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  69. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  70. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  71. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  72. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  73. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  74. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  75. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  76. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  77. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  78. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  79. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  80. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  81. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  82. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  83. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  85. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  86. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  87. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  88. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  89. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  90. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  91. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  92. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  97. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  98. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  99. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  100. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  101. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  102. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  103. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  104. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  105. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  106. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  107. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  108. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  109. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  110. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  111. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  112. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  113. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  114. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  115. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  116. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  117. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  118. package/daemon/context-packs/world/install/reference-material.md +125 -0
  119. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  120. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  121. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  122. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  123. package/daemon/dist/adapters/claude-resume.js +2 -2
  124. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  125. package/daemon/dist/adapters/tmux.d.ts +41 -2
  126. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  127. package/daemon/dist/adapters/tmux.js +58 -18
  128. package/daemon/dist/adapters/tmux.js.map +1 -1
  129. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  130. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  131. package/daemon/dist/adapters/yolo-mode.js +21 -0
  132. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  133. package/daemon/dist/build-info.js +3 -3
  134. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  135. package/daemon/dist/daemon-db-path.js +50 -2
  136. package/daemon/dist/daemon-db-path.js.map +1 -1
  137. package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  138. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  139. package/daemon/dist/domain/codex-thread-id.js +171 -2
  140. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  141. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  142. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  143. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  144. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  145. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  146. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  147. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  148. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  149. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  150. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  151. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  152. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  153. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  154. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  155. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  156. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  157. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  158. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  159. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  160. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  161. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  162. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  163. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  164. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  165. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  166. package/daemon/dist/domain/markdown-address.js +188 -0
  167. package/daemon/dist/domain/markdown-address.js.map +1 -0
  168. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  169. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  170. package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  171. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  172. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  173. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  174. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  175. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  176. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  177. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  178. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  179. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  180. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  181. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  182. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  183. package/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  184. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  185. package/daemon/dist/domain/plugin-discovery-service.js +175 -1
  186. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  187. package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  188. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  189. package/daemon/dist/domain/plugin-vendor-service.js +101 -12
  190. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  191. package/daemon/dist/domain/process-census.d.ts +25 -0
  192. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  193. package/daemon/dist/domain/process-census.js +47 -0
  194. package/daemon/dist/domain/process-census.js.map +1 -0
  195. package/daemon/dist/domain/queue-repository.d.ts +3 -1
  196. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  197. package/daemon/dist/domain/queue-repository.js +50 -2
  198. package/daemon/dist/domain/queue-repository.js.map +1 -1
  199. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  200. package/daemon/dist/domain/reconciler.js +6 -1
  201. package/daemon/dist/domain/reconciler.js.map +1 -1
  202. package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  203. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  204. package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  205. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  206. package/daemon/dist/domain/review/compose.d.ts +5 -26
  207. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  208. package/daemon/dist/domain/review/compose.js +31 -57
  209. package/daemon/dist/domain/review/compose.js.map +1 -1
  210. package/daemon/dist/domain/rig-repository.d.ts +4 -0
  211. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  212. package/daemon/dist/domain/rig-repository.js +9 -0
  213. package/daemon/dist/domain/rig-repository.js.map +1 -1
  214. package/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
  215. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  216. package/daemon/dist/domain/rigspec-instantiator.js +71 -0
  217. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  218. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  219. package/daemon/dist/domain/rigspec-schema.js +19 -3
  220. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  221. package/daemon/dist/domain/running-name-guard.d.ts +52 -0
  222. package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  223. package/daemon/dist/domain/running-name-guard.js +34 -0
  224. package/daemon/dist/domain/running-name-guard.js.map +1 -0
  225. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  226. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  227. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  228. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  229. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  230. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  231. package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  232. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  233. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  234. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  235. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  236. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  237. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  238. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  239. package/daemon/dist/domain/seat-activity-service.js +39 -23
  240. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  241. package/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  242. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  243. package/daemon/dist/domain/seat-handover-service.js +32 -2
  244. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  245. package/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  246. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  247. package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  248. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  249. package/daemon/dist/domain/session-transport.d.ts +16 -5
  250. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  251. package/daemon/dist/domain/session-transport.js +155 -16
  252. package/daemon/dist/domain/session-transport.js.map +1 -1
  253. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  254. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  255. package/daemon/dist/domain/shell-classifier.js +36 -0
  256. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  257. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  258. package/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  259. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  260. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  261. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  262. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  263. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  264. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  265. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  266. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  267. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  268. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  269. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  270. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  271. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  272. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  273. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  274. package/daemon/dist/domain/transcript-rotation.js +61 -3
  275. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  276. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  277. package/daemon/dist/domain/transcript-store.js +9 -2
  278. package/daemon/dist/domain/transcript-store.js.map +1 -1
  279. package/daemon/dist/domain/types.d.ts +39 -0
  280. package/daemon/dist/domain/types.d.ts.map +1 -1
  281. package/daemon/dist/domain/types.js.map +1 -1
  282. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  283. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  284. package/daemon/dist/domain/user-settings/settings-store.js +39 -0
  285. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  286. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  287. package/daemon/dist/routes/context-packs.js +205 -0
  288. package/daemon/dist/routes/context-packs.js.map +1 -1
  289. package/daemon/dist/routes/queue.d.ts.map +1 -1
  290. package/daemon/dist/routes/queue.js +29 -24
  291. package/daemon/dist/routes/queue.js.map +1 -1
  292. package/daemon/dist/routes/rigspec.js +20 -6
  293. package/daemon/dist/routes/rigspec.js.map +1 -1
  294. package/daemon/dist/routes/seat.d.ts.map +1 -1
  295. package/daemon/dist/routes/seat.js +69 -0
  296. package/daemon/dist/routes/seat.js.map +1 -1
  297. package/daemon/dist/routes/sessions.js +55 -0
  298. package/daemon/dist/routes/sessions.js.map +1 -1
  299. package/daemon/dist/routes/transport.d.ts.map +1 -1
  300. package/daemon/dist/routes/transport.js +52 -39
  301. package/daemon/dist/routes/transport.js.map +1 -1
  302. package/daemon/dist/routes/up.js +21 -2
  303. package/daemon/dist/routes/up.js.map +1 -1
  304. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  305. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  306. package/daemon/dist/seat-recap-store-surface.js +6 -0
  307. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  308. package/daemon/dist/startup.d.ts.map +1 -1
  309. package/daemon/dist/startup.js +37 -6
  310. package/daemon/dist/startup.js.map +1 -1
  311. package/daemon/docs/reference/chain-file-convention.md +115 -0
  312. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  313. package/daemon/docs/reference/refocus-channel.md +80 -0
  314. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  315. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  316. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  317. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  318. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  319. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  320. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  321. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  322. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  323. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  324. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  325. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  326. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  327. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  328. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  329. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  330. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  331. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  332. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  333. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  334. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  335. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  336. package/dist/build-info.js +3 -3
  337. package/dist/cli-error.js +1 -1
  338. package/dist/cli-error.js.map +1 -1
  339. package/dist/commands/broadcast.js +6 -0
  340. package/dist/commands/broadcast.js.map +1 -1
  341. package/dist/commands/config.d.ts.map +1 -1
  342. package/dist/commands/config.js +8 -0
  343. package/dist/commands/config.js.map +1 -1
  344. package/dist/commands/context.d.ts.map +1 -1
  345. package/dist/commands/context.js +363 -48
  346. package/dist/commands/context.js.map +1 -1
  347. package/dist/commands/daemon.d.ts.map +1 -1
  348. package/dist/commands/daemon.js +23 -2
  349. package/dist/commands/daemon.js.map +1 -1
  350. package/dist/commands/import.d.ts.map +1 -1
  351. package/dist/commands/import.js +10 -0
  352. package/dist/commands/import.js.map +1 -1
  353. package/dist/commands/proof.d.ts.map +1 -1
  354. package/dist/commands/proof.js +70 -12
  355. package/dist/commands/proof.js.map +1 -1
  356. package/dist/commands/queue.d.ts.map +1 -1
  357. package/dist/commands/queue.js +36 -13
  358. package/dist/commands/queue.js.map +1 -1
  359. package/dist/commands/rig.d.ts.map +1 -1
  360. package/dist/commands/rig.js +5 -0
  361. package/dist/commands/rig.js.map +1 -1
  362. package/dist/commands/seat.d.ts.map +1 -1
  363. package/dist/commands/seat.js +88 -0
  364. package/dist/commands/seat.js.map +1 -1
  365. package/dist/commands/send.d.ts.map +1 -1
  366. package/dist/commands/send.js +224 -20
  367. package/dist/commands/send.js.map +1 -1
  368. package/dist/commands/transcript.d.ts.map +1 -1
  369. package/dist/commands/transcript.js +25 -1
  370. package/dist/commands/transcript.js.map +1 -1
  371. package/dist/commands/up.d.ts.map +1 -1
  372. package/dist/commands/up.js +8 -0
  373. package/dist/commands/up.js.map +1 -1
  374. package/dist/commands/walk.d.ts +1 -1
  375. package/dist/commands/walk.d.ts.map +1 -1
  376. package/dist/commands/walk.js +293 -30
  377. package/dist/commands/walk.js.map +1 -1
  378. package/dist/config-store.d.ts +15 -1
  379. package/dist/config-store.d.ts.map +1 -1
  380. package/dist/config-store.js +35 -1
  381. package/dist/config-store.js.map +1 -1
  382. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  383. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  384. package/dist/lib/scope/logical-checkbox.js +65 -0
  385. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  386. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  387. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  388. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  389. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  390. package/dist/lib/topology-trace.d.ts +36 -0
  391. package/dist/lib/topology-trace.d.ts.map +1 -0
  392. package/dist/lib/topology-trace.js +91 -0
  393. package/dist/lib/topology-trace.js.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  395. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  396. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  397. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  398. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  399. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +41 -2
  400. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +58 -18
  402. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  403. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  404. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  405. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  406. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  408. package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
  410. package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
  411. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  412. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  413. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +171 -2
  414. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  415. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  416. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  418. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  420. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  421. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  422. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  423. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  424. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  425. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  426. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  427. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  428. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  429. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  430. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  431. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  432. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  433. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  434. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  435. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  436. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  437. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  438. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  439. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  440. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  441. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  442. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  443. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  444. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  445. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  447. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  449. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  450. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  451. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  452. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  453. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  455. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  456. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  458. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
  460. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  462. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  463. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
  464. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  466. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  467. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  468. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  469. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +3 -1
  470. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +50 -2
  472. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
  475. package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  477. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  478. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  479. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  480. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  481. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  482. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  483. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  484. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
  485. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  486. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
  487. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  488. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
  489. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  490. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +71 -0
  491. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  492. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  493. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
  494. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  495. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +52 -0
  496. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  497. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
  498. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
  499. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  500. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  501. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  502. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  503. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  504. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  505. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  506. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  507. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  508. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  509. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  510. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  511. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  512. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  513. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  514. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  515. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  516. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  517. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +32 -2
  518. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  519. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  520. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  521. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  522. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  523. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +16 -5
  524. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  525. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +155 -16
  526. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  527. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  528. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  529. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  530. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  531. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  532. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  533. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  534. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  535. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  536. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  537. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  538. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  539. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  540. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  541. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  543. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  544. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  545. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  546. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  547. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  548. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  549. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  550. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  552. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +39 -0
  554. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  555. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  556. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  557. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +39 -0
  559. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  561. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  562. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  563. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  564. package/node_modules/@openrig/daemon/dist/routes/queue.js +29 -24
  565. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  566. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
  567. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  568. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  569. package/node_modules/@openrig/daemon/dist/routes/seat.js +69 -0
  570. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  571. package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
  572. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  573. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  574. package/node_modules/@openrig/daemon/dist/routes/transport.js +52 -39
  575. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  576. package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
  577. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  578. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  579. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  580. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  581. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  582. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  583. package/node_modules/@openrig/daemon/dist/startup.js +37 -6
  584. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  585. package/node_modules/@openrig/daemon/package.json +6 -1
  586. package/package.json +1 -1
@@ -0,0 +1,115 @@
1
+ # The Chain-File Convention (CE-v2)
2
+
3
+ **This document is the SSOT for chain files**: what they are named, what each
4
+ altitude carries, and how the leaf-to-root trace resolves. Both trees' walkers
5
+ consume the paths defined here. If a walker and this document disagree, one of
6
+ them has a defect — report it; do not fork the convention.
7
+
8
+ ## The one rule
9
+
10
+ **One filename, identical at every altitude of a tree.** A reader orients by
11
+ walking from where they stand toward the root, reading the same-named file at
12
+ each level. No pointers to follow, no branching, no per-level names. Inventing
13
+ a level-specific name breaks every walker.
14
+
15
+ Chain files sit on **nodes** (an instance, a rig, a seat; a mission, a slice)
16
+ — never on shelves (`rigs/`, `seats/`, `missions/` are containment, not
17
+ nodes, and carry no chain file).
18
+
19
+ ## Two trees, two questions
20
+
21
+ | tree | path shape | carries | ships? |
22
+ |---|---|---|---|
23
+ | **Topology** | instance → rig → seat | how work is done here | **yes** — generally applicable defaults ship in source |
24
+ | **Project** | project → mission → slice | what is being built | **no** — depends on what the user builds; see below |
25
+
26
+ ### The topology tree
27
+
28
+ Rooted at the typed config key **`topology.root`** (resolution
29
+ `env OPENRIG_TOPOLOGY_ROOT > config file > derived default
30
+ $OPENRIG_HOME/topology`). Never hardcode the path — `rig config get
31
+ topology.root` is the answer on any machine. The instance altitude **is the
32
+ top of the root** (there is no instance directory to find; the root is the
33
+ instance):
34
+
35
+ ```
36
+ <topology.root>/<NAME>.md # instance altitude
37
+ <topology.root>/rigs/<rig>/<NAME>.md # rig altitude
38
+ <topology.root>/rigs/<rig>/seats/<seat>/<NAME>.md # seat altitude
39
+ ```
40
+
41
+ **The pod level is deliberately skipped** (founder ruling, March 2026: agent
42
+ specs stay flat under the rig so any agent composes into any rig; pods felt
43
+ too restrictive — revisit someday, not now). Pod-class tactical content ships
44
+ as a rig-altitude file named for its audience (see "craft defaults" below).
45
+
46
+ Established chain names on the topology tree:
47
+
48
+ - `LEARNED.md` — what a POSITION has learned; never shared or shipped as-is.
49
+ A seat's LEARNED is identified by its PATH: the same seat name in two rigs
50
+ is two different files.
51
+ - `CULTURE.md` — norms layered into members at startup.
52
+
53
+ ### The project tree
54
+
55
+ Rooted at the workspace keys (`workspace.root`, `workspace.slices_root`).
56
+ Chain names there: `SPEC.md` (intent in frontmatter composes up the chain;
57
+ specification is a leaf property), `PROOF.md`, `PROGRESS.md`.
58
+
59
+ **Project-tree context cannot ship.** It describes what *you* are building —
60
+ mission intent, slice specifications, proof contracts. No vendor can author it
61
+ in advance, and shipping a default would install someone else's project as
62
+ your context. The demo project carries a worked example to copy from; real
63
+ projects author their own. (Topology-tree context is the opposite: how a team
64
+ of agents runs well is largely general, which is why included rigs ship
65
+ defaults.)
66
+
67
+ ## Legacy location and the advisory
68
+
69
+ Before this convention the topology tree lived at `~/.openrig/shared-docs/rigs/`
70
+ (founder ruling 2026-08-14: an arbitrary folder on one machine, not a product
71
+ path). That location **stays readable** as a per-level fallback so existing
72
+ rigs migrate instead of breaking — but every read that resolves there emits a
73
+ named advisory (`legacy-topology-read: …`) stating the legacy source, the
74
+ canonical destination under `topology.root`, and the config key. A silent
75
+ legacy read is a defect. The legacy literal lives in exactly one helper per
76
+ settings twin (`resolveLegacyTopologyRigsRoot`); walkers import it and carry
77
+ no path literal.
78
+
79
+ ## The trace
80
+
81
+ `rig context trace --rig <rig> [--seat <seat>] --name <NAME>.md` performs the
82
+ walk: it prints each altitude root-first (general → specific), marks whether
83
+ content came from `topology.root`, the legacy tree (with the advisory on
84
+ stderr), or is absent, and needs no running daemon — orientation is exactly
85
+ when the daemon may be down. `--json` returns the structured result.
86
+
87
+ Your reads ARE the walk: a trace assembled from memory is a recitation that
88
+ reproduces the drift it was meant to catch. Run it; do not recall it.
89
+
90
+ ## Shipped defaults and the curation path
91
+
92
+ Included rigs (product-team first) ship sensible-default chain files at the
93
+ rig, seat, and instance altitudes, installed under `topology.root` at rig-up.
94
+ A shipped default is a **starting point** the occupying team appends to — it
95
+ is never overwritten by a later rig-up (existing files win).
96
+
97
+ Adding a discovered best practice to the shipped defaults is deliberately
98
+ lightweight:
99
+
100
+ 1. **Discovery** — the practice appears where it was earned: a seat's
101
+ `LEARNED.md`, a field note, a review observation.
102
+ 2. **Curation** — someone judges it *generally applicable* (would it hold on a
103
+ stranger's machine, in a different project?). If it is project-specific it
104
+ stays at the altitude that earned it.
105
+ 3. **Ship** — add it to the rig's default chain files in source
106
+ (`packages/daemon/specs/rigs/…/topology/`), with the motivating incident in
107
+ one line. It reaches new installs at the next release; running rigs pick it
108
+ up only via explicit delivery (see the refocus channel) — **editing a file
109
+ is not delivery to a running seat.**
110
+
111
+ ## What this file does not cover
112
+
113
+ How chain files reach a RUNNING seat (the refocus channel) is specified in the
114
+ refocus documentation; quality bars for the work itself live in the rig's
115
+ operating-model skill and culture file.
@@ -0,0 +1,53 @@
1
+ # Migrating a pre-convention rig's topology context
2
+
3
+ For rigs whose hand-authored context predates the chain-file convention and
4
+ lives at the legacy location (`~/.openrig/shared-docs/rigs/<rig>/`, or
5
+ `$OPENRIG_SHARED_DOCS_ROOT/rigs/<rig>/`). The parent-host reconciliation
6
+ campaign is the first consumer of this path. Nothing here is destructive: the
7
+ legacy tree is left in place, reads keep working throughout (the walker's
8
+ advisory-emitting fallback), and every copy is no-clobber.
9
+
10
+ ## The path, with exact commands
11
+
12
+ ```bash
13
+ # 0. Know both roots — never hardcode either.
14
+ DEST="$(rig config get topology.root)"
15
+ SRC="${OPENRIG_SHARED_DOCS_ROOT:-$HOME/.openrig/shared-docs}/rigs"
16
+
17
+ # 1. BEFORE: prove the fallback is carrying this rig (expect ADVISORY lines
18
+ # on stderr for every level that resolves at the legacy location).
19
+ rig context trace --rig <rig> --seat <seat> --name LEARNED.md
20
+
21
+ # 2. Preview the migration (dry run — nothing moves).
22
+ rsync -av --ignore-existing --exclude 'state/' --dry-run "$SRC/<rig>/" "$DEST/rigs/<rig>/"
23
+
24
+ # 3. Migrate. --ignore-existing mirrors the installer's copy-if-absent law:
25
+ # anything already earned under topology.root is never overwritten.
26
+ mkdir -p "$DEST/rigs/<rig>"
27
+ rsync -av --ignore-existing --exclude 'state/' "$SRC/<rig>/" "$DEST/rigs/<rig>/"
28
+
29
+ # 4. AFTER: the same trace now resolves canonically — the advisories are gone.
30
+ rig context trace --rig <rig> --seat <seat> --name LEARNED.md
31
+
32
+ # 5. Do NOT delete the legacy tree in the same session. Archive it later,
33
+ # once every consumer (queue-state add-dirs, review artifacts, scripts)
34
+ # has been confirmed off it — reads through the fallback stay correct in
35
+ # the meantime, which is the point of fail-open.
36
+ ```
37
+
38
+ ## What migrates and what does not
39
+
40
+ - **Migrates:** the rig's chain files and seat directories — `LEARNED.md`,
41
+ `CULTURE.md`, craft files, `seats/<seat>/…`.
42
+ - **Stays (for now):** `state/` (queue-state add-dirs and live artifacts are
43
+ actively written by running seats; moving them under a live rig strands
44
+ writers — that cutover is its own change with its own receipt).
45
+ - **Never:** anything into a running seat's context. Migration moves files;
46
+ delivery to running seats is the refocus channel
47
+ (`docs/reference/refocus-channel.md`) — editing a file is not delivery.
48
+
49
+ ## After migration
50
+
51
+ The next `rig up` of a spec shipping topology defaults installs them
52
+ copy-if-absent alongside the migrated content — earned context always wins
53
+ over a shipped default. Verify any doubt with the trace, not with memory.
@@ -0,0 +1,80 @@
1
+ # The Refocus Channel
2
+
3
+ **How orientation content reaches a RUNNING seat.** Editing a file is not
4
+ delivery: a running seat read its configuration at session start, and nothing
5
+ in its context re-reads disk on its own. The refocus channel closes that gap —
6
+ it is the mechanism that makes shipped chain files (see
7
+ `chain-file-convention.md`) live doctrine rather than boot-time decoration.
8
+
9
+ ## The mechanism
10
+
11
+ `openrig-core` ships `hooks/scripts/refocus.cjs`, registered on both runtimes:
12
+
13
+ | event | Claude Code | Codex | why |
14
+ |---|---|---|---|
15
+ | SessionStart | ✓ | ✓ | fresh orientation |
16
+ | UserPromptSubmit | ✓ | ✓ | growth check at each turn boundary |
17
+ | Stop | ✓ | ✓ | catches the long single turn |
18
+ | PostCompact | ✓ | — (no compact hook) | a compacted seat's picture is lossy |
19
+
20
+ The firing signal is **transcript growth** — not turns (one turn can burn 200k
21
+ tokens across fifty tool calls) and not wall-clock (the failure is sustained
22
+ work, not elapsed time). Default threshold ~2.6MB of JSONL growth (≈300k
23
+ tokens); tune with `OPENRIG_REFOCUS_BYTES`. SessionStart and PostCompact
24
+ always fire. Otherwise the hook is a silent no-op, and it degrades to silence
25
+ on unrelated hook errors. A configured REF resolution failure instead degrades
26
+ loudly in the delivered payload while still completing the hook — a refocus
27
+ must never break a seat's turn.
28
+
29
+ Because the hook runs at the seat's own turn boundaries, delivery to a
30
+ RUNNING seat needs no relaunch, no operator action, and no message traffic:
31
+ the next prompt the seat processes carries the content. The latency bound is
32
+ "the seat's next turn," which is also the earliest moment new orientation
33
+ could have been acted on anyway.
34
+
35
+ ## The content is configurable — and never project-specific in source
36
+
37
+ Resolution order:
38
+
39
+ 1. `OPENRIG_REFOCUS_CONTENT_REF` — a path-like context-library ref resolved
40
+ through `rig context get`, so refocus receives the same assembled bytes as
41
+ on-demand pull. This wins when REF and FILE are both set.
42
+ 2. `OPENRIG_REFOCUS_CONTENT_FILE` — an operator-authored file (per-seat or
43
+ per-rig via spec env).
44
+ 3. `$OPENRIG_HOME/refocus/REFOCUS.md` — the instance's standing content.
45
+ 4. The generic default baked into the hook: three project-neutral orientation
46
+ questions plus the pointer to the seat's topology chain
47
+ (`rig context trace … --name CRAFT.md`) and the LEARNED-ownership warning.
48
+
49
+ The hook names a resolved REF in the delivered payload. If REF resolution
50
+ fails, the payload starts with `REFOCUS CONTENT REF FAILED`, the exact ref, and
51
+ the resolver's reason, then continues with generic orientation. A broken ref
52
+ therefore stays visible without blocking the seat's session boundary. With REF
53
+ unset, the existing FILE and generic paths are unchanged.
54
+
55
+ Mission-, project-, or box-specific refocus text belongs in a context-library
56
+ entry or one of those FILES on the instance that needs it. **It must never be committed into product
57
+ source** — the shipped default carries no path, seat name, mission, or
58
+ practice that is not generally applicable. (The pre-promotion lab hook had
59
+ exactly this defect: a hardcoded per-box distillation-tool path. The
60
+ promotion removed it; the grep for project residue is part of the slice's
61
+ proof contract.)
62
+
63
+ This automatic hook path is additive to one-shot manual injection through
64
+ `rig send --context`; neither mode substitutes for the other.
65
+
66
+ ## Relation to chain files
67
+
68
+ The chain files are the durable, altitude-addressed home of orientation
69
+ content; the refocus channel is its delivery schedule. A practice added to a
70
+ rig's `CRAFT.md` today reaches running seats through their next refocus
71
+ pointer, and future installs through the shipped defaults
72
+ (discovery → curation → ship, per the convention doc).
73
+
74
+ ## What a refocus is NOT
75
+
76
+ A refocus corrects drift; it is not a wake (which restores liveness and must
77
+ not reframe work) and not a checkpoint (a deliberate phase-boundary pause).
78
+ Sending the heavy intervention when the light one was due is the most common
79
+ self-inflicted stall — the hook fires the light one automatically, which is
80
+ the point.
@@ -332,3 +332,27 @@ what it looks like now" evidence the agent stands behind — bounded, mapped
332
332
  1:1 (or few:1) to deliverables. The fix-loop's full artifact history stays in
333
333
  `proof/`, one drill-in down, NEVER in the primary view. The anti-pattern:
334
334
  an append-only pile where the human can't tell final from superseded.
335
+
336
+ ## Scratch-daemon hermeticity: the DB a scratch daemon opens is the one you named
337
+
338
+ *(Desk-ruled 2026-08-25, row qitem-20260825005846-7960f4dd; 0.5.3-era doctrine — a harness rule,
339
+ not product behavior.)*
340
+
341
+ A scratch daemon launch **strips the inherited environment's `OPENRIG_DB` and names an explicit
342
+ scratch DB path under the scratch `OPENRIG_HOME`** — both halves, every launch:
343
+
344
+ ```bash
345
+ env -u OPENRIG_DB \
346
+ OPENRIG_HOME="$SCRATCH_HOME" \
347
+ OPENRIG_DB="$SCRATCH_HOME/openrig.sqlite" \
348
+ node <daemon entry> …
349
+ ```
350
+
351
+ An inherited fleet DB reaching a scratch daemon is a **harness defect regardless of outcome** —
352
+ the scratch context read or wrote state it never owned, and whether anything visibly broke is
353
+ luck, not hermeticity.
354
+
355
+ **The discriminator that keeps this rule honest:** an explicit `OPENRIG_DB` still WINS by design
356
+ (`daemon-db-path.ts`; prior ruling 00c4ab76) — deliberate split-path configuration is legitimate
357
+ and untouched. This rule governs **inheritance into scratch contexts**, where nobody decided
358
+ anything: strip what you did not choose, then choose.
@@ -17,7 +17,7 @@ metadata:
17
17
  - queue-handoff
18
18
  - workflow-runtime
19
19
  - watchdog
20
- - alignment-trace
20
+ - refocus
21
21
  - looping-workflows
22
22
  - intake-routing
23
23
  - human-in-the-loop
@@ -8,7 +8,7 @@ metadata:
8
8
  - queue-handoff
9
9
  - workflow-runtime
10
10
  - watchdog
11
- - alignment-trace
11
+ - refocus
12
12
  - looping-workflows
13
13
  - intake-routing
14
14
  - attention-queue
@@ -100,7 +100,7 @@ Negative-grep over adapter source confirms ZERO `restored` / `resumed` /
100
100
 
101
101
  ## Hard boundaries (do-not list; verbatim)
102
102
 
103
- - **Do NOT introduce a new top-level command** (e.g., `rig fork`). The primitive flows through existing spec/expansion pathways.
103
+ - **Do NOT introduce a DIVERGENT fork primitive.** The primitive flows through existing spec/expansion pathways. *(Update 2026-08-07: `rig fork <source-session>` has since shipped as a thin convenience verb that COMPOSES the existing agent-image fork path — this honors the boundary; it is not a divergent primitive. The rule now reads: no NEW fork mechanics outside the spec / expansion / agent-image pathways.)*
104
104
  - **Do NOT report "restored" / "resumed the original seat" / "snapshot"** in any UX surface.
105
105
  - **Do NOT couple `session_source` to AgentSpec.** It's a member-level launch-time input.
106
106
  - **Do NOT change `restore` semantics.** `session_source` creates a seat; `restore` continues an existing managed seat.
@@ -10,7 +10,7 @@ metadata:
10
10
  # genuinely adjacent set.
11
11
  - queue-handoff
12
12
  - workflow-runtime
13
- - alignment-trace
13
+ - refocus
14
14
  - looping-workflows
15
15
  - intake-routing
16
16
  - human-in-the-loop
@@ -22,7 +22,7 @@ metadata:
22
22
 
23
23
  Continuity checks are timed or evidence-triggered interventions that
24
24
  keep an agent workflow from going idle, drifting, or entering needless
25
- bureaucracy. They operationalize the alignment-trace doctrine.
25
+ bureaucracy. They operationalize the refocus doctrine.
26
26
 
27
27
  ## Use this when
28
28
 
@@ -49,7 +49,7 @@ bureaucracy. They operationalize the alignment-trace doctrine.
49
49
  |---|---|---|---|
50
50
  | **Wake** | Restart motion | Owner appears idle, stale, blocked, or missing a next handoff | Small liveness nudge — does NOT reframe the work |
51
51
  | **Refocus** | Correct drift | Output shows mode drift, approval regression, weak stop-condition reasoning | Medium alignment nudge — re-centers on role, north star, current approved workstream, coordination mode, stop conditions; does NOT interrupt valid work |
52
- | **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full alignment-trace before proceeding |
52
+ | **Alignment checkpoint** | Rebuild shared map | Phase boundary, lifecycle mutation, product-intent decision, confusing contradiction | Larger deliberate pause — agent runs full refocus before proceeding |
53
53
 
54
54
  `cron`, timers, and `rig watchdog` are scheduling substrates. They
55
55
  should NOT imply that every tick means the same semantic action. The
@@ -121,6 +121,6 @@ handling over many per-seat nag loops.
121
121
 
122
122
  ## See also
123
123
 
124
- - `alignment-trace` skill — the doctrine this primitive operationalizes; full and light trace templates
124
+ - `refocus` skill — the doctrine this primitive operationalizes; full and light trace templates
125
125
  - `queue-handoff` skill — durable handoff via queue items; watchdog is complementary (watchdog wakes; queue routes)
126
126
  - `looping-workflows` skill — operating discipline for self-driving rig-shaped loops; uses watchdog policies for loop edges
@@ -43,6 +43,14 @@ This is the default loop for product work:
43
43
 
44
44
  Skip no gates. If the task is ambiguous, resolve the ambiguity before editing.
45
45
 
46
+ **Chunk size points up — keep TDD's shape, not its ping-pong cadence (2026-08).** Frontier agents handle
47
+ large, long-horizon, goal-oriented chunks — an hour-plus of complex work — without fragmenting. So don't
48
+ default to tiny pieces: **keep TDD's *shape* (two sets of eyes, the guard structure, red before green)
49
+ but treat chunk size and cadence as a configured LEVER, not a habit.** Classic small back-and-forth
50
+ ping-pong is unnecessary overhead when the loop's own gates (QA, review, guards) already bound a larger
51
+ chunk's risk. The sweet spot is task-dependent, much larger than it used to be, and rising. See
52
+ `test-driven-development` for the shape that stays fixed.
53
+
46
54
  ## What the implementer must hand QA
47
55
 
48
56
  Pre-edit proposal should include:
@@ -28,18 +28,18 @@ The orchestration pod is responsible for:
28
28
 
29
29
  ## Monitoring & intervention — keep the RIG self-running, not the ORCHESTRATOR busy
30
30
 
31
- **North star:** your goal is a **self-running rig, not a busy orchestrator.** Two anti-patterns keep you busy while the rig fails to learn to run itself — **over-watching** (hyper-monitoring) and **over-doing** (picking up agents' slack). Both are governed by judgment below, not by a rule for every case. (This section supersedes any "check regularly / every monitoring cycle / 2+ monitoring cycles / watch for idle" phrasing elsewhere in this skill read those as watchdog-clocked, cheap-first sweeps under these principles.)
31
+ **North star:** your goal is a **self-running rig, not a busy orchestrator.** Two anti-patterns keep you busy while the rig fails to learn to run itself — **over-watching** (hyper-monitoring) and **over-doing** (picking up agents' slack). Both are governed by judgment below, not by a rule for every case. (Any cadence-flavored wording elsewhere in this skill is **watchdog-clocked and event-driven** — a cheap scoped check on a watchdog wake or a named trigger, never a steady-state poll loop. There is no literal instruction to poll panes or `rig ps` on a fixed cycle.)
32
32
 
33
33
  ### A. Monitoring intensity — proportional to stakes, bounded to the window
34
34
  **Principle:** monitoring intensity tracks **stakes × how likely you are to need to intervene, bounded to the window where that's true.** Spend tight attention only where it changes what you do, only as long as the risk lasts, then return to default. (Same evidence-not-cadence rule the `watchdog` skill applies to intervention *level*, applied to *intensity*.) **Self-test: "Can I name the stakes AND the condition that ends this close-watch?"** If not, you're hyper-monitoring.
35
35
 
36
36
  **Default (almost always) — token-efficient.** Steady-state your job is the **idle-without-handoff exception**: the queue handles normal handoff; you catch the agent who finished + went idle without closing/handing off.
37
- - **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps --nodes --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state).
37
+ - **Status lives in the queue, not panes** (`status-not-chat-orchestrator`): `rig ps --nodes --json` + `rig queue` are your status source; do NOT reconstruct fleet-state by capturing panes (pane `rig capture` is high-bandwidth *within your own pod* — that's fine; it is not how you track cross-pod/fleet state). *(`rig ps --nodes` is YOUR rig's seats only — bare `rig ps` lists ALL rigs on the host; don't mistake a narrow node read for the whole world.)*
38
38
  - **The watchdog is your clock** (`watchdog`): configure `rig watchdog` to wake you (~3 min); between wakes, idle (zero tokens) — no self-run sleep-loop re-reading panes at steady-state. Prefer one workflow-watchdog + targeted exception handling over many per-seat nag loops.
39
39
  - **On each wake — cheap sweep:** `rig queue` + a *filtered* `rig ps` (see "Read cheap" below) first; ONLY for a seat that looks idle/suspicious, `rig capture <session>` last few lines (never a full pane, never huge chunks); **active owner → no-op.**
40
40
  - **Read cheap — every status command has a token cost; project to the question.** The queue-first rule is about *where* status lives; this is about *how much you pay to read it*. The token bomb is the broad unfiltered dump, not the pane capture: an unfiltered fleet-wide `rig ps --nodes --json` emits ~77k tokens — for a one-rig or one-qitem question that is almost all waste, and at watchdog cadence it burns the shared account fast.
41
41
  - **Scope the read to the question.** Specific item → `rig queue show <qitem> --json`. One rig's frontier → filter + project only the fields you need, e.g. `rig ps --nodes --json | jq '.[] | select(.rigName=="<rig>") | {session:.canonicalSessionName, state:.agentActivity.state, hasAssignedWork, pendingWorkCount}'` (prefer a native rig/session filter if one exists). Never pull whole-fleet JSON to answer a narrow rig/qitem question.
42
- - **Pane capture / transcript = last resort for one named stale owner,** not a status-polling loop.
42
+ - **Pane capture / transcript = last resort for one named stale owner,** not a status-polling loop — **re-capturing an unchanged pane returns no new information and is the measured token-burn failure** (the unit of monitoring is an event — a wake, a queue transition, an activity signal — never elapsed time or a repeat count).
43
43
  - **Context reads are task-scoped too:** read the skills the task needs; don't reload broad references or large files for a tiny queue update (compaction / named-skill rules excepted).
44
44
  - **Notice-and-stop:** if any command emits unexpectedly huge output, that is a protocol miss — name it and correct the pattern immediately, don't absorb it as normal.
45
45
  - **Self-test:** "Does this read return more than the decision in front of me needs?" If yes, narrow it before running.
@@ -92,6 +92,8 @@ When you dispatch work, give the receiving agent enough structure to act without
92
92
  - what proof or verification you expect back
93
93
  - which peer or pod they must involve before calling the work complete
94
94
 
95
+ **(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
+
95
97
  If design clarity is missing, route to design first.
96
98
  If QA gating is required, say so explicitly in the assignment.
97
99
  If reviewers should wait for a milestone, say what milestone triggers them.
@@ -99,7 +101,7 @@ If reviewers should wait for a milestone, say what milestone triggers them.
99
101
  After delegating:
100
102
  1. Let the assigned agent work.
101
103
  2. Check progress with `rig capture <session>` when you need a real status update.
102
- 3. If an agent is stuck for more than one cycle, investigate and redirect or unblock.
104
+ 3. If an agent is still stuck on your **next watchdog wake** (no progress signal since the last), investigate and redirect or unblock — the trigger is the wake / queue-transition / activity signal, **not a poll count or elapsed-time cycle.**
103
105
 
104
106
  ## Monitoring and unblock loop
105
107
 
@@ -111,27 +113,49 @@ When an agent looks stuck:
111
113
 
112
114
  Do not call a blocked agent "in progress" forever.
113
115
 
114
- ## Starter topology settlement
115
-
116
- For the launch-grade `demo` rig, the expected team is:
117
- - `orch1.lead`
118
- - `orch1.peer`
119
- - `dev1.design`
120
- - `dev1.impl`
121
- - `dev1.qa`
122
- - `rev1.r1`
123
- - `rev1.r2`
124
-
125
- Before you declare the team fully ready or dispatch a real implementation task:
126
- - confirm those nodes exist in `rig ps --nodes --json`
127
- - if any are pending or missing, wait and say exactly which nodes are still starting
128
- - once they appear, refresh your mental model before planning
129
-
130
- If the settled inventory later contradicts your earlier assumption, correct course immediately and use the actual QA/review nodes.
131
-
132
- ## Milestone routing
133
-
134
- For launch-grade product work:
116
+ ## Capacity a seat is never the bottleneck (fork to unblock)
117
+
118
+ Seat capacity is **elastic**, so a blocked or overloaded lane is a **policy** problem, not a capacity
119
+ fact — *"the seat is busy"* is never a real constraint. You have **standing authority to fork any
120
+ agent** to unblock a lane; no escalation.
121
+
122
+ - **`rig fork <source-session>`** clones a live seat *with its context window* into a new seat (`--rig`
123
+ / `--pod` to place it; it composes the shipped agent-image fork path). **Claude is supported today;
124
+ Codex fork is pending a research spike — don't rely on it until that lands.**
125
+ - **The pattern:** fork → the fork does the task → **salvage its result as markdown** → **retire the
126
+ fork** → return the rig to its spec's steady state. Short-lived forks are safe because seats carry
127
+ **distinguished names** (a fork is never mistaken for the seat it came from — see
128
+ `seat-continuity-and-handover`).
129
+ - **The ladder, and whose call each rung is:** fork an agent *(yours, standing)* onboard a new seat
130
+ clone / stand up a whole rig stand up a host on a VPS. **Rig- and host-level spin-up belong to
131
+ the oversight / owner altitude, not the orchestrator's** — fork is your rung.
132
+ - **What's actually scarce:** with seats elastic, the real constraints reduce to **humans** (the
133
+ owner's attention, the operator slot), **money** (provider limits — account switching is the relief
134
+ valve), and **compute** (host limits). Protect *those*; never let a lane sit blocked on a "busy seat."
135
+
136
+ See `session-source-fork` for the fork primitive's mechanics and `delegating-work` for choosing fork
137
+ vs. subagent vs. route-to-a-context-holder.
138
+
139
+ ## Topology settlement
140
+
141
+ **Your rig's roster is a fact you READ, never one this skill asserts.** Get the actual team
142
+ from `rig ps --nodes --json` at settlement time — a skill that hardcodes a specific topology
143
+ goes stale exactly like a stale boot overlay, and a cleared or fresh seat has no context to
144
+ doubt it (field case: a seven-node demo roster taught as "the expected team" sent a
145
+ fourteen-seat rig's seats waiting for nodes that did not exist).
146
+
147
+ - Settle **what the current atom needs**, not the whole declared roster: dispatch when the
148
+ seats THIS work requires are up. **Never park the rig waiting for absent nodes** — a
149
+ wait-for-all-nodes instruction is a mechanical cause of premature parking.
150
+ - If the settled inventory contradicts your earlier assumption, correct course immediately
151
+ and use the actual nodes.
152
+
153
+ ## Milestone routing — gates are CHOSEN, not universal
154
+
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:
135
159
  - do not let implementation start from pure intuition when product behavior is unclear
136
160
  - do not let edits land before QA has approved a pre-edit proposal
137
161
  - do not skip reviewer involvement once there is a real diff, a QA-approved working tree, or a meaningful architectural checkpoint
@@ -147,7 +171,15 @@ Ask for review:
147
171
 
148
172
  ## Keeping the team utilized
149
173
 
150
- Check `rig ps --nodes` regularly. If an agent is ready but idle:
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:
151
183
  - QA with no pending reviews should scan recent work for gaps
152
184
  - reviewers with no assignment should review the newest meaningful progress
153
185
  - designers with no open task should audit current flows and clarify ambiguous UX
@@ -168,9 +200,18 @@ Use the chatroom when:
168
200
 
169
201
  Use `rig capture` and `rig transcript` when you need evidence, not guesses.
170
202
 
171
- ## Implementation pairgated workflow
203
+ **Proactively reach the human on the named event classes WORKS ≠ USED.** As an orchestrator you are
204
+ the **primary channel to the human**, and a channel nobody reaches for is useless. Surface — unprompted
205
+ — model-fallback boots, capacity / authority requests, security flags, acceptance / milestone moments,
206
+ human-addressed work blocked past its settle window, and idle / stall alarms. The named classes and the
207
+ how live in `messaging-the-human` → *the v0 event classes*; your job is to actually **use** the channel
208
+ across the lifecycle, not only when cornered.
209
+
210
+ ## Implementation pair — gated workflow (when the gate is chosen)
172
211
 
173
- When dispatching implementation work, the pair follows this loop:
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:
174
215
 
175
216
  1. Impl sends a pre-edit proposal to QA
176
217
  2. QA approves or rejects with specifics
@@ -186,7 +227,7 @@ The orchestrator does NOT relay messages between them. They communicate directly
186
227
  - Impl skipping the gate (going straight to implementation without QA pre-approval)
187
228
  - QA not actually reviewing (rubber-stamping)
188
229
 
189
- Never send impl a "Go" without explicitly stating the FIRST action is to send a pre-edit to QA. Impl will race through an entire task list if given a general "Go."
230
+ On gated atoms, never send impl a "Go" without explicitly stating the FIRST action is to send a pre-edit to QA impl will race through an entire task list if given a general "Go." On ungated atoms, a general "Go" is correct; do not smuggle the gate back in through dispatch phrasing.
190
231
 
191
232
  ## Dogfood fix loop
192
233
 
@@ -199,7 +240,7 @@ When QA is dogfooding (testing existing features), QA works solo with full auton
199
240
 
200
241
  ## Permission prompt handling
201
242
 
202
- Permission prompts are the #1 mechanical blocker. Check for them every monitoring cycle.
243
+ Permission prompts are the #1 mechanical blocker surface them on your watchdog wake (a scoped `rig ps` / queue check), never a steady-state poll loop.
203
244
 
204
245
  For Codex (3-option prompts): select option 2 ("Yes, and don't ask again") to permanently approve the pattern.
205
246
  For Claude (2-option): approve with Enter.
@@ -230,7 +271,7 @@ Rules:
230
271
  2. Always say "finish what you're on first." Explicitly. Every time.
231
272
  3. Frame as context updates, not directives.
232
273
  4. Do not interrupt working agents. If an agent shows ANY sign of activity, do not send a message.
233
- 5. Wait for confirmed idleness (2+ monitoring cycles) before nudging.
274
+ 5. Nudge only on confirmed idleness — evidence from your watchdog-clocked checks (no activity signal + settled queue state), never a fixed poll count or a "wait N cycles" loop.
234
275
 
235
276
  ## Destructive operations — hard rules
236
277