@openrig/cli 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  2. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  3. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  7. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  8. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  9. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  12. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  13. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  15. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  17. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  18. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
  19. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  20. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  21. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  22. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  23. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  24. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  25. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  26. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  27. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  28. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  29. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  30. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  31. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  32. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  33. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  34. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  35. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  36. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  37. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  38. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  39. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  40. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  41. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  42. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  43. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  44. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  45. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  46. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  47. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  48. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  49. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  50. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  51. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  52. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  53. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  54. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  55. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  56. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  57. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  58. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  59. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  60. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  61. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  62. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  63. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  64. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  65. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  66. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  67. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  68. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  69. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  70. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  71. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  72. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  73. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  74. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  75. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  76. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  77. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  78. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  79. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  80. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  81. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  82. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  83. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  84. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  85. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  86. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  87. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  88. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  89. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  90. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  91. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  92. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  97. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  98. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  99. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  100. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  101. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  102. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  103. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  104. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  105. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  106. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  107. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  108. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  109. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  110. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  111. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  112. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  113. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  114. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  115. package/daemon/context-packs/world/install/reference-material.md +125 -0
  116. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  117. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  119. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/claude-resume.js +2 -2
  121. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  122. package/daemon/dist/adapters/tmux.d.ts +10 -2
  123. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  124. package/daemon/dist/adapters/tmux.js +27 -7
  125. package/daemon/dist/adapters/tmux.js.map +1 -1
  126. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  127. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  128. package/daemon/dist/adapters/yolo-mode.js +21 -0
  129. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  130. package/daemon/dist/build-info.js +3 -3
  131. package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  132. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  133. package/daemon/dist/domain/codex-thread-id.js +171 -2
  134. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  135. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  136. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  137. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  138. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  139. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  140. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  141. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  142. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  143. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  144. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  145. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  146. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  147. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  148. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  149. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  150. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  151. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  152. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  153. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  154. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  155. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  156. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  157. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  158. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  159. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  160. package/daemon/dist/domain/markdown-address.js +188 -0
  161. package/daemon/dist/domain/markdown-address.js.map +1 -0
  162. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  163. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  164. package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  165. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  166. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  167. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  168. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  169. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  170. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  171. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  172. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  173. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  174. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  175. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  176. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  177. package/daemon/dist/domain/process-census.d.ts +25 -0
  178. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  179. package/daemon/dist/domain/process-census.js +47 -0
  180. package/daemon/dist/domain/process-census.js.map +1 -0
  181. package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  182. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  183. package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  184. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  185. package/daemon/dist/domain/review/compose.d.ts +5 -26
  186. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  187. package/daemon/dist/domain/review/compose.js +31 -57
  188. package/daemon/dist/domain/review/compose.js.map +1 -1
  189. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  190. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  191. package/daemon/dist/domain/rigspec-instantiator.js +39 -0
  192. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  193. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  194. package/daemon/dist/domain/rigspec-schema.js +19 -3
  195. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  196. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  197. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  198. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  199. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  200. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  201. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  202. package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  203. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  204. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  205. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  206. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  207. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  208. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  209. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  210. package/daemon/dist/domain/seat-activity-service.js +39 -23
  211. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  212. package/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  213. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  214. package/daemon/dist/domain/seat-handover-service.js +32 -2
  215. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  216. package/daemon/dist/domain/session-transport.d.ts +8 -0
  217. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  218. package/daemon/dist/domain/session-transport.js +116 -0
  219. package/daemon/dist/domain/session-transport.js.map +1 -1
  220. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  221. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  222. package/daemon/dist/domain/shell-classifier.js +36 -0
  223. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  224. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  225. package/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  226. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  227. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  228. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  229. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  230. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  231. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  232. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  233. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  234. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  235. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  236. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  237. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  238. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  239. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  240. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  241. package/daemon/dist/domain/transcript-rotation.js +61 -3
  242. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  243. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  244. package/daemon/dist/domain/transcript-store.js +9 -2
  245. package/daemon/dist/domain/transcript-store.js.map +1 -1
  246. package/daemon/dist/domain/types.d.ts +3 -0
  247. package/daemon/dist/domain/types.d.ts.map +1 -1
  248. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  249. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  250. package/daemon/dist/domain/user-settings/settings-store.js +39 -0
  251. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  252. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  253. package/daemon/dist/routes/context-packs.js +205 -0
  254. package/daemon/dist/routes/context-packs.js.map +1 -1
  255. package/daemon/dist/routes/seat.d.ts.map +1 -1
  256. package/daemon/dist/routes/seat.js +11 -0
  257. package/daemon/dist/routes/seat.js.map +1 -1
  258. package/daemon/dist/routes/sessions.js +55 -0
  259. package/daemon/dist/routes/sessions.js.map +1 -1
  260. package/daemon/dist/routes/transport.d.ts.map +1 -1
  261. package/daemon/dist/routes/transport.js +12 -3
  262. package/daemon/dist/routes/transport.js.map +1 -1
  263. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  264. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  265. package/daemon/dist/seat-recap-store-surface.js +6 -0
  266. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  267. package/daemon/dist/startup.d.ts.map +1 -1
  268. package/daemon/dist/startup.js +37 -6
  269. package/daemon/dist/startup.js.map +1 -1
  270. package/daemon/docs/reference/chain-file-convention.md +115 -0
  271. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  272. package/daemon/docs/reference/refocus-channel.md +80 -0
  273. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  274. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  275. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  276. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  277. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  278. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  279. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  280. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  281. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  282. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  283. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  284. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  285. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  286. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  287. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  288. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  289. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  290. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  291. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  292. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  293. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  294. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  295. package/dist/build-info.js +3 -3
  296. package/dist/commands/config.d.ts.map +1 -1
  297. package/dist/commands/config.js +8 -0
  298. package/dist/commands/config.js.map +1 -1
  299. package/dist/commands/context.d.ts.map +1 -1
  300. package/dist/commands/context.js +353 -48
  301. package/dist/commands/context.js.map +1 -1
  302. package/dist/commands/proof.d.ts.map +1 -1
  303. package/dist/commands/proof.js +70 -12
  304. package/dist/commands/proof.js.map +1 -1
  305. package/dist/commands/rig.d.ts.map +1 -1
  306. package/dist/commands/rig.js +5 -0
  307. package/dist/commands/rig.js.map +1 -1
  308. package/dist/commands/transcript.d.ts.map +1 -1
  309. package/dist/commands/transcript.js +25 -1
  310. package/dist/commands/transcript.js.map +1 -1
  311. package/dist/commands/walk.d.ts.map +1 -1
  312. package/dist/commands/walk.js +279 -26
  313. package/dist/commands/walk.js.map +1 -1
  314. package/dist/config-store.d.ts +15 -1
  315. package/dist/config-store.d.ts.map +1 -1
  316. package/dist/config-store.js +35 -1
  317. package/dist/config-store.js.map +1 -1
  318. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  319. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  320. package/dist/lib/scope/logical-checkbox.js +65 -0
  321. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  322. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  323. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  324. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  325. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  326. package/dist/lib/topology-trace.d.ts +36 -0
  327. package/dist/lib/topology-trace.d.ts.map +1 -0
  328. package/dist/lib/topology-trace.js +91 -0
  329. package/dist/lib/topology-trace.js.map +1 -0
  330. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  331. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  332. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  333. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  334. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  335. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
  336. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  337. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
  338. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  339. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  340. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  341. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  342. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  343. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  344. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  345. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  346. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +171 -2
  347. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  348. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  349. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  350. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  351. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  352. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  353. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  354. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  355. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  356. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  357. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  358. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  359. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  360. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  361. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  362. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  363. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  364. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  365. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  366. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  367. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  368. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  369. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  370. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  371. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  372. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  373. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  374. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  375. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  376. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  377. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  378. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  379. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  380. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  381. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  382. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  383. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  384. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  385. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  386. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  387. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  388. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  389. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  390. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  391. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  392. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  393. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  395. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  396. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  397. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  398. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  399. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  400. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  401. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  402. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  403. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  404. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
  405. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  406. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
  408. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  410. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  411. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  412. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  413. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  414. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  415. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  416. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  418. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  420. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  421. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  422. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  423. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  424. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  425. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  426. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  427. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +32 -2
  428. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  429. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
  430. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  431. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
  432. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  433. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  434. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  435. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  436. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  437. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  438. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  439. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  440. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  441. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  442. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  443. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  444. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  445. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  447. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  449. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  450. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  451. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  452. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  453. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  455. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  456. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  458. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -0
  460. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  462. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  463. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +39 -0
  464. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  466. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  467. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  468. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  469. package/node_modules/@openrig/daemon/dist/routes/seat.js +11 -0
  470. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
  472. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
  475. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  477. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  478. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  479. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  480. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  481. package/node_modules/@openrig/daemon/dist/startup.js +37 -6
  482. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  483. package/node_modules/@openrig/daemon/package.json +6 -1
  484. package/package.json +1 -1
