openplanr 3.3.0 → 3.4.0

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 (267) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/cli/commands/artifact-design-share.d.ts +9 -0
  3. package/dist/cli/commands/artifact-design-share.d.ts.map +1 -0
  4. package/dist/cli/commands/artifact-design-share.js +200 -0
  5. package/dist/cli/commands/artifact-design-share.js.map +1 -0
  6. package/dist/cli/commands/artifact.d.ts.map +1 -1
  7. package/dist/cli/commands/artifact.js +5 -18
  8. package/dist/cli/commands/artifact.js.map +1 -1
  9. package/dist/cli/commands/ship.d.ts.map +1 -1
  10. package/dist/cli/commands/ship.js +2 -0
  11. package/dist/cli/commands/ship.js.map +1 -1
  12. package/dist/dashboard/.vite/manifest.json +2 -2
  13. package/dist/dashboard/assets/index-Cv4Vwhuw.css +2 -0
  14. package/dist/dashboard/assets/index-CvQAlBy3.js +75 -0
  15. package/dist/dashboard/assets/index-CvQAlBy3.js.map +1 -0
  16. package/dist/dashboard/dashboard-manifest.json +14 -14
  17. package/dist/dashboard/index.html +2 -2
  18. package/dist/services/design-artifact-service.d.ts +20 -1
  19. package/dist/services/design-artifact-service.d.ts.map +1 -1
  20. package/dist/services/design-artifact-service.js +137 -18
  21. package/dist/services/design-artifact-service.js.map +1 -1
  22. package/dist/services/ship-checks/contract.d.ts +3 -1
  23. package/dist/services/ship-checks/contract.d.ts.map +1 -1
  24. package/dist/services/ship-checks/contract.js +1 -1
  25. package/dist/services/ship-checks/contract.js.map +1 -1
  26. package/dist/services/ship-checks/discover.d.ts.map +1 -1
  27. package/dist/services/ship-checks/discover.js +2 -1
  28. package/dist/services/ship-checks/discover.js.map +1 -1
  29. package/dist/services/ship-checks/package-contents.d.ts +4 -0
  30. package/dist/services/ship-checks/package-contents.d.ts.map +1 -0
  31. package/dist/services/ship-checks/package-contents.js +91 -0
  32. package/dist/services/ship-checks/package-contents.js.map +1 -0
  33. package/dist/services/ship-checks/packages.d.ts +2 -0
  34. package/dist/services/ship-checks/packages.d.ts.map +1 -1
  35. package/dist/services/ship-checks/packages.js +4 -0
  36. package/dist/services/ship-checks/packages.js.map +1 -1
  37. package/dist/services/ship-checks/scope.js +2 -1
  38. package/dist/services/ship-checks/scope.js.map +1 -1
  39. package/dist/utils/splice-managed-block.js +1 -1
  40. package/dist/utils/splice-managed-block.js.map +1 -1
  41. package/docs/CLI.md +38 -1
  42. package/lib/host-packages/adapter-registry.json +5 -5
  43. package/lib/host-packages/capability-map.json +1 -1
  44. package/lib/host-packages/claude/.claude-plugin/marketplace.json +3 -3
  45. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +6 -6
  46. package/lib/host-packages/claude/openplanr/.openplanr-content.json +67 -123
  47. package/lib/host-packages/claude/openplanr/README.md +12 -12
  48. package/lib/host-packages/claude/openplanr/references/agents/shared/modes/shared/task-context-resolution.md +4 -4
  49. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-artifact-shell.mjs +2 -4
  50. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +26 -26
  51. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +850 -56
  52. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
  53. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-review.mjs +65 -74
  54. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
  55. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
  56. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs → claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs} +762 -223
  57. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
  58. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
  59. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +107 -37
  60. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +0 -27
  61. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
  62. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5684
  63. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
  64. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
  65. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  66. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +8 -2
  67. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
  68. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +545 -4781
  69. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +219 -452
  70. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
  71. package/lib/host-packages/claude/openplanr/skills/delegate/SKILL.md +2 -1
  72. package/lib/host-packages/claude/openplanr/skills/delegate/references/integration-review.md +26 -20
  73. package/lib/host-packages/claude/openplanr/skills/delegate/references/operator-guide.md +25 -1
  74. package/lib/host-packages/claude/openplanr/skills/delegate/references/run-handoff.md +2 -2
  75. package/lib/host-packages/claude/openplanr/skills/delegate/references/worktree-custody.md +17 -9
  76. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/claude.mjs +15 -3
  77. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/codex.mjs +38 -2
  78. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/adapters/native.mjs +5 -0
  79. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/custody.mjs +217 -10
  80. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/handoff.mjs +1080 -0
  81. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integrate.mjs +96 -201
  82. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integration-files.mjs +3 -382
  83. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/presentation.mjs +29 -12
  84. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-contract.mjs +11 -0
  85. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-execution.mjs +1 -1
  86. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-lifecycle.mjs +14 -10
  87. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-preparation.mjs +4 -0
  88. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/run-record.mjs +2 -2
  89. package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +14 -8
  90. package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +14 -8
  91. package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +14 -8
  92. package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +1 -0
  93. package/lib/host-packages/claude/openplanr/skills/investigate/references/fail-first.md +40 -0
  94. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +22 -10
  95. package/lib/host-packages/claude/openplanr/skills/ship/references/fail-first.md +40 -0
  96. package/lib/host-packages/claude/openplanr/skills/ship/references/result-contract.md +7 -3
  97. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +65 -121
  98. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  99. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/integration-review.md +26 -20
  100. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/operator-guide.md +25 -1
  101. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/run-handoff.md +2 -2
  102. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/references/worktree-custody.md +17 -9
  103. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/claude.mjs +15 -3
  104. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/codex.mjs +38 -2
  105. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/adapters/native.mjs +5 -0
  106. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/custody.mjs +217 -10
  107. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/handoff.mjs +1080 -0
  108. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integrate.mjs +96 -201
  109. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integration-files.mjs +3 -382
  110. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/presentation.mjs +29 -12
  111. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-contract.mjs +11 -0
  112. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-execution.mjs +1 -1
  113. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-lifecycle.mjs +14 -10
  114. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-preparation.mjs +4 -0
  115. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/run-record.mjs +2 -2
  116. package/lib/host-packages/cursor/openplanr/rules/planr-delegate.mdc +2 -1
  117. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +14 -8
  118. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +14 -8
  119. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +14 -8
  120. package/lib/host-packages/cursor/openplanr/rules/planr-investigate/references/fail-first.md +40 -0
  121. package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +1 -0
  122. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/fail-first.md +40 -0
  123. package/lib/host-packages/cursor/openplanr/rules/planr-ship/references/result-contract.md +7 -3
  124. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +22 -10
  125. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-artifact-shell.mjs +2 -4
  126. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +26 -26
  127. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +850 -56
  128. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
  129. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-review.mjs +65 -74
  130. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
  131. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
  132. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs → design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs} +762 -223
  133. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
  134. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
  135. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +107 -37
  136. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +0 -27
  137. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
  138. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5684
  139. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
  140. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
  141. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  142. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +8 -2
  143. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
  144. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +545 -4781
  145. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +219 -452
  146. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
  147. package/lib/host-packages/openai/.claude-plugin/marketplace.json +3 -3
  148. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +2 -2
  149. package/lib/host-packages/openai/openplanr/.openplanr-content.json +68 -124
  150. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-artifact-shell.mjs +2 -4
  151. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +26 -26
  152. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +850 -56
  153. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review-state-store.mjs +45 -0
  154. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-review.mjs +65 -74
  155. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-runtime-home.mjs +0 -1
  156. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share-cli-bridge.mjs +321 -0
  157. package/lib/host-packages/{claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs → openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs} +762 -223
  158. package/lib/host-packages/{claude/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs → openai/openplanr/runtime/design/scripts/design-shared-artifact-support-protocol-contracts-9f6918b0.mjs} +537 -5
  159. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-design-support-0bac378d.mjs +137 -0
  160. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +107 -37
  161. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +0 -27
  162. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js +138 -133
  163. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +1 -5684
  164. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js +2568 -0
  165. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +10 -74
  166. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
  167. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/share.js +8 -2
  168. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +5 -1
  169. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +545 -4781
  170. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +219 -452
  171. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +5 -1
  172. package/lib/host-packages/openai/openplanr/skills/delegate/SKILL.md +2 -1
  173. package/lib/host-packages/openai/openplanr/skills/delegate/openplanr.skill.json +1 -1
  174. package/lib/host-packages/openai/openplanr/skills/delegate/references/integration-review.md +26 -20
  175. package/lib/host-packages/openai/openplanr/skills/delegate/references/operator-guide.md +25 -1
  176. package/lib/host-packages/openai/openplanr/skills/delegate/references/run-handoff.md +2 -2
  177. package/lib/host-packages/openai/openplanr/skills/delegate/references/worktree-custody.md +17 -9
  178. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/claude.mjs +15 -3
  179. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/codex.mjs +38 -2
  180. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/adapters/native.mjs +5 -0
  181. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/custody.mjs +217 -10
  182. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/handoff.mjs +1080 -0
  183. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integrate.mjs +96 -201
  184. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integration-files.mjs +3 -382
  185. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/presentation.mjs +29 -12
  186. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-contract.mjs +11 -0
  187. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-execution.mjs +1 -1
  188. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-lifecycle.mjs +14 -10
  189. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-preparation.mjs +4 -0
  190. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/run-record.mjs +2 -2
  191. package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +14 -8
  192. package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +14 -8
  193. package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +14 -8
  194. package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +1 -0
  195. package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +12 -1
  196. package/lib/host-packages/openai/openplanr/skills/investigate/references/fail-first.md +40 -0
  197. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +22 -10
  198. package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +12 -1
  199. package/lib/host-packages/openai/openplanr/skills/ship/references/fail-first.md +40 -0
  200. package/lib/host-packages/openai/openplanr/skills/ship/references/result-contract.md +7 -3
  201. package/package.json +8 -8
  202. package/dist/dashboard/assets/index-BU5fzjyz.css +0 -1
  203. package/dist/dashboard/assets/index-B_96uzCl.js +0 -572
  204. package/dist/dashboard/assets/index-B_96uzCl.js.map +0 -1
  205. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +0 -555
  206. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
  207. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
  208. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
  209. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
  210. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs +0 -24
  211. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
  212. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
  213. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5907
  214. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
  215. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
  216. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
  217. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
  218. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
  219. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
  220. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
  221. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
  222. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
  223. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
  224. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
  225. package/lib/host-packages/claude/openplanr/skills/delegate/scripts/integration-transaction.mjs +0 -958
  226. package/lib/host-packages/cursor/openplanr/rules/planr-delegate/scripts/integration-transaction.mjs +0 -958
  227. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +0 -555
  228. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
  229. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
  230. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
  231. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
  232. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs +0 -24
  233. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
  234. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
  235. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5907
  236. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
  237. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
  238. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
  239. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
  240. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
  241. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
  242. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
  243. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
  244. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
  245. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
  246. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
  247. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-chunked-workspace-client.mjs +0 -555
  248. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-compression.mjs +0 -4180
  249. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-encrypted-workspace-client.mjs +0 -647
  250. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-owner-custody.mjs +0 -129
  251. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-resource-pack.mjs +0 -698
  252. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs +0 -24
  253. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +0 -1993
  254. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs +0 -222
  255. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +0 -5907
  256. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-upload-spool.mjs +0 -198
  257. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js +0 -4175
  258. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js +0 -65
  259. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js +0 -1755
  260. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js +0 -62
  261. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js +0 -2633
  262. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json +0 -49
  263. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json +0 -108
  264. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json +0 -170
  265. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json +0 -97
  266. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json +0 -56
  267. package/lib/host-packages/openai/openplanr/skills/delegate/scripts/integration-transaction.mjs +0 -958
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "path": "manifest.json",
19
- "digest": "sha256:717f58c8b6076b1c7f3fb7ee6a5355e4d07740bbd8cbee3b9ece8a7662bb6cbf"
19
+ "digest": "sha256:6f18f0a9fcc73b51b59241b2eeaf6b5870d78dc719cf206ddf0a2afd860d8f81"
20
20
  },
