openplanr 3.2.0 → 3.3.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 (231) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cli/commands/spec.d.ts +2 -1
  3. package/dist/cli/commands/spec.d.ts.map +1 -1
  4. package/dist/cli/commands/spec.js +45 -5
  5. package/dist/cli/commands/spec.js.map +1 -1
  6. package/dist/dashboard/.vite/manifest.json +1 -1
  7. package/dist/dashboard/assets/index-B_96uzCl.js +572 -0
  8. package/dist/dashboard/assets/index-B_96uzCl.js.map +1 -0
  9. package/dist/dashboard/dashboard-manifest.json +10 -10
  10. package/dist/dashboard/index.html +1 -1
  11. package/dist/services/claude-plugin-service.d.ts +5 -0
  12. package/dist/services/claude-plugin-service.d.ts.map +1 -1
  13. package/dist/services/claude-plugin-service.js +18 -2
  14. package/dist/services/claude-plugin-service.js.map +1 -1
  15. package/dist/services/codex-plugin-service.d.ts.map +1 -1
  16. package/dist/services/codex-plugin-service.js +11 -3
  17. package/dist/services/codex-plugin-service.js.map +1 -1
  18. package/dist/services/runtime-manager/codex-discovery.d.ts +1 -3
  19. package/dist/services/runtime-manager/codex-discovery.d.ts.map +1 -1
  20. package/dist/services/runtime-manager/codex-discovery.js +3 -16
  21. package/dist/services/runtime-manager/codex-discovery.js.map +1 -1
  22. package/dist/services/runtime-manager/doctor.d.ts +25 -0
  23. package/dist/services/runtime-manager/doctor.d.ts.map +1 -1
  24. package/dist/services/runtime-manager/doctor.js +480 -0
  25. package/dist/services/runtime-manager/doctor.js.map +1 -1
  26. package/dist/services/runtime-manager/errors.d.ts +12 -0
  27. package/dist/services/runtime-manager/errors.d.ts.map +1 -0
  28. package/dist/services/runtime-manager/errors.js +14 -0
  29. package/dist/services/runtime-manager/errors.js.map +1 -0
  30. package/dist/services/runtime-manager/global-state.d.ts +7 -0
  31. package/dist/services/runtime-manager/global-state.d.ts.map +1 -1
  32. package/dist/services/runtime-manager/global-state.js +116 -0
  33. package/dist/services/runtime-manager/global-state.js.map +1 -1
  34. package/dist/services/runtime-manager/host-version-probe.d.ts +8 -0
  35. package/dist/services/runtime-manager/host-version-probe.d.ts.map +1 -0
  36. package/dist/services/runtime-manager/host-version-probe.js +14 -0
  37. package/dist/services/runtime-manager/host-version-probe.js.map +1 -0
  38. package/dist/services/runtime-manager/install-plan.d.ts +25 -0
  39. package/dist/services/runtime-manager/install-plan.d.ts.map +1 -1
  40. package/dist/services/runtime-manager/install-plan.js +305 -0
  41. package/dist/services/runtime-manager/install-plan.js.map +1 -1
  42. package/dist/services/runtime-manager/inventory.d.ts +6 -0
  43. package/dist/services/runtime-manager/inventory.d.ts.map +1 -1
  44. package/dist/services/runtime-manager/inventory.js +16 -1
  45. package/dist/services/runtime-manager/inventory.js.map +1 -1
  46. package/dist/services/runtime-manager/legacy-adapters.d.ts +9 -0
  47. package/dist/services/runtime-manager/legacy-adapters.d.ts.map +1 -0
  48. package/dist/services/runtime-manager/legacy-adapters.js +187 -0
  49. package/dist/services/runtime-manager/legacy-adapters.js.map +1 -0
  50. package/dist/services/runtime-manager/paths.d.ts +18 -0
  51. package/dist/services/runtime-manager/paths.d.ts.map +1 -0
  52. package/dist/services/runtime-manager/paths.js +83 -0
  53. package/dist/services/runtime-manager/paths.js.map +1 -0
  54. package/dist/services/runtime-manager/runtime-package.d.ts +21 -0
  55. package/dist/services/runtime-manager/runtime-package.d.ts.map +1 -1
  56. package/dist/services/runtime-manager/runtime-package.js +77 -0
  57. package/dist/services/runtime-manager/runtime-package.js.map +1 -1
  58. package/dist/services/runtime-manager/storage.d.ts +47 -0
  59. package/dist/services/runtime-manager/storage.d.ts.map +1 -0
  60. package/dist/services/runtime-manager/storage.js +604 -0
  61. package/dist/services/runtime-manager/storage.js.map +1 -0
  62. package/dist/services/runtime-manager-service.d.ts +7 -17
  63. package/dist/services/runtime-manager-service.d.ts.map +1 -1
  64. package/dist/services/runtime-manager-service.js +32 -1695
  65. package/dist/services/runtime-manager-service.js.map +1 -1
  66. package/dist/services/ship-checks/contract.d.ts +13 -1
  67. package/dist/services/ship-checks/contract.d.ts.map +1 -1
  68. package/dist/services/ship-checks/contract.js +1 -1
  69. package/dist/services/ship-checks/contract.js.map +1 -1
  70. package/dist/services/ship-checks/coverage.d.ts +4 -0
  71. package/dist/services/ship-checks/coverage.d.ts.map +1 -0
  72. package/dist/services/ship-checks/coverage.js +113 -0
  73. package/dist/services/ship-checks/coverage.js.map +1 -0
  74. package/dist/services/ship-checks/discover.d.ts.map +1 -1
  75. package/dist/services/ship-checks/discover.js +3 -0
  76. package/dist/services/ship-checks/discover.js.map +1 -1
  77. package/dist/services/spec-service.d.ts +18 -0
  78. package/dist/services/spec-service.d.ts.map +1 -1
  79. package/dist/services/spec-service.js +174 -9
  80. package/dist/services/spec-service.js.map +1 -1
  81. package/dist/templates/spec/spec-shaped.md.hbs +1 -1
  82. package/dist/templates/spec/spec.md.hbs +2 -2
  83. package/docs/CLI.md +49 -2
  84. package/lib/host-packages/adapter-registry.json +5 -5
  85. package/lib/host-packages/capability-map.json +3 -3
  86. package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
  87. package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
  88. package/lib/host-packages/claude/openplanr/.openplanr-content.json +50 -46
  89. package/lib/host-packages/claude/openplanr/README.md +1 -1
  90. package/lib/host-packages/claude/openplanr/agents/planr-qa.md +5 -3
  91. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-document.mjs +87 -2
  92. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
  93. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  94. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
  95. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
  96. package/lib/host-packages/claude/openplanr/runtime/design/scripts/design.mjs +271 -28
  97. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  98. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
  99. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  100. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
  101. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
  102. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
  103. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
  104. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
  105. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
  106. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
  107. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
  108. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
  109. package/lib/host-packages/{cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
  110. package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  111. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
  112. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design.mjs +30 -2
  113. package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
  114. package/lib/host-packages/claude/openplanr/skills/design/references/design-system.md +17 -2
  115. package/lib/host-packages/claude/openplanr/skills/design/references/generation.md +60 -2
  116. package/lib/host-packages/claude/openplanr/skills/design/references/utilities.md +11 -1
  117. package/lib/host-packages/claude/openplanr/skills/design/schemas/design-document.schema.json +131 -4
  118. package/lib/host-packages/claude/openplanr/skills/design-loop/references/design-system.md +17 -2
  119. package/lib/host-packages/claude/openplanr/skills/design-loop/references/generation.md +60 -2
  120. package/lib/host-packages/claude/openplanr/skills/design-loop/references/utilities.md +11 -1
  121. package/lib/host-packages/claude/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
  122. package/lib/host-packages/claude/openplanr/skills/design-review/references/design-system.md +17 -2
  123. package/lib/host-packages/claude/openplanr/skills/design-review/references/generation.md +60 -2
  124. package/lib/host-packages/claude/openplanr/skills/design-review/references/utilities.md +11 -1
  125. package/lib/host-packages/claude/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
  126. package/lib/host-packages/claude/openplanr/skills/investigate/SKILL.md +1 -1
  127. package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +21 -11
  128. package/lib/host-packages/claude/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
  129. package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +31 -10
  130. package/lib/host-packages/claude/openplanr/skills/spec/SKILL.md +6 -0
  131. package/lib/host-packages/claude/openplanr/skills/spec/references/specification-contract.md +3 -1
  132. package/lib/host-packages/cursor/openplanr/.openplanr-content.json +48 -44
  133. package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
  134. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/design-system.md +17 -2
  135. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/generation.md +60 -2
  136. package/lib/host-packages/cursor/openplanr/rules/planr-design/references/utilities.md +11 -1
  137. package/lib/host-packages/cursor/openplanr/rules/planr-design/schemas/design-document.schema.json +131 -4
  138. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/design-system.md +17 -2
  139. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/generation.md +60 -2
  140. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/references/utilities.md +11 -1
  141. package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/schemas/design-document.schema.json +131 -4
  142. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/design-system.md +17 -2
  143. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/generation.md +60 -2
  144. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/references/utilities.md +11 -1
  145. package/lib/host-packages/cursor/openplanr/rules/planr-design-review/schemas/design-document.schema.json +131 -4
  146. package/lib/host-packages/cursor/openplanr/rules/planr-investigate.mdc +1 -1
  147. package/lib/host-packages/cursor/openplanr/rules/planr-plan/schemas/design-document.schema.json +131 -4
  148. package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +21 -11
  149. package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +31 -10
  150. package/lib/host-packages/cursor/openplanr/rules/planr-spec/references/specification-contract.md +3 -1
  151. package/lib/host-packages/cursor/openplanr/rules/planr-spec.mdc +6 -0
  152. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-document.mjs +87 -2
  153. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
  154. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  155. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
  156. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
  157. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design.mjs +271 -28
  158. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  159. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
  160. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  161. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
  162. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
  163. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
  164. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
  165. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
  166. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
  167. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
  168. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
  169. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
  170. package/lib/host-packages/{openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
  171. package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  172. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
  173. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design.mjs +30 -2
  174. package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
  175. package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
  176. package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
  177. package/lib/host-packages/openai/openplanr/.openplanr-content.json +54 -50
  178. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-document.mjs +87 -2
  179. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-handoff.mjs +1 -1
  180. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
  181. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs +102 -9
  182. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs +130 -1
  183. package/lib/host-packages/openai/openplanr/runtime/design/scripts/design.mjs +271 -28
  184. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +32 -32
  185. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +77 -1
  186. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
  187. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +4 -4
  188. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +2 -2
  189. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +5 -5
  190. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js +72 -2
  191. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js +14 -7
  192. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js +71 -34
  193. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js +28 -14
  194. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +12 -12
  195. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +2 -2
  196. package/lib/host-packages/{claude/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0 → openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0}/design-document.schema.json +131 -4
  197. package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json +822 -0
  198. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +78 -1
  199. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design.mjs +30 -2
  200. package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +2 -2
  201. package/lib/host-packages/openai/openplanr/skills/design/references/design-system.md +17 -2
  202. package/lib/host-packages/openai/openplanr/skills/design/references/generation.md +60 -2
  203. package/lib/host-packages/openai/openplanr/skills/design/references/utilities.md +11 -1
  204. package/lib/host-packages/openai/openplanr/skills/design/schemas/design-document.schema.json +131 -4
  205. package/lib/host-packages/openai/openplanr/skills/design-loop/references/design-system.md +17 -2
  206. package/lib/host-packages/openai/openplanr/skills/design-loop/references/generation.md +60 -2
  207. package/lib/host-packages/openai/openplanr/skills/design-loop/references/utilities.md +11 -1
  208. package/lib/host-packages/openai/openplanr/skills/design-loop/schemas/design-document.schema.json +131 -4
  209. package/lib/host-packages/openai/openplanr/skills/design-review/references/design-system.md +17 -2
  210. package/lib/host-packages/openai/openplanr/skills/design-review/references/generation.md +60 -2
  211. package/lib/host-packages/openai/openplanr/skills/design-review/references/utilities.md +11 -1
  212. package/lib/host-packages/openai/openplanr/skills/design-review/schemas/design-document.schema.json +131 -4
  213. package/lib/host-packages/openai/openplanr/skills/investigate/SKILL.md +1 -1
  214. package/lib/host-packages/openai/openplanr/skills/investigate/agents/openai.yaml +1 -1
  215. package/lib/host-packages/openai/openplanr/skills/investigate/openplanr.skill.json +1 -1
  216. package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +21 -11
  217. package/lib/host-packages/openai/openplanr/skills/plan/openplanr.skill.json +1 -1
  218. package/lib/host-packages/openai/openplanr/skills/plan/schemas/design-document.schema.json +131 -4
  219. package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +31 -10
  220. package/lib/host-packages/openai/openplanr/skills/ship/agents/openai.yaml +1 -1
  221. package/lib/host-packages/openai/openplanr/skills/ship/openplanr.skill.json +1 -1
  222. package/lib/host-packages/openai/openplanr/skills/spec/SKILL.md +6 -0
  223. package/lib/host-packages/openai/openplanr/skills/spec/openplanr.skill.json +1 -1
  224. package/lib/host-packages/openai/openplanr/skills/spec/references/specification-contract.md +3 -1
  225. package/lib/json-schema.mjs +4 -0
  226. package/package.json +12 -12
  227. package/dist/dashboard/assets/index-L8qtwqv6.js +0 -572
  228. package/dist/dashboard/assets/index-L8qtwqv6.js.map +0 -1
  229. /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
  230. /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
  231. /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-6774fd3d5d02.mjs → design-runtime-support-25485dbf1cb2.mjs} +0 -0
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://openplanr.dev/schemas/v1.20.0/design-document.schema.json",
3
+ "$id": "https://openplanr.dev/schemas/v1.22.0/design-document.schema.json",
4
4
  "x-openplanr-contract": {
5
5
  "id": "design-document",
6
- "version": "1.20.0"
6
+ "version": "1.22.0"
7
7
  },
8
8
  "title": "OpenPlanr authored design document",
9
9
  "type": "object",
@@ -26,7 +26,10 @@
26
26
  "const": "openplanr-design-document"
27
27
  },
