@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
@@ -1,14 +1,9 @@
1
1
  # SDLC conventions — the markdown control plane
2
2
 
3
- > **Succession rule (source of truth):** this document was derived from the
4
- > corrective review-surface redesign spec
5
- > (`CORRECTIVE-REDESIGN-review-surface-2026-07-05`, DRAFT v0.2, §2–§6,
6
- > grounded against openrig main `c27f2aff`, 2026-07-05/06). **Once shipped,
7
- > THIS repo document is the living SSOT for the SDLC conventions going
8
- > forward**; the corrective spec is the historical design record. Scaffold
9
- > templates, the advisory scope audit, the `mission-slice-sop` skill, and the
10
- > shipped bootstrap overlay all point HERE — they must not restate this
11
- > document in full (restatement is how drift is born).
3
+ > **Source of truth:** this repo document is the living SSOT for the SDLC
4
+ > conventions. Scaffold templates, the advisory scope audit, the
5
+ > `mission-slice-sop` skill, and the shipped bootstrap overlay all point HERE —
6
+ > they must not restate this document in full (restatement is how drift is born).
12
7
 
13
8
  OpenRig is a software factory the human steers from a high altitude. The human
14
9
  records intent; agents turn intent into a plan, the plan into a build, the
@@ -18,47 +13,41 @@ conventions define "well-formed." Everything here is **advisory / fail-open
18
13
  for agents**: nothing below blocks a write; the audit records and advises.
19
14
 
20
15
 
21
- ## WHERE YOU ARE DECIDES WHICH LOOP YOU RUN — the VM inner loop vs the host outer loop
22
-
23
- The parent host's SDLC was being applied wholesale to the VM. **They are different worlds with
24
- different responsibilities**, and conflating them is what turned this document into friction.
25
-
26
- | | **INNER LOOP — the VM** | **OUTER LOOP — the parent host** |
27
- |---|---|---|
28
- | **question it answers** | *does it actually work?* | *does what was delivered match what was intended?* |
29
- | **method** | ground → fix → upgrade in place → **run it and look** → iterate | intent-vs-delivered comparison, commit-message review, privacy/leak scrub, release management, publish |
30
- | **definition of done** | to the best of our knowledge the code is **completely functional and works**, and needs **no heavy refactoring** to be release-ready | the release is shippable and honest |
31
- | **ceremony** | **Part A only.** Part B is not the default here. | **Part B applies.** The release itself earns it. |
32
-
33
- **WHY the ceremony belongs there and not here — the rule that makes this self-enforcing:** the
34
- proof ceremony is a **protocol for transmitting confidence to someone who was not there.**
35
- Plan-lock, proof contracts, C1 drops and intent-vs-delivered all exist so a reader who did NOT
36
- watch the work happen can verify that it did. On the host that is exactly the situation, so the
37
- artifacts must carry the confidence. **On the VM the builder IS there** — they ran it and looked at
38
- it. Running the ceremony there re-encodes, at high cost, something already known, for an audience
39
- standing in the room.
40
-
41
- **WHERE A FIX GOES — go where the validation is POSSIBLE, not where the ceremony lives:**
42
-
43
- - **Needs a live daemon to verify → the VM.** That is the only place it CAN be verified. (Worked
44
- example: proving the ACTIVITY telemetry was really fixed required cutting the runtime over and
45
- reading real values; no amount of host-side review could establish it.)
46
- - **Verifiable by reading — docs, comment scrubs, message hygiene → the host.**
47
-
48
- **The VM's north star for a release:** hand the host code that, to the best of our knowledge, is
49
- completely functional and works. Not a proof pack. **Effect-verified functionality.**
50
-
51
-
52
16
  ## HOW TO READ THIS DOCUMENT — two parts, and only one of them is the default
53
17
 
54
18
  | | applies | contents |
55
19
  |---|---|---|
56
20
  | **PART A — THE SIMPLE SDLC** | **ALWAYS. This is the default.** | artifact conventions, proportionality, the advisory audit, the honesty rails |
57
- | **PART B — THE RIGOROUS OVERLAY** | **ONLY when the founder, or an orchestrator relaying the founder, ASSIGNS the heavy path to a NAMED piece of work** | the proof-contract format, the two locks, C1 proof drops, the locked role contracts |
21
+ | **PART B — THE RIGOROUS OVERLAY** | **ONLY when the human operator, or an orchestrator relaying that decision, ASSIGNS the heavy path to a NAMED piece of work** | the proof-contract format, the two locks, C1 proof drops, the locked role contracts |
58
22
 
59
23
  **You may not select Part B for yourself.** If you believe something earns it, say so in ONE
60
24
  sentence and continue on Part A until told otherwise. Part A corresponds to the `mission-slice-sop`
