@openrig/cli 0.5.5 → 0.5.6

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 (727) hide show
  1. package/daemon/assets/continuity/apprentice-cutover.md +19 -0
  2. package/daemon/assets/continuity/apprentice-prepare.md +17 -0
  3. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +81 -4
  4. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +3 -3
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  7. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -9
  8. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +82 -118
  9. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +24 -25
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +5 -12
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +36 -117
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -6
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +1 -12
  14. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +1 -1
  15. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +15 -0
  16. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +4 -16
  17. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +50 -7
  18. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +29 -9
  19. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +3 -0
  20. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
  21. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
  22. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
  23. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +9 -4
  24. package/daemon/assets/vm-preview-fixtures/README.md +16 -38
  25. package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +4 -5
  26. package/daemon/context-packs/onboarding-width/manifest.yaml +4 -1
  27. package/daemon/context-packs/onboarding-width/public-reference-material.md +1 -1
  28. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +2 -1
  29. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  30. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +2 -1
  31. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  32. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +2 -1
  33. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +2 -1
  34. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +98 -0
  35. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +10 -0
  36. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +2 -1
  37. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +2 -1
  38. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +2 -1
  39. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +118 -0
  40. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +10 -0
  41. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +19 -75
  42. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +2 -1
  43. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +2 -1
  44. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +2 -1
  45. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +2 -1
  46. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +2 -1
  47. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +2 -1
  48. package/daemon/context-packs/skills/core/watchdog/SKILL.md +4 -10
  49. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +2 -1
  50. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +2 -1
  51. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +2 -1
  52. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +2 -1
  53. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +2 -1
  54. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +2 -1
  55. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +15 -21
  56. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +4 -3
  57. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +2 -1
  58. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +2 -1
  59. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +2 -1
  60. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +2 -1
  61. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +2 -1
  62. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +2 -1
  63. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +2 -1
  64. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +2 -1
  65. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +2 -1
  66. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +2 -1
  67. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +2 -1
  68. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +0 -0
  69. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +2 -1
  70. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +2 -1
  71. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +2 -1
  72. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +2 -1
  73. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +2 -1
  74. package/daemon/context-packs/world-example/manifest.yaml +15 -2
  75. package/daemon/context-packs/world-example/your-world.md +19 -2
  76. package/daemon/context-packs/world-public/boundaries.md +33 -0
  77. package/daemon/context-packs/world-public/build-your-world.md +84 -0
  78. package/daemon/context-packs/world-public/claims.yaml +205 -0
  79. package/daemon/context-packs/world-public/manifest.yaml +59 -0
  80. package/daemon/context-packs/world-public/start-here.md +51 -0
  81. package/daemon/context-packs/world-public/verify-world.sh +522 -0
  82. package/daemon/dist/build-info.js +3 -3
  83. package/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  84. package/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  85. package/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  86. package/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  87. package/daemon/dist/db/all-migrations.d.ts +1 -1
  88. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  89. package/daemon/dist/db/all-migrations.js +8 -2
  90. package/daemon/dist/db/all-migrations.js.map +1 -1
  91. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  92. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  93. package/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  94. package/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  95. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  96. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  97. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  98. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  99. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  100. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  101. package/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  102. package/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  103. package/daemon/dist/domain/active-occupant.d.ts +44 -0
  104. package/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  105. package/daemon/dist/domain/active-occupant.js +72 -0
  106. package/daemon/dist/domain/active-occupant.js.map +1 -0
  107. package/daemon/dist/domain/agent-manifest.d.ts +6 -0
  108. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  109. package/daemon/dist/domain/agent-manifest.js +77 -15
  110. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  111. package/daemon/dist/domain/agent-resolver.d.ts +11 -0
  112. package/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  113. package/daemon/dist/domain/agent-resolver.js +55 -0
  114. package/daemon/dist/domain/agent-resolver.js.map +1 -1
  115. package/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  116. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  117. package/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  118. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  119. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  120. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  121. package/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  122. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  123. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  124. package/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  125. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  126. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  127. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  128. package/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  129. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  130. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  131. package/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
  132. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  133. package/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  134. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  135. package/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  136. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  137. package/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  138. package/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  139. package/daemon/dist/domain/continuity-stack-packets.js +99 -0
  140. package/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  141. package/daemon/dist/domain/execution-view.d.ts +39 -0
  142. package/daemon/dist/domain/execution-view.d.ts.map +1 -0
  143. package/daemon/dist/domain/execution-view.js +707 -0
  144. package/daemon/dist/domain/execution-view.js.map +1 -0
  145. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  146. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  147. package/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  148. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  149. package/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  150. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  151. package/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  152. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  153. package/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  154. package/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  155. package/daemon/dist/domain/gateway/dispatcher.js +9 -2
  156. package/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  157. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
  158. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  159. package/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
  160. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  161. package/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
  162. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  163. package/daemon/dist/domain/gateway/human-registry.js +32 -1
  164. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  165. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  166. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  167. package/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  168. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  169. package/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
  170. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  171. package/daemon/dist/domain/gateway/slack/config.js +20 -4
  172. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  173. package/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
  174. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  175. package/daemon/dist/domain/gateway/slack/inbound.js +60 -9
  176. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  177. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  178. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  179. package/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
  180. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  181. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
  182. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  183. package/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
  184. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  185. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
  186. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  187. package/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
  188. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  189. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
  190. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  191. package/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
  192. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  193. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
  194. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  195. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
  196. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  197. package/daemon/dist/domain/graph-projection.d.ts +6 -0
  198. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  199. package/daemon/dist/domain/graph-projection.js +6 -0
  200. package/daemon/dist/domain/graph-projection.js.map +1 -1
  201. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  202. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  203. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  204. package/daemon/dist/domain/node-inventory.d.ts +41 -3
  205. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  206. package/daemon/dist/domain/node-inventory.js +45 -48
  207. package/daemon/dist/domain/node-inventory.js.map +1 -1
  208. package/daemon/dist/domain/parked-query.d.ts +1 -0
  209. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  210. package/daemon/dist/domain/parked-query.js +1 -0
  211. package/daemon/dist/domain/parked-query.js.map +1 -1
  212. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  213. package/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  214. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  215. package/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  216. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  217. package/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  218. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  219. package/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  220. package/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  221. package/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  222. package/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  223. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  224. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  225. package/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  226. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  227. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  228. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  229. package/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  230. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  231. package/daemon/dist/domain/policies/types.d.ts +8 -0
  232. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  233. package/daemon/dist/domain/profile-resolver.d.ts +4 -0
  234. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  235. package/daemon/dist/domain/profile-resolver.js +58 -0
  236. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  237. package/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  238. package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  239. package/daemon/dist/domain/provider/provider-signals.js +64 -0
  240. package/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  241. package/daemon/dist/domain/ps-projection.d.ts +7 -5
  242. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  243. package/daemon/dist/domain/ps-projection.js +19 -32
  244. package/daemon/dist/domain/ps-projection.js.map +1 -1
  245. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  246. package/daemon/dist/domain/queue-pickup.js +5 -0
  247. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  248. package/daemon/dist/domain/queue-repository.d.ts +55 -18
  249. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  250. package/daemon/dist/domain/queue-repository.js +387 -83
  251. package/daemon/dist/domain/queue-repository.js.map +1 -1
  252. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  253. package/daemon/dist/domain/queue-retention.js +8 -2
  254. package/daemon/dist/domain/queue-retention.js.map +1 -1
  255. package/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
  256. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  257. package/daemon/dist/domain/queue-stuck-sweep.js +161 -24
  258. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  259. package/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  260. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  261. package/daemon/dist/domain/queue-transition-log.js +49 -11
  262. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  263. package/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
  264. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  265. package/daemon/dist/domain/queue-wake-ladder.js +187 -15
  266. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  267. package/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
  268. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  269. package/daemon/dist/domain/queue-wake-repository.js +52 -3
  270. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  271. package/daemon/dist/domain/restore-check-service.js +1 -1
  272. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  273. package/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  274. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  275. package/daemon/dist/domain/restore-orchestrator.js +88 -15
  276. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  277. package/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  278. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  279. package/daemon/dist/domain/restore-plan-preview.js +37 -19
  280. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  281. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  282. package/daemon/dist/domain/rig-expansion-service.js +10 -9
  283. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  284. package/daemon/dist/domain/rig-repository.d.ts +4 -0
  285. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  286. package/daemon/dist/domain/rig-repository.js +21 -3
  287. package/daemon/dist/domain/rig-repository.js.map +1 -1
  288. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  289. package/daemon/dist/domain/rigspec-codec.js +74 -4
  290. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  291. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  292. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  293. package/daemon/dist/domain/rigspec-instantiator.js +14 -0
  294. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  295. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  296. package/daemon/dist/domain/rigspec-schema.js +32 -4
  297. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  298. package/daemon/dist/domain/scope/node-file.d.ts +8 -0
  299. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  300. package/daemon/dist/domain/scope/node-file.js +18 -0
  301. package/daemon/dist/domain/scope/node-file.js.map +1 -1
  302. package/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
  303. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  304. package/daemon/dist/domain/scope/scope-audit.js +3 -3
  305. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  306. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  307. package/daemon/dist/domain/snapshot-capture.js +6 -0
  308. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  309. package/daemon/dist/domain/types.d.ts +26 -4
  310. package/daemon/dist/domain/types.d.ts.map +1 -1
  311. package/daemon/dist/domain/types.js.map +1 -1
  312. package/daemon/dist/domain/view-projector.d.ts +5 -1
  313. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  314. package/daemon/dist/domain/view-projector.js +24 -0
  315. package/daemon/dist/domain/view-projector.js.map +1 -1
  316. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  317. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  318. package/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  319. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  320. package/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
  321. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  322. package/daemon/dist/domain/watchdog-policy-engine.js +112 -6
  323. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  324. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  325. package/daemon/dist/domain/watchdog-scheduler.js +3 -2
  326. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  327. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  328. package/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
  329. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  330. package/daemon/dist/index.d.ts +9 -0
  331. package/daemon/dist/index.d.ts.map +1 -1
  332. package/daemon/dist/index.js +24 -1
  333. package/daemon/dist/index.js.map +1 -1
  334. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  335. package/daemon/dist/routes/agent-images.js +9 -0
  336. package/daemon/dist/routes/agent-images.js.map +1 -1
  337. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  338. package/daemon/dist/routes/bundles.js +61 -1
  339. package/daemon/dist/routes/bundles.js.map +1 -1
  340. package/daemon/dist/routes/gateway.js +1 -1
  341. package/daemon/dist/routes/gateway.js.map +1 -1
  342. package/daemon/dist/routes/queue.d.ts.map +1 -1
  343. package/daemon/dist/routes/queue.js +22 -11
  344. package/daemon/dist/routes/queue.js.map +1 -1
  345. package/daemon/dist/routes/rigs.js +38 -2
  346. package/daemon/dist/routes/rigs.js.map +1 -1
  347. package/daemon/dist/routes/scope-audit.js +6 -6
  348. package/daemon/dist/routes/scope-audit.js.map +1 -1
  349. package/daemon/dist/routes/views.d.ts.map +1 -1
  350. package/daemon/dist/routes/views.js +4 -1
  351. package/daemon/dist/routes/views.js.map +1 -1
  352. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  353. package/daemon/dist/routes/watchdog.js +40 -3
  354. package/daemon/dist/routes/watchdog.js.map +1 -1
  355. package/daemon/dist/server.d.ts.map +1 -1
  356. package/daemon/dist/server.js +5 -0
  357. package/daemon/dist/server.js.map +1 -1
  358. package/daemon/dist/startup.d.ts.map +1 -1
  359. package/daemon/dist/startup.js +194 -5
  360. package/daemon/dist/startup.js.map +1 -1
  361. package/daemon/docs/reference/agent-spec.md +4 -4
  362. package/daemon/docs/reference/agent-state-taxonomy.md +8 -13
  363. package/daemon/docs/reference/chain-file-convention.md +2 -2
  364. package/daemon/docs/reference/knowledge-maturity.md +123 -0
  365. package/daemon/docs/reference/lore-routing.md +173 -0
  366. package/daemon/docs/reference/mission-install.md +194 -0
  367. package/daemon/docs/reference/planning-dial.md +55 -0
  368. package/daemon/docs/reference/product-management-pass.md +139 -0
  369. package/daemon/docs/reference/release-boundary.md +88 -0
  370. package/daemon/docs/reference/sdlc-conventions.md +42 -69
  371. package/daemon/docs/reference/wave-sdlc.md +113 -0
  372. package/daemon/policies/builtin/standard.policy.md +3 -3
  373. package/daemon/policies/builtin/yolo.policy.md +7 -2
  374. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  375. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  376. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +98 -0
  377. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +118 -0
  378. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +19 -75
  379. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -10
  380. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +15 -21
  381. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  382. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +2 -2
  383. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +3 -3
  384. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
  385. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +1 -1
  386. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +1 -1
  387. package/daemon/substance-surfaces.json +8 -0
  388. package/dist/build-info.js +3 -3
  389. package/dist/commands/broadcast.d.ts.map +1 -1
  390. package/dist/commands/broadcast.js +6 -1
  391. package/dist/commands/broadcast.js.map +1 -1
  392. package/dist/commands/capture.js +1 -1
  393. package/dist/commands/context.d.ts.map +1 -1
  394. package/dist/commands/context.js +12 -1
  395. package/dist/commands/context.js.map +1 -1
  396. package/dist/commands/expand.d.ts.map +1 -1
  397. package/dist/commands/expand.js +9 -13
  398. package/dist/commands/expand.js.map +1 -1
  399. package/dist/commands/ps.d.ts +4 -0
  400. package/dist/commands/ps.d.ts.map +1 -1
  401. package/dist/commands/ps.js +15 -7
  402. package/dist/commands/ps.js.map +1 -1
  403. package/dist/commands/scope.d.ts.map +1 -1
  404. package/dist/commands/scope.js +40 -11
  405. package/dist/commands/scope.js.map +1 -1
  406. package/dist/commands/send.d.ts +2 -0
  407. package/dist/commands/send.d.ts.map +1 -1
  408. package/dist/commands/send.js +24 -2
  409. package/dist/commands/send.js.map +1 -1
  410. package/dist/commands/slack.d.ts.map +1 -1
  411. package/dist/commands/slack.js +4 -2
  412. package/dist/commands/slack.js.map +1 -1
  413. package/dist/commands/view.d.ts.map +1 -1
  414. package/dist/commands/view.js +3 -0
  415. package/dist/commands/view.js.map +1 -1
  416. package/dist/commands/watchdog.d.ts.map +1 -1
  417. package/dist/commands/watchdog.js +64 -9
  418. package/dist/commands/watchdog.js.map +1 -1
  419. package/dist/cross-host-target.js +1 -1
  420. package/dist/cross-host-target.js.map +1 -1
  421. package/dist/host-registry.d.ts +2 -2
  422. package/dist/host-registry.js +2 -2
  423. package/dist/lib/scope/scope-audit.d.ts +4 -1
  424. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  425. package/dist/lib/scope/scope-audit.js +3 -3
  426. package/dist/lib/scope/scope-audit.js.map +1 -1
  427. package/dist/lib/scope/scope-fs.d.ts +8 -0
  428. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  429. package/dist/lib/scope/scope-fs.js +18 -0
  430. package/dist/lib/scope/scope-fs.js.map +1 -1
  431. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  432. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  433. package/dist/lib/scope-templates/bug-fix.md +1 -1
  434. package/dist/lib/scope-templates/capability-delta.md +1 -0
  435. package/dist/lib/scope-templates/placeholder.md +1 -1
  436. package/dist/lib/scope-templates/release-feature.md +1 -1
  437. package/dist/lib/scope-templates/research.md +1 -1
  438. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  439. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  440. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  441. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  442. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  443. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  444. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  445. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +8 -2
  446. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  447. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  448. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  449. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  450. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  451. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  452. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  453. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  454. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  455. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  456. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  457. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  458. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  459. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +44 -0
  460. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  461. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +72 -0
  462. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -0
  463. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +6 -0
  464. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +77 -15
  466. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +1 -1
  467. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +11 -0
  468. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  469. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +55 -0
  470. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  472. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  474. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  475. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  476. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  477. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  478. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  479. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  480. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  481. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  482. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  483. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  484. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  485. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  486. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  487. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
  488. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  489. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  490. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  491. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  492. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  493. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  494. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  495. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +99 -0
  496. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  497. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +39 -0
  498. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -0
  499. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +707 -0
  500. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -0
  501. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  502. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  503. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  504. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  505. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  506. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  507. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  508. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  509. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  510. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  511. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +9 -2
  512. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  513. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +6 -2
  514. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  515. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +5 -3
  516. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  517. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +9 -1
  518. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  519. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +32 -1
  520. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  521. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  522. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  523. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  524. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  525. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +3 -2
  526. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  527. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +20 -4
  528. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  529. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +34 -6
  530. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  531. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +60 -9
  532. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  533. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  534. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  535. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +12 -5
  536. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  537. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +10 -5
  538. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  539. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +46 -19
  540. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  541. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +29 -6
  542. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  543. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +41 -3
  544. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  545. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +9 -3
  546. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  547. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +132 -12
  548. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  549. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +10 -0
  550. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +286 -11
  552. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +6 -0
  554. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  555. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +6 -0
  556. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +1 -1
  557. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  559. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +41 -3
  561. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  562. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +45 -48
  563. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  564. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +1 -0
  565. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -1
  566. package/node_modules/@openrig/daemon/dist/domain/parked-query.js +1 -0
  567. package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -1
  568. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  569. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  570. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  571. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  572. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  573. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  574. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  575. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  576. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  577. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  578. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  579. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  580. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  581. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  582. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  583. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  584. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  585. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  586. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  587. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +8 -0
  588. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
  589. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +4 -0
  590. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  591. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +58 -0
  592. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
  593. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  594. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  595. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +64 -0
  596. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  597. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +7 -5
  598. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  599. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +19 -32
  600. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +1 -1
  601. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  602. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +5 -0
  603. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -1
  604. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +55 -18
  605. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  606. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +387 -83
  607. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  608. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  609. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +8 -2
  610. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
  611. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +24 -1
  612. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  613. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +161 -24
  614. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  615. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  616. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  617. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +49 -11
  618. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  619. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +20 -2
  620. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  621. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +187 -15
  622. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  623. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +16 -0
  624. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  625. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +52 -3
  626. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  627. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +1 -1
  628. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +1 -1
  629. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  630. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  631. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +88 -15
  632. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  633. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  634. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  635. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +37 -19
  636. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  638. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +10 -9
  639. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  640. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
  641. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  642. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +21 -3
  643. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  644. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +74 -4
  646. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +1 -1
  647. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  648. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  649. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +14 -0
  650. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  651. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +32 -4
  653. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +8 -0
  655. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  656. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +18 -0
  657. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -1
  658. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +5 -2
  659. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  660. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +3 -3
  661. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  662. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  663. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +6 -0
  664. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  665. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +26 -4
  666. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  667. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +5 -1
  669. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/view-projector.js +24 -0
  671. package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  673. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  675. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +40 -1
  677. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  678. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +112 -6
  679. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  681. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -2
  682. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  683. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +2 -4
  685. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  686. package/node_modules/@openrig/daemon/dist/index.d.ts +9 -0
  687. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/index.js +24 -1
  689. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +1 -1
  691. package/node_modules/@openrig/daemon/dist/routes/agent-images.js +9 -0
  692. package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +1 -1
  693. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/routes/bundles.js +61 -1
  695. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/routes/gateway.js +1 -1
  697. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  699. package/node_modules/@openrig/daemon/dist/routes/queue.js +22 -11
  700. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  701. package/node_modules/@openrig/daemon/dist/routes/rigs.js +38 -2
  702. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  703. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +6 -6
  704. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  705. package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/routes/views.js +4 -1
  707. package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
  709. package/node_modules/@openrig/daemon/dist/routes/watchdog.js +40 -3
  710. package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
  711. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/server.js +5 -0
  713. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  715. package/node_modules/@openrig/daemon/dist/startup.js +194 -5
  716. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  717. package/node_modules/@openrig/daemon/package.json +5 -1
  718. package/package.json +1 -1
  719. package/tui/dist/demo-data.js +2 -2
  720. package/tui/dist/demo-data.js.map +1 -1
  721. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +0 -92
  722. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +0 -34
  723. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +0 -23
  724. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +0 -234
  725. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +0 -264
  726. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +0 -9
  727. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +0 -264