21
21
  {
22
22
  "path": "rules/planr-artifact.mdc",
@@ -128,7 +128,7 @@
128
128
  },
129
129
  {
130
130
  "path": "rules/planr-delegate.mdc",
131
- "digest": "sha256:4a44b4094f6ec174abe2eae83b38aeaf1a21c2e626612e557de4be0ddb9c513c"
131
+ "digest": "sha256:d25236ab41dd6e4daec71b430a71327fd4059ecd18d9e3b4824886f2aba97e55"
132
132
  },
133
133
  {
134
134
  "path": "rules/planr-delegate/references/adapter-protocol.md",
@@ -140,19 +140,19 @@
140
140
  },
141
141
  {
142
142
  "path": "rules/planr-delegate/references/integration-review.md",
143
- "digest": "sha256:4ed5dceda80d3dfa3027793a472a408cb9dd5a847e251a3dfa3c5cca509b9f7b"
143
+ "digest": "sha256:5c5457cb8c7865ba6ba0b11686c229ebda2a0a7faa65c9b02746442bc213107b"
144
144
  },
145
145
  {
146
146
  "path": "rules/planr-delegate/references/operator-guide.md",
147
- "digest": "sha256:436c12e8ff06e67a529df1aaeb736407d85a63c636260f4a193f458c94fd2ec4"
147
+ "digest": "sha256:d85dea381c092daf1fce8feaaa2baa56bbd95c85c1f1f0ca50bdaecc87fea578"
148
148
  },