28
28
  "schemaVersion": {
29
- "const": "1.0.0"
29
+ "enum": [
30
+ "1.0.0",
31
+ "1.1.0"
32
+ ]
30
33
  },
31
34
  "id": {
32
35
  "$ref": "#/$defs/id"
@@ -158,6 +161,66 @@
158
161
  },
159
162
  "anchors": {
160
163
  "$ref": "#/$defs/ids"
164
+ },
165
+ "props": {
166
+ "type": "object",
167
+ "propertyNames": {
168
+ "type": "string",
169
+ "minLength": 1,
170
+ "maxLength": 128,
171
+ "pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
172
+ },
173
+ "additionalProperties": {
174
+ "oneOf": [
175
+ {
176
+ "type": "object",
177
+ "additionalProperties": false,
178
+ "required": [
179
+ "type",
180
+ "options",
181
+ "default"
182
+ ],
183
+ "properties": {
184
+ "type": {
185
+ "const": "enum"
186
+ },
187
+ "options": {
188
+ "type": "array",
189
+ "minItems": 1,
190
+ "uniqueItems": true,
191
+ "items": {
192
+ "type": "string",
193
+ "minLength": 1,
194
+ "maxLength": 128,
195
+ "pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
196
+ }
197
+ },
198
+ "default": {
199
+ "type": "string",
200
+ "minLength": 1,
201
+ "maxLength": 128,
202
+ "pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
203
+ }
204
+ }
205
+ },
206
+ {
207
+ "type": "object",
208
+ "additionalProperties": false,
209
+ "required": [
210
+ "type",
211
+ "default"
212
+ ],
213
+ "properties": {
214
+ "type": {
215
+ "const": "boolean"
216
+ },
217
+ "default": {
218
+ "type": "boolean"
219
+ }
220
+ }
221
+ }
222
+ ]
223
+ }
161
224
  }