@@ -0,0 +1,19 @@
1
+ # Apprentice handover — cutover fire stack
2
+
3
+ Purpose: turn the second context threshold into an **owned baton** for a named mechanic. The
4
+ notice may prepare and prove the cutover, but it must **never auto-rebind** the seat. The word of
5
+ the named owner remains the gate.
6
+
7
+ 1. Confirm the prepare rung fired in an earlier evaluation pass and the successor is still the
8
+ exact accepted history and model.
9
+ 2. Reconcile every deposit and enumerate standing-duty custody. A duty named in the deposit set
10
+ but absent from the custody table stops the cutover.
11
+ 3. Record gate receipts G0–G3—gate, evidence, and worder—or the policy's declared simpler model.
12
+ 4. Create or identify one accountable mechanic baton. Record one-active-walker ownership and
13
+ staged/submitted/consumed delivery boundaries.
14
+ 5. The mechanic follows `seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md`:
15
+ fence, derive, quiesce, realize the exact token, commit provenance, self-check READY, then
16
+ unfreeze only after the effect receipt.
17
+ 6. Preserve the predecessor's verbatim reach-back handle and pre-formed questions. Report
18
+ current seat identity, current generation, canonical tmux pane, duty acceptance, and usable
19
+ post-restore width in the final receipt.
@@ -0,0 +1,17 @@
1
+ # Apprentice handover — prepare fire stack
2
+
3
+ Purpose: turn the first context threshold into a prepared successor without moving seat
4
+ authority. This is orchestration over existing verbs, never a second scheduler or workflow.
5
+
6
+ 1. Create a **fresh**, staged, unbound successor and persist its exact provider history.
7
+ 2. Run the **model-divergence gate** before installing anything. A fallback model or reused
8
+ history stops the stack because every later receipt would describe the wrong occupant.
9
+ 3. Install the **world** and have the successor state the product outcome in its own words.
10
+ 4. Install the **mission**, including the whole mission and its addressed primary sources.
11
+ 5. Install the **position** from the seat chain and issue an explicit authority-free grant.
12
+ 6. Derive the successor's layer-5 delta, verify it independently, then **introduce** incumbent
13
+ and apprentice to open a conversation grounded in real work.
14
+
15
+ The successor packet carries `orienting-to-an-inherited-seat`; the incumbent notice carries
16
+ `retiring-and-inheriting-a-seat`. Record delivery as staged, submitted, and consumed. No step in
17
+ this stack binds the successor into the live seat.
@@ -9,6 +9,7 @@
9
9
 