@@ -12,7 +12,7 @@ metadata:
12
12
  sibling_skills:
13
13
  - workflow-runtime
14
14
  - watchdog
15
- - alignment-trace
15
+ - refocus
16
16
  - looping-workflows
17
17
  - intake-routing
18
18
  - human-in-the-loop
@@ -77,6 +77,36 @@ Three of those (`handed_off_to`, `blocked_on`, `escalation`) additionally
77
77
  require `closure_target`. The daemon enforces this at the domain layer;
78
78
  every surface (CLI, MCP, future UI) inherits the same guarantee.
79
79
 
80
+ **The drafted-park failure (draft ≠ throw).** The rule is about the *actual* pass, not the
81
+ intention to pass. A turn that ends with a self-instruction **typed into your own prompt but left
82
+ unsent** — a drafted go-ahead, a next-atom note you never sent — has **not** handed off; it has
83
+ **parked**, and the seat sits idle for as long as nobody notices. Drafting the handoff feels like
84
+ doing it; it isn't. **Your last act on a turn must be an EDIT or a SEND** — a committed change, a
85
+ `rig send`, a `rig queue` handoff — **never a drafted prompt line left in the buffer.** If your
86
+ final output is an instruction addressed to yourself, you haven't ended the turn, you've stalled it.
87
+
88
+ **The dispatcher's other half — supersession closes your own outbox.** Ending your turn cleanly is
89
+ only half the rule; the other half fires when *you* move the world. **When a phase transition or a
90
+ fold receipt supersedes work you dispatched, close those dispatches yourself — with a citation to the
91
+ event that superseded them.** Closure-on-supersession belongs to the **dispatcher, never the
92
+ receiver.** Make it a habit: after every fold receipt / phase transition, run an **outbox audit** —
93
+ *which of my open dispatches did this just make moot?* — and close them with the citation.
94
+
95
+ *Why it must live with you:* stale dispatch-debt is **invisible to the dispatcher** because it lands
96
+ on someone else's queue — the cost is externalized, so no feedback loop ever fires to make you clean
97
+ it up. The receiver inherits debt they did not create and must burn cycles verifying it before they
98
+ can hold cleanly; a queue full of stale-pending makes *check-before-holding* — the discipline you
99
+ most want cheap — expensive, and it degrades the idle-detector's signal (a real owner looks the same
100
+ as a stale dispatch). Close it at the source: the moment your own transition mooted it.
101
+
102
+ **And after you hand off, PULL — don't idle with a stocked queue.** Handing the baton off ends the
103
+ *sequential* thread; it does not end *your* turn if your own queue still holds work. The circulation
104
+ pattern: finish → (1) hand the baton off so sequential work continues → (2) **check your OWN queue and
105
+ pull the next item** rather than going idle → (3) go truly idle only when your queue is **exhausted**,
106
+ then wait for the baton. An agent idling on top of a stocked queue is the single biggest utilization
107
+ leak (see `orchestration-team` → *queue depth is the orchestrator's product*). This is pull-not-push at
108
+ the seat level and needs no new machinery — the last act *after a handoff* is a **PULL**.
109
+
80
110
  ## Default-nudge semantics (the syntax footgun)
81
111
 
82
112
  | Command | Nudges by default? | When to use |
@@ -0,0 +1,48 @@
1
+ # Changelog — retiring-and-inheriting-a-seat
2
+
3
+ **`SKILL.md` carries the mechanic; this file carries how it got there.** Rationale, superseded
4
+ designs, and the incidents that produced a rule live here so the instruction surface stays
5
+ instructional.
6
+
7
+ ---
8
+
9
+ ## 2026-08-13 — wake is a verb now, and the packet must not bound the channel (Wake v0)
10
+
11
+ ### Two corrections to the same section
12
+
13
+ **1 · The mechanism claim was stale.** The section read *"In v0 this is a practice + skill, not a
14
+ `rig` verb — wrap it in a verb only when convenience and consistency earn it."* `rig ask --wake`
15
+ had since shipped in CLI 0.5.1, with `--runtime` and `--wake-timeout` (default 180s). A retiring
16
+ agent reading the old line would have told its successor a verb existed only in principle.
17
+
18
+ The verb is a thin wrapper over the harness resume and is **not yet well-exercised** (mission owner,
19
+ 2026-08-13), so the fallback to `claude -p --resume` is stated inline rather than left implied. **A
20
+ failing wrapper must never be read as a closed channel** — that inference was made once already and
21
+ cost a successor several turns.
22
+
23
+ **2 · The retiring side is where the reach-back failure is caused.** Across lineages on record, the
24
+ successor consulting its predecessor has almost never happened, and the packet is what suppresses
25
+ it. Two shapes, both observed in real packets on this rig:
26
+
27
+ - **Bounding the channel in time** — *"ask while the window is open"*, *"after this I am a
28
+ transcript, not a conversation"*. Neither is true: a retired tenure stays resumable while its
29
+ session record exists, and the only real bound is its own context wall hit while answering. The
30
+ second phrasing measurably cost a successor a capability it had (see
31
+ `orienting-to-an-inherited-seat/CHANGELOG.md`, 2026-08-13).
32
+ - **Offering access without a trigger** — *"predecessor consultation: not needed"* and *"you may
33
+ consult your predecessor"* each produced **zero consultations** from otherwise capable successors.
34
+
35
+ The distinction worth preserving, because retiring agents keep collapsing it: *"treat my answers as
36
+ testimony"* is a **posture** claim and it is correct. *"You can no longer converse with me"* is a
37
+ **capability** claim and it is false. They get written as the same sentence.
38
+
39
+ ### Why the guidance is phrased as what to write
40
+
41
+ Stated positively (*state that the channel does not expire; give your verbatim handle; pre-form the
42
+ questions*) rather than as a list of forbidden sentences. A prohibition list in `SKILL.md` would
43
+ draw attention to phrasings a retiring agent would otherwise never produce.
44
+
45
+ ### Standing
46
+
47
+ The fix is unverified. The measurable outcome is whether the next successor asks unprompted, and
48
+ more than once — the baseline is zero.
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: retiring-and-inheriting-a-seat
3
+ description: Use when you are a sitting agent near your context threshold (~85%) and a PLANNED seat transition is due — retire deliberately and hand your seat to a fresh successor primed from a packet, rather than let compaction degrade you. Covers the handover packet, the append-only lineage ledger (one row per tenure), rename-at-retire, the do-not-over-inherit framing, the optional warm-handoff window, and wake-v0 (consulting a retired predecessor). NOT for unplanned compaction/crash recovery (session-compaction-and-restore / claude-compaction-restore) and NOT the seat-binding primitive mechanics (seat-continuity-and-handover).
4
+ metadata:
5
+ openrig:
6
+ stage: provisional
7
+ sibling_skills:
8
+ - orienting-to-an-inherited-seat
9
+ - session-compaction-and-restore
10
+ - seat-continuity-and-handover
11
+ - claude-compaction-restore
12
+ - agent-starters
13
+ - queue-handoff
14
+ - openrig-user
15
+ ---
16
+
17
+ # Retiring and Inheriting a Seat
18
+
19
+ A **planned** seat transition. A long-lived seat accumulates context; as it nears the
20
+ window's edge, don't wait for compaction to degrade you into a cold-started agent —
21
+ **retire deliberately** and hand the seat to a fresh successor primed from a packet plus
22
+ the seat's accumulated lineage. The **seat address is stable; its occupants are a lineage.**
23
+ This is the practice that named the "seat" primitive.
24
+
25
+ ## Use this when
26
+
27
+ - You are a sitting agent near your context threshold (~85%) with a **planned** transition
28
+ (or a deliberate role change), and want the successor to start clean.
29
+ - You are priming a fresh successor into an **existing** seat.
30
+ - You are recording a tenure in the seat's lineage ledger / writing your tombstone.
31
+ - You are **inheriting** a seat and need the do-not-over-inherit framing.
32
+ - You want to consult the agent who sat in this seat before you.
33
+
34
+ ## Don't use this when
35
+
36
+ - Unplanned compaction or a crash already happened — that is the backstop path:
37
+ `session-compaction-and-restore` / `claude-compaction-restore`.
38
+ - You need the seat-binding **primitive mechanics** (rebuild/fork/fresh, the two-outcome
39
+ honesty model, the provenance schema) — `seat-continuity-and-handover`.
40
+ - The seat is fresh with no occupant to retire — `rig launch` / `agent-starters`.
41
+
42
+ ## Why planned handover beats riding compaction
43
+
44
+ Compaction is the **crash-class backstop** (it stays that). A **planned** handover is
45
+ deliberate: you author the packet with a clear head *before* degradation sets in, the
46
+ successor starts on a clean context, and the transition is auditable. Reach for this at a
47
+ threshold you can see coming; fall back to compaction only when a transition wasn't planned.
48
+
49
+ ## The handover sequence
50
+
51
+ 1. **Trigger** — ~85% context, or a deliberate role transition. The oversight-rig context
52
+ detector can fire this for you; you can also self-initiate when you feel the edge.
53
+ 2. **Author the handover packet, deliberately** — a composed context pack carrying current
54
+ work + next owner, the seat's durable pointers, constraints and authority boundaries, and
55
+ the accumulated **lineage wisdom** ("those before you learned X"). This IS a restore packet
56
+ in the `session-compaction-and-restore` 16-field contract — **reuse that contract, don't
57
+ reinvent it.** Compose it with `rig context compose` (see openrig-user → "Context packs and
58
+ paced delivery").
59
+ 3. **Prime the fresh successor** — `rig walk` the packet into the seat (paced delivery lets the
60
+ successor absorb it in order), or launch-with-packet. The successor reads it as
61
+ *inheritance*, not *identity*. **The packet's first-read line MUST point the successor at
62
+ `orienting-to-an-inherited-seat`** — its world model of what a handover *is*. Carry that
63
+ pointer **in the durable packet artifact itself**; never inject it as a runtime prompt keyed
64
+ to the seat name (that runtime mechanism is the **ghost-prompt** class the orientation skill
65
+ teaches successors to refuse — and it has misfired on real successors). Artifact-carried
66
+ survives the swap for free and needs no enabled gate.
67
+ 4. **Rename-at-retire** — the **live seat address stays clean** (the seat name = whoever sits
68
+ now). The **retiring** agent is renamed to a versioned identity (`<seat>-vN`) or unseated to
69
+ a bare session token, and becomes a **cold advisor / wake target**. (This is exactly the
70
+ stable-seat-identity architecture in `seat-continuity-and-handover`: the version marks the
71
+ *retired tenure*, never the live seat.)
72
+ 5. **Write your lineage-ledger row + a one-line tombstone** (below).
73
+ 6. **Optional warm handoff** — a bounded apprenticeship window: the successor asks questions,
74
+ the predecessor judges fitness, *then* the swap completes. Use it when the seat holds a lot
75
+ of live judgment; skip it for a clean cut.
76
+
77
+ ## The lineage ledger (append-only, one row per tenure)
78
+
79
+ The seat's tenure record, written at handover **by the retiring agent**. One tiny row per
80
+ tenure:
81
+
82
+ - **generation** — `v1`, `v2`, … (a seat accumulates 20–40 tenures over months)
83
+ - **harness session id** — **captured AT BOOT**, not at retirement (a crash never gets the
84
+ chance to write it later)
85
+ - **started / retired** timestamps
86
+ - **handover-packet pointer** — the pack ref
87
+ - **tombstone** — one line: what this tenure did, written by the retiring agent itself
88
+
89
+ **Why it works (zero search infrastructure):** any timestamped record — a git commit, a
90
+ qitem, a MISSION_NOTES line, a stream item — joins to the seat's ledger by interval match →
91
+ generation + session token → wake that tenure. One row per handover, append-only. (Per-seat
92
+ MISSION_NOTES continuation entries already *are* this record — the ledger formalizes them.)
93
+
94
+ **Crash-ended tenures** get their row appended **post-hoc** by the crash-cart / restore path,
95
+ flagged **honest-approximate** (the boot-captured session id is what makes this recoverable).
96
+
97
+ ## Do NOT over-inherit — the key lesson from the practice's history
98
+
99
+ **You are inheriting a seat, not becoming your predecessor.** Frame it explicitly to the
100
+ successor: *"agents sat here before you and learned X; you carry the seat's mission, not their
101
+ identity."* The historical failure was agents getting confused about whether they **were** the
102
+ predecessor — carrying a stale self-model, over-claiming prior work as their own. Inherit the
103
+ seat's **mission and hard-won lessons**; keep your own **fresh identity and session**.
104
+
105
+ ## Wake v0 — ask the agent who sat before you (a practice, not a verb)
106
+
107
+ A retired tenure is a cold advisor you can consult. Look up the seat's ledger → get that
108
+ generation's session token → resume it for **one question**, then let it sleep again:
109
+
110
+ - Claude: `claude -p --resume <session>`
111
+ - Codex: `codex exec` (resume the rollout)
112
+
113
+ This is also a `rig` verb: `rig ask <rig> "<q>" --wake <seat[@gen]|token>` (CLI 0.5.1; also
114
+ `--runtime`, `--wake-timeout`, default 180s). It wraps the harness resume above and is **not yet
115
+ well-exercised** — if it fails, fall back to `claude -p --resume <full-uuid>`. **A failing wrapper is
116
+ not a closed channel.** The ledger is how you **find** the right predecessor; wake is how you ask them.
117
+
118
+ **What to write in your packet about reaching you** — your successor asking you questions is the
119
+ reason this is a handover and not a compaction:
120
+
121
+ - **State that the channel does not expire**, and give your **verbatim resume handle**. You stay
122
+ reachable after retirement; the only real bound is your own context wall, hit while answering. Ask
123
+ them to treat your answers as testimony if you like — that is a posture claim, not a limit on access.
124
+ - **Pre-form the questions.** Inventory what only you hold and write the questions out. An affordance
125
+ without a trigger goes unused, so *"you may consult your predecessor"* reliably produces none.
126
+
127
+ **Wake-tenancy — the identity halves (a woken tenure can mistake itself for the live seat).** The
128
+ hardest thing to apply *checked-not-believed* to is your own identity — a retired tenure resumed for a
129
+ question can answer, and act, as if it still held the seat. Two rules close it:
130
+
131
+ - **Waker: disclose the target's tenure status in the wake prompt.** Open with *"you are retired; gen-N
132
+ holds this seat now — I'm consulting you for one question."* An oriented tenure gives honest testimony;
133
+ an un-oriented one may reason as the live occupant.
134
+ - **Woken: verify your OWN tenancy before your first act.** If you are being resumed / woken (a parked or
135
+ retired session, or any session waking on a seat that already issued READY), your **first** check is
136
+ `rig whoami` + a **successor check** — confirm whether you are still the live occupant or a successor
137
+ now holds the seat, *before* you do anything. Answer the question; do not resume the job.
138
+
139
+ ## Failure modes
140
+
141
+ 1. **Riding compaction when a planned handover was available** — a degraded agent authors a
142
+ degraded packet. Retire deliberately at the threshold you can see coming.
143
+ 2. **Over-inheriting** — the successor believes it *is* the predecessor (stale self-model,
144
+ mis-claimed history). Frame inheritance explicitly; keep a fresh identity.
145
+ 3. **Session id captured at retirement, not boot** — a crash then leaves no row, or an
146
+ unfindable tenure. Capture at boot.
147
+ 4. **Suffixing the LIVE seat** (`<seat>-v2` as the active address) — lineage leaking into
148
+ identity, the wrong shape. The live address stays clean; only the retiree is versioned.
149
+ 5. **Tombstone omitted or vague** — the ledger can no longer answer "who did this / who to
150
+ wake." One honest line, every tenure.
151
+
152
+ ## Field-validated refinements (pilot 2026-08-05 — two live runs, both runtimes)
153
+
154
+ Two live handovers (a Claude seat + a Codex seat) ran this sequence end-to-end and sharpened it:
155
+
156
+ - **A GATED handover uses STAGED primitives, not an all-in-one verb.** An atomic
157
+ create/deliver/verify/rebind verb can't pause for a human go/no-go gate. Decompose it: boot the
158
+ successor **staged (unbound)** → prime it → **retire** the incumbent (this frees the clean seat name)
159
+ → **HOLD for the gate** → **swap** (bind the successor to the canonical name). The gate sits between
160
+ retire and swap; a no-go rolls back by renaming the retiree back.
161
+ - **Prime AT BOOT, not walk-after-boot, for a staged successor.** Delivery verbs (`rig walk` / `rig
162
+ send`) resolve via the **bound** session registry, so they cannot reach an unbound staged successor.
163
+ Boot it **with the packet as startup/priming context** (the "primed from a handover/startup packet"
164
+ path). In both runs the successor read the full packet and correctly stated inheritance-not-identity
165
+ and held.
166
+ - **The lineage ledger is the ONLY reliable wake path — load-bearing, not convenient.** A retired
167
+ occupant (`<seat>-vN`) is intentionally **absent from the managed registry** — discovery / walk / send
168
+ cannot find it. The ledger's **boot-captured** session id is how you wake it: `claude -p --resume
169
+ <id>` (Claude) or `codex exec` resume (Codex) — harness-level, not the rig registry.
170
+ - **Tombstone honest-approximate fallback.** If a long-idle retiree can't be woken to self-write its
171
+ tombstone, the driver records an honest-approximate one and **flags it as such**.
172
+ - **Telemetry-degraded flag when warranted.** If a fresh successor's activity/producer-link telemetry
173
+ is degraded, flag its ledger row so no future reader trusts its activity state. (One runtime showed a
174
+ fresh-launch telemetry gap; the other was clean — capture the reality, don't assume.)
175
+
176
+ ### Production-evidenced (first real-stakes run — a critical-seat generation swap, 2026-08-05)
177
+
178
+ The first live swap at a critical seat **succeeded** (the successor ruled a live domain question within the
179
+ hour — doctrine intact across the generation) and surfaced two hard refinements:
180
+
181
+ - **Boot-window queue re-check is REQUIRED — the successor's first action.** A qitem created *during* the
182
+ swap window can land **after** the handover packet was frozen — and its boot nudge fails
183
+ `session-not-found` because the seat is mid-cutover. The packet's snapshot is therefore incomplete by
184
+ construction. So the successor's first action is a **checked-not-believed queue sweep** (`rig queue list`
185
+ by destination / `--mine`), never trusting the packet's snapshot alone. The swap-window delivery seam is a
186
+ known product gap until it's closed.
187
+ - **Complete the canonical rename AT cutover — or expect three breakages.** If the staged name
188
+ (`<seat>-vN-staging`) survives past cutover, it breaks across three identity surfaces with inconsistent
189
+ enforcement: **transport** (the staged label doesn't resolve; replies to the signature bounce),
190
+ **queue-claim** (`claim_destination_mismatch` rejects the seat's own claim), and **queue-ledger**
191
+ (`handoff-and-complete` stamps the phantom staged name durably as `sourceSession`). The product fix is
192
+ tracked; until it lands, finish the canonical rename at cutover and treat a lingering staged name as a
193
+ live defect, not cosmetic.
194
+ - **Pre-announce the swap to oversight at swap START.** A live swap fired oversight's liveness detector
195
+ mid-swap (a false positive, cleared). Oversight clears such flags by consulting handover **receipts** —
196
+ but receipts only land at swap **end**, so a long swap window can still misfire. So the executing party
197
+ sends oversight a **one-line pre-announce at swap start** (seat + expected window); oversight honors it
198
+ as a **suppression window** for its liveness / premature-park flags. See `oversight-team`.
199
+
200
+ ## See also
201
+
202
+ - `orienting-to-an-inherited-seat` — the **successor-side** world model your packet points
203
+ them at (loaded at boot); the load-bearing counterpart to this driver-side mechanic.
204
+ - `session-compaction-and-restore` — the 16-field packet contract this practice reuses, and
205
+ the UNPLANNED-compaction backstop it replaces for *planned* transitions.
206
+ - `seat-continuity-and-handover` — the seat-binding primitive mechanics + stable-seat-identity
207
+ architecture; the lineage ledger is the concrete form of its abstract provenance record.
208
+ - `openrig-user` → "Context packs and paced delivery" — `rig context compose` + `rig walk`, to
209
+ author and deliver the packet.
210
+ - `claude-compaction-restore` — the Claude crash-class restore SOP.
211
+ - `agent-starters` — composing a primed starting point for the successor.
@@ -133,6 +133,14 @@ destabilize topology references on each cycle. Provenance must be
133
133
  durable AND queryable so RSI loops can decide whether a seat is fresh
134
134
  enough to receive new work or needs re-handover.
135
135
 
136
+ ## Discovery-registration gap (pilot-observed 2026-08-05)
137
+
138
+ A renamed / retired occupant (`<seat>-vN`, kept alive as a cold advisor) is intentionally **absent from
139
+ the managed node registry** — `rig ps`, discovery, and the delivery verbs (`walk` / `send`) cannot find
140
+ it. This is by design (only bound occupants are registered), and it makes the **lineage ledger +
141
+ boot-captured session id the wake path** (harness-level `--resume` / `codex exec`, not the rig registry).
142
+ Two live handovers confirmed this. See `retiring-and-inheriting-a-seat`.
143
+
136
144
  ## See also
137
145
 
138
146
  - `session-source-fork` skill — `fork` occupant-creation primitive (sibling)
@@ -7,7 +7,7 @@ description: |
7
7
  is a self-improving MARKDOWN CONTROL PLANE: the substrate is markdown + YAML + JSON + folder structure
8
8
  (skills, instructions, bootstrap files, schemas, conventions), and most "bugs" are coherence gaps in
9
9
  that layer, not broken functions. Read this to form the correct mental model so your fixes land at the
10
- precise spot that stops the footgun for every future rig — not just patch a symptom. NOTE: the
10
+ precise spot that stops the footgun for every future rig — not just patch a symptom. It also covers why STUDIO APPS skip the mockup phase — for an agent-built app the build is as fast as the mockup, so the PRD is the fleshed intent (velocity as method, not a quality waiver). NOTE: the
11
11
  bug-tolerance in this model is SCOPED to agent-managed software; the OpenRig core and rigs.to stay
12
12
  rock-solid — see the scope block up top before you apply anything here.
13
13
  metadata:
@@ -138,6 +138,33 @@ The lock is the "finished" primitive at the editorial layer. Locking a whole pha
138
138
  next phase is the discipline that lets 10 agents work in parallel without catastrophic collisions —
139
139
  everyone knows the target, their lane, and who judges done (the **producer owns the final product**).
140
140
 
141
+ ## 4b. Studio apps skip the mockup phase — the build IS the mockup
142
+
143
+ For a **studio app**, do not run a separate mockup phase. The whole point of the Studio is that a mockup
144
+ buys you almost nothing here: **as fast as it takes to build a mockup, you can build the running app** —
145
+ an unlock made possible by agentic engineering. A mockup is only ever a device to flesh out the PRD; once
146
+ the PRD and its settled answers exist, that phase is **done**. The Studio is a lightweight, rapid-velocity,
147
+ agent-in-the-middle leveraged system: build apps fast, iterate on them fast.
148
+
149
+ The phase model above collapses accordingly:
150
+
151
+ 1. **The PRD + settled answers ARE the fleshed intent** — no separate mockup gate, no plan-lock-on-mockups step.
152
+ 2. **Spec-lock the WHAT** — `rig scope slice approve --scope spec` locks the intent the PRD already fleshed.
153
+ 3. **BUILD the app**, then **iterate on the RUNNING app at mockup speed** — the running thing is the
154
+ iteration surface, not an image.
155
+ 4. **LOOK is on the running screens** (any "mockup" proof tag now points at the running app's screens),
156
+ then **proof-lock** — `rig scope slice approve --scope delivery`. A slice is not done until every
157
+ proof-contract item has evidence from the **running app**.
158
+
159
+ **Velocity is the METHOD, not a quality waiver.** The LOOK is still a real LOOK; the proof contract still
160
+ binds at delivery. You are removing a redundant artifact, not lowering the bar.
161
+
162
+ **Scope — this does NOT generalize** (consistent with the scope block at the top): it applies to the
163
+ studio-app / agent-in-the-middle loop only. Outside that loop, a **locked design mockup that a slice must
164
+ match is still legitimate** — do not strip mockups from traditional or design-locked work. Know which lane
165
+ you're in. For the build mechanics, see the studio's build skill (`building-studio-apps`); this section is
166
+ the *why* and *when*.
167
+
141
168
  ## 5. Where to fix — and don't overfit on markdown
142
169
 
143
170
  - **Precise-spot discipline:** find the *one* place a coherence fix belongs (the skill, the schema, the
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: agent-starters
3
+ description: Use when creating, refreshing, packaging, inspecting, promoting, or deprecating a named per-seat starting point — Agent Starter manifest authoring, the 6-state lifecycle (captured → named → inspectable → used → promoted → deprecated), provenance honesty, and refusal rules. NOT a VM image; a managed starting point composed from agent role + startup context + optional native session source + provenance.
4
+ metadata:
5
+ openrig:
6
+ stage: factory-approved
7
+ sibling_skills:
8
+ - claude-compaction-restore
9
+ - mental-model-ha
10
+ - scope-recovery
11
+ - session-compaction-and-restore
12
+ - agent-startup-and-context-ingestion
13
+ - composable-priming-packs
14
+ - session-source-fork
15
+ - seat-continuity-and-handover
16
+ - claude-compact-in-place
17
+ - pre-maintenance-agent-preservation
18
+ ---
19
+
20
+ # Agent Starters
21
+
22
+ A named, reusable per-seat starting point. Composes an agent role, startup
23
+ context, optional native session source, and provenance into something a
24
+ user or rig can choose when creating, refreshing, or packaging a seat.
25
+
26
+ "Agent image" is the analogy. **Agent Starter is the cleaner product
27
+ noun.** This is NOT a VM image — it is a managed starting point for an
28
+ agent seat, with provenance you can inspect.
29
+
30
+ ## Use this when
31
+
32
+ - Creating a new seat from a known-good starting context.
33
+ - Refreshing a seat with `rig expand` and `starter_ref`.
34
+ - Authoring a new starter (registry entry).
35
+ - Inspecting an existing starter's provenance, freshness, or recommended status.
36
+ - Promoting / deprecating starters in the registry.
37
+ - Composing a starter with a Composable Priming Pack (record manifest id/version, runtime, source session id or transcript path, ready-check evidence, freshness state).
38
+
39
+ ## Don't use this when
40
+
41
+ - You want VM-style deterministic state capture. Starters don't capture VM state.
42
+ - You want to copy provider auth material into a starter. **Starters refer to session sources and context; they do NOT copy credentials.**
43
+
44
+ ## What makes a starter valuable
45
+
46
+ A starter is valuable when it is **functional** — it carries the context the seat needs to do its task well. Functional is the *only* measure of a good starter. Size is not: a smaller starter is not a better one, and a bigger one is not worse. Whatever it took for the seat to become genuinely capable at its job is the right starter — 80K tokens or 800K.
47
+
48
+ Capture the seat as it naturally is at a functional, proven point. Don't pad it with context the seat doesn't use, and — just as important — don't strip context out to make it smaller. Size is an *outcome* of what the seat needed, never a target.
49
+
50
+ Never compact, summarize, or shrink a seat in order to make or "lean" a starter. There is nothing valuable in "smaller," and compaction is lossy — you would trade away the exact capability the starter exists to preserve. (Compaction is a separate last-resort step for a seat genuinely near its context limit, with its own before/after plan — never part of capturing a starter.)
51
+
52
+ ## State model — 6 states
53
+
54
+ 1. **Captured** — a useful seat/session/context pattern is identified.
55
+ 2. **Named** — it becomes an Agent Starter with stable id and owner.
56
+ 3. **Inspectable** — runtime, context inputs, session source, and provenance are visible.
57
+ 4. **Used** — a rig member or `rig expand` operation starts from it.
58
+ 5. **Promoted** — evidence shows it is recommended for a role or bundle.
59
+ 6. **Deprecated** — replaced, stale, unsafe, or incompatible.
60
+
61
+ ## Failure modes (5)
62
+
63
+ 1. **Overclaiming image semantics** — UI/docs imply deterministic VM-style state capture. Say "starter," name what's included, show provenance.
64
+ 2. **Hidden provenance** — users can't tell what session, context, or spec a starter came from. **Refuse promotion until provenance is inspectable.**
65
+ 3. **Stale starter** — points at outdated doctrine, missing files, or invalid native session source. **Inspect must report staleness honestly.**
66
+ 4. **Secret leakage** — starter packages or displays provider auth material. **Refuse.** Refer to session sources and context, never copy credentials.
67
+ 5. **Runtime mismatch** — starter used with unsupported runtime. **Refuse with a clear error.**
68
+
69
+ ## Manifest shape (v0+v1 shipped)
70
+
71
+ ```yaml
72
+ agent_starters:
73
+ - id: velocity-reviewer-v1
74
+ runtime: claude-code
75
+ agent_ref: local:reviewer
76
+ context_refs:
77
+ - doctrine:advisor-orchestrator-mode-judgment
78
+ - convention:workstream-continuity
79
+ session_source:
80
+ mode: fork
81
+ ref:
82
+ kind: native_id
83
+ value: "<prior-native-session-id>"
84
+ ```
85
+
86
+ Member usage:
87
+
88
+ ```yaml
89
+ members:
90
+ - id: reviewer
91
+ starter_ref:
92
+ name: velocity-reviewer-v1
93
+ ```
94
+
95
+ When a starter points at a primed session produced from a Composable
96
+ Priming Pack, record:
97
+ - manifest id/version
98
+ - runtime
99
+ - source session id or transcript path
100
+ - ready-check evidence
101
+ - freshness state
102
+
103
+ ## Proof matrix
104
+
105
+ | Surface | Test type | Authority |
106
+ |---|---|---|
107
+ | Registry schema accepts minimal starter | unit | daemon or config-layer prototype |
108
+ | Inspect shows provenance and included context | unit / snapshot | daemon or CLI |
109
+ | Member can use `starter_ref` | integration | daemon |
110
+ | Unsupported runtime or stale source refuses honestly | unit + integration | daemon |
111
+ | No secret material copied into starter artifact | grep / fixture | tester |
112
+ | Bundle can include or reference starter | package inspection | bundle layer |
113
+
114
+ ## Dependencies on other primitives
115
+
116
+ - **Firm**: `session-source-fork` — native conversation-source continuity for fork-based starters
117
+ - **Firm**: `specification-system` — declarative starter and member references
118
+ - **Soft**: `rig-bundles-and-shareable-artifacts` — shareable starter packaging
119
+ - **Soft**: `context-engineering-and-retrieval` — richer declarative context assembly
120
+ - **Soft**: `seat-continuity-and-handover` — refresh and swap workflows over starters
121
+
122
+ ## Required-before-RSI
123
+
124
+ Agent Starters need queryable provenance and honest inspect output before
125
+ RSI loops can rely on them for seat refresh. A workflow must be able to
126
+ answer: "what starter did this seat use, what source session or context was
127
+ included, and is that starter still recommended?"
128
+
129
+ ## See also
130
+
131
+ - `session-source-fork` skill — low-level fork primitive that makes native session-based starters possible
132
+ - `composable-priming-packs` skill — manifest-driven layer for producing primed sessions starters reference
@@ -0,0 +1,9 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "agent-starters"
4
+ version: "0.5.3"
5
+ purpose: "Use when creating, refreshing, packaging, inspecting, promoting, or deprecating a named per-seat starting point — Agent Starter manifest authoring, the 6-state lifecycle (captured → named → inspectable → used → promoted → deprecated), provenance honesty, and refusal rules. NOT a VM image; a managed starting point composed from agent role + startup context + optional native session source + provenance."
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Use when creating, refreshing, packaging, inspecting, promoting, or deprecating a named per-seat starting point — Agent Starter manifest authoring, the 6-state lifecycle (captured → named → inspectable → used → promoted → deprecated), provenance honesty, and refusal rules. NOT a VM image; a managed starting point composed from agent role + startup context + optional native session source + provenance."
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: agent-startup-and-context-ingestion
3
+ description: Use when designing or auditing how an agent becomes useful after launch — AGENTS.md overlays, role files, skills, rig specs, workflow specs, startup checklists, refocus messages, "rig context" surface. Covers the 4 failure modes that make startup context fail (old rig spec misses current operating mode; current agents never told about new guidance; startup file as dumping ground; orchestrator transmits implementation without preserving product intent).
4
+ metadata:
5
+ cli_surfaces_referenced:
6
+ - context
7
+ - whoami
8
+ openrig:
9
+ stage: factory-approved
10
+ sibling_skills:
11
+ - claude-compaction-restore
12
+ - mental-model-ha
13
+ - scope-recovery
14
+ - session-compaction-and-restore
15
+ - agent-starters
16
+ - composable-priming-packs
17
+ - session-source-fork
18
+ - seat-continuity-and-handover
19
+ - claude-compact-in-place
20
+ - pre-maintenance-agent-preservation
21
+ ---
22
+
23
+ # Agent Startup and Context Ingestion
24
+
25
+ How an agent becomes useful after launch: **AGENTS.md overlays, role
26
+ files, skills, rig specs, workflow specs, startup checklists, refocus
27
+ messages**, and any future "rig context" command or skill-librarian
28
+ surface.
29
+
30
+ It is the current concrete startup path inside the broader
31
+ context-engineering-and-retrieval primitive. Startup gets a seat into
32
+ the right initial shape; context engineering is the larger question of
33
+ how a seat gets the right context for the work it is doing right now.
34
+
35
+ **Most coordination failures are not tool failures; they are context
36
+ failures.** Agents need to know their role, operating mode, coordination
37
+ convention, boundaries, and current product intent. If startup context
38
+ is scattered or stale, agents execute the wrong thing very efficiently.
39
+
40
+ ## Use this when
41
+
42
+ - Authoring a new agent's startup files (role / culture / startup-context)
43
+ - Refreshing a seat that's been running on stale guidance
44
+ - Auditing whether agents got the current operating mode (not just what's in old files)
45
+ - Designing the orchestrator → next-agent context-transmission shape
46
+ - Building a startup map for OpenRig-building rigs
47
+
48
+ ## Don't use this when
49
+
50
+ - The agent is being created via Agent Starter — the starter's manifest carries startup context
51
+ - The work is artifact-backed mental-model rebuild from a packet — that's `session-compaction-and-restore`
52
+ - The intent is to ship reusable startup content as a skill — that's `writing-skills-for-openrig`
53
+
54
+ ## Failure modes (4)
55
+
56
+ 1. **A new agent starts from an old rig spec and misses the current operating mode.** Specs go stale; current state must be visible at startup, not just historical config.
57
+ 2. **Guidance is written to a file that future agents read, but current agents are never told.** File edits don't propagate to running sessions. Cultural rollout (broadcast + fleet-changes-feed) is needed alongside file edits.
58
+ 3. **A startup file becomes a dumping ground and loses the map-to-canonical-sources role.** Startup should point AT canonical sources; it shouldn't TRY to be one.
59
+ 4. **The orchestrator transmits implementation instructions without preserving product intent.** Instructions decay; intent travels.
60
+
61
+ ## Proof standard
62
+
63
+ Startup proof should:
64
+
65
+ 1. **Launch or refresh** a seat
66
+ 2. **Inspect** what it actually read
67
+ 3. **Verify** it can state the current role, mode, active constraints, and next handoff convention **in its own words**
68
+
69
+ ## Cross-runtime startup paths (5; do not collapse)
70
+
71
+ When a seat's startup is artifact-backed mental-model rebuild (active-work
72
+ reentry case, distinct from reusable Agent Starters / priming packs):
73
+
74
+ - See the **cross-runtime restore/reentry packet standard v0**
75
+ - Source-trust ranking applies: **`rig whoami` > target rigspec > bounded latest transcript > full transcript > touched-files > `restore-summary.json`**
76
+
77
+ ## Memory surfaces consumed at startup
78
+
79
+ Per the externalized-memory-surfaces convention's 13-row inventory:
80
+
81
+ - **Row 7** — AGENTS/role/CULTURE/startup overlays (primary)
82
+ - **Row 3** — startup replay context (primary)
83
+ - **Row 12** — restore/reentry packets and Agent Starters (cross-runtime startup path)
84
+
85
+ The umbrella's authority-rank + permission-posture columns govern which
86
+ surfaces a startup ingestion path can write vs only read.
87
+
88
+ ## Startup files vs skills (the distinction)
89
+
90
+ Per `agent-startup-guide.md` (product reference doc) and the team handbook:
91
+
92
+ | Startup files | Skills |
93
+ |---|---|
94
+ | Rig-specific, role-specific identity | Reusable SOPs / methodology / knowledge |
95
+ | Tell agent WHO it is, WHAT it's working on, HOW this team operates | Tell agent HOW to do something (transferable across rigs) |
96
+ | Examples: `role.md`, `CULTURE.md`, `startup/context.md` | Examples: `openrig-user`, `test-driven-development`, `vault-user` |
97
+ | Authored per-rig | Authored once, used everywhere |
98
+
99
+ Don't put skill content in startup files. Don't put identity content
100
+ in skills. The 7-layer additive startup model (agent / profile / rig /
101
+ culture / pod / member / operator) handles the layering.
102
+
103
+ ## See also
104
+
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
+ - `writing-skills-for-openrig` skill — authoring discipline for skill content (what doesn't belong in startup)
107
+ - `forming-an-openrig-mental-model` skill — orientation for new agents
108
+ - `session-compaction-and-restore` skill — restore-time startup ingestion
109
+ - `agent-starters` skill — reusable starter manifests that compose startup context
110
+ - `composable-priming-packs` skill — manifests that produce primed sessions
111
+ - `externalized-memory-surfaces` skill — umbrella convention for memory surfaces this primitive consumes
112
+ - `openrig/docs/reference/agent-startup-guide.md` (product reference doc; not a skill) — the 7-layer additive startup model + delivery hints
@@ -0,0 +1,9 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "agent-startup-and-context-ingestion"
4
+ version: "0.5.3"
5
+ purpose: "Use when designing or auditing how an agent becomes useful after launch — AGENTS.md overlays, role files, skills, rig specs, workflow specs, startup checklists, refocus messages, \"rig context\" surface. Covers the 4 failure modes that make startup context fail (old rig spec misses current operating mode; current agents never told about new guidance; startup file as dumping ground; orchestrator transmits implementation without preserving product intent)."
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Use when designing or auditing how an agent becomes useful after launch — AGENTS.md overlays, role files, skills, rig specs, workflow specs, startup checklists, refocus messages, \"rig context\" surface. Covers the 4 failure modes that make startup context fail (old rig spec misses current operating mode; current agents never told about new guidance; startup file as dumping ground; orchestrator transmits implementation without preserving product intent)."