162
225
  }
163
226
  }
@@ -232,6 +295,34 @@
232
295
  "additionalProperties": {
233
296
  "$ref": "#/$defs/source"
234
297
  }
298
+ },
299
+ "props": {
300
+ "type": "object",
301
+ "propertyNames": {
302
+ "$ref": "#/$defs/id"
303
+ },
304
+ "additionalProperties": {
305
+ "type": "object",
306
+ "propertyNames": {
307
+ "type": "string",
308
+ "minLength": 1,
309
+ "maxLength": 128,
310
+ "pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
311
+ },
312
+ "additionalProperties": {
313
+ "anyOf": [
314
+ {
315
+ "type": "string",
316
+ "minLength": 1,
317
+ "maxLength": 128,
318
+ "pattern": "^[a-z][a-z0-9-]*(?![\\s\\S])"
319
+ },
320
+ {
321
+ "type": "boolean"
322
+ }
323
+ ]
324
+ }
325
+ }
235
326
  }
236
327
  },
237
328
  "if": {
@@ -375,5 +466,41 @@
375
466
  "minimum": -10000000,
376
467
  "maximum": 10000000
377
468
  }
378
- }
469
+ },
470
+ "allOf": [
471
+ {
472
+ "if": {
473
+ "properties": {
474
+ "schemaVersion": {
475
+ "const": "1.1.0"
476
+ }
477
+ },
478
+ "required": [
479
+ "schemaVersion"
480
+ ]
481
+ },
482
+ "else": {
483
+ "properties": {
484
+ "screens": {
485
+ "items": {
486
+ "not": {
487
+ "required": [
488
+ "props"
489
+ ]
490
+ }
491
+ }
492
+ },
493
+ "variants": {
494
+ "items": {
495
+ "not": {
496
+ "required": [
497
+ "props"
498
+ ]
499
+ }
500
+ }
501
+ }
502
+ }
503
+ }
504
+ }
505
+ ]
379
506
  }
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: ship
3
- description: Implement an OpenPlanr plan, specification, task, or clearly stated request end to end in the current repository. Use when the user asks to build, implement, fix, finish, or ship local work.
3
+ description: Implement an OpenPlanr plan, specification, task, or clearly stated request end to end in the current repository. Use when the user asks to build, implement, fix, finish, or ship local work, or to plan and implement an accepted change. Invoke before editing files for the requested change. Not for planning only, landing, release, or work handed to another coding agent.
4
4
  license: MIT