10
10
  const fs = require("node:fs");
11
11
  const path = require("node:path");
12
+ const crypto = require("node:crypto");
12
13
  const { spawnSync } = require("node:child_process");
13
14
 
14
15
  const DEFAULT_THRESHOLD = 2_600_000;
@@ -133,9 +134,65 @@ function renderTrace() {
133
134
  try { size = fs.statSync(transcriptPath).size; } catch {}
134
135
 
135
136
  const stateDir = path.join(home, "refocus");
136
- const stateFile = path.join(stateDir, `${seat.replace(/[^A-Za-z0-9@._-]/g, "_")}.json`);
137
- let state = { lastBytes: 0 };
138
- try { state = JSON.parse(fs.readFileSync(stateFile, "utf8")) || state; } catch {}
137
+
138
+ // OPR.0.5.6.25 — state keys to the OCCUPANT, not the seat. A seat-keyed file made
139
+ // a fresh occupant inherit its predecessor's lastBytes (permanently zero growth on
140
+ // exactly the seats that swap) and its pending delivery. Identity derives from the
141
+ // hook family's own fields; the guarded expression never evaluates basename on an
142
+ // absent value. The legacy `${seat}.json` is NEVER read, imported, or rewritten —
143
+ // it stays on disk as diagnosis/migration material only.
144
+ const sanitize = (raw) => String(raw).replace(/[^A-Za-z0-9@._-]/g, "_");
145
+ const seatKey = sanitize(seat);
146
+ const firstString = (...vals) => {
147
+ for (const v of vals) if (typeof v === "string" && v.trim()) return v.trim();
148
+ return null;
149
+ };
150
+ const transcriptIdentity = input.transcript_path
151
+ ? path.basename(input.transcript_path, ".jsonl")
152
+ : input.transcriptPath
153
+ ? path.basename(input.transcriptPath, ".jsonl")
154
+ : null;
155
+ const identity = firstString(input.session_id, input.sessionId, transcriptIdentity);
156
+
157
+ // Bounded, deterministic, collision-stable key: lossy sanitization or truncation
158
+ // appends a stable short hash of the full pre-sanitization identity, so distinct
159
+ // identities stay distinct and every path stays inside the state directory.
160
+ const KEY_MAX = 64;
161
+ const keyFor = (raw) => {
162
+ const bounded = sanitize(raw).slice(0, KEY_MAX);
163
+ if (bounded === String(raw)) return bounded;
164
+ const suffix = crypto.createHash("sha256").update(String(raw)).digest("hex").slice(0, 8);
165
+ return `${bounded}__${suffix}`;
166
+ };
167
+
168
+ // No-identity diagnostic sentinel: an ACTIVE-EPISODE marker only — never a
169
+ // baseline, growth claim, pending, or fire. "#" is outside the key character
170
+ // class, so no derived identity path can ever collide with it. First missing
171
+ // event records and surfaces once; repeats stay silent; a valid-identity event
172
+ // clears the marker so a later distinct episode surfaces once again.
173
+ const sentinelFile = path.join(stateDir, `${seatKey}#no-identity-sentinel.json`);
174
+ if (identity === null) {
175
+ let sentinel = null;
176
+ try { sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8")); } catch {}
177
+ if (!sentinel || sentinel.activeEpisode !== true) {
178
+ try {
179
+ fs.mkdirSync(stateDir, { recursive: true });
180
+ fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: true, recordedAt: new Date().toISOString() }));
181
+ } catch {}
182
+ process.stderr.write(`refocus: no session identity and no transcript path for ${seat} — measurement unavailable this episode\n`);
183
+ }
184
+ process.exit(0);
185
+ }
186
+ try {
187
+ const sentinel = JSON.parse(fs.readFileSync(sentinelFile, "utf8"));
188
+ if (sentinel && sentinel.activeEpisode === true) {
189
+ fs.writeFileSync(sentinelFile, JSON.stringify({ activeEpisode: false, clearedAt: new Date().toISOString() }));
190
+ }
191
+ } catch {}
192
+
193
+ const stateFile = path.join(stateDir, `${seatKey}__${keyFor(identity)}.json`);
194
+ let state = null;
195
+ try { state = JSON.parse(fs.readFileSync(stateFile, "utf8")) || null; } catch {}
139
196
  const persist = () => {
140
197
  try {
141
198
  fs.mkdirSync(stateDir, { recursive: true });
@@ -143,6 +200,26 @@ function renderTrace() {
143
200
  } catch {}
144
201
  };
145
202
 
203
+ if (state === null) {
204
+ // First observation for this occupant: the baseline is its OWN current size —
205
+ // growth accumulates from here; nothing is inherited. A zero-size read means
206
+ // the transcript is absent/unreadable, which is instrument absence, not a
207
+ // baseline: record zero only when that is what was genuinely measured.
208
+ state = { lastBytes: size, baselineAt: new Date().toISOString() };
209
+ persist();
210
+ } else if (size > 0 && size < Number(state.lastBytes || 0)) {
211
+ // Shrink clears pending and resets the baseline BEFORE due computation. The
212
+ // reset itself emits no refocus, and a stale pending can never ride through a
213
+ // reset into a delivery. Advisory once per reset episode: the reset moment is
214
+ // the dedupe (afterwards lastBytes === size), and the marker records in state.
215
+ delete state.pendingOn;
216
+ delete state.pendingAt;
217
+ state.lastReset = { at: new Date().toISOString(), fromBytes: Number(state.lastBytes || 0), toBytes: size };
218
+ state.lastBytes = size;
219
+ persist();
220
+ process.stderr.write(`refocus: transcript shrank for ${seat} — baseline reset, pending cleared\n`);
221
+ }
222
+
146
223
  const lastBytes = Number(state.lastBytes || 0);
147
224
  const grown = size > lastBytes ? size - lastBytes : 0;
148
225
  const onDemand = enabled(process.env.OPENRIG_REFOCUS_NOW, false);
@@ -212,7 +289,7 @@ function renderTrace() {
212
289
  },
213
290
  });
