@openrig/cli 0.5.1 → 0.5.3

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 (859) hide show
  1. package/daemon/assets/guidance/openrig-start.md +21 -64
  2. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  3. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  4. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  8. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  9. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  10. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  13. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  14. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  15. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  17. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  18. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  19. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
  20. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  21. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  22. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  23. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  24. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  25. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  26. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  27. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  28. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  29. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  30. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  31. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  32. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  33. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  34. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  35. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  36. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  37. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  38. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  39. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  40. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  41. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  42. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  43. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  44. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  45. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  46. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  47. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  48. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  49. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  50. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  51. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  52. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  53. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  54. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  55. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  56. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  57. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  58. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  59. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  60. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  61. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  62. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  63. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  64. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  65. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  66. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  67. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  68. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  69. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  70. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  71. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  72. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  73. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  74. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  75. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  76. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  77. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  78. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  79. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  80. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  81. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  82. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  83. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  84. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  85. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  86. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  87. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  88. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  89. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  90. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  91. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  92. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  97. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  98. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  99. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  100. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  101. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  102. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  103. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  104. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  105. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  106. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  107. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  108. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  109. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  110. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  111. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  112. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  113. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  114. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  115. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  116. package/daemon/context-packs/world/install/reference-material.md +125 -0
  117. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  118. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  119. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  120. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  121. package/daemon/dist/adapters/claude-resume.js +2 -2
  122. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  123. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  124. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  125. package/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  126. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  127. package/daemon/dist/adapters/tmux.d.ts +10 -2
  128. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  129. package/daemon/dist/adapters/tmux.js +27 -7
  130. package/daemon/dist/adapters/tmux.js.map +1 -1
  131. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  132. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  133. package/daemon/dist/adapters/yolo-mode.js +21 -0
  134. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  135. package/daemon/dist/build-info.js +3 -3
  136. package/daemon/dist/domain/codex-thread-id.d.ts +100 -2
  137. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  138. package/daemon/dist/domain/codex-thread-id.js +180 -6
  139. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  140. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  141. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  142. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  143. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  144. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  145. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  146. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  147. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  148. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  149. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  150. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  151. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  152. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  153. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  154. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  155. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  156. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  157. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  158. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  159. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  160. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  161. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  162. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  163. package/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  164. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  165. package/daemon/dist/domain/crash-cart-conductor.js +233 -0
  166. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  167. package/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  168. package/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  169. package/daemon/dist/domain/crash-cart-probes.js +57 -7
  170. package/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  171. package/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  172. package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  173. package/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  174. package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  175. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  176. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  177. package/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  178. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  179. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  180. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  181. package/daemon/dist/domain/markdown-address.js +188 -0
  182. package/daemon/dist/domain/markdown-address.js.map +1 -0
  183. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
  184. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  185. package/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  186. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  187. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  188. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  189. package/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  190. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  191. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
  192. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  193. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
  194. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  195. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  196. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  197. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  198. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  199. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  200. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  201. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  202. package/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  203. package/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  204. package/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  205. package/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  206. package/daemon/dist/domain/process-census.d.ts +25 -0
  207. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  208. package/daemon/dist/domain/process-census.js +47 -0
  209. package/daemon/dist/domain/process-census.js.map +1 -0
  210. package/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
  211. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  212. package/daemon/dist/domain/resume-metadata-refresher.js +74 -31
  213. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  214. package/daemon/dist/domain/review/compose.d.ts +5 -26
  215. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  216. package/daemon/dist/domain/review/compose.js +31 -57
  217. package/daemon/dist/domain/review/compose.js.map +1 -1
  218. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  219. package/daemon/dist/domain/review/gather.js +3 -2
  220. package/daemon/dist/domain/review/gather.js.map +1 -1
  221. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  222. package/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  223. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  224. package/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  225. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts → daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
  226. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  227. package/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  228. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  229. package/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  230. package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  231. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js → daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  232. package/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  233. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
  234. package/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  235. package/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  236. package/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  237. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  238. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  239. package/daemon/dist/domain/rigspec-instantiator.js +39 -0
  240. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  241. package/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  242. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  243. package/daemon/dist/domain/rigspec-schema.js +25 -2
  244. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  245. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  246. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  247. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  248. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  249. package/daemon/dist/domain/scope/node-file.d.ts +37 -0
  250. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  251. package/daemon/dist/domain/scope/node-file.js +55 -0
  252. package/daemon/dist/domain/scope/node-file.js.map +1 -0
  253. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
  254. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  255. package/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
  256. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  257. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  258. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  259. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  260. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  261. package/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  262. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  263. package/daemon/dist/domain/scope/scope-approve.js +56 -7
  264. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  265. package/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  266. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  267. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  268. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  269. package/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  270. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  271. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  272. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  273. package/daemon/dist/domain/seat-activity-service.js +39 -23
  274. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  275. package/daemon/dist/domain/seat-handover-service.d.ts +54 -15
  276. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  277. package/daemon/dist/domain/seat-handover-service.js +74 -19
  278. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  279. package/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  280. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  281. package/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  282. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  283. package/daemon/dist/domain/session-jsonl.js +1 -1
  284. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  285. package/daemon/dist/domain/session-transport.d.ts +8 -0
  286. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  287. package/daemon/dist/domain/session-transport.js +116 -0
  288. package/daemon/dist/domain/session-transport.js.map +1 -1
  289. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  290. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  291. package/daemon/dist/domain/shell-classifier.js +36 -0
  292. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  293. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  294. package/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
  295. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  296. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  297. package/daemon/dist/domain/slices/slice-indexer.js +16 -3
  298. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  299. package/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  300. package/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  301. package/daemon/dist/domain/spec-live-conformance.js +35 -0
  302. package/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  303. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  304. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  305. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  306. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  307. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  308. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  309. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  310. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  311. package/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  312. package/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  313. package/daemon/dist/domain/sync-site-wrap.js +11 -0
  314. package/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  315. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  316. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  317. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  318. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  319. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  320. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  321. package/daemon/dist/domain/transcript-rotation.js +61 -3
  322. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  323. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  324. package/daemon/dist/domain/transcript-store.js +9 -2
  325. package/daemon/dist/domain/transcript-store.js.map +1 -1
  326. package/daemon/dist/domain/types.d.ts +18 -0
  327. package/daemon/dist/domain/types.d.ts.map +1 -1
  328. package/daemon/dist/domain/types.js.map +1 -1
  329. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  330. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  331. package/daemon/dist/domain/user-settings/settings-store.js +59 -0
  332. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  333. package/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  334. package/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  335. package/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  336. package/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  337. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  338. package/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  339. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  340. package/daemon/dist/routes/activity.js +11 -2
  341. package/daemon/dist/routes/activity.js.map +1 -1
  342. package/daemon/dist/routes/bundles.d.ts +27 -0
  343. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  344. package/daemon/dist/routes/bundles.js +107 -26
  345. package/daemon/dist/routes/bundles.js.map +1 -1
  346. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  347. package/daemon/dist/routes/context-packs.js +205 -0
  348. package/daemon/dist/routes/context-packs.js.map +1 -1
  349. package/daemon/dist/routes/crash-cart.d.ts +4 -0
  350. package/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  351. package/daemon/dist/routes/crash-cart.js +144 -0
  352. package/daemon/dist/routes/crash-cart.js.map +1 -0
  353. package/daemon/dist/routes/missions.d.ts.map +1 -1
  354. package/daemon/dist/routes/missions.js +10 -6
  355. package/daemon/dist/routes/missions.js.map +1 -1
  356. package/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  357. package/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  358. package/{node_modules/@openrig/daemon/dist/routes/rig-policy.js → daemon/dist/routes/rig-mode.js} +13 -13
  359. package/daemon/dist/routes/rig-mode.js.map +1 -0
  360. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  361. package/daemon/dist/routes/scope-approve.js +4 -0
  362. package/daemon/dist/routes/scope-approve.js.map +1 -1
  363. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  364. package/daemon/dist/routes/scope-audit.js +29 -2
  365. package/daemon/dist/routes/scope-audit.js.map +1 -1
  366. package/daemon/dist/routes/seat.d.ts.map +1 -1
  367. package/daemon/dist/routes/seat.js +18 -2
  368. package/daemon/dist/routes/seat.js.map +1 -1
  369. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  370. package/daemon/dist/routes/sessions.js +66 -1
  371. package/daemon/dist/routes/sessions.js.map +1 -1
  372. package/daemon/dist/routes/transport.d.ts.map +1 -1
  373. package/daemon/dist/routes/transport.js +12 -3
  374. package/daemon/dist/routes/transport.js.map +1 -1
  375. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  376. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  377. package/daemon/dist/seat-recap-store-surface.js +6 -0
  378. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  379. package/daemon/dist/server.d.ts +3 -1
  380. package/daemon/dist/server.d.ts.map +1 -1
  381. package/daemon/dist/server.js +15 -5
  382. package/daemon/dist/server.js.map +1 -1
  383. package/daemon/dist/startup.d.ts.map +1 -1
  384. package/daemon/dist/startup.js +166 -6
  385. package/daemon/dist/startup.js.map +1 -1
  386. package/daemon/docs/reference/chain-file-convention.md +115 -0
  387. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  388. package/daemon/docs/reference/refocus-channel.md +80 -0
  389. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  390. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  391. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  392. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  393. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  394. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  395. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  396. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  397. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  398. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  399. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  400. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  401. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  402. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  403. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  404. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  405. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  406. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  407. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  408. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  409. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  410. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  411. package/dist/build-info.js +3 -3
  412. package/dist/commands/bundle.d.ts.map +1 -1
  413. package/dist/commands/bundle.js +6 -0
  414. package/dist/commands/bundle.js.map +1 -1
  415. package/dist/commands/capture.d.ts.map +1 -1
  416. package/dist/commands/capture.js +2 -0
  417. package/dist/commands/capture.js.map +1 -1
  418. package/dist/commands/config.d.ts.map +1 -1
  419. package/dist/commands/config.js +8 -0
  420. package/dist/commands/config.js.map +1 -1
  421. package/dist/commands/context.d.ts.map +1 -1
  422. package/dist/commands/context.js +353 -48
  423. package/dist/commands/context.js.map +1 -1
  424. package/dist/commands/crash-cart.d.ts.map +1 -1
  425. package/dist/commands/crash-cart.js.map +1 -1
  426. package/dist/commands/host.d.ts +5 -0
  427. package/dist/commands/host.d.ts.map +1 -1
  428. package/dist/commands/host.js +59 -3
  429. package/dist/commands/host.js.map +1 -1
  430. package/dist/commands/policy.d.ts +5 -0
  431. package/dist/commands/policy.d.ts.map +1 -0
  432. package/dist/commands/policy.js +307 -0
  433. package/dist/commands/policy.js.map +1 -0
  434. package/dist/commands/proof.d.ts.map +1 -1
  435. package/dist/commands/proof.js +70 -12
  436. package/dist/commands/proof.js.map +1 -1
  437. package/dist/commands/ps.d.ts +4 -0
  438. package/dist/commands/ps.d.ts.map +1 -1
  439. package/dist/commands/ps.js +4 -0
  440. package/dist/commands/ps.js.map +1 -1
  441. package/dist/commands/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  442. package/dist/commands/rig-mode.d.ts.map +1 -0
  443. package/dist/commands/{rig-policy.js → rig-mode.js} +17 -17
  444. package/dist/commands/rig-mode.js.map +1 -0
  445. package/dist/commands/rig.d.ts.map +1 -1
  446. package/dist/commands/rig.js +5 -0
  447. package/dist/commands/rig.js.map +1 -1
  448. package/dist/commands/scope.d.ts.map +1 -1
  449. package/dist/commands/scope.js +58 -16
  450. package/dist/commands/scope.js.map +1 -1
  451. package/dist/commands/send.d.ts.map +1 -1
  452. package/dist/commands/send.js +2 -0
  453. package/dist/commands/send.js.map +1 -1
  454. package/dist/commands/setup.d.ts +13 -0
  455. package/dist/commands/setup.d.ts.map +1 -1
  456. package/dist/commands/setup.js +3 -3
  457. package/dist/commands/setup.js.map +1 -1
  458. package/dist/commands/transcript.d.ts.map +1 -1
  459. package/dist/commands/transcript.js +27 -1
  460. package/dist/commands/transcript.js.map +1 -1
  461. package/dist/commands/walk.d.ts.map +1 -1
  462. package/dist/commands/walk.js +279 -26
  463. package/dist/commands/walk.js.map +1 -1
  464. package/dist/commands/whoami.d.ts.map +1 -1
  465. package/dist/commands/whoami.js +11 -1
  466. package/dist/commands/whoami.js.map +1 -1
  467. package/dist/config-store.d.ts +17 -1
  468. package/dist/config-store.d.ts.map +1 -1
  469. package/dist/config-store.js +53 -1
  470. package/dist/config-store.js.map +1 -1
  471. package/dist/cross-host-target.d.ts +8 -1
  472. package/dist/cross-host-target.d.ts.map +1 -1
  473. package/dist/cross-host-target.js +23 -4
  474. package/dist/cross-host-target.js.map +1 -1
  475. package/dist/daemon-lifecycle.d.ts +10 -1
  476. package/dist/daemon-lifecycle.d.ts.map +1 -1
  477. package/dist/daemon-lifecycle.js +26 -1
  478. package/dist/daemon-lifecycle.js.map +1 -1
  479. package/dist/front-door.d.ts.map +1 -1
  480. package/dist/front-door.js +11 -1
  481. package/dist/front-door.js.map +1 -1
  482. package/dist/host-bindings.d.ts +62 -0
  483. package/dist/host-bindings.d.ts.map +1 -0
  484. package/dist/host-bindings.js +147 -0
  485. package/dist/host-bindings.js.map +1 -0
  486. package/dist/host-registry.d.ts +14 -1
  487. package/dist/host-registry.d.ts.map +1 -1
  488. package/dist/host-registry.js +30 -2
  489. package/dist/host-registry.js.map +1 -1
  490. package/dist/index.d.ts +2 -2
  491. package/dist/index.d.ts.map +1 -1
  492. package/dist/index.js +5 -2
  493. package/dist/index.js.map +1 -1
  494. package/dist/lib/hosts/fanout-contract.d.ts +4 -0
  495. package/dist/lib/hosts/fanout-contract.d.ts.map +1 -1
  496. package/dist/lib/hosts/fanout-contract.js +15 -0
  497. package/dist/lib/hosts/fanout-contract.js.map +1 -1
  498. package/dist/lib/path-safety.d.ts +8 -0
  499. package/dist/lib/path-safety.d.ts.map +1 -0
  500. package/dist/lib/path-safety.js +24 -0
  501. package/dist/lib/path-safety.js.map +1 -0
  502. package/dist/lib/permission-policy/policy-ref.d.ts +89 -0
  503. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -0
  504. package/dist/lib/permission-policy/policy-ref.js +171 -0
  505. package/dist/lib/permission-policy/policy-ref.js.map +1 -0
  506. package/dist/lib/permission-policy/policy-spec.d.ts +34 -0
  507. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -0
  508. package/dist/lib/permission-policy/policy-spec.js +106 -0
  509. package/dist/lib/permission-policy/policy-spec.js.map +1 -0
  510. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  511. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  512. package/dist/lib/scope/logical-checkbox.js +65 -0
  513. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  514. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  515. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  516. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  517. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  518. package/dist/lib/scope/scope-audit.d.ts +1 -1
  519. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  520. package/dist/lib/scope/scope-audit.js.map +1 -1
  521. package/dist/lib/scope/scope-fs.d.ts +19 -3
  522. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  523. package/dist/lib/scope/scope-fs.js +37 -17
  524. package/dist/lib/scope/scope-fs.js.map +1 -1
  525. package/dist/lib/topology-trace.d.ts +36 -0
  526. package/dist/lib/topology-trace.d.ts.map +1 -0
  527. package/dist/lib/topology-trace.js +91 -0
  528. package/dist/lib/topology-trace.js.map +1 -0
  529. package/dist/release-surface/extract-surface.js +1 -1
  530. package/dist/release-surface/extract-surface.js.map +1 -1
  531. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  532. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  533. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  534. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  535. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  536. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  537. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  538. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  539. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  540. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
  541. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
  543. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  544. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  545. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  546. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  547. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  548. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  549. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +100 -2
  550. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +180 -6
  552. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  554. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  555. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  556. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  557. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  559. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  561. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  562. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  563. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  564. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  565. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  566. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  567. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  568. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  569. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  570. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  571. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  572. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  573. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  574. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  575. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  576. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  577. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  578. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +233 -0
  579. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  580. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  581. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  582. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js +57 -7
  583. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  584. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  585. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  586. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  587. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  588. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  589. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  590. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  591. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  592. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  593. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  594. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  595. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  596. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
  597. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  598. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  599. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  600. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  601. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  602. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  603. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  604. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
  605. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  606. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
  607. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  608. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  609. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  610. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  611. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  612. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  613. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  614. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  615. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  616. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  617. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  618. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  619. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  620. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  621. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  622. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  623. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
  624. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  625. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +74 -31
  626. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  627. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  628. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  629. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  630. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  631. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  632. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -2
  633. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  634. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  635. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  636. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  638. package/{daemon/dist/domain/rig-policy/rig-policy-store.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
  639. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  640. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  641. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  642. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  644. package/{daemon/dist/domain/rig-policy/rig-policy-types.js → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  646. package/{daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
  647. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  648. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  649. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  650. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  651. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
  653. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  655. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  656. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +25 -2
  657. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  658. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  659. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  660. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  661. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  662. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +37 -0
  663. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  664. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +55 -0
  665. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -0
  666. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
  667. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
  669. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  671. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  673. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  675. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +56 -7
  677. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  678. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  679. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  681. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  682. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  683. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  685. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  686. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  687. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -15
  689. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +74 -19
  691. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  692. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  693. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  695. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js +1 -1
  697. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
  699. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
  701. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  702. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  703. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  704. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  705. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  706. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  707. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
  708. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  709. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +16 -3
  711. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  713. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js +35 -0
  715. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  717. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  718. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  719. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  720. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  721. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  723. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  725. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  726. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js +11 -0
  727. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  728. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  729. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  731. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  732. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  733. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  734. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  735. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  736. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  737. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  738. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  739. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +18 -0
  740. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  741. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  743. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  744. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +59 -0
  745. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  746. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  747. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  748. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  749. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  750. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  751. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  752. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  753. package/node_modules/@openrig/daemon/dist/routes/activity.js +11 -2
  754. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  755. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts +27 -0
  756. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  757. package/node_modules/@openrig/daemon/dist/routes/bundles.js +107 -26
  758. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  759. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  760. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  761. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  762. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts +4 -0
  763. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  764. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +144 -0
  765. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -0
  766. package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +1 -1
  767. package/node_modules/@openrig/daemon/dist/routes/missions.js +10 -6
  768. package/node_modules/@openrig/daemon/dist/routes/missions.js.map +1 -1
  769. package/node_modules/@openrig/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  770. package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  771. package/{daemon/dist/routes/rig-policy.js → node_modules/@openrig/daemon/dist/routes/rig-mode.js} +13 -13
  772. package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +1 -0
  773. package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  774. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js +4 -0
  775. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js.map +1 -1
  776. package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  777. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +29 -2
  778. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  779. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  780. package/node_modules/@openrig/daemon/dist/routes/seat.js +18 -2
  781. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  782. package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
  783. package/node_modules/@openrig/daemon/dist/routes/sessions.js +66 -1
  784. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  785. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  786. package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
  787. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  788. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  789. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  790. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  791. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  792. package/node_modules/@openrig/daemon/dist/server.d.ts +3 -1
  793. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  794. package/node_modules/@openrig/daemon/dist/server.js +15 -5
  795. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  796. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  797. package/node_modules/@openrig/daemon/dist/startup.js +166 -6
  798. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  799. package/node_modules/@openrig/daemon/package.json +6 -1
  800. package/package.json +1 -1
  801. package/tui/dist/crash-cart/from-emit.d.ts +9 -0
  802. package/tui/dist/crash-cart/from-emit.d.ts.map +1 -1
  803. package/tui/dist/crash-cart/from-emit.js.map +1 -1
  804. package/tui/dist/crash-cart/keys.d.ts +1 -1
  805. package/tui/dist/crash-cart/keys.d.ts.map +1 -1
  806. package/tui/dist/crash-cart/keys.js +13 -2
  807. package/tui/dist/crash-cart/keys.js.map +1 -1
  808. package/tui/dist/crash-cart/one-click-gate.d.ts +5 -0
  809. package/tui/dist/crash-cart/one-click-gate.d.ts.map +1 -1
  810. package/tui/dist/crash-cart/one-click-gate.js +8 -0
  811. package/tui/dist/crash-cart/one-click-gate.js.map +1 -1
  812. package/tui/dist/crash-cart/render-crash-cart.d.ts +11 -0
  813. package/tui/dist/crash-cart/render-crash-cart.d.ts.map +1 -1
  814. package/tui/dist/crash-cart/render-crash-cart.js +113 -0
  815. package/tui/dist/crash-cart/render-crash-cart.js.map +1 -1
  816. package/tui/dist/crash-cart/restore-input.d.ts +32 -0
  817. package/tui/dist/crash-cart/restore-input.d.ts.map +1 -0
  818. package/tui/dist/crash-cart/restore-input.js +37 -0
  819. package/tui/dist/crash-cart/restore-input.js.map +1 -0
  820. package/tui/dist/crash-cart/restore-lifecycle.d.ts +66 -0
  821. package/tui/dist/crash-cart/restore-lifecycle.d.ts.map +1 -0
  822. package/tui/dist/crash-cart/restore-lifecycle.js +96 -0
  823. package/tui/dist/crash-cart/restore-lifecycle.js.map +1 -0
  824. package/tui/dist/crash-cart/restore-scroll.d.ts +14 -0
  825. package/tui/dist/crash-cart/restore-scroll.d.ts.map +1 -0
  826. package/tui/dist/crash-cart/restore-scroll.js +27 -0
  827. package/tui/dist/crash-cart/restore-scroll.js.map +1 -0
  828. package/tui/dist/daemon-client.d.ts +38 -0
  829. package/tui/dist/daemon-client.d.ts.map +1 -1
  830. package/tui/dist/daemon-client.js +15 -0
  831. package/tui/dist/daemon-client.js.map +1 -1
  832. package/tui/dist/main.js +146 -2
  833. package/tui/dist/main.js.map +1 -1
  834. package/tui/dist/render.d.ts +10 -0
  835. package/tui/dist/render.d.ts.map +1 -1
  836. package/tui/dist/render.js +63 -10
  837. package/tui/dist/render.js.map +1 -1
  838. package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  839. package/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  840. package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  841. package/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  842. package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  843. package/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  844. package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  845. package/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  846. package/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  847. package/daemon/dist/routes/rig-policy.js.map +0 -1
  848. package/dist/commands/rig-policy.d.ts.map +0 -1
  849. package/dist/commands/rig-policy.js.map +0 -1
  850. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  851. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  852. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  853. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  854. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  855. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  856. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  857. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  858. package/node_modules/@openrig/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  859. package/node_modules/@openrig/daemon/dist/routes/rig-policy.js.map +0 -1
@@ -3,12 +3,26 @@ import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import { spawnSync } from "node:child_process";
6
+ import crypto from "node:crypto";
6
7
 
7
8
  const TEXT_LIMIT = 4000;
8
- // P6(C) injectable output-root (mirrors precompact-hook.mjs): per-run isolation when
9
- // OPENRIG_COMPACTION_OUT_ROOT is set, real /tmp default in production. Guards a direct
10
- // invocation (the hook passes --out explicitly) against the same cross-writer collision.
11
- const DEFAULT_OUT = process.env.OPENRIG_COMPACTION_OUT_ROOT || "/tmp/claude-compaction-restore";
9
+ const BASE64_RUN = 800; // strip contiguous base64 runs at least this long (screenshots, data URIs)
10
+
11
+ function sha256(text) {
12
+ return crypto.createHash("sha256").update(String(text ?? "")).digest("hex").slice(0, 16);
13
+ }
14
+
15
+ // R3: replace binary / base64 payloads (data: URIs, long base64 runs) with a compact marker,
16
+ // so a single screenshot block does not blow the transcript into un-chunkable size.
17
+ function stripBinary(text) {
18
+ let s = String(text ?? "");
19
+ s = s.replace(/data:([\w.+-]+\/[\w.+-]+)?;base64,[A-Za-z0-9+/=\s]{200,}/g,
20
+ (m, mime) => `[binary omitted: ~${m.length} bytes${mime ? `, ${mime}` : ""}]`);
21
+ s = s.replace(new RegExp(`[A-Za-z0-9+/]{${BASE64_RUN},}={0,2}`, "g"),
22
+ (m) => `[base64 omitted: ~${m.length} bytes]`);
23
+ return s;
24
+ }
25
+ const DEFAULT_OUT = "/tmp/claude-compaction-restore";
12
26
 
13
27
  function parseArgs(argv) {
14
28
  const args = {
@@ -86,8 +100,9 @@ function stringifyContent(content) {
86
100
  .map((block) => {
87
101
  if (typeof block === "string") return block;
88
102
  if (block?.type === "text") return block.text ?? "";
103
+ if (block?.type === "image") return `[image omitted: ${block.source?.media_type ?? "image"}]`;
89
104
  if (block?.type === "tool_use") return `[tool_use:${block.name}] ${JSON.stringify(block.input ?? {})}`;
90
- if (block?.type === "tool_result") return `[tool_result] ${truncate(stringifyContent(block.content), TEXT_LIMIT)}`;
105
+ if (block?.type === "tool_result") return `[tool_result] ${truncate(stripBinary(stringifyContent(block.content)), TEXT_LIMIT)}`;
91
106
  return JSON.stringify(block);
92
107
  })
93
108
  .join("\n");
@@ -239,6 +254,8 @@ function analyze(jsonlPath, cwd) {
239
254
  const records = readJsonLines(jsonlPath);
240
255
  const registry = createRegistry();
241
256
  const transcript = [];
257
+ const narrative = []; // R4: message-turns only (assistant/user text), no tool bodies
258
+ const readTargets = new Map(); // R1: tool_use_id -> file_path for Read calls
242
259
  const cwdCounts = new Map();
243
260
  let sessionId = null;
244
261
 
@@ -262,20 +279,26 @@ function analyze(jsonlPath, cwd) {
262
279
 
263
280
  if (typeof content === "string") {
264
281
  transcript.push(`\n## ${role}\n\n${content}`);
282
+ narrative.push(`\n## ${role}\n\n${content}`);
265
283
  for (const file of extractPaths(content, cwd)) registry.add(file, "mentioned", `${role}:text`);
266
284
  continue;
267
285
  }
268
286
 
269
287
  if (!Array.isArray(content)) continue;
270
288
  const parts = [];
289
+ const narrativeParts = [];
271
290
  for (const block of content) {
272
291
  if (block?.type === "text") {
273
292
  parts.push(block.text ?? "");
293
+ narrativeParts.push(block.text ?? "");
274
294
  for (const file of extractPaths(block.text ?? "", cwd)) registry.add(file, "mentioned", `${role}:text`);
275
295
  } else if (block?.type === "tool_use") {
276
296
  const name = block.name ?? "unknown";
277
297
  const input = block.input ?? {};
278
298
  parts.push(`\n[tool_use:${name}]\n${JSON.stringify(input, null, 2)}`);
299
+ if (name === "Read" && block.id && (input.file_path || input.path)) {
300
+ readTargets.set(block.id, input.file_path || input.path);
301
+ }
279
302
  const kind = toolKind(name, input);
280
303
  if (input.file_path) registry.add(normalizeFile(input.file_path, cwd), kind, `tool:${name}:file_path`);
281
304
  if (input.path) registry.add(normalizeFile(input.path, cwd), kind, `tool:${name}:path`);
@@ -284,12 +307,21 @@ function analyze(jsonlPath, cwd) {
284
307
  for (const file of extractPaths(text, cwd)) registry.add(file, kind, `tool:${name}:input`);
285
308
  }
286
309
  } else if (block?.type === "tool_result") {
287
- const resultText = stringifyContent(block.content);
288
- parts.push(`\n[tool_result]\n${truncate(resultText, TEXT_LIMIT)}`);
310
+ const resultText = stripBinary(stringifyContent(block.content));
311
+ const target = block.tool_use_id && readTargets.get(block.tool_use_id);
312
+ if (target) {
313
+ // R1: a Read result reproduces a whole file — emit a pointer, not the body.
314
+ // The live file is current; this transcript copy is a snapshot that may be stale.
315
+ const lineCount = resultText.split("\n").length;
316
+ parts.push(`\n[tool_result: Read ${target} — ${lineCount} lines, sha256 ${sha256(resultText)} — READ THE LIVE FILE; this snapshot may be stale]`);
317
+ } else {
318
+ parts.push(`\n[tool_result]\n${truncate(resultText, TEXT_LIMIT)}`);
319
+ }
289
320
  for (const file of extractPaths(resultText, cwd)) registry.add(file, "mentioned", "tool_result");
290
321
  }
291
322
  }
292
323
  if (parts.length) transcript.push(`\n## ${role}\n\n${parts.join("\n")}`);
324
+ if (narrativeParts.some((p) => String(p).trim())) narrative.push(`\n## ${role}\n\n${narrativeParts.join("\n")}`);
293
325
  }
294
326
 
295
327
  const rankedFiles = registry
@@ -300,12 +332,17 @@ function analyze(jsonlPath, cwd) {
300
332
  const cwdRanked = [...cwdCounts.entries()].sort((a, b) => b[1] - a[1]);
301
333
  const effectiveCwd = cwdRanked[0]?.[0] ?? cwd;
302
334
 
335
+ const transcriptText = transcript.join("\n");
336
+ const narrativeText = narrative.join("\n");
303
337
  return {
304
338
  sessionId,
305
339
  jsonlPath,
306
340
  cwd: effectiveCwd,
307
341
  records: records.length,
308
- transcript: transcript.join("\n"),
342
+ transcript: transcriptText,
343
+ narrative: narrativeText,
344
+ transcriptTokens: Math.round(transcriptText.length / 4),
345
+ narrativeTokens: Math.round(narrativeText.length / 4),
309
346
  files: rankedFiles,
310
347
  docs: discoverDocs(effectiveCwd),
311
348
  };
@@ -346,10 +383,18 @@ function restoreInstructions(summary, outputPaths) {
346
383
  lines.push("You have just been compacted or are restoring a compacted Claude Code seat. Your mental model is compressed and unreliable.");
347
384
  lines.push("");
348
385
  lines.push(`- JSONL transcript: \`${summary.jsonlPath}\``);
349
- lines.push(`- Reconstructed transcript: \`${outputPaths.transcript}\``);
386
+ lines.push(`- Reconstructed transcript: \`${outputPaths.transcript}\` (~${summary.transcriptTokens ?? "?"} tokens — do NOT read front-to-back)`);
387
+ lines.push(`- Narrative companion (READ THIS FIRST): \`${outputPaths.narrative}\` (~${summary.narrativeTokens ?? "?"} tokens — message turns only, no tool bodies)`);
350
388
  lines.push(`- Touched-file triage: \`${outputPaths.touchedFiles}\``);
351
389
  lines.push(`- Working directory inferred: \`${summary.cwd}\``);
352
390
  lines.push("");
391
+ lines.push("## Read budget (the restore must leave room for the work)");
392
+ lines.push("");
393
+ lines.push(`- The full transcript is ~${summary.transcriptTokens ?? "?"} tokens. **Reading it front-to-back can consume the window the restore exists to rebuild.**`);
394
+ lines.push(`- Default order: read the **narrative companion first** (~${summary.narrativeTokens ?? "?"} tokens — message turns + decisions), tail-first (most recent first).`);
395
+ lines.push("- Drop to the full transcript only for a specific question the narrative can't answer. File bodies inside tool-results are pointers now — **read the live file, not the transcript snapshot.**");
396
+ lines.push("- Read to a budget with a stopping rule; report depth honestly (an honest PARTIAL beats a false completion). See the skill's *Required Read-Depth Audit*.");
397
+ lines.push("");
353
398
  lines.push("## Required Sequence");
354
399
  lines.push("");
355
400
  lines.push("1. Read this file and `touched-files.md`.");
@@ -378,31 +423,25 @@ function restoreInstructions(summary, outputPaths) {
378
423
  return lines.join("\n");
379
424
  }
380
425
 
381
- // A3-R3 injectable clock (slice 51-01): the packet output-dir timestamped path
382
- // defaults to real wall-clock, but becomes deterministic when the shared hermetic
383
- // env-var OPENRIG_TEST_CLOCK_NOW is set (an ISO instant). Empty/absent = production.
384
- function nowIso() {
385
- const injected = process.env.OPENRIG_TEST_CLOCK_NOW;
386
- return typeof injected === "string" && injected.trim().length > 0 ? injected : new Date().toISOString();
387
- }
388
-
389
426
  function writeOutputs(summary, outRoot) {
390
- const stamp = nowIso().replace(/[:.]/g, "-");
427
+ const stamp = new Date().toISOString().replace(/[:.]/g, "-");
391
428
  const base = path.join(outRoot, `${summary.sessionId ?? "unknown-session"}-${stamp}`);
392
429
  fs.mkdirSync(base, { recursive: true });
393
430
 
394
431
  const outputPaths = {
395
432
  dir: base,
396
433
  transcript: path.join(base, "transcript.txt"),
434
+ narrative: path.join(base, "transcript-narrative.txt"),
397
435
  touchedFiles: path.join(base, "touched-files.md"),
398
436
  instructions: path.join(base, "restore-instructions.md"),
399
437
  summary: path.join(base, "restore-summary.json"),
400
438
  };
401
439
 
402
440
  fs.writeFileSync(outputPaths.transcript, summary.transcript || "(no message transcript reconstructed)\n");
441
+ fs.writeFileSync(outputPaths.narrative, summary.narrative || "(no narrative reconstructed)\n");
403
442
  fs.writeFileSync(outputPaths.touchedFiles, markdownFileList(summary.files));
404
443
  fs.writeFileSync(outputPaths.instructions, restoreInstructions(summary, outputPaths));
405
- fs.writeFileSync(outputPaths.summary, JSON.stringify({ ...summary, transcript: undefined, outputPaths }, null, 2));
444
+ fs.writeFileSync(outputPaths.summary, JSON.stringify({ ...summary, transcript: undefined, narrative: undefined, outputPaths }, null, 2));
406
445
 
407
446
  return outputPaths;
408
447
  }
@@ -421,6 +460,9 @@ function main() {
421
460
  jsonlPath,
422
461
  outputDir: outputPaths.dir,
423
462
  transcript: outputPaths.transcript,
463
+ narrative: outputPaths.narrative,
464
+ transcriptTokens: summary.transcriptTokens,
465
+ narrativeTokens: summary.narrativeTokens,
424
466
  touchedFiles: outputPaths.touchedFiles,
425
467
  instructions: outputPaths.instructions,
426
468
  fileCount: summary.files.length,
@@ -432,7 +474,8 @@ function main() {
432
474
  console.log(`Restore packet: ${result.outputDir}`);
433
475
  console.log(`Instructions: ${result.instructions}`);
434
476
  console.log(`Touched files: ${result.touchedFiles}`);
435
- console.log(`Transcript: ${result.transcript}`);
477
+ console.log(`Narrative (read first): ${result.narrative} (~${result.narrativeTokens} tokens)`);
478
+ console.log(`Transcript (drill-down): ${result.transcript} (~${result.transcriptTokens} tokens)`);
436
479
  }
437
480
  }
438
481
 
@@ -1,7 +1,11 @@
1
1
  ---
2
2
  name: forming-an-openrig-mental-model
3
- description: |
4
- Use when an agent is newly oriented to OpenRig and needs to form an accurate mental model of the system fast what rigs are, how skills load, what the topology shapes mean, what the product loop is. For agents booting into a new seat or returning to OpenRig work after time away. NOT for compaction recovery (use claude-compaction-restore for that) or for specific operational procedures.
3
+ description: >-
4
+ Use when the system around you does not make sense yet: you just booted into a seat and do not
5
+ know how the pieces fit; someone said rig, pod, seat, fleet, topology, or slice and you are not
6
+ certain what they mean here; you are unsure what kind of rig you are in or what it is for; you do
7
+ not know how skills reach you or where context comes from; or you are about to act on a guess
8
+ about how OpenRig works. Gives the runtime mental model fast, so you stop guessing.
5
9
  metadata:
6
10
  cli_surfaces_referenced:
7
11
  - ask
@@ -28,8 +28,10 @@ metadata:
28
28
  rig send operator-human@your-rig "your message"
29
29
  ```
30
30
 
31
- That goes straight to the human's Slack. That is the entire *how*. Everything
32
- below is the *when* and the *who* which is the part that actually matters.
31
+ That goes straight to the human's Slack that is the *how* for **text**. For **images**
32
+ (screenshots, renders), send through the **image connector** instead; text and images are separate
33
+ live channels today (a release upgrade will unify them). Either way the *how* is trivial; everything
34
+ below is the *when* and the *who* — the part that actually matters.
33
35
 
34
36
  ## The mental model: the human is a scarce attention resource managing by exception
35
37
 
@@ -63,6 +65,30 @@ test is: **"would he want to know this?"** If yes, send it. Lean toward sending
63
65
  genuine signal and real good news; do not manufacture noise or narrate routine
64
66
  churn. Discernment is the skill: you are curating his attention, not flooding it.
65
67
 
68
+ ### The v0 event classes — reach out on these, unprompted
69
+
70
+ "Use discretion" left the *when* unspecified, so it did not happen — the channel exists and nobody
71
+ reaches for it. Here are the **named event classes** that should trigger a proactive message —
72
+ anchors for the judgment, not an exhaustive gate:
73
+
74
+ - **Model-fallback boots** — a seat that came up on a fallback model instead of its pinned one. Send
75
+ on **every occurrence**; a silent downgrade is exactly what the human needs to see.
76
+ - **Capacity / authority requests** — you need a fork/spin-up authorization, a spend-or-limit call, or
77
+ any authority only the human holds. This is a **guaranteed-answer** path — don't sit blocked on it.
78
+ - **Security-category flags** — anything in the security / consequence-boundary class.
79
+ - **Acceptance / milestone moments** — a slice proven, a release cut, a real "it's done and it works."
80
+ - **Human-addressed work blocked beyond its settle window** — a decision or request routed to the
81
+ human that has sat past the time it should have moved.
82
+ - **Idle / stall alarms** — the line stopped and isn't resuming (the idle-detector's signal).
83
+
84
+ These are v0, drawn from real rulings; treat them as the anchors that make the *when* concrete. New
85
+ classes earn their place the same way — from a real event the human wanted to know about.
86
+
87
+ **Why this is a norm, not a nicety — WORKS ≠ USED.** A channel that *works* is not a channel that is
88
+ *used*. This path is proven only when agents **reach for it unprompted** across the lifecycle — a
89
+ boot, a blocker, a ship, an alarm. If the channel exists and nobody reaches for it, the human is
90
+ blind by default. Reaching out on these classes is the job, not an interruption of it.
91
+
66
92
  ### If you are ANY OTHER agent — blockers only
67
93
 
68
94
  You may message the human **only** when you are **blocked** and **he** is the one
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  name: mission-slice-sop
3
- description: "Use when working a mission or slice: the SDLC flow (intent -> mini-requirements + proof contract -> mockups -> plan-lock -> build -> QA -> `rig proof` drops -> proof-lock), and how to track, prove, and hand off state across agents and compaction via PROGRESS.md / PROOF.md / MISSION_NOTES.md. Covers the two locks, role contracts, hot-potato queue handoff, and the `rig scope audit` backstop."
3
+ description: "Use when working a mission or slice: the canonical files (README / IMPLEMENTATION-PRD / PROGRESS / MISSION_NOTES / MISSION_BRIEF / PROOF), who owns what and when, how planning feeds building + review + QA, how to hand off through the queue, and how to survive compaction. This is the LIGHT default. It does NOT include the intent/plan-lock/proof-lock ceremony that is a separate assigned overlay, `mission-slice-intent-proof-sop`."
4
4
  metadata:
5
5
  openrig:
6
6
  stage: shipped
7
7
  sibling_skills:
8
+ - mission-slice-intent-proof-sop
8
9
  - queue-handoff
9
10
  - seat-continuity-and-handover
10
11
  - claude-compaction-restore
@@ -12,99 +13,88 @@ metadata:
12
13
 
13
14
  # Mission/Slice SOP — how you work a mission & slice
14
15
 
15
- Use this skill to actually **do** mission/slice work the way OpenRig expects: author the convention sections, track on the canonical files, prove on them, hand off through them, and survive compaction on them. **Do the work described here; do not merely explain the protocol.** The deterministic backstop is `rig scope audit` — an **advisory, fail-open** check (it records and advises, never blocks a write; see Proportionality below), not an authority you serve. The conventions themselves live in ONE document: **`docs/reference/sdlc-conventions.md`** in the repo, materialized by the daemon at **`$OPENRIG_HOME/reference/sdlc-conventions.md`** (default `~/.openrig/reference/sdlc-conventions.md`) on an installed package — this skill teaches the flow; the SSOT defines the formats.
16
+ Use this skill to actually **do** mission/slice work: track on the canonical files, record what you proved, hand off through them, and survive compaction on them. **Do the work described here; do not merely explain the protocol.**
17
+
18
+ ## THIS IS THE LIGHT DEFAULT — read this before anything else
19
+
20
+ **The default for any slice is the inner loop:** ground yourself → build → **test with your own eyes** → iterate → **ONE** full-breadth review at the end. That is the whole process. It is not a reduced form of a better process; it IS the process.
21
+
22
+ **The intent / plan-lock / proof-contract / proof-lock ceremony is NOT part of this skill.** It lives in a separate overlay, **`mission-slice-intent-proof-sop`**, and you **may not select it yourself**. It applies only when the mission owner — or an orchestrator explicitly relaying the mission owner — **assigns it to a named piece of work**. If you believe something earns it, say so in one sentence and **continue on the light path** until told otherwise.
23
+
24
+ Why the split exists, plainly: this document used to carry both, so every slice loaded the full apparatus and a one-line documentation change could draw a multi-round gate. If you find yourself building a proof contract, requesting a pre-edit gate, or asking a peer to gate something you can verify yourself — you have picked up the overlay without being assigned it. Put it down.
16
25
 
17
26
  ## Proportionality — this SOP serves shipping; it is not the work itself
18
- The working product is the deliverable. This bookkeeping exists so the work survives handoff, compaction, and review — nothing more. **Match it to stakes:** OpenRig core = full ceremony; Studio Box / SDK / app slices = pragmatic — the mini-requirements may BE the whole PRD, and a couple of honest, LOOKed proof lines beat an elaborate contract. The `rig scope audit` backstop is **advisory and fail-open** (its own SSOT says so): it never blocks a build and is not a gate you clear before proceeding. If you're spending more time on the convention files or the audit than on the running product, stop and go build. Running the full apparatus on a small change is the letter-worship failure, not diligence.
19
-
20
- ## The SDLC flow (intent → proof)
21
-
22
- ```
23
- intent → mini-requirements + proof contract → (UI slices: mockups)
24
- → plan-lock (rig scope slice approve --scope spec)
25
- → build the LOCKED set
26
- → QA: mockup ↔ delivered VISUAL compare
27
- → proof drops (rig proof add <slice> …)
28
- → proof-lock (rig scope slice approve --scope delivery)
29
- ```
30
-
31
- 1. **Record intent** verbatim in the slice's `## Intent` section (`rig scope slice create` scaffolds it — every template kind).
32
- 2. **Author the mini-requirements + proof contract**: `## Mini-requirements` is the concise one-glance tier (approval starts there); `## Proof contract` is a checkbox list of promised deliverables, each written as an observable outcome. UI deliverables name their planned mockup. The IMPLEMENTATION-PRD opens with the mini-requirements; everything between intent and proof is **elastic** — for a small slice the mini-requirements may BE the whole PRD.
33
- - **PARSER CONTRACT (README AND IMPLEMENTATION-PRD, from first draft — a parser contract, not stylistic):** each doc carries a verbatim, **undecorated** `## Mini-requirements` heading with a **numbered list**, and a verbatim, **undecorated** `## Proof contract` heading whose checkbox (`- [ ]`) lines are **character-identical** across the two files. `rig scope audit` parses the PRD's `## Proof contract`; a prose rollup (e.g. `## Required proof …`) or any renamed/decorated heading trips **`proof_contract_missing_or_malformed`** and forces a post-lock format patch. Never rename or decorate these two headings, and keep the PRD's checkbox lines byte-for-byte equal to the README's.
34
- - **REFERENCE-NOT-RESTATE (public / runnable examples — an honesty rail, from first draft):** any example that shows output or a value the referenced file/command **derives** — repo/runtime counts, current-state totals, hashes, timestamps — must **reference the source/derivation, omit the volatile value, or pin an explicitly stable fixture**; never hardcode the live count/state in a public or shipped doc. "Illustrative" derived output is a lie on a timer: `OK registry (2 manifests)` goes false the instant an entry lands. Write the invariant form (`OK registry (<N> manifests)`, N = entries in `registry.json`) or name the fixture instead of the momentary number. Restated derivable state in a public doc is a defect `rig scope audit` will not catch — the author owns it.
35
- 3. **Plan-lock**: `rig scope slice approve <slice> --scope spec` — "the PRD matches the intent; THIS artifact set is what gets built." One daemon-side write: frontmatter stamp + append-only audit row.
36
- - **PRE-PLAN-LOCK SELF-CHECK (advisory, not a gate):** before requesting `--scope spec`, it's worth running `rig scope audit --mission <mission> --json` and clearing any real **format** defect (e.g. `proof_contract_missing_or_malformed`) so the parser can read your proof contract — that's a genuine machine-parsing need, cheap to fix. But the audit is fail-open: findings do NOT block the lock or the build, and you do NOT need a zero-findings score to proceed. Fix what's real, skip what isn't, keep moving.
37
- 4. **Build the locked set** — look at the mockups, not just the spec text.
38
- 5. **QA visual compare**: for each deliverable, load the planned mockup, produce the real artifact in a test/demo environment, visually compare, and record the verdict.
39
- 6. **Drop proof**: `rig proof add <slice> --artifact-type qa --verdict PASS --candidate-sha <tip> --money-evidence "…" --evidences "1,3" --media "walk.webm,panel.png" --self-check "…"` — the C1 header's closed sets validate at drop time; `--evidences` joins the drop to its proof-contract items and `--media` names the curated proof/-relative media the drop stands behind (that pairing + media set is what the UI's DELIVERED section renders).
40
- 7. **Proof-lock**: `rig scope slice approve <slice> --scope delivery` — the terminal sign-off. Approval is freeze/sign-off, **never** proven-green: proven-green requires the recorded C1 verdicts.
27
+
28
+ The working product is the deliverable. This bookkeeping exists so the work survives handoff, compaction, and review — nothing more. **Match it to stakes.** The `rig scope audit` backstop is **advisory and fail-open**: it never blocks a build and is not a gate you clear before proceeding. If you're spending more time on the convention files or the audit than on the running product, stop and go build. Running the full apparatus on a small change is the letter-worship failure, not diligence.
41
29
 
42
30
  ## The three role contracts
43
31
 
44
- - **Planning agent:** authors intent + mini-requirements + the proof contract; produces mockups for UI deliverables and attaches them to the locked set (a UI slice with no mockup is an incomplete plan; non-UI slices have none — not a gate); locks the plan.
45
- - **Build agent:** builds against the LOCKED set only; looks at the mockups.
46
- - **QA agent (owns the compare):** visually compares planned vs delivered per deliverable, records verdict + note via proof drops, and **curates** the canonical proof set (bounded, mapped to deliverables; the fix-loop pile stays in `proof/`, one drill-in down). On mismatch: fix-and-re-review or kick back with the reason — never escalate a raw mismatch to the human.
32
+ - **Planning agent:** records what the slice is for and what "done" looks like, in the slice's own words; produces mockups for UI deliverables so the builder has something to look at (a UI slice with no mockup is an incomplete plan; non-UI slices have none — not a gate).
33
+ - **Build agent:** builds it, and **looks at the mockups**. Verifies by running the thing.
34
+ - **QA agent (owns the compare):** compares planned vs delivered per deliverable, records the verdict and the note. On mismatch: fix-and-re-review, or kick back with the reason — never escalate a raw mismatch to the human.
35
+
36
+ These three are a division of labour, not a chain of gates. One agent may hold all three on a small slice.
47
37
 
48
38
  ## The canonical files (the operating surface)
49
39
 
50
- > The canonical files below are the **operating surface of the work** — you track on them, prove on them, hand off through them, and survive compaction on them. Keep them current because that is what lets the work survive handoff, compaction, and review — but they **serve** the product, they are not the product. If you're polishing these files while the actual thing isn't shipping, you've inverted it: go build, then update them.
40
+ > These files are the **operating surface of the work** — you track on them, record on them, hand off through them, and survive compaction on them. Keep them current because that is what lets the work survive. But they **serve** the product; they are not the product. If you're polishing files while the actual thing isn't shipping, you've inverted it: go build, then update them.
51
41
 
52
- - **README.md** (mission + slice) — the overview, OPENING with the convention sections (`## Intent` / `## Mini-requirements` / `## Proof contract`). The **mission README carries this SOP at its bottom.**
53
- - **IMPLEMENTATION-PRD.md** — the full PRD; opens with the mini-requirements; the `## Proof contract` here is what the UI's DELIVERED pairing joins proof against.
42
+ - **README.md** (mission + slice) — the overview. The **mission README carries this SOP at its bottom.**
43
+ - **IMPLEMENTATION-PRD.md** — the plan, at whatever depth the work actually needs. For a small slice this may be a few lines. Elastic by design.
54
44
  - **PROGRESS.md** — the live delivery state. One line per outcome; links down for detail.
55
- - **MISSION_NOTES.md** — the accruing handoff + tribal-knowledge doc. Blank-slate onboarding + **compaction-restore** read it. `§1` top-of-mind + per-seat `§A–§X`.
45
+ - **MISSION_NOTES.md** — the accruing handoff + tribal-knowledge doc. Blank-slate onboarding and **compaction-restore** read it. `§1` top-of-mind + per-seat `§A–§X`.
56
46
  - **MISSION_BRIEF.md** — the steering doc (the UI "Steering" tab). The 7-section schema.
57
- - **PROOF.md** (+ `proof/`) — acceptance evidence. **A slice is not done until every proof-contract item has evidence.**
47
+ - **PROOF.md** (+ `proof/`) — what you actually verified, stated honestly. A couple of honest, LOOKed-at lines beat an elaborate contract.
58
48
 
59
49
  ## Per-file rules — WHO / WHEN / HOW
60
50
 
61
51
  ### PROGRESS.md
62
52
  - **WHO:** the orchestrator owns `§1` (current state); every agent logs its own outcomes.
63
- - **WHEN:** after every slice-done **AND every commit**; on any material state change.
64
- - **HOW:** one line per outcome (checkbox), link down for detail (workstream-continuity format); keep frontmatter `stage`/`verified` honest.
53
+ - **WHEN:** after every slice-done **and every commit**; on any material state change.
54
+ - **HOW:** one line per outcome (checkbox), link down for detail; keep frontmatter `stage`/`verified` honest.
65
55
 
66
56
  ### PROOF.md + proof/
67
57
  - **WHO:** the impl/QA pair that worked the slice.
68
- - **WHEN:** a slice is **NOT "done"** until every proof-contract item has evidence.
69
- - **HOW:** proof maps **1:1 to the proof contract's deliverables**put media under `proof/`, then ATTACH it with `rig proof add <slice> --evidences <item> --media <files>` (the drop writes the C1 header the DELIVERED pairing joins on) + a line in PROOF.md stating what it proves. **Hand-placing files in `proof/` without a drop is the anti-pattern** the deliverable stays unpaired and `unverified`. No proof not done.
58
+ - **WHEN:** before you call a slice done.
59
+ - **HOW:** say what you verified and how you verified it **by effect**: you ran it and looked at the result. Put supporting media under `proof/`. State plainly what is proven and what is **not**; an honest "this half is untested" is worth more than a checkmark. If a drop verb is in play for this slice, prefer it over hand-placing files so the artifact carries its own provenance.
70
60
 
71
61
  ### MISSION_NOTES.md
72
- - **WHO:** any agent updates `§1` (top-of-mind); each seat owns + appends to its own `§A–§X` section.
62
+ - **WHO:** any agent updates `§1` (top-of-mind); each seat owns and appends to its own `§A–§X`.
73
63
  - **WHEN:** on any material change; a compacting agent **files its state here BEFORE compaction and reads it on restore.**
74
64
  - **HOW:** accruing tribal knowledge — `§1` ≤ 5–15 lines (gates, open decisions, surprises); per-seat continuation entries (latest = truth; other seats read-only). Pointer-first; don't duplicate.
75
65
 
76
66
  ### MISSION_BRIEF.md
77
- - **WHO:** product/design (steering owner).
78
- - **WHEN:** when steering changes.
79
- - **HOW:** the 7-section steering schema (the UI "Steering" tab reads it).
67
+ - **WHO:** product/design (steering owner). **WHEN:** when steering changes. **HOW:** the 7-section steering schema.
80
68
 
81
69
  ### README.md
82
- - **WHO:** the author at creation; refreshed on rescope.
83
- - **WHEN:** at mission/slice creation + when scope/theme changes.
84
- - **HOW:** overview + honest frontmatter (`id`/`stage`/`verified`) + the convention sections up top; the mission README carries this SOP at its bottom.
70
+ - **WHO:** the author at creation; refreshed on rescope. **WHEN:** at creation + when scope/theme changes. **HOW:** overview + honest frontmatter (`id`/`stage`/`verified`); the mission README carries this SOP at its bottom.
85
71
 
86
72
  ## The lifecycle (4 legs)
87
73
 
88
- **SCAFFOLD** (`rig scope` creates the files from templates — every slice kind emits the convention sections + `proof/` + the IMPLEMENTATION-PRD skeleton) → **POPULATE** (agents fill them as work happens, per the rules above) → **PROJECT** (the Living Notes UI reads them into INTENT → PLAN → DELIVERED) → **VERIFY** (`rig scope audit` checks adherence). "Loose freeform write + deterministic verify."
74
+ **SCAFFOLD** (`rig scope` creates the files from templates) → **POPULATE** (agents fill them as work happens) → **PROJECT** (the Living Notes UI reads them into INTENT → PLAN → DELIVERED) → **VERIFY** (`rig scope audit`, advisory). "Loose freeform write + deterministic verify."
89
75
 
90
76
  ## Hot-potato (handoffs)
91
77
 
92
- End every turn by passing the ball — a `rig queue` handoff to the next agent (close the qitem with a `closure_reason`). The **durable ball-pass is the queue close, not a chat message.** Never go idle without a handoff.
78
+ End every turn by passing the ball — a `rig queue handoff` to the next agent. The handoff verb is **transactional**: it closes the source as handed-off and mints the successor owned by `--to`, so the baton cannot be dropped. A handoff terminates only at the orchestrator seat, which holds the context to judge whether a park is legitimate.
79
+
80
+ **A plain `rig queue create` row is informational** — a durable message. It is not a baton and does not carry this obligation. Use `handoff` when you are passing real work; use `create` when you are informing.
81
+
82
+ Never go idle holding a baton.
93
83
 
94
84
  ## Verify (deterministic backstop)
95
85
 
96
- Run `rig scope audit` at slice-close. It flags: committed-without-touching-PROGRESS; slice-marked-done-without-PROOF; active-mission-without-MISSION_NOTES; MISSION_BRIEF off-schema; proof artifacts violating the C1 header; missing IMPLEMENTATION-PRD on a building slice; missing convention sections (`## Intent`, a well-formed `## Proof contract`, the UI-slice mockup ref). Every convention check is **advisory / fail-open** — it records and advises, never blocks a write. **Fix the flag, don't suppress it.**
86
+ Run `rig scope audit` at slice-close. Every convention check is **advisory / fail-open** — it records and advises, never blocks a write. Fix what's real, skip what isn't, keep moving. **A clean audit score is not required to proceed.**
97
87
 
98
88
  ## Reading terminal captures — KNOWN GOTCHA: ghost-text autocomplete is NOT real
99
89
 
100
- When you `rig capture` a pane, **greyed / ghost autocomplete suggestions are NOT real content** — they are autocomplete *previews* (shell autosuggestion, the input-box ghost-text completion), not typed, staged, or committed input. **This is known, expected, and has been faking agents out a lot** reading a ghost suggestion in a peer's input box as "staged text they're about to send," or as a real prompt, and then reasoning/acting on a string that was never actually there.
90
+ When you `rig capture` a pane, **greyed / ghost autocomplete suggestions are NOT real content** — they are autocomplete *previews*, not typed, staged, or committed input. **This has been faking agents out a lot**: reading a ghost suggestion in a peer's input box as "staged text they're about to send," then reasoning on a string that was never there.
101
91
 
102
- **Rule:** ignore ghost/autosuggest text entirely. Only *committed/rendered* pane output is real. If a `❯` input line shows text, treat it as an autocomplete artifact unless you have independent evidence it was actually entered. Do not build decisions (or worry about "colliding with staged text") on ghost text. When it matters, verify at source (git, the queue, the actual event) — never off a capture's ghost line.
92
+ **Rule:** ignore ghost/autosuggest text entirely. Only *committed/rendered* pane output is real. When it matters, verify at source (git, the queue, the actual event) — never off a capture's ghost line.
103
93
 
104
94
  ## Moment-of-truth checklist
105
95
 
106
- - **Starting a slice?** → intent recorded verbatim? **PRD carries a verbatim numbered `## Mini-requirements` + a verbatim `## Proof contract` whose `- [ ]` lines are character-identical to the README's** (parser contract)? **no example restates derivable state** — counts/hashes/timestamps referenced, omitted, or pinned to a stable fixture, never hardcoded (reference-not-restate)? mockups attached (UI slices)? ran `rig scope audit` and fixed any real **format** defect so the parser reads the proof contract (advisory a clean score is NOT required to lock)?
107
- - **Finishing a slice?** → every proof-contract item has curated evidence via `rig proof add --evidences --media` (C1 drops — never only hand-placed files)? PROGRESS updated? MISSION_NOTES `§1` refreshed? proof locked (`--scope delivery`)? Handed off via queue?
96
+ - **Starting a slice?** → do you know what it's for and what done looks like? mockups attached (UI slices)? **Are you on the light path?** (You are, unless the mission owner assigned the overlay.)
97
+ - **Finishing a slice?** → does PROOF.md say what you actually verified, by effect, including what is NOT covered? PROGRESS updated? MISSION_NOTES `§1` refreshed? handed off via `rig queue handoff`?
108
98
  - **Committing?** → PROGRESS updated?
109
99
  - **Compacting?** → filed your state in MISSION_NOTES?
110
- - **Starting on a mission?** → read the mission README (incl. this SOP) + MISSION_NOTES + the conventions SSOT (`docs/reference/sdlc-conventions.md` in the repo, `$OPENRIG_HOME/reference/sdlc-conventions.md` on an installed package)?
100
+ - **Starting on a mission?** → read the mission README (incl. this SOP) + MISSION_NOTES + the conventions SSOT.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: openrig-skills
3
- description: "Use when you're operating OpenRig and don't know which skill or context applies this is the index of what ships with OpenRig, when to reach for each, and how to load it. Start here from a cold boot when nothing else is projected."
3
+ description: "Use when you're operating OpenRig and need the right skill or context for fleet recovery, seat handover, new-seat orientation, a watchdog wake, cross-host reach to an agent on another machine, rig packaging, an OpenRig upgrade, systematic debugging, queue triage, or implementation planning; also use when you don't know what applies or nothing is projected on cold boot."
4
+ allowed-tools: Bash(rig:*)
4
5
  metadata:
5
6
  openrig:
6
7
  stage: shipped
@@ -16,6 +17,27 @@ Skills are **progressive disclosure**: a skill's *name + description* sit in you
16
17
 
17
18
  Every row below names **how to reach the skill** — already-hot, or an exact load path. No row is a dead end.
18
19
 
20
+ ## Loading an entry on demand — `rig context get`
21
+
22
+ Don't guess a file path or a name. Go **ask → ref → load** in three steps:
23
+
24
+ 1. **Discover** — run `rig context list` for every shipped entry's **ref** and name. The *when* for
25
+ each is the index below (or `rig context list --json`, which carries each entry's purpose) — match
26
+ your moment there.
27
+ 2. **Select** — match your moment to a row's *when* and take its **ref**. Refs are canonical full paths
28
+ that mirror the library layout — `skills/<namespace>/<name>` (e.g. `skills/core/rig-lifecycle`,
29
+ `skills/process/systematic-debugging`). A unique bare name (e.g. `watchdog`) also resolves; any
30
+ slash-bearing ref is an exact lookup and fails loud if it does not exist.
31
+ 3. **Load** — `rig context get skills/<namespace>/<name>`:
32
+
33
+ ```
34
+ rig context get skills/core/rig-lifecycle
35
+ ```
36
+
37
+ The content is served **from the installed CLI**, so what you load always matches your running version —
38
+ no path-guessing, no frozen-fork drift. (The daemon assembles the same bundle `rig context preview`
39
+ shows an operator — `get` is the agent-facing pull.)
40
+
19
41
  ## The index
20
42
 
21
43
  ### Always loaded — the universal spine (open its body when its moment hits)
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: openrig-user
3
- description: Use when operating OpenRig with the `rig` CLI and you need the shipped command surface for identity, inventory, communication, lifecycle, specs, recovery, or agent-facing JSON output.
3
+ description: >-
4
+ Use when a specific `rig` command, subcommand, or flag is already known and you need its exact
5
+ syntax, JSON shape, defaults, or error meaning. NOT for natural capability discovery, open-ended
6
+ how-do-I questions, or choosing which OpenRig move applies.
4
7
  ---
5
8
 
6
9
  # OpenRig User
@@ -919,7 +922,9 @@ Manage and compose context (any text/markdown) into reusable **packs**. Every pi
919
922
  ```bash
920
923
  rig context list # what's in the library
921
924
  rig context show <ref> # read a piece or pack
922
- rig context add <ref> --from <file> # put a piece in the store
925
+ rig context add <source-dir> # install an existing pack directory into the store
926
+ rig context preview <ref> # assemble + show a pack WITHOUT delivering it
927
+ rig context sync # re-walk discovery roots, refresh the library index
923
928
  rig context rm <ref>
924
929
  rig context compose --out packs/<ref> --from <fileA> <fileB> ... # ordered pieces -> a durable pack
925
930
  ```
@@ -0,0 +1,64 @@
1
+ # Changelog — orienting-to-an-inherited-seat
2
+
3
+ **`SKILL.md` carries the practice; this file carries how it got there.** Rationale, superseded
4
+ wording, and the incidents that produced a rule live here so the instruction surface stays
5
+ instructional.
6
+
7
+ ---
8
+
9
+ ## 2026-08-13 — "the channel does not expire" (Rule 3)
10
+
11
+ ### The incident
12
+
13
+ A successor (orch-advisor tenure 4, v-openrig-build) concluded mid-conversation that its reach-back
14
+ window had closed at cutover, and reasoned from that for several turns before being challenged.
15
+
16
+ It was wrong. `rig ask --wake` ships in CLI 0.5.1, the predecessor's session record was intact and
17
+ resumable, and the seat's own lineage carried a wake rule explicitly marked active from the
18
+ retirement row onward. **One `rig ask --help` would have settled it.**
19
+
20
+ ### What produced the error
21
+
22
+ Two artifacts asserted a bound that does not exist, and the successor inherited one side of a
23
+ contradiction without checking:
24
+
25
+ - the handover packet: *"I am a transcript after retirement, not a conversation. Ask while the
26
+ window is open."*
27
+ - the operating-model README: *"Until this seat is retired, ask it directly... After that it is a
28
+ transcript: greppable, not conversational."*
29
+
30
+ Both were written by an author who knew better — the same tenure authored the correct wake rule in
31
+ the lineage. The charitable reading of "greppable, not conversational" is a **posture** claim (treat
32
+ a woken tenure as testimony), which is right. It is phrased as a **capability** claim, and it was
33
+ read as one.
34
+
35
+ ### Why the fix is worded positively
36
+
37
+ The generalisable form: **prose that talks a capable reader out of a capability it has.** This is
38
+ worse than a missing trigger. `PREMISE-capable-and-underinformed.md` already records that
39
+ affordances without triggers go unused (*"you may consult your predecessor"* → zero consultations
40
+ across a lineage). This is one turn worse — a **counter-trigger**. The successor did not fail to
41
+ reach for the channel; it concluded the channel was absent.
42
+
43
+ So Rule 3 now states the true bound positively rather than warning about the bad wording. Rule 2
44
+ (*the packet is testimony, checked not believed*) already covers refusing a stale packet claim, and
45
+ naming the specific bad sentence in `SKILL.md` would install the doubt it is trying to prevent.
46
+
47
+ ### Also added
48
+
49
+ - **The real bound**, which had never been written down anywhere: the predecessor's own context
50
+ wall, hit *while answering* — yielding a truncated answer, an unclear error, or nothing. That is
51
+ one exhausted tenure, not a closed channel.
52
+ - **Ask repeatedly, across the first working day.** Observed in the same handover: the successor's
53
+ only high-value question arrived after hours of work with the artifacts, when a reconciliation
54
+ failed. Questions formed at orientation are shallow.
55
+ - **The live-resume tier**, which existed and was undocumented: resume a tenure into a named tmux
56
+ pane and message it with `rig send` for multi-turn work.
57
+ - **`rig ask --wake` reliability caveat.** The verb is a thin wrapper over the harness resume and is
58
+ not yet well-exercised (mission owner, 2026-08-13). A failing wrapper must not be read as a closed
59
+ channel — fall back to `claude -p --resume`.
60
+
61
+ ### Standing
62
+
63
+ Not yet re-tested. The next handover is the test: if a successor uses the channel more than once and
64
+ without prompting, the fix worked. **Zero unprompted consultations remains the baseline to beat.**