5
5
  ---
6
6
 
7
7
  # OpenPlanr Ship
8
8
 
9
- Produce an implementation-complete local repository in this active coding
10
- session. Landing and release preparation belong to `planr-land`. Ordinary
9
+ Produce an implementation-complete local repository in this active coding session.
10
+ Landing and release preparation belong to `planr-land`. Ordinary
11
11
  Ship stays host-native. Do not delegate implementation to a command-line or model subprocess. If the user explicitly asks another coding agent to implement,
12
12
  hand off to `planr-delegate` before implementation. That separate opt-in workflow
13
13
  previews the selected context, writable repository, profile, and destination;
@@ -40,13 +40,34 @@ context is sufficient; missing planning files do not create a gate.
40
40
 
41
41
  ## Implement with native roles
42
42
 
43
- Use the host's read, edit, shell, browser, and test capabilities. When native
44
- agents are available, dispatch only the applicable frontend, backend, database,
45
- QA, DevOps, and documentation roles inside this session. Give each role its
46
- owned outcome, relevant context paths, and explicit file coordination boundary.
47
- Run independent work in parallel. Host-native role agents remain part of this
48
- Ship session and do not invoke the separate `planr-delegate` helper. When native
49
- agents are unavailable, perform the same lenses sequentially in the active agent.
43
+ The main session owns scope, decisions, integration, and final verification.
44
+ Use the host's read, edit, shell, browser, and test capabilities inside this session.
45
+ Keep small coherent changes in this session. Delegate only a self-contained
46
+ outcome that benefits from context isolation, a distinct capability boundary,
47
+ or independent parallel work; agent availability alone is not a reason to dispatch.
48
+
49
+ Frontend and backend own substantial bounded implementation assignments.
50
+ Persistence implementation, including a task carrying the legacy `db-agent`
51
+ identity, belongs to backend with the relevant database guidance; preserve the
52
+ task's recorded identity. Database is optional read-only introspection when
53
+ repository schemas are insufficient, never migration implementation. Keep small
54
+ documentation updates with their implementation; delegate substantial documentation
55
+ or requested configuration work separately. DevOps never deploys. Entity
56
+ scaffolding remains manual, on explicit request.
57
+
58
+ Use a separate QA reviewer for authorization, credentials, data-loss risk,
59
+ migrations, public contracts, release behavior, or substantial delegated
60
+ implementation. Small low-risk edits use focused verification in the main session.
61
+ QA retains verification tools, subject to role policy and session permissions.
62
+
63
+ Select the exact registered identity from the host's roster; Claude plugin
64
+ agents use names such as `planr:planr-backend` and `planr:planr-qa`. Give each worker
65
+ its outcome, authoritative paths, relevant decisions, file ownership, verification
66
+ requirements, and concise return expectations. Parallel workers need disjoint
67
+ writes or an agreed interface. Explain the delegation's purpose briefly in
68
+ commentary. Host-native workers do not invoke the separate `planr-delegate` helper.
69
+ When the host lacks the native role, perform the work sequentially in this session
70
+ and disclose capability limitations; never claim an unavailable specialist ran.
50
71
 
51
72
  Integrate the complete change, then verify behavior. `reviewRisks` and
52
73
  `browserSurfaces` select useful checks; empty arrays are normal and neither field
@@ -23,6 +23,12 @@ mutually exclusive questions at once and put the recommended option first. If
23
23
  the host lacks that interface, ask one concise chat question. Do not present a
24
24
  long prose questionnaire.
25
25
 
26
+ If no one can answer, as in a headless run, do not ask: choose the
27
+ repository-backed default, or the recommended one when the repository does not
28
+ settle it, and record each such choice as a bullet starting `Assumption:` under
29
+ `## Notes for Decomposition`, naming the decision and the alternative not taken.
30
+ Record a decision you settle inside a functional requirement the same way.
31
+
26
32
  When native agents are available, use the specification role to consolidate the