61
- skill; Part B to `mission-slice-intent-proof-sop`.
25
+ skill; Part B is defined below and applies only when assigned.
26
+
27
+
28
+ ## THE COMPONENT MENU — this document is a menu, not a pipeline
29
+
30
+ The SDLC is assembled from **components chosen per mission**, not a single mandated flow.
31
+ This document describes the components and carries recommendations; a mission (or the team
32
+ running it) picks per phase. Multiple valid options can exist for the same phase — choosing
33
+ one does not deprecate the others. Nothing below deletes or overrides an existing component.
34
+
35
+ | phase | components available today |
36
+ |---|---|
37
+ | **PRODUCT / MISSION PREPARATION** | **The product-management pass** — the layer above planning, run by the advisor/PM seat before planners touch a mission. The build is a lossy compression pipeline (PM intent → planner spec → builder code); nothing leaks downward by proximity, so this pass grounds in the raw sources, synthesizes ONE scope of record, presents owner decisions decision-ready, mints slices at plan time, deposits the full design contract INLINE in each design-bearing spec (owner words verbatim, settled decisions, evidence, shape of done, anti-goals), routes the complete reading list and internet-research assignments from the spec itself, frames each slice's planning-dial rung with its reason, and rereads every spec as the narrow downstream reader. The measuring stick: SPEC.md alone, plus what it explicitly routes to, reproduces the intent in a reader with none of the author's context. Full reference: `product-management-pass.md`. |
38
+ | **PLAN** | **The planning dial** — planning rigor is a spectrum chosen per piece: P0 mini-requirements and pointers (simple, reversible work) · P1 an authored spec with a proof contract (the default) · P2 plus a research round before the spec freezes, run BEFORE build dispatch · P3 plus an adversarial pass by a non-author, judged against product goals, landing amendments with proof-contract teeth · P4 plus a blind from-scratch design diffed against priors before proceeding. Dial up by what the piece is, exactly as build care is priced below. Full reference: `planning-dial.md`. |
39
+ | **BUILD** | **Part A, the simple flow** (below — the default) · **the wave model** — slices build in parallel in disjoint file territories, an integrator merges serially, and independent review fires once per wave (two reviewers with different vantages, never the writers; fix rounds re-earn verdicts at one final revision; per-slice discipline stays failing-test-first and verify-by-effect). The wave IS the care dial: what shares a wave decides how much review each piece gets · **Part B, the rigorous overlay** (below — only when assigned). These combine: a wave can carry one Part-B piece. Full wave reference: `wave-sdlc.md`. |
40
+ | **DISPATCH DATA** | **The execution-data conventions (S27)** — three tiny data disciplines that make execution state derivable instead of hand-tabulated, consumed by `rig view show execution`. **EC-1, edges in frontmatter:** every open slice carries its hard edges in `depends_on:` (an inline JSON array; an explicit `[]` is a statement, absence is INDETERMINATE); soft/serialization edges are one machine-readable Territory line, exactly `SOFT-AFTER: [ids] — reason`. **EC-2, wave-as-data:** wave composition + review model live on a durable queue row tagged `wave-map` + `format:wave-map-v1` whose body carries one fenced ```json block (`{format:"wave-map-v1", mission, waves:[{id, slices, serialized_order?, review_model?}]}`) — composition only, never status labels (status derives at read time); the planning dial recorded at lock surfaces as the frontmatter field `approved-spec-dial:` beside the approve stamp. **EC-3, dispatch names the worktree:** build batons carry the exact body line `worktree_path=<path>` from dispatch onward — it is Q1's join key; batons without it join by naming only and the view marks them `fragile_join`. Existing batons are never rewritten. |
41
+ | **RELEASE** | The release ceremony conventions (publication identity, honest release notes) and the CAPABILITY-DELTA LIFECYCLE LAW: each release's delta is authored at the fence, bound to the exact published cut; canon absorbs its named items; the canon header then names the delta, which expires it — verify the expiry fired, and never cite an expired delta. Full statement: `release-boundary.md` §6. |
42
+ | **BOUNDARY** | **The release boundary** — housekeeping run once per fence so the next release starts clean: seats reset or re-primed per their continuity needs, memory distilled (keep what changed a decision recently), every queue swept by destination and dispositioned, substrate torn down, boards frozen as records, a clean-box baseline captured. A checklist of judgment guides, not gates. Full reference: `release-boundary.md`. |
43
+
44
+ > Full reference documents for each component (graduated 2026-08-28): the
45
+ > product-management pass — `product-management-pass.md` · the
46
+ > planning dial — `planning-dial.md` · the wave model — `wave-sdlc.md` · the release
47
+ > boundary (including the capability-delta lifecycle law) — `release-boundary.md` ·
48
+ > the mission install — `mission-install.md` (lands with its own slice). The
49
+ > summaries above remain the one-glance description; this document remains the SSOT
50
+ > pointer for the whole menu.
62
51
 
63
52
  # PART A — THE SIMPLE SDLC (applies always)
64
53
 
@@ -92,7 +81,7 @@ Each slice directory carries:
92
81
  - **`## Intent`** — the recorded intent, verbatim. The UI projects this
93
82
  text as the INTENT section.
94
83
  - **`## Mini-requirements`** — the concise, one-glance requirement tier