214
291
  process.stdout.write(output, () => {
215
- state.lastBytes = size;
292
+ if (size > 0) state.lastBytes = size;
216
293
  state.firedAt = new Date().toISOString();
217
294
  state.firedOn = event;
218
295
  delete state.pendingOn;
@@ -3,12 +3,12 @@ name: applying-a-permission-policy
3
3
  description: "Use when a permission policy is attached to a rig/seat (rig.yaml permission_policy:), or a user asks you to apply one, and you must translate that harness-neutral policy into the target harness's LIVE permission config — Claude settings.json / Codex config.toml / Pi run flags. Agent-driven and interactive: you read the policy, ground yourself in YOUR harness version, show the diff, and ask before writing. NOT for defining policies (that's the policy spec) and NOT a set-and-forget updater."
4
4
  metadata:
5
5
  openrig:
6
- stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2, 627abbb6) + built-in SPEC FILES landed → skill translates FROM the spec (POINT-not-COPY). The two established criteria met 2026-08-04. Reviewed at push.
6
+ stage: established # config cells VM-verified + cold-transfer PASSING (rerun #2) + built-in SPEC FILES landed → skill translates FROM the spec (POINT-not-COPY). The two established criteria met 2026-08-04. Reviewed at push.
7
7
  tested_against: # VERSION STAMP — the whole point; re-verify at every harness bump
8
8
  claude_code: "2.1.220 — VM-CONFIRMED 2026-08-03 (all cells)"
9
9
  codex: "0.120.0 — VM-CONFIRMED 2026-08-03 (sandbox_mode/approval_policy; on-failure deprecated-but-accepted)"
10
10
  pi: "0.83.0 — VM-CONFIRMED 2026-08-03: --approve/--no-approve govern PROJECT-RESOURCE TRUST, NOT tool permissions; Pi has NO permission surface (see Pi leg)"
11
- verification_status: "Live-verified 2026-08-03/04 (dev-qa @ v-openrig-build). Claude 2.1.220 + Codex 0.120.0 config cells CONFIRMED live. Pi 0.83.0 divergence folded (flags = project-resource trust, not a permission gate). Cold-transfer rerun #1 blocked on the force_push/push_to_remote prefix collision → added the PREFIX-COLLISION rule. Cold-transfer rerun #2 (qitem 001c95fd, verdict SHA 627abbb6bf08ad2f350e2101f11438975def7b193b8da8bbcb747647239afc358): TRANSFERS — all 5 gate checks pass (collision resolved deterministically without asking; single ordinary write confirmation; defaultMode floor written; Codex workspace-write/on-request; Pi compute-nothing). Blocking collision/floor defect CLOSED → gate cleared, 4.8-shippable (provisional-with-passing-cold-transfer). Non-blocking seam closed: the built-in SPEC FILES landed (arch-accepted, source:builtin) → skill translates FROM the spec, interim in-skill pinned summary retired (POINT-not-COPY). stage:ESTABLISHED 2026-08-04 — both criteria met."
11
+ verification_status: "Live-verified 2026-08-03/04. Claude 2.1.220 + Codex 0.120.0 config cells CONFIRMED live. Pi 0.83.0 divergence folded (flags = project-resource trust, not a permission gate). Cold-transfer rerun #1 blocked on the force_push/push_to_remote prefix collision → added the PREFIX-COLLISION rule. Cold-transfer rerun #2: TRANSFERS — all 5 gate checks pass (collision resolved deterministically without asking; single ordinary write confirmation; defaultMode floor written; Codex workspace-write/on-request; Pi compute-nothing). Blocking collision/floor defect CLOSED → gate cleared, 4.8-shippable (provisional-with-passing-cold-transfer). Non-blocking seam closed: the built-in SPEC FILES landed (arch-accepted, source:builtin) → skill translates FROM the spec, interim in-skill pinned summary retired (POINT-not-COPY). stage:ESTABLISHED 2026-08-04 — both criteria met."
12
12
  ---
13
13
 
14
14
  # Applying a permission policy
@@ -117,4 +117,4 @@ Built-ins ship read-only in the package (canonical names); copy-to-customize int
117
117
  This skill TRANSLATES + APPLIES only. It does **not** define policies (the policy spec does) and does **not** enforce at the daemon (OpenRig is agnostic). Spec = *what* (neutral intent); this skill = *how, on this harness version* (the caveated, version-stamped translation).
118
118
 
119
119
  ---
120
- *Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, verdict SHA 627abbb6, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
120
+ *Stage: ESTABLISHED (2026-08-04) — both criteria met: (1) cold-transfer PASSING (rerun #2, all 5 gate checks TRANSFER); (2) the built-in policy SPEC FILES landed (`source: builtin`, arch-accepted) as the authoritative source — the skill now translates FROM the spec and the interim in-skill pinned summary is retired (POINT-not-COPY). Config cells VM-CONFIRMED (Claude 2.1.220 / Codex 0.120.0); Pi has no permission surface (compute-nothing). Reviewed at push. feedback.md maintained.*
@@ -263,17 +263,12 @@ For real depth, these are the load-bearing canonical docs:
263
263
  | `openrig/docs/reference/agent-spec.md` | The AgentSpec YAML format — resources, profiles, imports |
264
264
  | `openrig/docs/reference/agent-startup-guide.md` | The 7-layer startup layering model; delivery hints |
265
265
  | the product taxonomy | Canonical vocabulary (read literally) |
266
- | `substrate/shared-docs/HOST-TOPOLOGY.md` | Host-level doctrinerig classes, context patterns, lifecycle, authoring SOP |
267
- | `substrate/shared-docs/SUBSTRATE-CONVENTIONS.md` | Filesystem layout doctrine for substrate |
266
+ | `openrig-operating-model` skill | Placement and operating-model guidancetopology and work trees, context altitude |
267
+ | `openrig-architect` skill | Rig and topology authoring |
268
268
  | `https://agentskills.io/specification` | The cross-runtime skill standard |
269
269
 
270
- If you're going to be authoring rigs, read `HOST-TOPOLOGY.md` §7 (the
271
- authoring SOP) before touching YAML.
272
-
273
- If you're going to be doing skill work, read
274
- the factory-design reference and the
275
- `operating-the-skill-library` skill that lives in
276
- `substrate/shared-docs/rigs/skill-library/agents/shared/skills/`.
270
+ If you're going to be authoring rigs, use the `openrig-architect` skill before
271
+ touching YAML.
277
272
 
278
273
  ---
279
274
 
@@ -1,134 +1,98 @@
1
1
  ---
2
2
  name: messaging-the-human
3
- description: |
4
- When and who should send a message to the human operator, at
5
- operator-human@your-rig — which routes straight to his Slack. Role-gated:
6
- orchestrators and PMs use discretion to send anything worth his attention
7
- (blockers, ships/completions, changes, good news); every other agent may
8
- message him ONLY for a real blocker he can personally unblock, and routes
9
- everything else through an orchestrator. Use to protect a scarce human's
10
- manage-by-exception attention. NOT for agent-to-agent coordination (send/queue
11
- a peer) or durable agent work-handoffs (use the queue to the owning seat).
3
+ description: "Use when a human decision, access grant, external action, or escalation must survive the operator's absence, or when an orchestrator or PM has a judgment-worthy update for the operator."
12
4
  metadata:
5
+ cli_surfaces_referenced:
6
+ - gateway human add
7
+ - gateway human list
8
+ - queue block
9
+ - queue handoff
10
+ - queue transitions
11
+ - send
13
12
  openrig:
14
- stage: provisional # operator-directed, freshly authored 2026-07-30; hardens as agents use it
15
- audience: ALL agents (universal); orchestrators + PMs are the primary discretionary senders
13
+ stage: provisional
14
+ audience: all agents
16
15
  sibling_skills:
17
16
  - queue-handoff
18
- - status-not-chat-orchestrator
19
17
  - human-in-the-loop
20
18
  - openrig-user
21
19
  ---
22
20
 
23
21
  # Messaging the Human
24
22
 
25
- ## The one-line mechanism
23
+ The human is an addressable participant, but their attention is scarce and they
24
+ may not be at a terminal. Anything that must survive their absence needs a
25
+ durable queue row; the gateway turns the human blocker on that row into the
26
+ external notification.
27
+
28
+ Any seat may contact the human directly for a real escalation. Orchestrators
29
+ and product managers may also send updates they judge the human would want to
30
+ know. Do not add a routing intermediary merely because of your role.
31
+
32
+ ## The supported route
33
+
34
+ First discover the registered human identity. Never invent or remember an
35
+ address:
36
+
37
+ ```bash
38
+ rig gateway human list --json
39
+ ```
40
+
41
+ Use `humans[].entityId` to derive the durable blocker as `<entityId>@host`.
42
+ The entity id must use the human-seat prefix (`human` or `human-...`); if it
43
+ does not, stop and repair the registration rather than guessing. The returned
44
+ `humans[].address` is the gateway delivery address, not the `--on` value. If no
45
+ unambiguous registered human is returned, stop: registration is lifecycle work
46
+ (`rig gateway human add --help`), not an address to guess.
47
+
48
+ Keep the work row owned by the agent who must resume it, then park that row on
49
+ the registered human:
50
+
51
+ ```bash
52
+ rig queue block <qitem-id> --on <entityId>@host \
53
+ --summary "<decision owed>" \
54
+ --evidence-ref "<durable artifact the human should judge>" \
55
+ --continuation "<what resumes after the answer>"
56
+ ```
57
+
58
+ The gateway resolves the registered human to the configured connector, sends
59
+ the Slack notification, and records its receipt on the same row. Confirm the
60
+ effect from the append-only history:
26
61
 
27
62
  ```bash
28
- rig send operator-human@your-rig "your message"
63
+ rig queue transitions <qitem-id>
29
64
  ```
30
65
 
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.
35
-
36
- ## The mental model: the human is a scarce attention resource managing by exception
37
-
38
- There is one human. He is single-threaded across many agents, so his attention
39
- is the bottleneck of the whole system. He operates **by exception**: he wants to
40
- be pulled in when it genuinely matters and left alone when it doesn't. Every
41
- message you send spends a slice of that scarce attention.
42
-
43
- So the rule is not "can I reach him" (you can, trivially — one `rig send`). The
44
- rule is **should this reach him, coming from me**. Two things decide that: **who
45
- you are** (your role sets how much of his attention you're trusted to spend) and
46
- **what it is** (does it clear the bar for that role). Get the altitude wrong in
47
- either direction and you fail him: spam his Slack with noise, or sit silently on
48
- something he needed to know or could have unblocked.
49
-
50
- ## WHO sends WHAT
51
-
52
- ### If you are an ORCHESTRATOR or a PRODUCT MANAGER use discretion
53
-
54
- You are the primary channel to the human. You may send **more than blockers** —
55
- anything you judge he would want to know:
56
-
57
- - something **shipped**, **completed**, or a **milestone** was hit
58
- - something **important happened**, or something **changed**
59
- - **environmental** changes (infra, hosts, tools, external state)
60
- - **good news**
61
- - anything that needs his attention, or is simply **good for him to know**
62
-
63
- There is no hard trigger here it is judgment, and you are trusted with it. The
64
- test is: **"would he want to know this?"** If yes, send it. Lean toward sending
65
- genuine signal and real good news; do not manufacture noise or narrate routine
66
- churn. Discernment is the skill: you are curating his attention, not flooding it.
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
-
92
- ### If you are ANY OTHER agent — blockers only
93
-
94
- You may message the human **only** when you are **blocked** and **he** is the one
95
- who can unblock you. That authority is universal — you do **not** have to be an
96
- orchestrator to raise a real blocker. But a blocker is the **only** thing you may
97
- send him directly.
98
-
99
- For anything that is **not** a blocker — an update, an idea, a question, an
100
- interesting finding — do **not** message the human. Send it to your
101
- **orchestrator**, who decides whether it is the human's role to handle or whether
102
- it is handled another way. The orchestrator/PM layer is the filter that protects
103
- the human's attention; routing through it is how the system keeps his queue at
104
- manage-by-exception altitude.
105
-
106
- ## What counts as a real blocker (for non-orchestrator / non-PM agents)
107
-
108
- You are **blocked** AND **only the human** can clear it:
109
-
110
- - a **decision** only he can make,
111
- - **access / a credential / an authority** only he holds,
112
- - an **external action** only he can take (something in the real world, an
113
- account or service he owns).
114
-
115
- Not a blocker: "I'd like a second opinion," "which approach do you prefer,"
116
- "here's a cool thing I found." Those go to your **orchestrator**. And if an
117
- orchestrator or PM *could* unblock you, route to them first — reserve the human
118
- for what genuinely only he can do.
119
-
120
- ## How to write it (so it earns the interruption)
121
-
122
- - **Lead with the point.** Blocker: what is blocked + exactly what you need from
123
- him. Update: the headline first, detail after.
124
- - **Full absolute paths.** No internal jargon he can't parse. **No backticks** in
125
- `rig send` bodies (they trigger shell substitution).
126
- - `rig send` is an **ephemeral conversation** to his Slack. For a durable *agent*
127
- work-handoff, use the queue to the owning seat — not the human.
128
-
129
- ## Quick reference
130
-
131
- | You are… | You may send the human… |
132
- |---|---|
133
- | Orchestrator / PM | anything worth his attention — blockers, ships, completions, changes, good news (your discretion) |
134
- | Any other agent | a real blocker only he can unblock — **and nothing else** (everything else → your orchestrator) |
66
+ The row is the obligation and the audit trail. Slack is the attention leg. A
67
+ reply resolves the durable blocker and wakes the row owner; it does not create
68
+ a second private work stream.
69
+
70
+ ## When to use it
71
+
72
+ Escalate directly when only the human can supply the missing capability:
73
+
74
+ - a decision or irreversible judgment only they own;
75
+ - access, credentials, authority, or capacity only they can grant;
76
+ - an external action only they can perform;
77
+ - a security-class or provider/model-fallback event they need to know about.
78
+
79
+ Orchestrators and product managers may additionally send meaningful milestone,
80
+ environment, or completion updates. Prefer signal over routine narration.
81
+
82
+ ## Boundaries
83
+
84
+ - `rig send` sends text to an agent's terminal. It is not the Slack route and
85
+ does not create a durable human obligation.
86
+ - An unregistered or ambiguous human identity must fail loudly. Register or
87
+ repair the identity; never downgrade it to an agent seat or a guessed
88
+ `@external` address.
89
+ - Agent-to-agent work that needs closure uses `rig queue handoff`, not this
90
+ human-blocker path.
91
+ - Deferred work that is not imminent belongs in the mission workspace, not on
92
+ the queue.
93
+
94
+ ## Writing the escalation
95
+
96
+ Lead with what is blocked and the exact decision or action needed. Point at the
97
+ durable evidence instead of pasting a second copy, and name the continuation so
98
+ the system can resume the right work when the answer arrives.
@@ -1,27 +1,27 @@
1
1
  ---
2
2
  name: mission-slice-sop
3
- description: "Use when working on a mission or slice; editing SPEC.md, NOTES.md, PROGRESS.md, or PROOF.md; defining a proof contract or plan-lock/proof-lock; running rig proof; making a handoff; or preparing for compaction."
3
+ description: >-
4
+ Use when starting, building, handing off, restoring, or closing a mission or slice under the default lightweight SDLC.
4
5
  metadata:
5
6
  openrig:
6
7
  stage: shipped
7
8
  sibling_skills:
8
- - mission-slice-intent-proof-sop
9
9
  - queue-handoff
10
10
  - seat-continuity-and-handover
11
11
  - claude-compaction-restore
12
12
  ---
13
13
 
14
- # Mission/Slice SOP — how you work a mission & slice
14
+ # Mission/Slice SOP — Part A
15
15
 
16
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
17
 
18
+ **Full convention SSOT:** repo `docs/reference/sdlc-conventions.md`; installed `$OPENRIG_HOME/reference/sdlc-conventions.md`. This skill is the concise Part-A teaching surface and does not replace the full convention.
19
+
18
20
  ## THIS IS THE LIGHT DEFAULT — read this before anything else
19
21
 
20
22
  **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
23
 
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.
24
+ **Part B is defined in the SSOT above and applies only when the human operator — or an orchestrator explicitly relaying that decision — assigns it to a named piece of work.** You may not select it yourself. If you believe something earns it, say so in one sentence and **continue on Part A** until told otherwise.
25
25
 
26
26
  ## Proportionality — this SOP serves shipping; it is not the work itself
27
27
 
@@ -35,21 +35,24 @@ The working product is the deliverable. This bookkeeping exists so the work surv
35
35
 
36
36
  These three are a division of labour, not a chain of gates. One agent may hold all three on a small slice.
37
37
 
38
- ## The canonical files (the operating surface)
38
+ ## The current file contract
39
39
 
40
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.
41
41
 
42
- - **SPEC.md** (mission + slice) — the one authored node file. `intent:` lives in frontmatter; the slice body specifies through `## Intent`, `## Mini-requirements`, and `## Proof contract`. Advisory sibling build-order edges live in `depends_on:`.
43
- - **PROGRESS.md** the durable mission/slice acceptance checklist. In-process steps stay in the working agent's todo tool.
44
- - **NOTES.md** — lived context and observations that help the mission without changing its contract.
45
- - **PROOF.md** (+ `proof/`) — what you actually verified, stated honestly. A couple of honest, LOOKed-at lines beat an elaborate contract.
42
+ - **Slice:** `SPEC.md`, `PROGRESS.md`, `PROOF.md`, and `proof/`.
43
+ - **Mission:** `SPEC.md` and `NOTES.md`.
46
44
 
47
45
  ## Per-file rules — WHO / WHEN / HOW
48
46
 
47
+ ### SPEC.md
48
+ - **WHO:** the planning owner authors it; builders and reviewers read it as the scope and intent source.
49
+ - **WHEN:** at creation and whenever scope changes.
50
+ - **HOW:** a slice carries `intent:` in frontmatter and opens with `## Intent`, `## Mini-requirements`, and `## Proof contract`. A mission carries its intent and mission-level specification in the same authored node file. Keep depth proportional to the work.
51
+
49
52
  ### PROGRESS.md
50
- - **WHO:** the mission/slice owner keeps acceptance honest.
51
- - **WHEN:** when an acceptance outcome changes, especially at handoff and close.
52
- - **HOW:** one checkbox per durable outcome. Do not copy in-process todo steps into it.
53
+ - **WHO:** the orchestrator owns `§1` (current state); every agent logs its own outcomes.
54
+ - **WHEN:** on material delivery-state changes and at acceptance.
55
+ - **HOW:** one line per outcome (checkbox), link down for detail; keep frontmatter `stage`/`verified` honest.
53
56
 
54
57
  ### PROOF.md + proof/
55
58
  - **WHO:** the impl/QA pair that worked the slice.
@@ -57,16 +60,13 @@ These three are a division of labour, not a chain of gates. One agent may hold a
57
60
  - **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.
58
61
 
59
62
  ### NOTES.md
60
- - **WHO:** whoever did or observed the work.
61
- - **WHEN:** when lived context will help the next worker but does not belong in the contract.
62
- - **HOW:** write raw observations freely; point to durable artifacts instead of copying them.
63
-
64
- ### SPEC.md
65
- - **WHO:** the node owner. **WHEN:** at creation and on a real rescope. **HOW:** keep `intent:` and advisory `depends_on:` in frontmatter; only slice bodies specify buildable work.
63
+ - **WHO:** any agent updates `§1` (top-of-mind); each seat owns and appends to its own `§A–§X`.
64
+ - **WHEN:** on material mission-context changes; a compacting agent **files its state here BEFORE compaction and reads it on restore.**
65
+ - **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.
66
66
 
67
67
  ## The lifecycle (4 legs)
68
68
 
69
- **SCAFFOLD** (`rig scope` creates the files from templates) → **POPULATE** (agents fill them as work happens) → **PROJECT** (scope readers and the TUI derive the current view) → **VERIFY** (`rig scope audit`, advisory). "Loose freeform write + deterministic verify."
69
+ **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."
70
70
 
71
71
  ## Hot-potato (handoffs)
72
72
 
@@ -89,7 +89,6 @@ When you `rig capture` a pane, **greyed / ghost autocomplete suggestions are NOT
89
89
  ## Moment-of-truth checklist
90
90
 
91
91
  - **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.)
92
- - **Finishing a slice?** → does PROOF.md say what you actually verified, by effect, including what is NOT covered? Acceptance updated in PROGRESS? handed off via `rig queue handoff`?
93
- - **Rescoping?** → update SPEC.md; ordinary implementation steps do not belong there.
94
- - **Compacting?** deposit seat continuity in the seat's restore surface; NOTES.md holds only work-tree lived context.
95
- - **Starting on a mission?** → read the mission SPEC.md + NOTES.md + the conventions SSOT.
92
+ - **Finishing a slice?** → does `PROOF.md` say what you actually verified, by effect, including what is NOT covered? `PROGRESS.md` updated? mission `NOTES.md` refreshed? handed off via `rig queue handoff`?
93
+ - **Compacting?** → file your state in mission `NOTES.md`; on restore, read it plus the active slice's `SPEC.md`, `PROGRESS.md`, and `PROOF.md`.
94
+ - **Starting on a mission?** read mission `SPEC.md`, `NOTES.md`, and the conventions SSOT.
@@ -9,7 +9,7 @@ description: >-
9
9
  metadata:
10
10
  openrig:
11
11
  stage: draft
12
- author: OpenRig product team (sole-context authorship; revisions per REVISION-GUIDE.md)
12
+ author: OpenRig product team (sole-context authorship)
13
13
  ---
14
14
 
15
15
  # The OpenRig Operating Model
@@ -25,11 +25,7 @@ write protocol). The SUPPLY layer — how canon content flows into the chains:
25
25
  addresses, maps, renders, EMM maturity, census — is `openrig-corpus-canon`,