27
33
  contract and dispatch database or designer roles only when their lens affects
28
34
  the decision. Otherwise perform those lenses sequentially in the active agent.
@@ -30,7 +30,9 @@ template:
30
30
 
31
31
  Keep evidence and rollback as useful planning context, not approval gates or
32
32
  receipt requirements. A risk-specialist section may be empty when no specialist
33
- lens applies.
33
+ lens applies. Under `## Notes for Decomposition`, list each decision made without
34
+ an answer as a bullet starting `Assumption:` that names the decision and the
35
+ alternative not taken.
34
36
 
35
37
  For a repository intentionally using default mode, write
36
38
  `input/specs/spec-{slug}.md` and preserve its active schema. Do not create a
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "path": "manifest.json",
19
- "digest": "sha256:58241180372850f3f84fb9594dd979e161fd4c4bd07219271a635bd897decbb4"
19
+ "digest": "sha256:717f58c8b6076b1c7f3fb7ee6a5355e4d07740bbd8cbee3b9ece8a7662bb6cbf"
20
20
  },
21
21
  {
22
22
  "path": "rules/planr-artifact.mdc",
@@ -264,7 +264,7 @@
264
264
  },
265
265
  {
266
266
  "path": "rules/planr-design-loop/references/design-system.md",
267
- "digest": "sha256:d97ad4aca7c6a21d2e6208620d928beb3e34eac4460c64943b33f5835f9b432f"
267
+ "digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
268
268
  },
269
269
  {
270
270
  "path": "rules/planr-design-loop/references/discovery.md",
@@ -272,7 +272,7 @@
272
272
  },
273
273
  {
274
274
  "path": "rules/planr-design-loop/references/generation.md",
275
- "digest": "sha256:4837ad37da9a028e92b63611f81bb764f5fb7818a8ba25df0b21a5ac276ae71a"
275
+ "digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
276
276
  },
277
277
  {
278
278
  "path": "rules/planr-design-loop/references/handoff.md",
@@ -288,11 +288,11 @@
288
288
  },
289
289
  {
290
290
  "path": "rules/planr-design-loop/references/utilities.md",
291
- "digest": "sha256:bcb057b0599bf48cee3d2955808c6f3ab6377b8d520f1981782b7353cb22ba6a"
291
+ "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
292
292
  },
293
293
  {
294
294
  "path": "rules/planr-design-loop/schemas/design-document.schema.json",
295
- "digest": "sha256:9782c8c130b19f7c47b17ec59a216f4699e3a6f3b81120ecc0442d2576d58fa2"
295
+ "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
296
296
  },
297
297
  {
298
298
  "path": "rules/planr-design-loop/schemas/design-review-context.schema.json",
@@ -320,7 +320,7 @@
320
320
  },
321
321
  {
322
322
  "path": "rules/planr-design-review/references/design-system.md",
323
- "digest": "sha256:d97ad4aca7c6a21d2e6208620d928beb3e34eac4460c64943b33f5835f9b432f"
323
+ "digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
324
324
  },
325
325
  {
326
326
  "path": "rules/planr-design-review/references/discovery.md",
@@ -328,7 +328,7 @@
328
328
  },
329
329
  {
330
330
  "path": "rules/planr-design-review/references/generation.md",
331
- "digest": "sha256:4837ad37da9a028e92b63611f81bb764f5fb7818a8ba25df0b21a5ac276ae71a"
331
+ "digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
332
332
  },
333
333
  {
334
334
  "path": "rules/planr-design-review/references/handoff.md",
@@ -344,11 +344,11 @@
344
344
  },
345
345
  {
346
346
  "path": "rules/planr-design-review/references/utilities.md",
347
- "digest": "sha256:bcb057b0599bf48cee3d2955808c6f3ab6377b8d520f1981782b7353cb22ba6a"
347
+ "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
348
348
  },
349
349
  {
350
350
  "path": "rules/planr-design-review/schemas/design-document.schema.json",
351
- "digest": "sha256:9782c8c130b19f7c47b17ec59a216f4699e3a6f3b81120ecc0442d2576d58fa2"
351
+ "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
352
352
  },
353
353
  {
354
354
  "path": "rules/planr-design-review/schemas/design-review-context.schema.json",
@@ -376,7 +376,7 @@
376
376
  },
377
377
  {
378
378
  "path": "rules/planr-design/references/design-system.md",
379
- "digest": "sha256:d97ad4aca7c6a21d2e6208620d928beb3e34eac4460c64943b33f5835f9b432f"
379
+ "digest": "sha256:558a165a070b31bba66b81c77eeb86b935a09dcbad9939f37fc580e3f301a1a6"
380
380
  },
381
381
  {
382
382
  "path": "rules/planr-design/references/discovery.md",
@@ -384,7 +384,7 @@
384
384
  },
385
385
  {
386
386
  "path": "rules/planr-design/references/generation.md",
387
- "digest": "sha256:4837ad37da9a028e92b63611f81bb764f5fb7818a8ba25df0b21a5ac276ae71a"
387
+ "digest": "sha256:ad4c1fc6589e4566a8b6ecdf86dd3f0c87db7d663c480d6c6a77d61502975094"
388
388
  },
389
389
  {
390
390
  "path": "rules/planr-design/references/handoff.md",
@@ -404,11 +404,11 @@
404
404
  },
405
405
  {
406
406
  "path": "rules/planr-design/references/utilities.md",
407
- "digest": "sha256:bcb057b0599bf48cee3d2955808c6f3ab6377b8d520f1981782b7353cb22ba6a"
407
+ "digest": "sha256:6f5d0067a9fe75d30994c4bbddec91135d93f3dacb70f43add3b2ad17f1144ad"
408
408
  },