95
- (numbered list). This is the founder's first structured catchpoint;
84
+ (numbered list). This is the human operator's first structured catchpoint;
96
85
  approval starts here.
97
86
  - **`## Proof contract`** — a checkbox list of promised deliverables (see
98
87
  §3). The UI's DELIVERED section pairs each item with its proof.
@@ -149,21 +138,9 @@ either being wrong (for example, one over the frontmatter block and one over
149
138
  the whole file). Coverage is what makes a cited hash verifiable rather than
150
139
  merely impressive.
151
140
 
152
- **Canonical convention (the ONE origin cite it, do not restate it here),
153
- cited in the form that convention itself prescribes path + section anchor +
154
- dated whole-file hash:**
155
-
156
- - **path:** `artifact-cross-citation-path-plus-lineage.md` (internal authoring convention — not shipped in this public repo)
157
- - **anchor:** *A cited hash STATES ITS COVERAGE — span is part of the definition*
158
- (2026-08-08)
159
- - **hash:** `sha256 14d9a273d542648ab1e0a82c7fd98e8a8c59cb02a83be76b8af9abfb717b34d2`
160
- — **coverage: WHOLE FILE, bytes as stored, INCLUDING the trailing newline**
161
- (0x0a terminal byte verified), 229 lines, as-of 2026-08-08.
162
-
163
- The **path + anchor is the AUTHORITY**; the whole-file hash **DATES** the
164
- citation. That artifact is a living doc: the hash goes stale at the next
165
- legitimate append, the anchor does not — the CURRENT-line convention applied to
166
- a citation.
141
+ **Use path + anchor as the authority and a whole-file hash only to date the
142
+ citation.** The address survives legitimate content changes; the digest does not.
143
+
167
144
  ## A4. When implementation finds the intent rested on something that does not exist
168
145
 
169
146
  A slice's intent can only be honoured to the extent its assumptions hold. Sometimes implementation
@@ -217,16 +194,15 @@ reported as unknown, not failure.
217
194
  emits an intent-bearing `SPEC.md` + `NOTES.md`. Core emits only this
218
195
  mode-neutral shape; mode plugins add richer material through the extension
219
196
  seam rather than teaching core a mode.
220
- - **Skills — TWO, matching this document's two parts**: `mission-slice-sop`
221
- teaches **Part A**, the light default; `mission-slice-intent-proof-sop`
222
- teaches **Part B**, the assigned overlay. Assigned-only, never self-selected.
197
+ - **Skill**: `mission-slice-sop` teaches **Part A**, the light default. **Part B**
198
+ is defined below and applies only when assigned — never self-selected.
223
199
  - **Bootstrap**: the shipped agent overlay points fresh seats at the skill
224
200
  and this document at boot.
225
201
 
226
202
  # PART B — THE RIGOROUS OVERLAY (assigned only)
227
203
 
228
- > **ENTRY CONDITION:** everything below applies **only** when the founder — or an orchestrator
229
- > explicitly relaying the founder — has assigned the heavy path to a **named** piece of work.
204
+ > **ENTRY CONDITION:** everything below applies **only** when the human operator — or an orchestrator
205
+ > explicitly relaying that decision — has assigned the heavy path to a **named** piece of work.
230
206
  > If you arrived here without an assignment, stop and use Part A.
231
207
  >
232
208
  > **Rails:** the locks are **two, and only two**. Nothing here authorizes a second gate round on
@@ -346,9 +322,6 @@ an append-only pile where the human can't tell final from superseded.
346
322
 
347
323
  ## Scratch-daemon hermeticity: the DB a scratch daemon opens is the one you named
348
324
 
349
- *(Desk-ruled 2026-08-25, row qitem-20260825005846-7960f4dd; 0.5.3-era doctrine — a harness rule,
350
- not product behavior.)*
351
-
352
325
  A scratch daemon launch **strips the inherited environment's `OPENRIG_DB` and names an explicit
353
326
  scratch DB path under the scratch `OPENRIG_HOME`** — both halves, every launch:
354
327
 
@@ -364,6 +337,6 @@ the scratch context read or wrote state it never owned, and whether anything vis
364
337
  luck, not hermeticity.
365
338
 
366
339
  **The discriminator that keeps this rule honest:** an explicit `OPENRIG_DB` still WINS by design