149
149
  {
150
150
  "path": "rules/planr-delegate/references/run-handoff.md",
151
- "digest": "sha256:6468f7fa3ddf8d561f08c4d8a368564958c21f88777b33bb6e482c9180d997b2"
151
+ "digest": "sha256:a677ed12b04f9c53a7027736ac00fa83e962af72536b24c23cc9d12cbd300541"
152
152
  },
153
153
  {
154
154
  "path": "rules/planr-delegate/references/worktree-custody.md",
155
- "digest": "sha256:8e78648690cfa1d786af5383aec0d567955ad8bd173a96558fac339a2efedae2"
155
+ "digest": "sha256:a7bb2dc84ed3861f283f2dbec978b717ed35fe5fc70d368a25cac701eaff4a10"
156
156
  },
157
157
  {
158
158
  "path": "rules/planr-delegate/scripts/adapters/capsule.mjs",
@@ -160,11 +160,11 @@
160
160
  },
161
161
  {
162
162
  "path": "rules/planr-delegate/scripts/adapters/claude.mjs",
163
- "digest": "sha256:98dae19b18c18b372edc77985a889303e595b0fc4556f1f42dcfd69d5f037acc"
163
+ "digest": "sha256:f9e4d3c54ebcf7695939d4da71bef1a651f2450f0fb0985e831944b7244faf86"
164
164
  },
165
165
  {
166
166
  "path": "rules/planr-delegate/scripts/adapters/codex.mjs",
167
- "digest": "sha256:6e606a02058e725a4c4cfe9341db6bcfd402060d69dd2eb0f5210e2161816d3e"
167
+ "digest": "sha256:07fffd239bdb2e7a1e7f742b3a24ed3e4c18ff612c740baa7668e36a63406eb8"
168
168
  },
169
169
  {
170
170
  "path": "rules/planr-delegate/scripts/adapters/cursor.mjs",
@@ -176,7 +176,7 @@
176
176
  },
177
177
  {
178
178
  "path": "rules/planr-delegate/scripts/adapters/native.mjs",
179
- "digest": "sha256:ff2a8c9365264c4065b8be742ba98ba7b5c8269779c66f217140e9fbf6609727"
179
+ "digest": "sha256:602f45bb308f637ecc9ec7175bd28f5b89aebf6d3b5e6d14f499edda5acac7c7"
180
180
  },
181
181
  {
182
182
  "path": "rules/planr-delegate/scripts/backend-diagnostics.mjs",
@@ -192,7 +192,11 @@
192
192
  },
193
193
  {
194
194
  "path": "rules/planr-delegate/scripts/custody.mjs",
195
- "digest": "sha256:f9ce2ecad8bd7417091cd734691781b406abfff4ce94a93aa1a965dc685e70ab"
195
+ "digest": "sha256:8c127a851e321a217621a76636a70a8326f8e3a02e9eda6db849ad89626da228"
196
+ },
197
+ {
198
+ "path": "rules/planr-delegate/scripts/handoff.mjs",
199
+ "digest": "sha256:07ff51c3da9774b11a6227838ec71c63289a9038f2d11fb7305255ad833396d2"
196
200
  },
197
201
  {
198
202
  "path": "rules/planr-delegate/scripts/helper-snapshot.mjs",
@@ -200,7 +204,7 @@
200
204
  },
201
205
  {
202
206
  "path": "rules/planr-delegate/scripts/integrate.mjs",
203
- "digest": "sha256:45372038ee72614f81b1d146431ea6e841882f581e05c4486b8871d47d84d86b"
207
+ "digest": "sha256:9ee8d17a28aad8edf29ebda6edcef21b86124081f7c933a53473cf8e90d7380a"
204
208
  },
205
209
  {
206
210
  "path": "rules/planr-delegate/scripts/integration-checks.mjs",
@@ -208,15 +212,11 @@
208
212
  },
209
213
  {
210
214
  "path": "rules/planr-delegate/scripts/integration-files.mjs",
211
- "digest": "sha256:0630912abe3992664b50012fb36dd6dec26f741449800ab6a6c421def219424e"
212
- },
213
- {
214
- "path": "rules/planr-delegate/scripts/integration-transaction.mjs",
215
- "digest": "sha256:c3914e4fdb6e12258b209178fca07ffc39e2f5376c770a27aa9a1858c5d833ed"
215
+ "digest": "sha256:94845c938bbf67f7b81f6ca0344ef778e8db978af242f8e8a499b8c8b156a294"
216
216
  },
217
217
  {
218
218
  "path": "rules/planr-delegate/scripts/presentation.mjs",
219
- "digest": "sha256:32ca0c561e99bb02dc8f88e0823a0b826a24cd61404b165fe306bbbce9ee99b9"
219
+ "digest": "sha256:84b8b49479806187ff3a502897f4cd901fdfe00d6cbd6a371b641fe2091892fd"
220
220
  },
221
221
  {
222
222
  "path": "rules/planr-delegate/scripts/profiles.mjs",
@@ -224,15 +224,15 @@
224
224
  },
225
225
  {
226
226
  "path": "rules/planr-delegate/scripts/run-contract.mjs",
227
- "digest": "sha256:f87f0bd16249266ef6f044a37db608d852a5d893628de26ab9844dc92df57c46"
227
+ "digest": "sha256:c2001a897a93788e9047f601d90cde9b1a6eb3a46c439af86da23dd214392f60"
228
228
  },