409
409
  {
410
410
  "path": "rules/planr-design/schemas/design-document.schema.json",
411
- "digest": "sha256:9782c8c130b19f7c47b17ec59a216f4699e3a6f3b81120ecc0442d2576d58fa2"
411
+ "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
412
412
  },
413
413
  {
414
414
  "path": "rules/planr-design/schemas/design-review-context.schema.json",
@@ -452,7 +452,7 @@
452
452
  },
453
453
  {
454
454
  "path": "rules/planr-investigate.mdc",
455
- "digest": "sha256:5ad620b3684109c54044c917de52c21e1539ad686d7fc8ae40e56e1c9a2566b3"
455
+ "digest": "sha256:e5e3880f9778be44993d2b0892ae60349acdd712e7761324a16deb670023b745"
456
456
  },
457
457
  {
458
458
  "path": "rules/planr-investigate/references/findings.md",
@@ -484,7 +484,7 @@
484
484
  },
485
485
  {
486
486
  "path": "rules/planr-plan.mdc",
487
- "digest": "sha256:7b2162d316b46100242ddb6619a0c0cd75c07bef73d2883e4d4f93f4a96b00f0"
487
+ "digest": "sha256:621f388b1fa6421a5ea10683d282fb3eb8bb5248bcb941879ddf1268e0b3c325"
488
488
  },
489
489
  {
490
490
  "path": "rules/planr-plan/references/artifact-contract.md",
@@ -496,7 +496,7 @@
496
496
  },
497
497
  {
498
498
  "path": "rules/planr-plan/schemas/design-document.schema.json",
499
- "digest": "sha256:9782c8c130b19f7c47b17ec59a216f4699e3a6f3b81120ecc0442d2576d58fa2"
499
+ "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
500
500
  },
501
501
  {
502
502
  "path": "rules/planr-plan/schemas/design-review-context.schema.json",
@@ -552,7 +552,7 @@
552
552
  },
553
553
  {
554
554
  "path": "rules/planr-ship.mdc",
555
- "digest": "sha256:f6a3cd77d4aae9c6188d2e4549f5712689ee4cac5170b1ad6a9baa186b730e80"
555
+ "digest": "sha256:12c4adb5ae3612c71e6861cc55388644de40f981db44863839f54cf825d33bc6"
556
556
  },
557
557
  {
558
558
  "path": "rules/planr-ship/references/design-lineage.md",
@@ -576,11 +576,11 @@
576
576
  },
577
577
  {
578
578
  "path": "rules/planr-spec.mdc",
579
- "digest": "sha256:4f9c84406c76afae11db8bda9ea144b01720c99a0aec1b8b4b2647d10a6b0483"
579
+ "digest": "sha256:874e369aff13d4c6fdcd990460a49f153c21ea52846019c617b805cb9ce53266"
580
580
  },
581
581
  {
582
582
  "path": "rules/planr-spec/references/specification-contract.md",
583
- "digest": "sha256:55ecc8361256073324d2507097862f6222589e22887dffe5b5e25cdc89199df5"
583
+ "digest": "sha256:eaaf58e5d2e5cf788856c8d0e156a1ff49111d3578556bfb7c8fe2466df15b15"
584
584
  },
585
585
  {
586
586
  "path": "rules/planr-sprint.mdc",
@@ -652,7 +652,7 @@
652
652
  },
653
653
  {
654
654
  "path": "runtime/design/scripts/design-document.mjs",
655
- "digest": "sha256:8cae4875f680ffe897f85fc1b80617666e788f3ed4562b9fdac8169edcba0d37"
655
+ "digest": "sha256:265390be5971cb170bfa3bbe85073d95d3a03fdcad5ad2d6885863ed92636d7c"
656
656
  },
657
657
  {
658
658
  "path": "runtime/design/scripts/design-encrypted-workspace-client.mjs",
@@ -664,7 +664,7 @@
664
664
  },
665
665
  {
666
666
  "path": "runtime/design/scripts/design-handoff.mjs",
667
- "digest": "sha256:8e45824f88347a7a4ab52275892008c100d61c475757237d33b992a4a60dc1b5"
667
+ "digest": "sha256:1d24e4ebd3bff99f3dd5e2fa8cab17971bbc4acb10cc416a0e1a1e4af584f0ee"
668
668
  },
669
669
  {
670
670
  "path": "runtime/design/scripts/design-loopback-server.mjs",
@@ -695,7 +695,7 @@
695
695
  "digest": "sha256:c338765d9f5746bf375377bdd25e94490ac31985bab0b0335e49f9faadb5c08b"
696
696
  },
697
697
  {
698
- "path": "runtime/design/scripts/design-runtime-support-6774fd3d5d02.mjs",
698
+ "path": "runtime/design/scripts/design-runtime-support-25485dbf1cb2.mjs",
699
699
  "digest": "sha256:6fd1b789adf2cfcf742602f1faa6a0d0835f2bc5cc2afa6e153424be68892fa2"
700
700
  },
701
701
  {
@@ -704,11 +704,11 @@
704
704
  },
705
705
  {
706
706
  "path": "runtime/design/scripts/design-share.mjs",
707
- "digest": "sha256:e49918e85add71f33816f9c6ed9a23681e05402653dae2115def9f5b10377c5f"
707
+ "digest": "sha256:9d859c41f2b7a049650f15bc67620a8e9e473dc1dfea57b6b6eae11a47bada6c"
708
708
  },