367
- (`daemon-db-path.ts`; prior ruling 00c4ab76) — deliberate split-path configuration is legitimate
368
- and untouched. This rule governs **inheritance into scratch contexts**, where nobody decided
369
- anything: strip what you did not choose, then choose.
340
+ (`daemon-db-path.ts`) — deliberate split-path configuration remains legitimate and
341
+ untouched. This rule governs **inheritance into scratch contexts**, where nobody
342
+ decided anything: strip what you did not choose, then choose.
@@ -0,0 +1,113 @@
1
+ # The wave SDLC — parallel build, wave-level review, composition as the care dial
2
+
3
+ Graduated 2026-08-28 from the working playbook of the team that proved it live; the
4
+ team-specific custody mechanics stay in that team's playbook. Lock stamps in this
5
+ model are ADDITIVE: approval appends metadata and never rewrites authored bytes, so
6
+ a candidate's identity survives its own approval.
7
+
8
+ ## The model in one paragraph
9
+
10
+ Slices build IN PARALLEL across every build-class seat, each in a DISJOINT FILE
11
+ TERRITORY, each merged serially by one integrator the moment its candidate freezes
12
+ with builder-proven receipts. Independent review happens ONCE PER WAVE over the wave's
13
+ whole accumulated range — two reviewers with different vantages (ideally different
14
+ runtimes), never the writers — and their findings drive fix rounds that re-earn both
15
+ verdicts at the round's final revision. Checks stay per-slice (failing-test-first
16
+ proof, verify-by-effect, honest receipts); rounds happen per-wave.
17
+
18
+ ## The mechanics
19
+
20
+ 1. **PLAN:** wave entries in the plan of record; the planner shapes specs; the plan
21
+ authority locks them. Every slice gets a real workspace or proof has no home.
22
+ 2. **DISPATCH:** batons fan out with EXCLUSIVE file territories. THE BRIEF IS THE
23
+ UNIT: every assignment carries the goal, the acceptance criteria, the complete
24
+ context routes (exact paths), the territory — and this standing grant: "Navigate
25
+ the implementation yourself: derive what you need, research, spawn readers,
26
+ decide your own build order. Ask when stuck; the orchestrator is here to help."
27
+ DEFAULT SCOPE IS THE WHOLE SPEC, built in one sustained run to ONE frozen
28
+ candidate. Handing out anything smaller requires naming the reason on the brief
29
+ itself (an unresolved decision, a live territory conflict, a genuine
30
+ fork-in-the-road risk) — an unexplained small chunk is a dispatch defect.
31
+ Territory overlap = serialize. Conflict discovered mid-build = STOP AND RULE.
32
+ Why: the builder holds the spec and the code; decisions about how to build
33
+ belong where the building context lives. Detailed sequencing instructions were
34
+ scaffolding when models were weak; today they are a cage, and per-command
35
+ routing is the failure mode, not diligence.
36
+ THE BRIEF IS A MAP, NOT THE TERRITORY. Distillation is welcome — for a minimal
37
+ slice the brief may honestly be richer than the spec — but it is never the
38
+ receiver's ONLY context: the builder's first act is self-onboarding from the
39
+ routed reading list (the mission-install pattern at slice scale), then checking
40
+ the map against the ground it actually stands on. Nobody knows the ground floor
41
+ better than the builder; the wide angle lives a layer up. When the ground
42
+ disagrees with the map, that is a finding to raise — not a reason to follow
43
+ the map off a cliff.
44
+ 3. **BUILD:** failing-test-first against a pristine base with committed final test
45
+ bytes; freeze a single candidate revision; receipts cite the FINAL revision
46
+ (re-earned after any rebase).
47
+ 4. **MERGE:** integrator-only, serially, verified at source each time (candidate
48
+ parent equals pre-merge tip; changed files equal declared territory). Merge
49
+ announcements are REBASE TRIGGERS for every open candidate.
50
+ 5. **WAVE REVIEW:** fires when the wave's build completes. Two independent reviewers,
51
+ base-scoped at the tip, writers excluded from reviewing their own work. The two
52
+ gates ask DIFFERENT questions — does the structure hold, versus does each claim
53
+ survive contact with source. That is the design, not redundancy.
54
+ Reviewers also review for DRIFT, not only defects: does the built thing still
55
+ match the acceptance criteria the brief stated — is this still the doghouse the
56
+ owner asked for, or did locally-defensible steps accrete toward a moon base?
57
+ Plot-loss is a first-class finding with the same standing as a logic defect.
58
+ Reviews also DISPOSE each miss by cause: CONTEXT-GAP — the spec or its routes
59
+ lacked what the moment needed (a planning finding; the fix lands in the spec) —
60
+ versus JUDGMENT-GAP — the context was there and the call was wrong (a builder
61
+ finding; the fix is a check). One word in the verdict artifact. The rate this
62
+ produces is the calibration the dispatch shape tunes on.
63
+ 6. **FIX ROUNDS:** findings become forward-fix candidates (merges stand; merged is
64
+ not running). One re-review pass per round re-earns both legs at the final
65
+ revision. Narrow rechecks for narrow corrections.
66
+ 7. **SEAL:** both legs clear at one revision = wave sealed; the next slot opens.
67
+
68
+ ## THE WAVE IS THE CARE DIAL
69
+
70
+ Wave COMPOSITION is the control surface for how carefully a piece is handled: a
71
+ large, complicated, or load-bearing slice gets a wave OF ITS OWN (its review ceremony
72
+ fires for it alone); a big piece can even split across waves. This decouples what an
73
+ older model conflated: mission and slice workspaces stay flexible organizational
74
+ containers; waves are the separate layer that sequences work, assigns it, and prices
75
+ its handling care. Care is a per-piece property, never a per-mission one.
76
+
77
+ ## When to use it
78
+
79
+ Many small-to-medium, root-caused, evidence-backed slices; enough seats to
80
+ parallelize; territories that partition cleanly; an integrator who can merge serially
81
+ and verify fast.
82
+
83
+ ## When NOT to use it
84
+
85
+ Design-uncertain or shared-region work (one slice, classic two-leg review, or a
86
+ design session first). Anything irreversible within the hour (publish, cutover,
87
+ destructive operations) — that is the heavy path. And when no independent non-writing
88
+ reviewers exist: nothing ever self-reviews; without them the wave gate is theater.
89
+
90
+ ## Failure modes, with the mitigations that worked (dated observations, 2026-08)
91
+
92
+ - **Freeze-merge races:** a candidate freezes seconds before a merge moves the tip.
93
+ Mitigation: zero-overlap restack with content-identity proof (stable patch-id) in
94
+ an isolated worktree; builder-side self-catch on merge announcements.
95
+ - **Evidence theater:** a failing test that fails for the wrong reason reads
96
+ identical to a real one. Mitigation: reviewers re-derive the failures
97
+ independently; false characterizations retire to a correction history, never a
98
+ silent rewrite.
99
+ - **Presence-not-absence tests:** asserting the true line exists while the false
100
+ line still prints. Rule: pin the ABSENCE of the false claim in every encoding.
101
+ - **Phantom checkout status:** merge-by-reference leaves a shared checkout's index
102
+ stale. Never build or commit from a shared checkout; sync its index at fences.
103
+
104
+ ## Measured outcome from the proving run (dated, one team, 2026-08)
105
+
106
+ Eight slices plus five fix candidates plus two addenda built and merged in ~2.5 hours
107
+ across five writing seats; two wave passes plus three fix-round passes replaced ~20
108
+ per-slice review rounds. Defect yield went UP: the reviewers' findings never
109
+ overlapped once across three consecutive verdicts, and the builders' green suites had
110
+ missed every one of them — wave-level review sees cross-slice seams per-slice review
111
+ structurally cannot. Correction latency: one live defect went found→root-caused→
112
+ specced→locked→built→merged in 24 minutes, because no review round stood between a
113
+ locked spec and a building seat.
@@ -16,10 +16,10 @@ destructive_class: [delete_everything, drop_persistent_store, reset_or_discard_v
16
16
  The everyday software-factory posture for INTERACTIVE dev. Routine work runs without prompts; the consequential outward and history-rewriting acts defer to the human.
17
17
 
18
18
  - **default_posture: allow** — routine dev (toolchain, arbitrary shell, install deps, scoped file deletion, network, topology) runs without a prompt.
19
- - **allow: [push_to_remote]** — routine `git push` is allowed (pinned explicitly; the founder rejected gating push as a default).
20
- - **ask: [create_pr, publish_package, merge_or_release, force_push]** — outward/release/history-rewriting acts ASK the human. **ASK ≠ deny**: OpenRig bakes no block; ASK = defer to the human, the founder's explicit beyond-floor default. `force_push` is additionally best-effort on Claude (prefix rules can't reliably split `git push --force`), so ASK is the honest disposition, not a can't-enforce deny.
19
+ - **allow: [push_to_remote]** — routine `git push` is allowed (pinned explicitly; the policy design rejects gating push as a default).
20
+ - **ask: [create_pr, publish_package, merge_or_release, force_push]** — outward/release/history-rewriting acts ASK the human. **ASK ≠ deny**: OpenRig bakes no block; ASK = defer to the human, the policy's explicit beyond-floor default. `force_push` is additionally best-effort on Claude (prefix rules can't reliably split `git push --force`), so ASK is the honest disposition, not a can't-enforce deny.
21
21
  - **destructive_class → ask** — `delete_everything`, `drop_persistent_store`, `reset_or_discard_vcs` default to ASK, never a silent block (best-effort-safe).