229
229
  {
230
230
  "path": "rules/planr-delegate/scripts/run-execution.mjs",
231
- "digest": "sha256:3e9333862d26b10307623d0fd715b7c4387d3788e3eb578326374cfd23682306"
231
+ "digest": "sha256:c3aed8483c1e086a6d4e8110f78ec8f5bcca250fc289d2e6ee907c9e51e97950"
232
232
  },
233
233
  {
234
234
  "path": "rules/planr-delegate/scripts/run-lifecycle.mjs",
235
- "digest": "sha256:1b3dfe50152ef63bb174fb19aef9b3351f7d25be49c2557f6187cbba8db37317"
235
+ "digest": "sha256:13165f8fd68c9560187d02a6f79f30ad6aa5c146d4d98639739bc4d182aaad41"
236
236
  },
237
237
  {
238
238
  "path": "rules/planr-delegate/scripts/run-preflight.mjs",
@@ -240,11 +240,11 @@
240
240
  },
241
241
  {
242
242
  "path": "rules/planr-delegate/scripts/run-preparation.mjs",
243
- "digest": "sha256:746630b00e1c252cae6dd7e78cde4b2d6c65e75f1ef19a092111e1e4de5152e3"
243
+ "digest": "sha256:d1c2564cf22dbec09bdd133db2f2580700ad1d2a2488f080c4521cb819afcb58"
244
244
  },
245
245
  {
246
246
  "path": "rules/planr-delegate/scripts/run-record.mjs",
247
- "digest": "sha256:cbceec29880e4af92fc2dbd692edd10dcd6cb24ab87108b3a492f94797d93473"
247
+ "digest": "sha256:42492bdb49583c271e5a2439deb43b3119aadb672c5be3349667890718bc055f"
248
248
  },
249
249
  {
250
250
  "path": "rules/planr-delegate/scripts/runner.mjs",
@@ -288,7 +288,7 @@
288
288
  },
289
289
  {
290
290
  "path": "rules/planr-design-loop/references/utilities.md",
291
- "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
291
+ "digest": "sha256:0321ef8f03e85db46b05be3af44915caf93f2d8e772ccdf044257c704050ae62"
292
292
  },
293
293
  {
294
294
  "path": "rules/planr-design-loop/schemas/design-document.schema.json",
@@ -344,7 +344,7 @@
344
344
  },
345
345
  {
346
346
  "path": "rules/planr-design-review/references/utilities.md",
347
- "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
347
+ "digest": "sha256:0321ef8f03e85db46b05be3af44915caf93f2d8e772ccdf044257c704050ae62"
348
348
  },
349
349
  {
350
350
  "path": "rules/planr-design-review/schemas/design-document.schema.json",
@@ -404,7 +404,7 @@
404
404
  },
405
405
  {
406
406
  "path": "rules/planr-design/references/utilities.md",
407
- "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
407
+ "digest": "sha256:0321ef8f03e85db46b05be3af44915caf93f2d8e772ccdf044257c704050ae62"
408
408
  },
409
409
  {
410
410
  "path": "rules/planr-design/schemas/design-document.schema.json",
@@ -452,7 +452,11 @@
452
452
  },
453
453
  {
454
454
  "path": "rules/planr-investigate.mdc",
455
- "digest": "sha256:e5e3880f9778be44993d2b0892ae60349acdd712e7761324a16deb670023b745"
455
+ "digest": "sha256:b370a09426c36838263d861e424d760cac1784dfeede8d03f71f6ca70c5555b4"
456
+ },
457
+ {
458
+ "path": "rules/planr-investigate/references/fail-first.md",
459
+ "digest": "sha256:8fb3ac5b32e2a13e099b728423b8962b15559430bf2b7f6f70a1927df2044b4a"
456
460
  },
457
461
  {
458
462
  "path": "rules/planr-investigate/references/findings.md",
@@ -552,19 +556,23 @@
552
556
  },
553
557
  {
554
558
  "path": "rules/planr-ship.mdc",
555
- "digest": "sha256:12c4adb5ae3612c71e6861cc55388644de40f981db44863839f54cf825d33bc6"
559
+ "digest": "sha256:e6b792830f9ab144577794bf1143005f2f42768e89a468f5460c9b782d6fbb1c"
556
560
  },
557
561
  {
558
562
  "path": "rules/planr-ship/references/design-lineage.md",
559
563
  "digest": "sha256:0cf8cce235b6e258c066e65dcc25480f10aca6f0c3200de332fc278e3b7975a9"
560
564
  },
565
+ {
566
+ "path": "rules/planr-ship/references/fail-first.md",
567
+ "digest": "sha256:8fb3ac5b32e2a13e099b728423b8962b15559430bf2b7f6f70a1927df2044b4a"
568
+ },
561
569
  {
562
570
  "path": "rules/planr-ship/references/findings.md",
563
571
  "digest": "sha256:2bee6285c88650a81ae049541eb9a09549c0935210b5ca3eae0b1c99fd52f45f"
564
572
  },
565
573
  {
566
574
  "path": "rules/planr-ship/references/result-contract.md",
567
- "digest": "sha256:687f53f2d6682dbe628bb2bfd52edd5685d9611e2695497516d37a1ef355b57f"
575
+ "digest": "sha256:1c8bf48c8bbae9b6a7ef7b6e1d444412c9bf6f3c67fc0233c159c3b084cc7e0e"
568
576
  },
569
577
  {
570
578
  "path": "rules/planr-ship/scripts/backlog-item.mjs",
@@ -640,23 +648,11 @@
640
648
  },
641
649
  {
642
650
  "path": "runtime/design/scripts/design-artifact-shell.mjs",
643
- "digest": "sha256:c20a34a50dd9411ffdcca1c685952a08e196e3722dda35ddc9549b6657291f1c"
644
- },
645
- {
646
- "path": "runtime/design/scripts/design-chunked-workspace-client.mjs",
647
- "digest": "sha256:3f885f27440ed3cd063e4b551a8b894166e0e0dd265e38fdacd95bcff27303a3"
648
- },
649
- {
650
- "path": "runtime/design/scripts/design-compression.mjs",
651
- "digest": "sha256:bd24b7138444ecb94304dc07aa8f46903e49526337f63ba95fe25e5d5cbc3803"
651
+ "digest": "sha256:e279e3f63e26b21bcb1108113ae8590128f66202cefe069ca6a5c9b9f55205ff"
652
652
  },