709
709
  {
710
710
  "path": "runtime/design/scripts/design-shared-artifact-support-dependencies-design-support-protocol-contracts-3d9b1a86.mjs",
711
- "digest": "sha256:537ee60fa2074aee17fb4d07da158e703333ecebdcd77d40b8daedba1e112ad3"
711
+ "digest": "sha256:f2e1cd55ff19cb6127d02f3b2cd86fdcc5737432b3f59420707b86181c6963f9"
712
712
  },
713
713
  {
714
714
  "path": "runtime/design/scripts/design-shared-artifact-support-protocol-contracts-ea2cd15e.mjs",
@@ -720,7 +720,7 @@
720
720
  },
721
721
  {
722
722
  "path": "runtime/design/scripts/design-shared-protocol-contracts-b5f28f94.mjs",
723
- "digest": "sha256:abad366dbe146014a6e9c536cda124d48c81cfb8f6cc9f2d5d2a411324f2593f"
723
+ "digest": "sha256:93c1762353ebe32d886bbb2fef3f2a72cfbf8e139973eec88f4f6b8f10d8e503"
724
724
  },
725
725
  {
726
726
  "path": "runtime/design/scripts/design-upload-spool.mjs",
@@ -728,11 +728,11 @@
728
728
  },
729
729
  {
730
730
  "path": "runtime/design/scripts/design.mjs",
731
- "digest": "sha256:ae7a24327bf4e277f7630554252b704281061c60ef848a3103deda62556166be"
731
+ "digest": "sha256:6feea162e96236d2392162831e660a2fd5e908b2c67bf64bea89bbcb8dd41467"
732
732
  },
733
733
  {
734
734
  "path": "runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
735
- "digest": "sha256:66a4b5b0ce31ce6c5a5ea43c17dea76a48df6a1bcf5c2cd6b187b2b6c210143c"
735
+ "digest": "sha256:c780d6f2609e544d086bc236c27f408fcd736d3a9ea91175c8ed674cfd0a4b0b"
736
736
  },
737
737
  {
738
738
  "path": "runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css",
@@ -740,7 +740,7 @@
740
740
  },
741
741
  {
742
742
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json",
743
- "digest": "sha256:2975ec9e87c3d158949c2608f0aec6251041dfe455e5cd1efe3df1c794097d69"
743
+ "digest": "sha256:d2b6a89cfd25803e4fb266a2747c373f701955519f50e90e0f441fc8c5b10876"
744
744
  },
745
745
  {
746
746
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/01-module-runtime.js",
@@ -752,7 +752,7 @@
752
752
  },
753
753
  {
754
754
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js",
755
- "digest": "sha256:c5ecc1e13bc56b399f69808c609b21f69865ff134e50a8b4898dd8a93bd582ef"
755
+ "digest": "sha256:fbf069e668fecf9519cab318f88033b106b93933ea0788f2c4c8cf8374c35e38"
756
756
  },
757
757
  {
758
758
  "path": "runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/04-compression.js",
@@ -776,7 +776,7 @@
776
776
  },
777
777
  {
778
778
  "path": "runtime/design/scripts/runtime/packages/design/package.json",
779
- "digest": "sha256:95a28ec13aa6fb8fcea651b9916cf260c939dfb443e724d54147e6b255258707"
779
+ "digest": "sha256:f7841eedc349c4011fad6eaa9d571b3508cf867d57d8c4917eee37da45f03715"
780
780
  },
781
781
  {
782
782
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/enhancements.css",
@@ -800,7 +800,7 @@
800
800
  },
801
801
  {
802
802
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json",
803
- "digest": "sha256:0bab5c7c73247098c4636be1ee97c4b6258d0f7bc1517ad4d10a194284dc1f6a"
803
+ "digest": "sha256:883c094162afc18637301227f2093c0582110a798006c5f0ec2884021fca249b"
804
804
  },
805
805
  {
806
806
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/01-module-runtime.js",
@@ -808,7 +808,7 @@
808
808
  },
809
809
  {
810
810
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js",
811
- "digest": "sha256:cb3eafecfffc8532216b7bcd71bac6afea5b3fb7f8b0887da140e11c0006cd11"
811
+ "digest": "sha256:a71e51391e9b730dd958c618d78eca7f08afdba44c6deaec659cc74407f60a62"
812
812
  },
813
813
  {
814
814
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js",
@@ -836,7 +836,7 @@
836
836
  },
837
837
  {
838
838
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js",
839
- "digest": "sha256:8c81399ccb8a52f0c5e3eca3e49c53dda63e3f954e816c8c0ee94f9a3d2d40f6"
839
+ "digest": "sha256:7e5c20997dc0ec69609fa5983db9daf426ab2e4da798969be45bc037cb6285d6"
840
840
  },
841
841
  {
842
842
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/10-react.js",
@@ -848,11 +848,11 @@
848
848
  },
849
849
  {
850
850
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/12-protocol-contracts.js",
851
- "digest": "sha256:4007bd14b7bddf0b26803697eaf2f107d4f9806acd612c12d24b493d6f265a53"
851
+ "digest": "sha256:b94ce32e28be39b4c0c524039f27302c38402ea16cbb37845d6fbda2e83350ce"
852
852
  },
853
853
  {
854
854
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/13-design-review-experience.js",
855
- "digest": "sha256:9f1e3e4bee690452ca512fbfcec4777244bd773cb1177fb19263f54def48722d"
855
+ "digest": "sha256:84f4fe26fdd473a8858766a433986cc60e60639906da15a0f3244c4b5a5adc5f"
856
856
  },
857
857
  {
858
858
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-studio-shell.js",
@@ -860,7 +860,7 @@
860
860
  },
