@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
@@ -0,0 +1,48 @@
1
+ ---
2
+ skill: using-superpowers
3
+ openrig-relationship: vendored-modified
4
+ ---
5
+
6
+ # OpenRig and this skill
7
+
8
+ ## Origin
9
+
10
+ - **Upstream**: Obra Superpowers (https://github.com/obra/superpowers)
11
+ - **Vendoring pattern**: `modify-the-file`
12
+ - **Last upstream check**: 2026-05-13 (diff against plugin source pulled 2026-05-11)
13
+
14
+ ## How OpenRig uses this skill
15
+
16
+ `using-superpowers` is the catalog-aware "always reach for a skill before answering" bootstrap. It's loaded into every OpenRig agent's startup context to enforce the discipline that skills must be invoked through the `Skill` tool (not Read'd directly), and that the agent should pattern-match descriptions against the work at hand before producing free-form output.
17
+
18
+ ## OpenRig-specific modifications
19
+
20
+ | Surface | Upstream | OpenRig |
21
+ |---|---|---|
22
+ | `<SUBAGENT-STOP>` block | Skip the skill if dispatched as a subagent | **Removed.** OpenRig doesn't use the upstream subagent-dispatch pattern; this directive doesn't fit the rig/pod/seat topology. |
23
+ | Instruction Priority section | 3-tier priority: user > skills > system | **Removed.** OpenRig handles priority at the AgentSpec + agent-startup-content layer, not inside this skill. |
24
+ | Platform-specific sections (Copilot CLI, Gemini CLI) | Each platform gets its own paragraph for how to access skills | **Removed.** OpenRig targets Claude Code + Codex specifically. The Claude Code paragraph is preserved. |
25
+ | Platform Adaptation section | Points to `references/copilot-tools.md` and `references/codex-tools.md` for tool mapping | **Removed.** OpenRig agents don't need the upstream tool-mapping references; the rig spec lists tools directly. |
26
+
27
+ ## Why these modifications (inferred)
28
+
29
+ - **Topology mismatch**: OpenRig's subagent model is the rig/pod/seat structure, not the upstream's "dispatch a subagent" pattern. The `<SUBAGENT-STOP>` block would silently skip the skill in seats that should be loading it.
30
+ - **OpenRig is opinionated about target runtimes**: Claude Code + Codex are the supported pair. Multi-platform copy adds cognitive overhead without product value for OpenRig users.
31
+ - **Priority lives at the spec layer**: OpenRig's AgentSpec + startup content (role.md, guidance/, CULTURE.md) is where instruction precedence is encoded; baking it into this skill duplicates the layering.
32
+
33
+ ## Companion files
34
+
35
+ None. (Upstream ships `references/copilot-tools.md` and `references/codex-tools.md` but these reference the upstream Copilot tool surface, not OpenRig's. They are not vendored.)
36
+
37
+ ## When to re-sync upstream
38
+
39
+ Watch upstream for:
40
+
41
+ - Changes to the core "always invoke a skill" discipline (the heart of the skill).
42
+ - New platforms upstream supports that OpenRig might also want to support — would need to add a corresponding paragraph here.
43
+
44
+ When upstream changes:
45
+
46
+ 1. Pull non-conflicting changes into the OpenRig copy.
47
+ 2. Do NOT re-introduce the multi-platform sections, SUBAGENT-STOP block, or Instruction Priority section unless operator direction reverses.
48
+ 3. Bump `last_upstream_check` in `SKILL.md` frontmatter.
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: using-superpowers
3
+ description: Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
4
+ metadata:
5
+ openrig:
6
+ vendored_from: "Obra Superpowers (https://github.com/obra/superpowers)"
7
+ vendoring_pattern: modify-the-file
8
+ last_upstream_check: "2026-05-13 (diff against plugin source pulled 2026-05-11)"
9
+ divergence_notes: |
10
+ Removed multi-platform-specific sections (Copilot CLI, Gemini CLI,
11
+ Platform Adaptation) — OpenRig targets Claude Code + Codex. Removed
12
+ the SUBAGENT-STOP block and Instruction Priority section — OpenRig
13
+ handles those concerns at the rig/agent-spec layer.
14
+ See OPENRIG.md for full divergence details.
15
+ ---
16
+
17
+ <EXTREMELY-IMPORTANT>
18
+ If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
19
+
20
+ IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
21
+
22
+ This is not negotiable. This is not optional. You cannot rationalize your way out of this.
23
+ </EXTREMELY-IMPORTANT>
24
+
25
+ ## How to Access Skills
26
+
27
+ **In Claude Code:** Use the `Skill` tool. When you invoke a skill, its content is loaded and presented to you—follow it directly. Never use the Read tool on skill files.
28
+
29
+ **In other environments:** Check your platform's documentation for how skills are loaded.
30
+
31
+ # Using Skills
32
+
33
+ ## The Rule
34
+
35
+ **Invoke relevant or requested skills BEFORE any response or action.** Even a 1% chance a skill might apply means that you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
36
+
37
+ ```dot
38
+ digraph skill_flow {
39
+ "User message received" [shape=doublecircle];
40
+ "About to EnterPlanMode?" [shape=doublecircle];
41
+ "Already brainstormed?" [shape=diamond];
42
+ "Invoke brainstorming skill" [shape=box];
43
+ "Might any skill apply?" [shape=diamond];
44
+ "Invoke Skill tool" [shape=box];
45
+ "Announce: 'Using [skill] to [purpose]'" [shape=box];
46
+ "Has checklist?" [shape=diamond];
47
+ "Create TodoWrite todo per item" [shape=box];
48
+ "Follow skill exactly" [shape=box];
49
+ "Respond (including clarifications)" [shape=doublecircle];
50
+
51
+ "About to EnterPlanMode?" -> "Already brainstormed?";
52
+ "Already brainstormed?" -> "Invoke brainstorming skill" [label="no"];
53
+ "Already brainstormed?" -> "Might any skill apply?" [label="yes"];
54
+ "Invoke brainstorming skill" -> "Might any skill apply?";
55
+
56
+ "User message received" -> "Might any skill apply?";
57
+ "Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];
58
+ "Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
59
+ "Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";
60
+ "Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
61
+ "Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];
62
+ "Has checklist?" -> "Follow skill exactly" [label="no"];
63
+ "Create TodoWrite todo per item" -> "Follow skill exactly";
64
+ }
65
+ ```
66
+
67
+ ## Red Flags
68
+
69
+ These thoughts mean STOP—you're rationalizing:
70
+
71
+ | Thought | Reality |
72
+ |---------|---------|
73
+ | "This is just a simple question" | Questions are tasks. Check for skills. |
74
+ | "I need more context first" | Skill check comes BEFORE clarifying questions. |
75
+ | "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
76
+ | "I can check git/files quickly" | Files lack conversation context. Check for skills. |
77
+ | "Let me gather information first" | Skills tell you HOW to gather information. |
78
+ | "This doesn't need a formal skill" | If a skill exists, use it. |
79
+ | "I remember this skill" | Skills evolve. Read current version. |
80
+ | "This doesn't count as a task" | Action = task. Check for skills. |
81
+ | "The skill is overkill" | Simple things become complex. Use it. |
82
+ | "I'll just do this one thing first" | Check BEFORE doing anything. |
83
+ | "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
84
+ | "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
85
+
86
+ ## Skill Priority
87
+
88
+ When multiple skills could apply, use this order:
89
+
90
+ 1. **Process skills first** (brainstorming, debugging) - these determine HOW to approach the task
91
+ 2. **Implementation skills second** (frontend-design, mcp-builder) - these guide execution
92
+
93
+ "Let's build X" → brainstorming first, then implementation skills.
94
+ "Fix this bug" → debugging first, then domain-specific skills.
95
+
96
+ ## Skill Types
97
+
98
+ **Rigid** (TDD, debugging): Follow exactly. Don't adapt away discipline.
99
+
100
+ **Flexible** (patterns): Adapt principles to context.
101
+
102
+ The skill itself tells you which.
103
+
104
+ ## User Instructions
105
+
106
+ Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
@@ -0,0 +1,11 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "using-superpowers"
4
+ version: "0.5.3"
5
+ purpose: "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions"
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions"
10
+ - path: "OPENRIG.md"
11
+ role: "reference"
@@ -0,0 +1,155 @@
1
+ ---
2
+ name: verification-before-completion
3
+ description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
4
+ metadata:
5
+ openrig:
6
+ vendored_from: "Obra Superpowers (https://github.com/obra/superpowers)"
7
+ vendoring_pattern: vendored-as-is
8
+ last_upstream_check: "2026-05-13 (diff against plugin source pulled 2026-05-11 = identical)"
9
+ ---
10
+
11
+ # Verification Before Completion
12
+
13
+ ## Overview
14
+
15
+ Claiming work is complete without verification is dishonesty, not efficiency.
16
+
17
+ **Core principle:** Evidence before claims, always.
18
+
19
+ **This rule serves shipping — it is not a ritual that outranks it.** It governs one thing: *claims that a verifiable result holds* ("tests pass", "build succeeds", "bug fixed") — run the check before you assert it, and scale the check to the stakes (a one-line copy tweak is not a test-suite ceremony). Don't dodge it with synonyms; equally, don't inflate it into a tax on the word "done" or a reason to keep re-proving instead of shipping the working thing.
20
+
21
+ ## The Iron Law
22
+
23
+ ```
24
+ NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
25
+ ```
26
+
27
+ If you haven't run the verification command in this message, you cannot claim it passes.
28
+
29
+ ## The Gate Function
30
+
31
+ ```
32
+ BEFORE claiming any status or expressing satisfaction:
33
+
34
+ 1. IDENTIFY: What command proves this claim?
35
+ 2. RUN: Execute the FULL command (fresh, complete)
36
+ 3. READ: Full output, check exit code, count failures
37
+ 4. VERIFY: Does output confirm the claim?
38
+ - If NO: State actual status with evidence
39
+ - If YES: State claim WITH evidence
40
+ 5. ONLY THEN: Make the claim
41
+
42
+ Skip any step = lying, not verifying
43
+ ```
44
+
45
+ ## Common Failures
46
+
47
+ | Claim | Requires | Not Sufficient |
48
+ |-------|----------|----------------|
49
+ | Tests pass | Test command output: 0 failures | Previous run, "should pass" |
50
+ | Linter clean | Linter output: 0 errors | Partial check, extrapolation |
51
+ | Build succeeds | Build command: exit 0 | Linter passing, logs look good |
52
+ | Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
53
+ | Regression test works | Red-green cycle verified | Test passes once |
54
+ | Agent completed | VCS diff shows changes | Agent reports "success" |
55
+ | Requirements met | Line-by-line checklist | Tests passing |
56
+
57
+ ## Red Flags - STOP
58
+
59
+ - Using "should", "probably", "seems to"
60
+ - Claiming a specific result is *proven* ("tests pass", "it's fixed", "build's green") before running the check in this message — enthusiasm itself is fine; an unverified **result claim** is the flag
61
+ - About to commit/push/PR without verification
62
+ - Trusting agent success reports
63
+ - Relying on partial verification
64
+ - Thinking "just this once"
65
+ - Tired and wanting work over
66
+ - **ANY wording implying success without having run verification**
67
+
68
+ ## Rationalization Prevention
69
+
70
+ | Excuse | Reality |
71
+ |--------|---------|
72
+ | "Should work now" | RUN the verification |
73
+ | "I'm confident" | Confidence ≠ evidence |
74
+ | "Just this once" | No exceptions |
75
+ | "Linter passed" | Linter ≠ compiler |
76
+ | "Agent said success" | Verify independently |
77
+ | "I'm tired" | Exhaustion ≠ excuse |
78
+ | "Partial check is enough" | Partial proves nothing |
79
+ | "Different words so rule doesn't apply" | Spirit over letter |
80
+
81
+ ## Key Patterns
82
+
83
+ **Tests:**
84
+ ```
85
+ ✅ [Run test command] [See: 34/34 pass] "All tests pass"
86
+ ❌ "Should pass now" / "Looks correct"
87
+ ```
88
+
89
+ **Regression tests (TDD Red-Green):**
90
+ ```
91
+ ✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
92
+ ❌ "I've written a regression test" (without red-green verification)
93
+ ```
94
+
95
+ **Build:**
96
+ ```
97
+ ✅ [Run build] [See: exit 0] "Build passes"
98
+ ❌ "Linter passed" (linter doesn't check compilation)
99
+ ```
100
+
101
+ **Requirements:**
102
+ ```
103
+ ✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
104
+ ❌ "Tests pass, phase complete"
105
+ ```
106
+
107
+ **Agent delegation:**
108
+ ```
109
+ ✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
110
+ ❌ Trust agent report
111
+ ```
112
+
113
+ ## When the check itself lies — content over shape
114
+
115
+ Running a verification is necessary but not sufficient: a check can exit clean and still prove nothing. These are the named ways a green check lies — the failure siblings behind "evidence before claims." (Deeper treatment of *what* you verify against: `reference-first-verification`.)
116
+
117
+ - **Assert on CONTENT, never shape or count.** Output that *looks* like success — a non-zero count, a clean exit, no error text — can carry failure as its content. Before trusting a check, ask what its output looks like *when it fails*: if failure and success are indistinguishable at a glance, the check proves nothing. (`[1 lines]` and `No matches found` both read as "a match" to a line-count.)
118
+ - **Compare the returned value to the value you PASSED — never to a description of it.** A confident label (`evidenceRef NOW SET:` printed above the untouched original) is indistinguishable from a verification in a transcript. Diff the actual result against your actual input, not against a claim about it.
119
+ - **Find the untested axis.** Thorough coverage of ONE axis reads as thorough coverage overall. Ask what every one of your tests shares — a healthy manifest, a default option value, the happy path — and treat that shared assumption as the dimension you never tested. (A 15-case "exhaustive" harness whose only defect lived on the one axis every case held constant.)
120
+ - **A syntax check proves parseability and nothing else.** A clean `node --check` / lint / parse pass is the *covered* axis; boot and runtime are the untested one. Parseable ≠ sound.
121
+ - **A failure whose shape is a HANG reports nothing.** A bare `await` against a stated deadline that never re-checks cannot fail loudly. Race it against a timer so failure has a shape you can see.
122
+ - **A completeness inventory read through a truncating display is worthless.** When deciding *which occurrences to change*, count with `grep -c` / `grep -o` / full-line output — never `cut`, `head`, or a pager, which can hide a match *past* the cut (a doc pointer on a ~540-char line sat just past `cut -c1-180` and nearly shipped the defect inside its own fix). Distinguish *"I found N"* (a count) from *"I saw N"* (a display). Audit multiline prose **by paragraph, not by line** — a line filter both misses long-line matches and false-flags paragraphs whose companion text is on the next line. Then re-audit with a **different method** than the one that built the inventory — same-method re-checking reproduces the blind spot. (Empty/short output is a claim about your COMMAND until re-proven a second way.)
123
+
124
+ ## Why This Matters
125
+
126
+ From 24 failure memories:
127
+ - your human partner said "I don't believe you" - trust broken
128
+ - Undefined functions shipped - would crash
129
+ - Missing requirements shipped - incomplete features
130
+ - Time wasted on false completion → redirect → rework
131
+ - Violates: "Honesty is a core value. If you lie, you'll be replaced."
132
+
133
+ ## When To Apply
134
+
135
+ **ALWAYS before:**
136
+ - ANY variation of success/completion claims
137
+ - ANY expression of satisfaction
138
+ - ANY positive statement about work state
139
+ - Committing, PR creation, task completion
140
+ - Moving to next task
141
+ - Delegating to agents
142
+
143
+ **Rule applies to:**
144
+ - Exact phrases
145
+ - Paraphrases and synonyms
146
+ - Implications of success
147
+ - ANY communication suggesting completion/correctness
148
+
149
+ ## The Bottom Line
150
+
151
+ **No shortcuts for verification.**
152
+
153
+ Run the command. Read the output. THEN claim the result.
154
+
155
+ This is non-negotiable.
@@ -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: "verification-before-completion"
4
+ version: "0.5.3"
5
+ purpose: "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always"
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always"
@@ -0,0 +1,52 @@
1
+ ---
2
+ skill: writing-plans
3
+ openrig-relationship: vendored-modified
4
+ ---
5
+
6
+ # OpenRig and this skill
7
+
8
+ ## Origin
9
+
10
+ - **Upstream**: Obra Superpowers (https://github.com/obra/superpowers)
11
+ - **Vendoring pattern**: `modify-the-file`
12
+ - **Last upstream check**: 2026-05-13 (diff against plugin source pulled 2026-05-11)
13
+
14
+ ## How OpenRig uses this skill
15
+
16
+ `writing-plans` is the middle step of OpenRig's three-stage implementation flow: `brainstorming` produces the design, `writing-plans` turns the design into a bite-sized task plan, and `executing-plans` (also OpenRig-modified) drives the plan to completion in batches. Driver seats use this skill when authoring plans for guard + qa to review and for downstream drivers to execute.
17
+
18
+ ## OpenRig-specific modifications
19
+
20
+ | Surface | Upstream | OpenRig |
21
+ |---|---|---|
22
+ | Plan save path | `docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md` | `docs/plans/YYYY-MM-DD-<feature-name>.md` (matches OpenRig's `docs/plans/` convention; coordinated with the matching change in `brainstorming`) |
23
+ | Scope Check section | Explicit step to break multi-subsystem specs into sub-project specs | **Removed.** OpenRig's slice + mission decomposition (handled at the orchestration layer) already enforces single-coherence scope per plan. |
24
+ | File Structure section | Explicit step to map files-to-be-created/modified with responsibilities before defining tasks | **Removed.** OpenRig drivers work inside an already-scoped slice; file-decomposition decisions live in the slice spec, not the plan. |
25
+ | Worktree context hint | "If working in an isolated worktree, it should have been created via the `superpowers:using-git-worktrees` skill at execution time." | "This should be run in a dedicated worktree (created by brainstorming skill)." — less explicit cross-skill dependency. |
26
+ | "For agentic workers" plan-header pointer | Suggests `superpowers:subagent-driven-development` (recommended) or `superpowers:executing-plans` | "For Claude: REQUIRED SUB-SKILL: Use `superpowers:executing-plans` to implement this plan task-by-task." Removed the subagent-driven-development pointer (consistent with the `executing-plans` modification). |
27
+ | Step tracking syntax | `- [ ] **Step 1: ...**` (checkbox for TodoWrite tracking) | `**Step 1: ...**` (bare bold; OpenRig drivers use their own task-tracking) |
28
+
29
+ ## Why these modifications (inferred)
30
+
31
+ - **Path coordination**: `docs/plans/` is OpenRig's canonical home for plan documents. The `brainstorming` skill produces designs at `docs/plans/...-design.md`; `writing-plans` produces plans at `docs/plans/...-feature-name.md`. Same root.
32
+ - **Scope + structure handled higher**: OpenRig's slice spec already constrains scope (one coherent slice) and identifies the touched-file surface. Repeating those checks inside the plan-authoring skill double-gates the work.
33
+ - **No subagent-driven-development pointer**: same reason as the `executing-plans` modification — OpenRig topologies provide parallel-pod review via separate seats; routing through subagents is structurally redundant.
34
+ - **Bare bold step syntax**: OpenRig drivers track progress via the orchestration queue + their own task tooling, not via in-file TodoWrite checkboxes.
35
+
36
+ ## Companion files
37
+
38
+ None.
39
+
40
+ ## When to re-sync upstream
41
+
42
+ Watch upstream for:
43
+
44
+ - Changes to plan structure or task-granularity guidance.
45
+ - Coordination changes with `brainstorming` and `executing-plans` (this skill is the middle of a 3-skill chain; changes to either end may require this skill to follow).
46
+
47
+ When upstream changes:
48
+
49
+ 1. Pull non-conflicting changes into the OpenRig copy.
50
+ 2. Preserve the `docs/plans/` save path and the absence of the Scope Check + File Structure sections unless operator direction reverses.
51
+ 3. Re-check that the subagent-driven-development pointer hasn't crept back in.
52
+ 4. Bump `last_upstream_check` in `SKILL.md` frontmatter.
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: writing-plans
3
+ description: Use when you have a spec or requirements for a multi-step task, before touching code
4
+ metadata:
5
+ openrig:
6
+ vendored_from: "Obra Superpowers (https://github.com/obra/superpowers)"
7
+ vendoring_pattern: modify-the-file
8
+ last_upstream_check: "2026-05-13 (diff against plugin source pulled 2026-05-11)"
9
+ divergence_notes: |
10
+ Removed the Scope Check + File Structure sections, the subagent-driven-
11
+ development sub-skill pointer, and the checkbox-tracking syntax for
12
+ steps. Changed plan-doc save path from docs/superpowers/plans/ to
13
+ docs/plans/. See OPENRIG.md for full divergence details.
14
+ ---
15
+
16
+ # Writing Plans
17
+
18
+ ## Overview
19
+
20
+ Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
21
+
22
+ Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
23
+
24
+ **Announce at start:** "I'm using the writing-plans skill to create the implementation plan."
25
+
26
+ **Context:** This should be run in a dedicated worktree (created by brainstorming skill).
27
+
28
+ **Save plans to:** `docs/plans/YYYY-MM-DD-<feature-name>.md`
29
+
30
+ ## Bite-Sized Task Granularity
31
+
32
+ **Each step is one action (2-5 minutes):**
33
+ - "Write the failing test" - step
34
+ - "Run it to make sure it fails" - step
35
+ - "Implement the minimal code to make the test pass" - step
36
+ - "Run the tests and make sure they pass" - step
37
+ - "Commit" - step
38
+
39
+ ## Plan Document Header
40
+
41
+ **Every plan MUST start with this header:**
42
+
43
+ ```markdown
44
+ # [Feature Name] Implementation Plan
45
+
46
+ > **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
47
+
48
+ **Goal:** [One sentence describing what this builds]
49
+
50
+ **Architecture:** [2-3 sentences about approach]
51
+
52
+ **Tech Stack:** [Key technologies/libraries]
53
+
54
+ ---
55
+ ```
56
+
57
+ ## Task Structure
58
+
59
+ ````markdown
60
+ ### Task N: [Component Name]
61
+
62
+ **Files:**
63
+ - Create: `exact/path/to/file.py`
64
+ - Modify: `exact/path/to/existing.py:123-145`
65
+ - Test: `tests/exact/path/to/test.py`
66
+
67
+ **Step 1: Write the failing test**
68
+
69
+ ```python
70
+ def test_specific_behavior():
71
+ result = function(input)
72
+ assert result == expected
73
+ ```
74
+
75
+ **Step 2: Run test to verify it fails**
76
+
77
+ Run: `pytest tests/path/test.py::test_name -v`
78
+ Expected: FAIL with "function not defined"
79
+
80
+ **Step 3: Write minimal implementation**
81
+
82
+ ```python
83
+ def function(input):
84
+ return expected
85
+ ```
86
+
87
+ **Step 4: Run test to verify it passes**
88
+
89
+ Run: `pytest tests/path/test.py::test_name -v`
90
+ Expected: PASS
91
+
92
+ **Step 5: Commit**
93
+
94
+ ```bash
95
+ git add tests/path/test.py src/path/file.py
96
+ git commit -m "feat: add specific feature"
97
+ ```
98
+ ````
99
+
100
+ ## Remember
101
+ - Exact file paths always
102
+ - Complete code in plan (not "add validation")
103
+ - Exact commands with expected output
104
+ - Reference relevant skills with @ syntax
105
+ - DRY, YAGNI, TDD, frequent commits
106
+
107
+ ## Execution Handoff
108
+
109
+ After saving the plan, offer execution choice:
110
+
111
+ **"Plan complete and saved to `docs/plans/<filename>.md`. Two execution options:**
112
+
113
+ **1. Subagent-Driven (this session)** - I dispatch fresh subagent per task, review between tasks, fast iteration
114
+
115
+ **2. Parallel Session (separate)** - Open new session with executing-plans, batch execution with checkpoints
116
+
117
+ **Which approach?"**
118
+
119
+ **If Subagent-Driven chosen:**
120
+ - Spawn a fresh subagent for each task; code-review the result before merging
121
+ - Stay in this session
122
+ - Pair with whatever subagent-orchestration skill your runtime provides (e.g., the Obra Superpowers plugin ships one if you have that plugin installed)
123
+
124
+ **If Parallel Session chosen:**
125
+ - Guide them to open new session in worktree
126
+ - **REQUIRED SUB-SKILL:** New session uses superpowers:executing-plans
@@ -0,0 +1,11 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "writing-plans"
4
+ version: "0.5.3"
5
+ purpose: "Use when you have a spec or requirements for a multi-step task, before touching code"
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Use when you have a spec or requirements for a multi-step task, before touching code"
10
+ - path: "OPENRIG.md"
11
+ role: "reference"
@@ -0,0 +1,97 @@
1
+ # You have talked to another agent. You have never talked to one in another terminal.
2
+
3
+ Start from what you have actually done. You spawn a sub-agent, it goes away and works, it reports
4
+ back. You may have run several at once. That is agent-to-agent communication and you are fluent
5
+ in it.
6
+
7
+ **Every bit of it happened inside your own session, through a bus your harness handed you.** The
8
+ other agent was something you contained. When your session ends, it ends. You have never sent
9
+ anything to an agent you did not spawn, and you have no mechanism in mind for doing so.
10
+
11
+ That is not an oversight on your part. **Nothing you were trained on works any other way** — every
12
+ tool in this category does agent comms within a session, over a built-in bus. So what follows is
13
+ outside the frame you were given, and it takes a minute to land.
14
+
15
+ ## Picture this
16
+
17
+ Another coding agent — a Claude, or a Codex — is running **in a different terminal on this
18
+ machine.** Not inside your session. A separate process, with its own context, its own work, its
19
+ own prompt box sitting there waiting for someone to type in it.
20
+
21
+ **Now picture yourself doing the typing.**
22
+
23
+ That is the whole idea. And the mechanism is something you already know:
24
+
25
+ ```bash
26
+ tmux send-keys -t some-agents-pane "the file you want is src/auth.ts, not src/user.ts" Enter
27
+ tmux capture-pane -p -t some-agents-pane # read what is on their screen right now
28
+ ```
29
+
30
+ `tmux send-keys` types into another pane. If that pane holds an agent, **you just talked to it** —
31
+ and to that agent nothing unusual happened, because its input box does not know who filled it.
32
+
33
+ No API. No message bus. No protocol between you. **The terminal is the wire.**
34
+
35
+ Two things follow that are just as far outside the frame, and worth saying out loud because you
36
+ will not infer them:
37
+
38
+ - **It works across tools.** You can drive a Codex the same way. Different model, different
39
+ vendor, same terminal. Almost nobody has done this.
40
+ - **Those agents outlive your session.** They are separate processes. Yours ending does not end
41
+ theirs — and theirs ending does not lose their work, because what they wrote to disk stays.
42
+
43
+ `send-keys` alone is not reliable enough to build on, which is the only reason the rest of this
44
+ exists.
45
+
46
+ ## What the daemon adds, and why it had to exist
47
+
48
+ Raw `send-keys` gets you far and then stops. You need to know **which pane is who** — and pane ids
49
+ are opaque and change. You need messages to carry a **sender**, so a reply can go back. You need
50
+ **durable state**, because a pane's scrollback is not a record and dies with the process. You need
51
+ to know **who is running at all**.
52
+
53
+ So: a small daemon, a SQLite database, and a naming convention.
54
+
55
+ - `<pod>-<member>@<rig>` is an **address**. It resolves to a pane. That is all a session name is.
56
+ - `rig send <addr> "msg"` is `send-keys` **plus a from-line** so the receiver can answer you.
57
+ - `rig capture <addr>` is `capture-pane`.
58
+ - `rig ps` asks the database who exists, because the database is the only thing that knows.
59
+ - `rig queue` is durable messages — a message that survives the pane, because scrollback does not.
60
+
61
+ **Nothing above is exotic.** It is tmux, a daemon, a database, and files on disk. If a `rig`
62
+ command ever seems like magic, the useful question is *which of those four is it actually doing* —
63
+ and you can read the source, it is on this machine.
64
+
65
+ ## Why it is arranged as topology
66
+
67
+ Once agents can drive each other, the question is not *can they talk* but **who should**. An agent
68
+ with no structure around it either does everything itself or asks everyone about everything.
69
+
70
+ So the arrangement borrows from network topology, which you also already know:
71
+
72
+ - a **rig** is a team with a purpose — named for what it is *for*
73
+ - a **pod** is a group inside it that shares a context domain, so knowledge earned by one member
74
+ is likely useful to its neighbours and not to the whole rig
75
+ - a **seat** is an address that **outlives its occupant**. You are the current occupant of one.
76
+ The seat accumulates knowledge across everyone who has sat in it.
77
+
78
+ **The seat is the load-bearing idea**, and it is the one with no analogue in your training data.
79
+ You are not a session that happens to have a name. You are a tenant.
80
+
81
+ ## What you can now build, which is the point
82
+
83
+ You have addressable colleagues, durable messages, a state database, and a filesystem. Stack those
84
+ the way you would stack any other primitives and you get something specific: **a topology of
85
+ agents that can be given a roadmap and build software against it** — one deciding scope, others
86
+ implementing, others checking, handing work between themselves without a human in the loop for
87
+ every step.
88
+
89
+ That is what OpenRig is. **Not a framework you are running inside — a set of primitives you are
90
+ holding.** The same posture you would take toward tmux and jq applies here: compose them, script
91
+ them, and build the thing that does not exist yet.
92
+
93
+ > **PREDICT — commit before you check.**
94
+ > `rig send` puts a message in another agent's terminal. Say what you think happens if that agent
95
+ > is **busy** when it arrives — does it interrupt them, get dropped, or wait? Commit to an answer.
96
+ >
97
+ > Then say which of the four ingredients above you would look at first to find out.