653
653
  {
654
654
  "path": "runtime/design/scripts/design-document.mjs",
655
- "digest": "sha256:265390be5971cb170bfa3bbe85073d95d3a03fdcad5ad2d6885863ed92636d7c"
656
- },
657
- {
658
- "path": "runtime/design/scripts/design-encrypted-workspace-client.mjs",
659
- "digest": "sha256:e2eb4feb72574514589cd139ee9b6689e3eaa01cc6b40d7480b1ebecffcb6f1d"
655
+ "digest": "sha256:c14cbf3b4a911cd7bef2a18bfe9ec1811138033dd48a9fad236ebc356de18c80"
660
656
  },
661
657
  {
662
658
  "path": "runtime/design/scripts/design-entities.mjs",
@@ -664,16 +660,12 @@
664
660
  },
665
661
  {
666
662
  "path": "runtime/design/scripts/design-handoff.mjs",
667
- "digest": "sha256:1d24e4ebd3bff99f3dd5e2fa8cab17971bbc4acb10cc416a0e1a1e4af584f0ee"
663
+ "digest": "sha256:ca7def3a516d28afd982defbee209a15536e1cdd3bea9ebe429b0bb034dbcd4c"
668
664
  },
669
665
  {
670
666
  "path": "runtime/design/scripts/design-loopback-server.mjs",
671
667
  "digest": "sha256:842179f1011e1e3ba8d8a5f10ee28d55bc03bf9ec957942c7b7d29604cef3b2e"
672
668
  },
673
- {
674
- "path": "runtime/design/scripts/design-owner-custody.mjs",
675
- "digest": "sha256:8361262f71332911d3a0145365b55f64056faf085b420c8c48bf278673b10292"
676
- },
677
669
  {
678
670
  "path": "runtime/design/scripts/design-parse5-parser.mjs",
679
671
  "digest": "sha256:a9bfeecae4d31155a6935455c82ea8348da25f8585216b531d00c6599b8196e4"
@@ -683,56 +675,44 @@
683
675
  "digest": "sha256:f655474fb8d0bed732f01ace5b67102f849b73cb40831a57f1fb7b61180fbde9"
684
676
  },
685
677
  {
686
- "path": "runtime/design/scripts/design-resource-pack.mjs",
687
- "digest": "sha256:7093cbff03cb6b9c2befb31136f1306400c6bd1615a168b2a26c72dc87619de6"
678
+ "path": "runtime/design/scripts/design-review-state-store.mjs",
679
+ "digest": "sha256:439dd353b8f7d675972ba42dbc5687d85ab9408a02e35263dbba330368baf8d9"
688
680
  },
689
681
  {
690
682
  "path": "runtime/design/scripts/design-review.mjs",
691
- "digest": "sha256:a549f93614803942343047412ac915216f60faecf202636ed24724f2aa044b32"
683
+ "digest": "sha256:b1d02ba9af6e731514a8e80fdd12cd3bee7bcccfe915484ee81df1ba940aabdf"
692
684
  },
693
685
  {
694
686
  "path": "runtime/design/scripts/design-runtime-home.mjs",
695
- "digest": "sha256:c338765d9f5746bf375377bdd25e94490ac31985bab0b0335e49f9faadb5c08b"
696
- },
697
- {
698
- "path": "runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs",
699
- "digest": "sha256:6fd1b789adf2cfcf742602f1faa6a0d0835f2bc5cc2afa6e153424be68892fa2"
687
+ "digest": "sha256:243cae755d5c657190e91c717d87d18a845c46549cc742e91122cd454e2239fa"
700
688
  },
701
689
  {
702
690
  "path": "runtime/design/scripts/design-sandbox-guards.mjs",
703
691
  "digest": "sha256:f079cc28de5815ae4c32ca33602a9d3e2ac83b38626c948c19d80ad0cd1a14b2"
704
692
  },
705
693
  {
706
- "path": "runtime/design/scripts/design-share.mjs",
707
- "digest": "sha256:9d859c41f2b7a049650f15bc67620a8e9e473dc1dfea57b6b6eae11a47bada6c"
708
- },
709
- {
710
- "path": "runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs",
711
- "digest": "sha256:f2e1cd55ff19cb6127d02f3b2cd86fdcc5737432b3f59420707b86181c6963f9"
694
+ "path": "runtime/design/scripts/design-share-cli-bridge.mjs",
695
+ "digest": "sha256:6bf6fa7d4d64e8ba0084fc9d1a5484ada003ab1bdd8302ecf721865b807a55ad"
712
696
  },
713
697
  {
714
- "path": "runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs",
715
- "digest": "sha256:db916e155fa635e1a3ca012e5143899324adf560f9786c58b388533c7352fddb"
698
+ "path": "runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-d707e49b.mjs",
699
+ "digest": "sha256:d9ac7554fab97730185fcfdf9e992c7009ea7db563fa85ff27117ff2a0e1b364"
716
700
  },
717
701
  {
718
- "path": "runtime/design/scripts/design-shared-protocol-contracts-75a938cc.mjs",
719
- "digest": "sha256:4e2b9ecb58c1a196b008ad253956c17462d7220603d0b97fcc26ce6eef812a7c"
702
+ "path": "runtime/design/scripts/design-shared-artifact-support-protocol-contracts-9f6918b0.mjs",
703
+ "digest": "sha256:fc3d2708da06a23696ad6ba2329b64575a8518c4feed21d12d84c6a2a2c98630"
720
704
  },
721
705
  {
722
- "path": "runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs",
723
- "digest": "sha256:93c1762353ebe32d886bbb2fef3f2a72cfbf8e139973eec88f4f6b8f10d8e503"
724
- },
725
- {
726
- "path": "runtime/design/scripts/design-upload-spool.mjs",
727
- "digest": "sha256:94ae8ec94748f8a3bffb7f2c03d41c0f1558a6b945aab9f796e62f80309ce19c"
706
+ "path": "runtime/design/scripts/design-shared-design-support-0bac378d.mjs",
707
+ "digest": "sha256:c1ffb603d8b781ac3b4c77e2a430ca81c3b1e7cc5f3392cb252e7d5c1dd7cb9f"
728
708
  },
729
709
  {
730
710
  "path": "runtime/design/scripts/design.mjs",
731
- "digest": "sha256:6feea162e96236d2392162831e660a2fd5e908b2c67bf64bea89bbcb8dd41467"
711
+ "digest": "sha256:349540cc9bd3bf2dd3dafacde0bef00f87b4099b828371c82f5e0e82fca0464c"
732
712
  },