22
22
 
23
23
  **INTERACTIVE-dev posture:** an `ask` freezes an autonomous seat by design — autonomous fleets use Open or YOLO, not Standard.
24
24
 
25
- **FLOOR (always on, flag surface):** Claude `acceptEdits` + Codex `workspace-write` (the edit/sandbox floor); Pi `--no-approve` is a resource-TRUST posture, not a permission floor (Pi has no permission surface). **Translation is the skill's job** (harness-neutral intent → per-harness format, caveated). Grounded in schema `a8dba0d9`; the ask-set is pinned per cold-transfer `627abbb6`.
25
+ **FLOOR (always on, flag surface):** Claude `acceptEdits` + Codex `workspace-write` (the edit/sandbox floor); Pi `--no-approve` is a resource-TRUST posture, not a permission floor (Pi has no permission surface). **Translation is the skill's job** (harness-neutral intent → per-harness format, caveated).
@@ -11,10 +11,15 @@ description: Full-bypass posture — the flag-surface YOLO opt-in. Everything ru
11
11
 
12
12
  The maximum-permissive built-in. The seat runs the harness with its full-bypass launch flag: Claude `--dangerously-skip-permissions`, Codex full-bypass, Pi `--approve`. Nothing prompts; nothing is denied. Use only for fully-trusted autonomous work where any pause is unacceptable.