26
26
  the deliberate drain mechanism the dual-home interim anticipated.
27
27
 
28
- Companion files in this skill's folder — routed, not inlined:
29
- - `ROLLOUT.md` — how the model is being adopted on a live fleet (waves, interim
30
- practices, what happens to existing files).
31
- - `ROADMAP.md` — what later gets formalized in product code, and when.
32
- - `REVISION-GUIDE.md` — for agents revising this skill.
28
+ Companion implementation assets in this skill's folder:
33
29
  - `templates/` and `scripts/` — starters and working tools, described in §8.
34
30
 
35
31
  ## 1. The model in one breath
@@ -380,8 +376,7 @@ living system are the same command with different starting states. Created
380
376
  files are marked UNSEEDED until their real owner writes the first true
381
377
  version. **Never mass-produce LEARNED.md content for other instances** — each
382
378
  instance writing its own first version is both how the knowledge becomes real
383
- and how you discover which seats can't describe their own job (see
384
- `ROLLOUT.md` on why that discovery is the point).
379
+ and how you discover which seats cannot yet describe their own job.
385
380
 
386
381
  ## 10. Pitfalls (only what isn't taught above)
387
382
 
@@ -393,12 +388,10 @@ and how you discover which seats can't describe their own job (see
393
388
  - Summarizing this model for another agent instead of pointing them here —
394
389
  secondhand operating models are how operating models die; this skill was
395
390
  authored precisely because a chain of summaries destroyed the last one.
396
- - Scripts in `scripts/` are macOS-flavored in places (`stat -f`); on Linux,
397
- check `REVISION-GUIDE.md` for the portability notes before trusting them.
391
+ - Scripts in `scripts/` are macOS-flavored in places (`stat -f`); verify
392
+ platform compatibility before trusting them on another OS.
398
393
 
399
394
  ## Files in this skill
400
395
 
401
- `ROLLOUT.md` · `ROADMAP.md` · `REVISION-GUIDE.md` ·
402
- `CHANGELOG.md` — why the model is shaped this way, and what it replaced ·
403
396
  `templates/{SPEC,LEARNED,SOP}.md` ·
404
397
  `scripts/{compose.py, trace-due.sh, trace-stamp.sh, trunk-diff.sh, scaffold.sh}`