733
713
  {
734
714
  "path": "runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
735
- "digest": "sha256:c780d6f2609e544d086bc236c27f408fcd736d3a9ea91175c8ed674cfd0a4b0b"
715
+ "digest": "sha256:e777d781bc438df14f871a984325cbbb5bb9385b0677a8e03954a411ee182713"
736
716
  },
737
717
  {
738
718
  "path": "runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css",
@@ -740,7 +720,7 @@
740
720
  },
741
721
  {
742
722
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json",
743
- "digest": "sha256:d2b6a89cfd25803e4fb266a2747c373f701955519f50e90e0f441fc8c5b10876"
723
+ "digest": "sha256:119befeafc6f462ee65558d83d7c340ca37379d8f982f4014700141e9d6d8ffb"
744
724
  },
745
725
  {
746
726
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/01-module-runtime.js",
@@ -748,35 +728,19 @@
748
728
  },
749
729
  {
750
730
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/02-artifact-review-ui.js",
751
- "digest": "sha256:2aea72eea5307592d4bb3e0b27c2c226c1f209bf6d510557935c802db534b67b"
731
+ "digest": "sha256:26619f341e96de6b5fac618c420f92263f3e9148cf1c6da542a21d6964c2f4c4"
752
732
  },
753
733
  {
754
734
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js",
755
- "digest": "sha256:fbf069e668fecf9519cab318f88033b106b93933ea0788f2c4c8cf8374c35e38"
756
- },
757
- {
758
- "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js",
759
- "digest": "sha256:58a41e8799739a88cb3e547ae75d2f9ce2e60ba5f6051439111d0e44bbc6d33c"
760
- },
761
- {
762
- "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/05-artifact-sharing.js",
763
- "digest": "sha256:863949c596240144db5d8b47584e322b0979bb463b9aebae4b0e3e520829f700"
764
- },
765
- {
766
- "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/06-artifact-review-ui.js",
767
- "digest": "sha256:d3d7941145f52dba33a81ad9168253db5f2849cb0005d1899ca45ad2c64dcb7c"
768
- },
769
- {
770
- "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/07-artifact-sharing.js",
771
- "digest": "sha256:cd5a797af4a0a9f08fdb0bc3e0d25867688ef437adf00886f39f08446c30c3af"
735
+ "digest": "sha256:bfc12cd3be81634a8e155feb9e4c689c92f812c28398e6bfa7092d1bbd56644c"
772
736
  },
773
737
  {
774
- "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/08-artifact-review-ui.js",
775
- "digest": "sha256:08b75c390ce4588969b166dd25650e43beeeaa4a7dcdfebefa2d5c5dc1f95898"
738
+ "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-artifact-review-ui.js",
739
+ "digest": "sha256:b82500f20d49d5278d0c68ff3e2fcb0c964fa02d16706236095b7bbd653d9560"
776
740
  },
777
741
  {
778
742
  "path": "runtime/design/scripts/runtime/packages/design/package.json",
779
- "digest": "sha256:f7841eedc349c4011fad6eaa9d571b3508cf867d57d8c4917eee37da45f03715"
743
+ "digest": "sha256:031b95ac441fa20c5ba9e52b41761b87e67f947d8d3810cda00f4c8bacf27649"
780
744
  },
781
745
  {
782
746
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/enhancements.css",
@@ -792,7 +756,7 @@
792
756
  },
793
757
  {
794
758
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/share.js",
795
- "digest": "sha256:b388471dccec997c49ce9638ff9a312037d311d63cbe980dceeb9c3c02ca037b"
759
+ "digest": "sha256:f76e2c70cb047927769b7d42a796cc222d078e7c6dda08806eef7455aeeeee09"
796
760
  },
797
761
  {
798
762
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.css",
@@ -888,7 +852,7 @@
888
852
  },
889
853
  {
890
854
  "path": "runtime/design/scripts/runtime/packages/protocol/package.json",
891
- "digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
855
+ "digest": "sha256:2d98dcb6c6b6910eeabcbd3d2d1f1690ef72eac6d8df3576a2bd230efc9a958e"
892
856
  },
893
857
  {
894
858
  "path": "runtime/design/scripts/runtime/packages/protocol/registries/artifact-theme.json",
@@ -902,10 +866,6 @@
902
866
  "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-envelope.schema.json",
903
867
  "digest": "sha256:f14df0e38200e2d73325939de962efb2c6e2c594b86c1d5c12afe55479dabf23"
904
868
  },
905
- {
906
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-paste.schema.json",
907
- "digest": "sha256:b689a07de579018b628ee3383a10aff5f2aee6d31eee7a1527f996a4592b8d4f"
908
- },
909
869
  {
910
870
  "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-review.schema.json",
911
871
  "digest": "sha256:b4db7b75b694c2aef2a37be2128e4635302f3473e09236aa1f37a33dcf3590b4"
@@ -966,22 +926,6 @@
966
926
  "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-bundle.schema.json",
967
927
  "digest": "sha256:560bbc0f147f20f5b3d65a36b10ae1c4209fd5d9ec0a199f0d23f818684dcba8"
968
928
  },
969
- {
970
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-workspace.schema.json",
971
- "digest": "sha256:e09129fd8428c62285a308f23fda8235636d0c0061730761a94eecf7622a580f"
972
- },
973
- {
974
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-create.schema.json",
975
- "digest": "sha256:d385984298db9fd130735ad5a4d59b80f7a4e70818276c0060b86c38fa1d339c"
976
- },
977
- {
978
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-event.schema.json",
979
- "digest": "sha256:3fa3a0e578a54060a7a279de6190afbb77d39d1f04cb1ad2d5f33a6ad76932c4"
980
- },
981
- {
982
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-workspace-revision.schema.json",
983
- "digest": "sha256:9cb7cea43bad0b3a51d608e1e5645539ad7e8a4473b036d288cc8f4996b2a04a"
984
- },
985
929
  {
986
930
  "path": "runtime/operate/scripts/errors.mjs",
987
931
  "digest": "sha256:6c02fdf441b22fc101a764c928bb0e98fa0a93a602183463c44adc3f8e1d7f79"
@@ -1000,11 +944,11 @@
1000
944
  },
1001
945
  {
1002
946
  "path": "runtime/plan/scripts/design-protocol-contracts.mjs",
1003
- "digest": "sha256:464568c1e8ab14b139812192519b303f06db5c1ccbcc1e8ad5c0d65ceca98f76"
947
+ "digest": "sha256:8c31950fd0266bb08daeadabc12e972922d696d26a56bc94ee461063fa5401ca"
1004
948
  },