13
13
 
14
- **APPLICATION is deterministic, NOT skill-translated.** YOLO is a `surface: flag` policy: it resolves to a stable launch flag, so it is applied by the deterministic flag-surface opt-in — the rip-out slice's YOLO setting (OPR.0.4.8.2). The `applying-a-permission-policy` skill does **NOT** translate this policy; it simply points at that setting. This is the two-surface distinction: the flag surface is stable enough for deterministic code, so it does not pay the skill-indirection tax.
14
+ **APPLICATION is deterministic, NOT skill-translated.** YOLO is a `surface: flag`
15
+ policy: it resolves to a stable launch flag and is applied directly by the runtime
16
+ flag-surface opt-in. The `applying-a-permission-policy` skill does **NOT** translate
17
+ this policy; it points at that setting. The flag surface is stable enough for
18
+ deterministic code, so it does not pay the skill-indirection tax.
15
19
 
16
20
  **Config policies are MOOT when YOLO is on.** The full-bypass launch flag overrides any Claude prefix rules / Codex posture, so an attached config-surface policy (Locked/Standard/Open) has no effect while YOLO is active. Pick YOLO OR a config policy, not both.
17
21
 
18
22
  **Guardrails come from skills + starter markdown, not permission-blocking** — a YOLO seat is bounded by what its skills and operating context tell it to do, since the permission layer imposes nothing.
19
23
 
20
- **Naming lineage:** the founder's FINAL DESIGN named the fourth built-in **Operator**. The two-surface refinement (2026-08-03) subsumed Operator into this flag-surface full-bypass built-in and renamed it **YOLO** to name the posture plainly; the picker presents all four named postures (Locked / Standard / Open / YOLO) uniformly. Grounded in schema `a8dba0d9`.
24
+ **Naming:** YOLO names the full-bypass posture plainly; the picker presents all four
25
+ named postures (Locked / Standard / Open / YOLO) uniformly.
@@ -102,7 +102,7 @@ culture / pod / member / operator) handles the layering.
102
102
 
103
103
  ## See also
104
104
 