861
861
  {
862
862
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-canvas-engine.js",
863
- "digest": "sha256:5d29bb88f041c9fad393491becc097198e0ce965a1bbc8cb0b410e17bfad6b70"
863
+ "digest": "sha256:457b785e01410722ba42aa372ac2b1e82f73fdc134a6d1c4d068bd16cd83c230"
864
864
  },
865
865
  {
866
866
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-design-review-experience.js",
@@ -884,11 +884,11 @@
884
884
  },
885
885
  {
886
886
  "path": "runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/21-design-studio.js",
887
- "digest": "sha256:d99e4aede54009be49bec6d7244b35578469d43330f261cbf0f05dac0ae40bee"
887
+ "digest": "sha256:672d0395a9d1016f511f3b8dd6b23c1015958a97e54a83e51af2f39b53222236"
888
888
  },
889
889
  {
890
890
  "path": "runtime/design/scripts/runtime/packages/protocol/package.json",
891
- "digest": "sha256:e2b8a258f17377977d71366a18abda7e42250d67ff527f2f597c531d500aa312"
891
+ "digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
892
892
  },
893
893
  {
894
894
  "path": "runtime/design/scripts/runtime/packages/protocol/registries/artifact-theme.json",
@@ -955,8 +955,12 @@
955
955
  "digest": "sha256:f5616731ad5bb0399514e1cd36f6ffbaf9adaa1b378107b677b857f6312dfa52"
956
956
  },
957
957
  {
958
- "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.20.0/design-document.schema.json",
959
- "digest": "sha256:9782c8c130b19f7c47b17ec59a216f4699e3a6f3b81120ecc0442d2576d58fa2"
958
+ "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-document.schema.json",
959
+ "digest": "sha256:33d74abce73ec6631ee1a4f5037bb49571f81cedaebac5bf37d77d91a170b507"
960
+ },
961
+ {
962
+ "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.22.0/design-review-bundle.schema.json",
963
+ "digest": "sha256:92e42b05c54f7773f89e93de45fad1c6bfc4027160079d52dcabe59fc0612933"
960
964
  },
961
965
  {
962
966
  "path": "runtime/design/scripts/runtime/packages/protocol/schemas/v1.9.0/design-review-bundle.schema.json",
@@ -996,11 +1000,11 @@
996
1000
  },
997
1001
  {
998
1002
  "path": "runtime/plan/scripts/design-protocol-contracts.mjs",
999
- "digest": "sha256:02a346c16d4b088e8381193460809cf8434e3116de8249b9e364de9c43fe974e"
1003
+ "digest": "sha256:464568c1e8ab14b139812192519b303f06db5c1ccbcc1e8ad5c0d65ceca98f76"
1000
1004
  },
1001
1005
  {
1002
1006
  "path": "runtime/plan/scripts/design.mjs",
1003
- "digest": "sha256:7e1379e8a1f2900f45fb75f8dc30faba06511d2d0eaae9cb9588db3d79de127c"
1007
+ "digest": "sha256:6f91123bee5568d9e2ede49e5f90fb7919fddfd8e9f108db8c941a86311890dd"
1004
1008
  },
1005
1009
  {
1006
1010
  "path": "runtime/plan/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt",
@@ -1008,12 +1012,12 @@
1008
1012
  },
1009
1013
  {
1010
1014
  "path": "runtime/plan/scripts/runtime/packages/protocol/package.json",
1011
- "digest": "sha256:e2b8a258f17377977d71366a18abda7e42250d67ff527f2f597c531d500aa312"
1015
+ "digest": "sha256:cdb21a973cfb6bcccded6c16893a777022ad3a12ac281f31dbb68f750edfc5e8"
1012
1016
  },
1013
1017
  {
1014
1018
  "path": "runtime/plan/scripts/runtime/packages/protocol/schemas/v1.1.0/artifact-review.schema.json",
1015
1019
  "digest": "sha256:b4db7b75b694c2aef2a37be2128e4635302f3473e09236aa1f37a33dcf3590b4"
1016
1020
  }
1017
1021
  ],
1018
- "contentDigest": "sha256:a878f8a33ea317436d275c4f5c1d7432f602783db9fca4bacadd2a6ef809536f"
1022
+ "contentDigest": "sha256:1cffb4b5ebdc10f938980f3185fcc75e413795817f2dc8e2567da911f2da3324"
1019
1023
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openplanr",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "ruleCount": 30,
5
5
  "rules": [
6
6
  "rules/planr-artifact.mdc",
@@ -54,8 +54,23 @@ while authoring:
54
54
  - at most two families and three weights each; one variable file can cover a
55
55
  family's weights.
56
56
 
57
- Snapshotting needs network access while authoring. When it is unavailable, or a
58
- license is unclear, use the role's system stack and name that fallback in the return:
57
+ Snapshot with the bundled helper, run from the skill directory (see
58
+ [utilities.md](utilities.md)):
59
+
60
+ ```sh
61
+ node scripts/design.mjs fonts fetch --family "Inter:400,600" --family "Source Serif 4:400" --dest <design>/source/assets/fonts
62
+ ```
63
+
64
+ It is the one command to ask approval for. A host that allowlists network access by
65
+ domain needs `raw.githubusercontent.com`, `fonts.googleapis.com` and
66
+ `fonts.gstatic.com`. It enforces the rules above, verifies each
67
+ license from the Google Fonts catalog, writes `fonts.css`, and prints the files and
68
+ total bytes. Start the design stylesheet with `@import "assets/fonts/fonts.css";`
69
+ (relative to that stylesheet), then use the families by name. Nothing is fetched when
70
+ a design opens.
71
+
72
+ When the host denies network access, the command fails, or it refuses a license, use
73
+ the role's system stack and name that fallback in the return:
59
74
 
60
75
  | Role | System stack |
61
76
  | --- | --- |