1005
949
  {
1006
950
  "path": "runtime/plan/scripts/design.mjs",
1007
- "digest": "sha256:6f91123bee5568d9e2ede49e5f90fb7919fddfd8e9f108db8c941a86311890dd"
951
+ "digest": "sha256:36ec8fe7b3443962a1826ab6af4e306aa26cf2f839c76da7bab61c9f2664a59c"
1008
952
  },
1009
953
  {
1010
954
  "path": "runtime/plan/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
@@ -1012,12 +956,12 @@
1012
956
  },
1013
957
  {
1014
958
  "path": "runtime/plan/scripts/runtime/packages/protocol/package.json",
1015
- "digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
959
+ "digest": "sha256:2d98dcb6c6b6910eeabcbd3d2d1f1690ef72eac6d8df3576a2bd230efc9a958e"
1016
960
  },
1017
961
  {
1018
962
  "path": "runtime/plan/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-review.schema.json",
1019
963
  "digest": "sha256:b4db7b75b694c2aef2a37be2128e4635302f3473e09236aa1f37a33dcf3590b4"
1020
964
  }
1021
965
  ],
1022
- "contentDigest": "sha256:1cffb4b5ebdc10f938980f3185fcc75e413795817f2dc8e2567da911f2da3324"
966
+ "contentDigest": "sha256:7e0c89153abd1fb51e0df0470c94036fb8aa698045e2249d642ef40918934b79"
1023
967
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openplanr",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "ruleCount": 30,
5
5
  "rules": [
6
6
  "rules/planr-artifact.mdc",
@@ -26,32 +26,38 @@ parent host's normal execution controls and configuration. They are not an OpenP
26
26
  OS sandbox. Arguments, exits, timings and bounded private failure diagnostics are
27
27
  saved separately from native-agent check claims.
28
28
 
29
- Verification normally runs in the prepared owned worktree. Ordinary ignored
30
- build/cache outputs are allowed. If preparation, a check or generation changes
31
- reviewable source/tests/configuration/generated files, the old review is invalid:
32
- inspect the updated candidate and review again before acceptance. If the source
33
- checkout makes the prepared tree stale, verification uses a fresh candidate only
34
- when needed, retaining the original native session/worktree.
29
+ `review` commits the worktree's non-ignored state as the run branch tip and reviews
30
+ `git diff base tip`. Verification runs in the owned worktree at that tip: checks see
31
+ HEAD plus the selected files plus the delegate's changes, not the parent checkout's
32
+ other uncommitted files, which the report lists. Ordinary ignored build/cache outputs
33
+ are allowed. If preparation, a check or generation changes reviewable
34
+ source/tests/configuration/generated files, the old review is invalid: inspect the
35
+ updated candidate and review again before acceptance.
35
36
 
36
37
  Failed checks keep the candidate blocked. `baselineComparison: true` explicitly
37
- requests a relevant failed-check comparison; it is diagnostic and cannot turn a
38
- failure into acceptance. Earlier attempt evidence remains private. Narrowing a
38
+ requests a relevant failed-check comparison in a temporary worktree at the base
39
+ commit; it is diagnostic and cannot turn a failure into acceptance. Dependencies are
40
+ not copied there, so include their setup in `preparation`. Earlier attempt evidence remains private. Narrowing a
39
41
  previously failed check set requires `checkSelectionReason`. With no applicable
40
42
  automated check, `reviewOnlyReason` allows explicitly unverified review-only
41
43
  integration; zero checks never produces a verified outcome.
42
44
 
43
45
  ## Checkout protection and recovery
44
46
 
45
- The integration lock, scope/Preserve checks, reviewed patch identity, destination
46
- compare-and-swap and recovery journal protect checkout writes. Concurrent user
47
- edits are never overwritten or rolled back. A source change during checks requires
48
- reviewing the actual candidate again. The journal records intended states before
49
- the first source write and recovery touches only helper-written paths that still
50
- match those states.
47
+ The per-repository lock, scope/Preserve checks and the reviewed tip protect checkout
48
+ writes. `apply` saves a restore point (`git stash create`) under the private ref
49
+ `refs/planr-delegate/<runId>/restore`, then runs `git apply --check` and `git apply`
50
+ with the saved `patch.diff`. A parent edit elsewhere in a changed file merges; an
51
+ overlapping parent edit blocks with its path and leaves the checkout untouched.
52
+ Concurrent user edits are never overwritten or rolled back.
51
53
 
52
- An interrupted source write must use `recover` with rollback (default) or accept
53
- after inspecting every journaled path. Keep conflicting user edits. Do not bypass
54
- a rejected helper by manually applying its patch.
54
+ If `git apply` fails without writing, for example after a parent save between its check
55
+ and the write, the run returns to review with the conflicting paths. An apply
56
+ interrupted between its check and completion must use `recover`, which compares each
57
+ patch path with its pre- and post-apply content. A fully applied patch can be accepted;
58
+ rollback (default) restores only paths that match their post-apply content and keeps
59
+ file permissions. Keep conflicting user edits. Do not bypass a rejected helper by manually applying
60
+ its patch.
55
61
 
56
62
  Successful native integration closes the exact run, saves evidence/report and
57
63
  removes only its owned worktree unless retained. `status` recovers the five-field
@@ -61,8 +67,8 @@ deployment are outside this helper.
61
67
  Experimental generic protocol-v1 adapters and older pinned helpers retain their
62
68
  original check interface and lifecycle; native v2 does not expand their permissions.
63
69
 
64
- Destination publication claims the existing directory entry and compares its bytes before exclusive creation of the replacement. Concurrent replacements block integration. Claimed originals remain in private write custody (Git metadata, or destination-local custody when volumes differ) for crash recovery and writers holding an old inode; conflicts report their retained paths. Rollback uses the same guard and cannot discard a changed claimed original.
70
+ ## Process custody and runs pinned to older helpers
65
71
 
66
- Candidate identity is checked across verification and acceptance; a changed owned worktree is retained instead of automatically removed. Guarded writes validate parent-directory identities as well as final entries. The parent host provides filesystem containment: these checks are conflict detection, not an OS sandbox against processes that deliberately rename ancestors between syscalls. Process custody stops the owned process group; intentionally detached services and processes outside that group remain the native harness/operator responsibility. Independent commands must finish their work before returning success.
72
+ Process custody stops the owned process group; intentionally detached services and processes outside that group remain the native harness/operator responsibility. Independent commands must finish their work before returning success. Cleanup checks that the owned worktree is still at the accepted tip after ownership reads, just before removal; a changed worktree is retained for inspection.
67
73
 
68
- Native interruption recovery validates the complete checkout against the journaled candidate identity before accepting saved verification. Cleanup validates accepted worktree contents after ownership reads, just before removal; an already absent owned worktree can still be unregistered. Concurrent editor saves detected at either boundary retain their files and require review or recovery.
74
+ A run prepared by an older helper, without a run branch, finishes review, apply and recovery through that pinned helper. The current helper refuses its custody instead of integrating it.
@@ -114,7 +114,31 @@ a GGUF filename or display label is not automatically its request ID. Apply an
114
114
  explicit model override only to this run through the existing native options;
115
115
  rewrite or enroll a saved profile only when the user requests it.
116
116
 
117
- If a native CLI uses read-only permissions for non-interactive runs, delegation reports attention rather than enabling writes. Resolve access in that CLI’s own configuration or explicitly authorized exact-session invocation, then continue the recorded session. Model summaries are never sufficient evidence of implementation.
117
+ When the CLI's own settings choose no permission mode, dispatch and resume start
118
+ Claude Code with `--permission-mode acceptEdits` and Codex with `--sandbox
119
+ workspace-write`, so a stock install can edit files in its worktree. In
120
+ `acceptEdits`, Claude also runs `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp` and `sed`
121
+ without asking, for paths in the worktree and the added context directory. A
122
+ configured mode always wins: Claude `permissions.defaultMode` in user, project, local
123
+ or managed settings files, or Codex `sandbox_mode` in `config.toml` or the project's
124
+ `.codex/config.toml`, outside an inactive profile. Unreadable or oversized settings
125
+ count as configured. Cursor runs with `--trust`. Other shell commands still follow
126
+ the CLI's allowlist and approval settings, and no bypass flag is passed.
127
+
128
+ Limits of this check: it reads settings files only, so system or MDM-delivered
129
+ policies and Codex managed configuration are not seen. A Codex profile selected in
130
+ one file but defined in the other is not matched. A project-level Claude
131
+ `defaultMode`, including `"auto"`, counts as configured. The check runs again on each
132
+ `resume`, so a settings change between turns can change the flag.
133
+
134
+ If the CLI still denies an action, delegation
135
+ reports attention rather than widening access. Resolve access in that CLI’s own configuration or explicitly authorized exact-session invocation, then continue the recorded session. Model summaries are never sufficient evidence of implementation.
136
+
137
+ Cursor's CLI writes its own state back to `~/.cursor/cli-config.json` when a run
138
+ ends, so `permissions.allow` entries added while a run is active can be lost. Add
139
+ the commands the task needs (for example `Shell(pnpm)`) before `dispatch`. After an
140
+ `E_ADAPTER_PERMISSION` attention state, wait until the run has stopped, edit the
141
+ allowlist, then `resume` the same run.
118
142
 
119
143
  ## Diagnostics and unused runs
120
144
 
@@ -1,7 +1,7 @@
1
1
  # Run/session lifecycle
2
2
 
3
- Each new run has private v2 records, a complete readable capsule, one owned detached
4
- worktree and a pinned helper snapshot. Records contain configuration references,
3
+ Each new run has private v3 records, a complete readable capsule, one owned worktree
4
+ on its run branch and a pinned helper snapshot. Records contain configuration references,
5
5
  not credential values. Old runs route operations through their unchanged pinned
6
6
  helpers; there is no automatic migration or permission expansion.
7
7
 
@@ -1,13 +1,21 @@
1
1
  # Worktree and context custody
2
2
 
3
- One run owns one detached worktree outside the user's checkout. Copy only selected
4
- dirty state, preserving starting bytes, deletion and the Git executable bit. Full
5
- required ignored planning and repository instructions live in the readable capsule.
6
- The source checkout and unrelated worktrees remain independent.
3
+ One run owns one locked worktree on its own branch, `planr-delegate/<runId>`, outside
4
+ the user's checkout. Only selected dirty state is copied, preserving starting bytes,
5
+ deletion and the Git executable bit, then committed as the run's base commit without
6
+ repository hooks. Full required ignored planning and repository instructions live in
7
+ the readable capsule. The source checkout and unrelated worktrees remain independent.
7
8
 
8
- Custody records bind the run, worktree ownership, starting HEAD/index, selected
9
- source state and Preserve paths. Commits, staging, Preserve changes, scope violations
10
- and destination conflicts block acceptance. Integration scope constrains accepted
9
+ Custody records bind the run, worktree ownership, base commit, selected source state,
10
+ Preserve paths and the repository's refs. The delegate may commit; the run branch must
11
+ stay checked out and descend from its base. The branch checked out in the parent at
12
+ prepare may not be deleted or moved to a commit that contains the run's base, and a
13
+ restore ref may not be deleted while its run is still applying or interrupted. Any
14
+ other ref change, such as a branch switch, amend, reset, stash, fetch or tag, is a
15
+ report warning.
16
+ Preserve changes, scope violations, submodule (gitlink) changes, including ones that
17
+ `ignore` settings hide, and patches the parent
18
+ checkout no longer accepts block acceptance. Integration scope constrains accepted
11
19
  changes; it does not sandbox every native tool operation. Native tools, hooks,
12
20
  plugins and MCP run under the native harness's permissions and trusted configuration.
13
21
 
@@ -16,10 +24,10 @@ and join the candidate; no manual digest acceptance or immutable setup-path list
16
24
  needed. Ignored dependencies/build/cache outputs are ordinary worktree outputs.
17
25
 
18
26
  Successful native integration removes only the owned worktree by checking its
19
- ownership token and Git registration. Retention can be requested before dispatch.
27
+ ownership token and Git registration, then deletes its run branch. Retention can be requested before dispatch.
20
28
  Failures/interruption retain custody. The private run keeps context, accepted patch,
21
29
  verification evidence, report and exact native session reference after cleanup.
22
30
  Old runs continue through their pinned helper; never broaden their policy or migrate
23
31
  their records automatically.
24
32
 
25
- Guarded integration keeps original directory entries for recovery and for writers holding the old inode. If Git metadata is on a different filesystem, private ignored write custody stays beside the destination and its location is recorded in the Git metadata before the first source write. Recovery validates that location inside the checkout. Existing metadata-based custody and pinned legacy helpers remain readable.
33
+ Runs prepared by older helpers use detached worktrees and their own integration; they finish through that pinned helper.