105
- - `mission-slice-sop` skill — the universal operating procedure for working a mission/slice (the canonical SPEC.md, NOTES.md, PROGRESS.md, PROOF.md, and proof/ surfaces); every agent should reach for it at startup, so this general reading contract points at it here (do NOT duplicate the SOP into seat-specific startup files).
105
+ - `mission-slice-sop` skill — the universal operating procedure for working a mission/slice (the canonical PROGRESS/PROOF/MISSION_NOTES/MISSION_BRIEF files); every agent should reach for it at startup, so this general reading contract points at it here (do NOT duplicate the SOP into seat-specific startup files).
106
106
  - `writing-skills-for-openrig` skill — authoring discipline for skill content (what doesn't belong in startup)
107
107
  - `forming-an-openrig-mental-model` skill — orientation for new agents
108
108
  - `session-compaction-and-restore` skill — restore-time startup ingestion
@@ -30,11 +30,8 @@ operator pattern (`ssh <host> rig <cmd>`) with declared host identity,
30
30
  explicit cross-host invocation path, preserved `--verify` semantics, and
31
31
  4 named failure modes.
32
32
 
33
- **Current-host note (2026-07-14):** this skill still preserves the original
34
- SSH-v0 doctrine below, but the live host registry may also contain HTTP
35
- read-through/tunnel entries such as `your-vm` and `your-other-vm`. Use the
36
- host registry entry as ground truth for transport shape, and use
37
- `conventions/multi-host-naming/README.md` for host-id naming. HTTP entries
33
+ The live host registry may contain SSH or HTTP read-through/tunnel entries.
34
+ Use each registry entry as ground truth for transport shape. HTTP entries
38
35
  require `url` plus exactly one of `bearer_file` or `bearer_env`.
39
36
 
40
37
  **v0 is CLI-side shell-out only — `packages/daemon/` is NOT touched.**
@@ -73,24 +70,20 @@ differs from the interactive verbs (`send`/`capture`/`ps`/`whoami`):
73
70
 
74
71
  ## Host registry shape (`~/.openrig/hosts.yaml`)
75
72
 
76
- Host ids should follow the OpenRig-work multi-host naming convention:
77
- `conventions/multi-host-naming/README.md`. In this environment that means
78
- physical hosts such as `your-vm`, local OpenRig development VMs such as
79
- `your-vm`, persistent product VMs such as `your-other-vm`, and VPS hosts such
80
- as `your-vps`. Keep old aliases during migration until no live routing
81
- depends on them.
73
+ Host ids must be non-empty and unique. Choose stable, operator-meaningful ids
74
+ that describe the destination without depending on transient network details.
82
75
 
83
76
  ```yaml
84
77
  hosts:
85
78
  - id: a-test-vm
86
79
  transport: ssh # v0 supports "ssh" only
87
80
  target: a-test-vm.local # DNS name, SSH config alias, or IP
88
- user: wrandom # optional
81
+ user: example-user # optional
89
82
  notes: "Tart VM" # optional
90
83
  - id: laptop-b
91
84
  transport: ssh
92
85
  target: laptop-b.tail-scale-net
93
- user: wrandom
86
+ user: example-user
94
87
  ```
95
88
 
96
89
  Validation rules:
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: messaging-the-human
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."
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
12
+ openrig:
13
+ stage: provisional
14
+ audience: all agents
15
+ sibling_skills:
16
+ - queue-handoff
17
+ - human-in-the-loop
18
+ - openrig-user
19
+ ---
20
+
21
+ # Messaging the Human
22
+
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:
61
+
62
+ ```bash
63
+ rig queue transitions <qitem-id>
64
+ ```
65
+
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.
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: openrig-skills
3
+ description: "Use when you're operating OpenRig and need the right skill or context for fleet recovery, seat handover, new-seat orientation, a watchdog wake, cross-host reach to an agent on another machine, rig packaging, an OpenRig upgrade, systematic debugging, queue triage, or implementation planning; also use when you don't know what applies or nothing is projected on cold boot."
4
+ allowed-tools: Bash(rig:*)
5
+ metadata:
6
+ openrig:
7
+ stage: shipped
8
+ ---
9
+
10
+ # OpenRig skills — the index (start here)
11
+
12
+ You're running inside OpenRig. OpenRig ships a set of **skills** — small documents that tell you *when* to do something and *how*. This file is the map: what ships, when to reach for each, and how to load it. If you don't know which skill applies, or nothing is projected into your context, **start here.**
13
+
14
+ ## How OpenRig context works (30 seconds)
15
+
16
+ Skills are **progressive disclosure**: a skill's *name + description* sit in your context ambiently (the "hot tier"); its *body* loads only when you open it. So you don't pre-read everything — you pattern-match a skill's "when" to your moment, then open just that one. This file is the index over the whole shipped set. (For the full model of building/operating agent software, open `software-for-agents`.)
17
+
18
+ Every row below names **how to reach the skill** — already-hot, or an exact load path. No row is a dead end.
19
+
20
+ ## Loading an entry on demand — `rig context get`
21
+
22
+ Don't guess a file path or a name. Go **ask → ref → load** in three steps:
23
+
24
+ 1. **Discover** — run `rig context list` for every shipped entry's **ref** and name. The *when* for
25
+ each is the index below (or `rig context list --json`, which carries each entry's purpose) — match
26
+ your moment there.
27
+ 2. **Select** — match your moment to a row's *when* and take its **ref**. Refs are canonical full paths
28
+ that mirror the library layout — `skills/<namespace>/<name>` (e.g. `skills/core/rig-lifecycle`,
29
+ `skills/process/systematic-debugging`). A unique bare name (e.g. `watchdog`) also resolves; any
30
+ slash-bearing ref is an exact lookup and fails loud if it does not exist.
31
+ 3. **Load** — `rig context get skills/<namespace>/<name>`:
32
+
33
+ ```
34
+ rig context get skills/core/rig-lifecycle
35
+ ```
36
+
37
+ The router itself is available through both forms it teaches:
38
+ `rig context get openrig-skills` and `rig context get skills/core/openrig-skills`.
39
+
40
+ The content is served **from the installed CLI**, so what you load always matches your running version —
41
+ no path-guessing, no frozen-fork drift. (The daemon assembles the same bundle `rig context preview`
42
+ shows an operator — `get` is the agent-facing pull.)
43
+
44
+ ## The index
45
+
46
+ > Membership rule (`layout.skills[*].edges.length > 0`): every public skill with at least one product edge in the generated edge layout appears exactly once in this index; no other skill appears.
47
+
48
+ ### Always loaded — the universal spine (open its body when its moment hits)
49
+ These are auto-delivered to every rig; their name+description are already in your context. Open the body when the "when" matches.
50
+
51
+ - **forming-an-openrig-mental-model** — first boot, or you're unsure how the pieces fit. The runtime mental model.
52
+ - **openrig-operating-model** — you do not know where context or work belongs, or you are about to duplicate knowledge. The two-tree placement and trace-to-root model.
53
+ - **openrig-user** — you need a `rig` CLI command (send / queue / ps / whoami / scope / broadcast). The daily CLI surface.
54
+ - **applying-a-permission-policy** — a rig or seat has a permission policy attached, or you're setting one up: translate it into the live harness configuration.
55
+ - **claude-compaction-restore** — you just compacted (Claude). Restore from durable evidence before resuming real work.
56
+ - **delegating-work** — deciding who should do a task: you, a spawned subagent, or a durable peer seat that already holds the context.
57
+ - **session-compaction-and-restore** — preparing for, or recovering from, compaction (any runtime). The write- and read-side protocol.
58
+ - **queue-handoff** — you're passing durable work to another seat or ending your turn. The queue is the work ledger, not chat.
59
+ - **refocusing** — a long-running seat may have lost the product outcome, crossed a major boundary, or compacted and needs a fresh path-based trace.
60
+ - **seat-continuity-and-handover** — handing your seat's work across a restart or to another owner.
61
+ - **orienting-to-an-inherited-seat** — you just inherited an existing seat through a planned handover and need to verify its identity, state, and testimony.
62
+ - **retiring-and-inheriting-a-seat** — you're planning a seat transition and need to retire the current occupant into a fresh successor without losing continuity.
63
+ - **mission-slice-sop** — you're working a mission/slice (the SDLC: intent → mini-requirements + proof contract → build → QA → proof). The operating manual.
64
+ - **messaging-the-human** — composing a message to the human. Plain language, no insider jargon.
65
+ - **software-for-agents** — you want the full first-load model of how agent software is built and operated here.
66
+ - **openrig-skills** — this index (you're reading it). Always loaded; the entry point to everything below.
67
+
68
+ ### Load when your role or task calls for it (repo-shipped, profile-selected)
69
+ These ship in the OpenRig repo and reach a seat when its profile selects them. To use one, select it in your profile's `uses.skills`, or open it directly at `packages/daemon/specs/agents/shared/skills/core/<skill>/SKILL.md`.
70
+
71
+ - **openrig-architect** — authoring a rig or topology (NOT for changing OpenRig itself — that's `openrig-builder`).
72
+ - **openrig-cmux** — driving the `cmux` terminal provider.
73
+ - **openrig-herdr** — opening/managing seat terminals via the default proof-gated provider.
74
+ - **agent-startup-and-context-ingestion** — a seat is booting and ingesting its startup context.
75
+ - **topology-mutation-and-seat-management** — adding, removing, renaming seats or otherwise mutating rig topology.
76
+ - **rig-lifecycle** — rig up / down / pause / resume lifecycle operations.
77
+ - **rig-bundles-and-shareable-artifacts** — packaging or installing a rig bundle / shareable artifact.
78
+ - **cross-host-rig-commands** — reaching seats or queues on another host (`--host`).
79
+ - **openrig-upgrade** — upgrading OpenRig or the daemon.
80
+ - **agent-starters** — composing an agent's starter context / priming packs.
81
+ - **specification-system** — authoring or reading AgentSpecs and rig specs.
82
+ - **human-in-the-loop** — deciding when to involve the human vs. proceed on your own authority.
83
+ - **watchdog** — monitoring or recovering a seat (health, restore, stuck state).
84
+ - **session-source-fork** — forking a session's source/context.
85
+ - **context-engineering** — designing context systems. Provisional and non-normative: current OpenRig skills, explicit rulings, and measured practice outrank it on any conflict.
86
+
87
+ Pod handbooks (load when you're in that pod):
88
+ - **orchestration-team** — you're orchestrating a rig: dispatching, monitoring, keeping the loop moving.
89
+ - **development-team** — you're on the dev pod: building and shipping product changes.
90
+ - **review-team** — you're reviewing: fresh scrutiny, anti-slop, empirical verification.
91
+ - **oversight-team** — you're in an oversight pod: monitor boundaries and route findings without taking over the work.
92
+
93
+ Product-management craft (load when shaping/reviewing work):
94
+ - **requirements-writer** — turning intent into clear requirements.
95
+ - **plan-review** — reviewing a plan before it's built.
96
+ - **exec-summary** — writing a decision-ready summary for a human.
97
+ - **office-hours** — running a structured advisory / decision session.
98
+ - **context-builder** — assembling the context a task or seat needs.
99
+ - **backlog-capture** — capturing and shaping backlog items.
100
+ - **ui-mockup** — producing a UI mockup for a slice.
101
+
102
+ ### Vendored craft — load when you're coding (ships with upstream provenance)
103
+ General engineering skills OpenRig ships as vendored copies. Open when the task matches; they carry "modified by OpenRig" provenance.
104
+
105
+ - **test-driven-development** — implementing a feature or bugfix: write the failing test first.
106
+ - **verification-before-completion** — about to claim done / passing / fixed: run the check and read the output first.
107
+ - **systematic-debugging** — debugging: find the root cause before the fix.
108
+ - **writing-plans** — writing an implementation plan.
109
+ - **executing-plans** — working through a written plan.
110
+ - **brainstorming** — divergent ideation before converging.
111
+ - **using-superpowers** — discovering and using the vendored "superpowers" skill set.
112
+ - **agent-browser** — driving a browser (screenshot / screencast) from an agent.
113
+ - **frontend-design** — designing frontend / UI.
114
+ - **dogfood** — web-QA / dogfooding a shipped UI.
115
+
116
+ ## Need more than what ships here?
117
+
118
+ This index covers the **shipped** surface. A dev host carries far more (factory, architecture, PM-craft, studio skills) reached through the host's own routers/codemaps — if you're on a builder host and need something not listed above, that deeper routing is the next hop, not a wall. (Host-scale routing is the subject of the context-routing architecture doc; at product scale, this one file is the whole map.)