opendevbrowser 0.0.31 → 0.0.33

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 (336) hide show
  1. package/README.md +18 -5
  2. package/dist/{accessibility-snapshot-CQ4ZKWKC.js → accessibility-snapshot-JSPFVWZ6.js} +12 -12
  3. package/dist/{active-window-TD5HYJ72.js → active-window-2OB2MSCR.js} +12 -12
  4. package/dist/{annotate-VTLFS2XV.js → annotate-VDZBZBKZ.js} +11 -11
  5. package/dist/{artifacts-KJ6RNDO2.js → artifacts-JHDUUJGQ.js} +2 -2
  6. package/dist/{attr-BCI5KYCW.js → attr-7XIO4MCH.js} +11 -11
  7. package/dist/browser/canvas-manager.d.ts.map +1 -1
  8. package/dist/canvas/guidance.d.ts +7 -0
  9. package/dist/canvas/guidance.d.ts.map +1 -1
  10. package/dist/canvas/repair-examples.d.ts +45 -0
  11. package/dist/canvas/repair-examples.d.ts.map +1 -0
  12. package/dist/{canvas-5DFEEOKM.js → canvas-N4PAA274.js} +26 -11
  13. package/dist/canvas-N4PAA274.js.map +1 -0
  14. package/dist/{capture-desktop-HFTTWY4Z.js → capture-desktop-T5YO3EBI.js} +12 -12
  15. package/dist/{capture-window-X63XPIFF.js → capture-window-UKEUBWKH.js} +12 -12
  16. package/dist/{check-LWAUY7GC.js → check-PQB6KKMN.js} +11 -11
  17. package/dist/{checked-ZSOUKVYT.js → checked-RNZIMCU6.js} +11 -11
  18. package/dist/{chunk-6B5WAQV7.js → chunk-27W46IKI.js} +42 -11
  19. package/dist/chunk-27W46IKI.js.map +1 -0
  20. package/dist/{chunk-WHQZBUNY.js → chunk-3WLCWHIV.js} +2 -2
  21. package/dist/{chunk-WHQZBUNY.js.map → chunk-3WLCWHIV.js.map} +1 -1
  22. package/dist/{chunk-PPUWQKIC.js → chunk-52ZIOWVU.js} +4 -4
  23. package/dist/{chunk-IPE7TF2P.js → chunk-7BNU6DFI.js} +8 -5
  24. package/dist/chunk-7BNU6DFI.js.map +1 -0
  25. package/dist/{chunk-3ILXPKSJ.js → chunk-BUVYTJZR.js} +2 -1
  26. package/dist/chunk-BUVYTJZR.js.map +1 -0
  27. package/dist/{chunk-QOMWCRE3.js → chunk-EOX6U6Q4.js} +47 -19
  28. package/dist/chunk-EOX6U6Q4.js.map +1 -0
  29. package/dist/{chunk-4BEJVZRK.js → chunk-FBKPDILE.js} +3625 -289
  30. package/dist/chunk-FBKPDILE.js.map +1 -0
  31. package/dist/{chunk-2I3YS3DV.js → chunk-FDBUB7BM.js} +7 -3
  32. package/dist/chunk-FDBUB7BM.js.map +1 -0
  33. package/dist/{chunk-COAOWH3G.js → chunk-HMRANSDX.js} +120 -28
  34. package/dist/chunk-HMRANSDX.js.map +1 -0
  35. package/dist/{chunk-KZ2IXVQT.js → chunk-IBIHDGTZ.js} +40 -5
  36. package/dist/chunk-IBIHDGTZ.js.map +1 -0
  37. package/dist/{chunk-T4GMCW6Z.js → chunk-J3KYGJRQ.js} +3 -3
  38. package/dist/{chunk-AHEWXOKY.js → chunk-JROW6ZNN.js} +4 -4
  39. package/dist/{chunk-6PVZ2ABC.js → chunk-L3YNUGYF.js} +2 -2
  40. package/dist/{chunk-MD655IPO.js → chunk-MJF67OTH.js} +11 -4
  41. package/dist/chunk-MJF67OTH.js.map +1 -0
  42. package/dist/{chunk-JZXD6FWR.js → chunk-NURQB55J.js} +2 -2
  43. package/dist/{chunk-STGGGVYT.js → chunk-QMHKAFYX.js} +2 -2
  44. package/dist/{chunk-RPXWUCQQ.js → chunk-SKFB5ICF.js} +2 -2
  45. package/dist/{chunk-2SIMIPLY.js → chunk-W6YPVNDX.js} +3 -3
  46. package/dist/{chunk-GQJ5S3BL.js → chunk-YRRRUGSQ.js} +3 -3
  47. package/dist/{chunk-37VSRUW4.js → chunk-ZGCTC5YM.js} +39 -7
  48. package/dist/chunk-ZGCTC5YM.js.map +1 -0
  49. package/dist/{chunk-KDSNXS6N.js → chunk-ZMNEWS7A.js} +2 -2
  50. package/dist/cli/args.d.ts.map +1 -1
  51. package/dist/cli/commands/canvas.d.ts +12 -0
  52. package/dist/cli/commands/canvas.d.ts.map +1 -1
  53. package/dist/cli/commands/daemon.d.ts +19 -2
  54. package/dist/cli/commands/daemon.d.ts.map +1 -1
  55. package/dist/cli/commands/inspiredesign.d.ts +6 -1
  56. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  57. package/dist/cli/commands/serve.d.ts +12 -3
  58. package/dist/cli/commands/serve.d.ts.map +1 -1
  59. package/dist/cli/commands/status.d.ts.map +1 -1
  60. package/dist/cli/commands/types.d.ts +1 -0
  61. package/dist/cli/commands/types.d.ts.map +1 -1
  62. package/dist/cli/daemon-client.d.ts.map +1 -1
  63. package/dist/cli/daemon-commands.d.ts.map +1 -1
  64. package/dist/cli/daemon-mismatch.d.ts +15 -0
  65. package/dist/cli/daemon-mismatch.d.ts.map +1 -0
  66. package/dist/cli/daemon.d.ts.map +1 -1
  67. package/dist/cli/errors.d.ts +4 -2
  68. package/dist/cli/errors.d.ts.map +1 -1
  69. package/dist/cli/help.d.ts.map +1 -1
  70. package/dist/cli/index.js +91 -90
  71. package/dist/cli/index.js.map +1 -1
  72. package/dist/cli/installers/postinstall-skill-sync.js +2 -2
  73. package/dist/cli/utils/workflow-message.d.ts +1 -1
  74. package/dist/cli/utils/workflow-message.d.ts.map +1 -1
  75. package/dist/{click-2AILSEIZ.js → click-U7ZFKSB4.js} +11 -11
  76. package/dist/{clone-component-TPJS3PEG.js → clone-component-SWYAORTU.js} +10 -10
  77. package/dist/{clone-page-LE74CIFC.js → clone-page-WJ6UJOJG.js} +10 -10
  78. package/dist/{close-HN4YI47K.js → close-NAVIHZ2T.js} +10 -10
  79. package/dist/{close-WFERRHX6.js → close-VKIGIKVT.js} +10 -10
  80. package/dist/{connect-RWBV2UCQ.js → connect-XVG2MOZL.js} +11 -11
  81. package/dist/{console-poll-PP4YYPDF.js → console-poll-XI5BZPL7.js} +11 -11
  82. package/dist/{cookie-import-6IP776FC.js → cookie-import-QELKE7TK.js} +10 -10
  83. package/dist/{cookie-list-O2KG6DPU.js → cookie-list-QDA6KWIY.js} +10 -10
  84. package/dist/{daemon-2BSAZXLT.js → daemon-CA4UIIZQ.js} +26 -13
  85. package/dist/daemon-CA4UIIZQ.js.map +1 -0
  86. package/dist/daemon-fingerprint.json +1 -1
  87. package/dist/{debug-trace-snapshot-F3BDVZXS.js → debug-trace-snapshot-AT4GAO57.js} +11 -11
  88. package/dist/{dialog-6JQYUWMQ.js → dialog-O3V2IBFH.js} +11 -11
  89. package/dist/{disconnect-763TP7GH.js → disconnect-NAX5TPTG.js} +10 -10
  90. package/dist/{enabled-DLYQFNIP.js → enabled-VT4FJXDX.js} +11 -11
  91. package/dist/{goto-S346TJJH.js → goto-GBJG5NC4.js} +11 -11
  92. package/dist/guidance/context.d.ts +44 -0
  93. package/dist/guidance/context.d.ts.map +1 -0
  94. package/dist/guidance/index.d.ts +7 -0
  95. package/dist/guidance/index.d.ts.map +1 -0
  96. package/dist/guidance/readiness.d.ts +7 -0
  97. package/dist/guidance/readiness.d.ts.map +1 -0
  98. package/dist/guidance/recipes/generic.d.ts +3 -0
  99. package/dist/guidance/recipes/generic.d.ts.map +1 -0
  100. package/dist/guidance/recipes/pinterest.d.ts +5 -0
  101. package/dist/guidance/recipes/pinterest.d.ts.map +1 -0
  102. package/dist/guidance/recipes/site-recipe-types.d.ts +2 -0
  103. package/dist/guidance/recipes/site-recipe-types.d.ts.map +1 -0
  104. package/dist/guidance/recipes/site-registry.d.ts +5 -0
  105. package/dist/guidance/recipes/site-registry.d.ts.map +1 -0
  106. package/dist/guidance/renderers.d.ts +22 -0
  107. package/dist/guidance/renderers.d.ts.map +1 -0
  108. package/dist/guidance/router.d.ts +8 -0
  109. package/dist/guidance/router.d.ts.map +1 -0
  110. package/dist/guidance/types.d.ts +139 -0
  111. package/dist/guidance/types.d.ts.map +1 -0
  112. package/dist/{help-U7KBQME6.js → help-SUI4H77K.js} +14 -9
  113. package/dist/help-SUI4H77K.js.map +1 -0
  114. package/dist/{hover-6JVJFGO7.js → hover-476ZNQZE.js} +11 -11
  115. package/dist/{html-EVOSPBIT.js → html-5C4TXOV3.js} +11 -11
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +47 -18
  118. package/dist/index.js.map +1 -1
  119. package/dist/{inspector-H57BVUJP.js → inspector-73ARPCIV.js} +13 -13
  120. package/dist/{inspector-audit-NQBAJWC7.js → inspector-audit-QT6QY7KS.js} +15 -15
  121. package/dist/{inspector-plan-ZDIQVND3.js → inspector-plan-JRNSGN2Z.js} +13 -13
  122. package/dist/inspiredesign/capture.d.ts +4 -0
  123. package/dist/inspiredesign/capture.d.ts.map +1 -1
  124. package/dist/inspiredesign/contract.d.ts +24 -0
  125. package/dist/inspiredesign/contract.d.ts.map +1 -1
  126. package/dist/inspiredesign/handoff.d.ts +9 -3
  127. package/dist/inspiredesign/handoff.d.ts.map +1 -1
  128. package/dist/inspiredesign/meta-prompt.d.ts +9 -0
  129. package/dist/inspiredesign/meta-prompt.d.ts.map +1 -0
  130. package/dist/inspiredesign/reference-discovery.d.ts +29 -0
  131. package/dist/inspiredesign/reference-discovery.d.ts.map +1 -0
  132. package/dist/inspiredesign/reference-pattern-board.d.ts +38 -1
  133. package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
  134. package/dist/inspiredesign/visual-evidence.d.ts +46 -0
  135. package/dist/inspiredesign/visual-evidence.d.ts.map +1 -0
  136. package/dist/inspiredesign/visual-policy.d.ts +17 -0
  137. package/dist/inspiredesign/visual-policy.d.ts.map +1 -0
  138. package/dist/{inspiredesign-IEUL4PX3.js → inspiredesign-IPVZDLSQ.js} +73 -21
  139. package/dist/inspiredesign-IPVZDLSQ.js.map +1 -0
  140. package/dist/{launch-EK66VQPF.js → launch-B35YDRQC.js} +11 -11
  141. package/dist/{list-ADZAQ2IU.js → list-JV55JVGB.js} +10 -10
  142. package/dist/{list-KKUKN467.js → list-YETWKTKY.js} +10 -10
  143. package/dist/{macro-resolve-6DOQJ7CA.js → macro-resolve-DQK4B3W3.js} +12 -12
  144. package/dist/{native-UPLVQ2SG.js → native-J2DFLOLP.js} +3 -3
  145. package/dist/{network-poll-NUL4PDPY.js → network-poll-4GWHCJXI.js} +11 -11
  146. package/dist/{new-5NKYPEFT.js → new-XDCQPIEG.js} +10 -10
  147. package/dist/{open-NR3BPLXV.js → open-GIM3ZCSV.js} +10 -10
  148. package/dist/opendevbrowser.d.ts.map +1 -1
  149. package/dist/opendevbrowser.js +47 -18
  150. package/dist/opendevbrowser.js.map +1 -1
  151. package/dist/{perf-HJ36ZI6H.js → perf-26VBXDPI.js} +11 -11
  152. package/dist/{pointer-down-IYTTQWXZ.js → pointer-down-O3VSNAXW.js} +12 -12
  153. package/dist/{pointer-drag-A2YC5PWI.js → pointer-drag-WQ5QGE6J.js} +12 -12
  154. package/dist/{pointer-move-W5K5FUI4.js → pointer-move-4N4D7JY2.js} +12 -12
  155. package/dist/{pointer-up-6GWVO64Y.js → pointer-up-CQC4NPDX.js} +12 -12
  156. package/dist/{press-A3V5WB3S.js → press-XGJD45CU.js} +11 -11
  157. package/dist/{product-video-52REKWF3.js → product-video-HD4ZOUI7.js} +13 -13
  158. package/dist/providers/browser-native-discovery.d.ts +23 -0
  159. package/dist/providers/browser-native-discovery.d.ts.map +1 -0
  160. package/dist/providers/renderer.d.ts +9 -1
  161. package/dist/providers/renderer.d.ts.map +1 -1
  162. package/dist/providers/workflow-handoff.d.ts +4 -0
  163. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  164. package/dist/providers/workflows.d.ts +45 -3
  165. package/dist/providers/workflows.d.ts.map +1 -1
  166. package/dist/{providers-IMFYMMHQ.js → providers-KKNPJSQK.js} +4 -4
  167. package/dist/public-surface/generated-manifest.d.ts +14 -5
  168. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  169. package/dist/public-surface/source.d.ts +7 -7
  170. package/dist/public-surface/source.d.ts.map +1 -1
  171. package/dist/{research-WB6BBCDD.js → research-VUWWEQ4R.js} +13 -13
  172. package/dist/{review-BGWVY4RA.js → review-LZ3TA7U7.js} +12 -12
  173. package/dist/{review-desktop-LEORC5VS.js → review-desktop-LAO7U7T3.js} +12 -12
  174. package/dist/{rpc-4TSKSFGC.js → rpc-HKNIVFGC.js} +11 -11
  175. package/dist/{run-3NBLVWXD.js → run-SHCF53FO.js} +9 -9
  176. package/dist/{screencast-start-UZVIT3IN.js → screencast-start-JHMQZVWJ.js} +11 -11
  177. package/dist/{screencast-stop-NOSJSIUO.js → screencast-stop-RWQTWWQS.js} +11 -11
  178. package/dist/{screenshot-LARG4JQG.js → screenshot-QHFYO6PB.js} +11 -11
  179. package/dist/{scroll-VNFMV6TW.js → scroll-L3FTMAV4.js} +11 -11
  180. package/dist/{scroll-into-view-VYRT3JPT.js → scroll-into-view-JVDHX4WU.js} +11 -11
  181. package/dist/{select-KJTUZDVO.js → select-X4BO7GTB.js} +11 -11
  182. package/dist/{serve-EV7K4HKR.js → serve-JIMIBCNO.js} +49 -25
  183. package/dist/serve-JIMIBCNO.js.map +1 -0
  184. package/dist/{shopping-DTXHVQ2X.js → shopping-EGSDP2GL.js} +13 -13
  185. package/dist/{skill-lifecycle-5UAZGKSN.js → skill-lifecycle-OWZYBPFS.js} +3 -3
  186. package/dist/skills/bundled-skill-directories.d.ts.map +1 -1
  187. package/dist/skills/skill-loader.js +2 -2
  188. package/dist/{skills-NSXDX6YM.js → skills-KHMRNOE4.js} +3 -3
  189. package/dist/{snapshot-3XQMCMRJ.js → snapshot-QGJ7RDNV.js} +11 -11
  190. package/dist/{status-YUMDP5KY.js → status-CKGPNYIH.js} +21 -13
  191. package/dist/status-CKGPNYIH.js.map +1 -0
  192. package/dist/{status-OXSYA5XD.js → status-LEBY2X7N.js} +12 -12
  193. package/dist/{status-capabilities-P4KDSE2Y.js → status-capabilities-6QTWNGKM.js} +12 -12
  194. package/dist/{text-V3B7UVIH.js → text-VUZU7D3L.js} +11 -11
  195. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  196. package/dist/{type-IYBN3ZLR.js → type-N5SURP74.js} +11 -11
  197. package/dist/{uncheck-SG737EGI.js → uncheck-JFMK3SSY.js} +11 -11
  198. package/dist/{uninstall-KYKGJAX7.js → uninstall-FW5ORBIN.js} +3 -3
  199. package/dist/{update-skill-modes-BVX7IVMW.js → update-skill-modes-3ULKJK3Y.js} +3 -3
  200. package/dist/{upload-KH6ZABJA.js → upload-KFUYLL7M.js} +11 -11
  201. package/dist/{use-7YDKO3U4.js → use-CNMPP2ED.js} +10 -10
  202. package/dist/{value-RZBWSKKM.js → value-J335MPZE.js} +11 -11
  203. package/dist/{visible-BSFTAKXR.js → visible-YQZWWPBZ.js} +11 -11
  204. package/dist/{wait-TMTEAYOP.js → wait-IC7YJJPJ.js} +11 -11
  205. package/dist/{windows-HIZ23OHS.js → windows-AGVQ3KX3.js} +12 -12
  206. package/extension/manifest.json +1 -1
  207. package/package.json +1 -1
  208. package/skills/AGENTS.md +2 -1
  209. package/skills/opendevbrowser-best-practices/SKILL.md +16 -3
  210. package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +4 -4
  211. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +4 -3
  212. package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +7 -0
  213. package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +49 -3
  214. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +31 -2
  215. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +7 -0
  216. package/skills/opendevbrowser-design-agent/SKILL.md +11 -6
  217. package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +4 -3
  218. package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +110 -41
  219. package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +2 -0
  220. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +21 -5
  221. package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +5 -2
  222. package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +8 -2
  223. package/skills/opendevbrowser-motion-design/SKILL.md +129 -0
  224. package/skills/opendevbrowser-motion-design/artifacts/accessibility-reduced-motion.md +37 -0
  225. package/skills/opendevbrowser-motion-design/artifacts/device-breakpoint-posture.md +40 -0
  226. package/skills/opendevbrowser-motion-design/artifacts/motion-anti-patterns.md +29 -0
  227. package/skills/opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md +430 -0
  228. package/skills/opendevbrowser-motion-design/artifacts/motion-release-gate.md +28 -0
  229. package/skills/opendevbrowser-motion-design/artifacts/motion-terminology.md +46 -0
  230. package/skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md +48 -0
  231. package/skills/opendevbrowser-motion-design/artifacts/performance-frame-budget.md +38 -0
  232. package/skills/opendevbrowser-motion-design/artifacts/platform-framework-guide.md +166 -0
  233. package/skills/opendevbrowser-motion-design/assets/templates/motion-audit-report.v1.md +70 -0
  234. package/skills/opendevbrowser-motion-design/assets/templates/motion-contract.v1.json +79 -0
  235. package/skills/opendevbrowser-motion-design/assets/templates/motion-release-gate.v1.json +18 -0
  236. package/skills/opendevbrowser-motion-design/assets/templates/motion-viewport-matrix.v1.json +76 -0
  237. package/skills/opendevbrowser-motion-design/scripts/motion-workflow.sh +163 -0
  238. package/skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh +375 -0
  239. package/dist/canvas-5DFEEOKM.js.map +0 -1
  240. package/dist/chunk-2I3YS3DV.js.map +0 -1
  241. package/dist/chunk-37VSRUW4.js.map +0 -1
  242. package/dist/chunk-3ILXPKSJ.js.map +0 -1
  243. package/dist/chunk-4BEJVZRK.js.map +0 -1
  244. package/dist/chunk-6B5WAQV7.js.map +0 -1
  245. package/dist/chunk-COAOWH3G.js.map +0 -1
  246. package/dist/chunk-IPE7TF2P.js.map +0 -1
  247. package/dist/chunk-KZ2IXVQT.js.map +0 -1
  248. package/dist/chunk-MD655IPO.js.map +0 -1
  249. package/dist/chunk-QOMWCRE3.js.map +0 -1
  250. package/dist/daemon-2BSAZXLT.js.map +0 -1
  251. package/dist/help-U7KBQME6.js.map +0 -1
  252. package/dist/inspiredesign-IEUL4PX3.js.map +0 -1
  253. package/dist/serve-EV7K4HKR.js.map +0 -1
  254. package/dist/status-YUMDP5KY.js.map +0 -1
  255. /package/dist/{accessibility-snapshot-CQ4ZKWKC.js.map → accessibility-snapshot-JSPFVWZ6.js.map} +0 -0
  256. /package/dist/{active-window-TD5HYJ72.js.map → active-window-2OB2MSCR.js.map} +0 -0
  257. /package/dist/{annotate-VTLFS2XV.js.map → annotate-VDZBZBKZ.js.map} +0 -0
  258. /package/dist/{artifacts-KJ6RNDO2.js.map → artifacts-JHDUUJGQ.js.map} +0 -0
  259. /package/dist/{attr-BCI5KYCW.js.map → attr-7XIO4MCH.js.map} +0 -0
  260. /package/dist/{capture-desktop-HFTTWY4Z.js.map → capture-desktop-T5YO3EBI.js.map} +0 -0
  261. /package/dist/{capture-window-X63XPIFF.js.map → capture-window-UKEUBWKH.js.map} +0 -0
  262. /package/dist/{check-LWAUY7GC.js.map → check-PQB6KKMN.js.map} +0 -0
  263. /package/dist/{checked-ZSOUKVYT.js.map → checked-RNZIMCU6.js.map} +0 -0
  264. /package/dist/{chunk-PPUWQKIC.js.map → chunk-52ZIOWVU.js.map} +0 -0
  265. /package/dist/{chunk-T4GMCW6Z.js.map → chunk-J3KYGJRQ.js.map} +0 -0
  266. /package/dist/{chunk-AHEWXOKY.js.map → chunk-JROW6ZNN.js.map} +0 -0
  267. /package/dist/{chunk-6PVZ2ABC.js.map → chunk-L3YNUGYF.js.map} +0 -0
  268. /package/dist/{chunk-JZXD6FWR.js.map → chunk-NURQB55J.js.map} +0 -0
  269. /package/dist/{chunk-STGGGVYT.js.map → chunk-QMHKAFYX.js.map} +0 -0
  270. /package/dist/{chunk-RPXWUCQQ.js.map → chunk-SKFB5ICF.js.map} +0 -0
  271. /package/dist/{chunk-2SIMIPLY.js.map → chunk-W6YPVNDX.js.map} +0 -0
  272. /package/dist/{chunk-GQJ5S3BL.js.map → chunk-YRRRUGSQ.js.map} +0 -0
  273. /package/dist/{chunk-KDSNXS6N.js.map → chunk-ZMNEWS7A.js.map} +0 -0
  274. /package/dist/{click-2AILSEIZ.js.map → click-U7ZFKSB4.js.map} +0 -0
  275. /package/dist/{clone-component-TPJS3PEG.js.map → clone-component-SWYAORTU.js.map} +0 -0
  276. /package/dist/{clone-page-LE74CIFC.js.map → clone-page-WJ6UJOJG.js.map} +0 -0
  277. /package/dist/{close-HN4YI47K.js.map → close-NAVIHZ2T.js.map} +0 -0
  278. /package/dist/{close-WFERRHX6.js.map → close-VKIGIKVT.js.map} +0 -0
  279. /package/dist/{connect-RWBV2UCQ.js.map → connect-XVG2MOZL.js.map} +0 -0
  280. /package/dist/{console-poll-PP4YYPDF.js.map → console-poll-XI5BZPL7.js.map} +0 -0
  281. /package/dist/{cookie-import-6IP776FC.js.map → cookie-import-QELKE7TK.js.map} +0 -0
  282. /package/dist/{cookie-list-O2KG6DPU.js.map → cookie-list-QDA6KWIY.js.map} +0 -0
  283. /package/dist/{debug-trace-snapshot-F3BDVZXS.js.map → debug-trace-snapshot-AT4GAO57.js.map} +0 -0
  284. /package/dist/{dialog-6JQYUWMQ.js.map → dialog-O3V2IBFH.js.map} +0 -0
  285. /package/dist/{disconnect-763TP7GH.js.map → disconnect-NAX5TPTG.js.map} +0 -0
  286. /package/dist/{enabled-DLYQFNIP.js.map → enabled-VT4FJXDX.js.map} +0 -0
  287. /package/dist/{goto-S346TJJH.js.map → goto-GBJG5NC4.js.map} +0 -0
  288. /package/dist/{hover-6JVJFGO7.js.map → hover-476ZNQZE.js.map} +0 -0
  289. /package/dist/{html-EVOSPBIT.js.map → html-5C4TXOV3.js.map} +0 -0
  290. /package/dist/{inspector-H57BVUJP.js.map → inspector-73ARPCIV.js.map} +0 -0
  291. /package/dist/{inspector-audit-NQBAJWC7.js.map → inspector-audit-QT6QY7KS.js.map} +0 -0
  292. /package/dist/{inspector-plan-ZDIQVND3.js.map → inspector-plan-JRNSGN2Z.js.map} +0 -0
  293. /package/dist/{launch-EK66VQPF.js.map → launch-B35YDRQC.js.map} +0 -0
  294. /package/dist/{list-ADZAQ2IU.js.map → list-JV55JVGB.js.map} +0 -0
  295. /package/dist/{list-KKUKN467.js.map → list-YETWKTKY.js.map} +0 -0
  296. /package/dist/{macro-resolve-6DOQJ7CA.js.map → macro-resolve-DQK4B3W3.js.map} +0 -0
  297. /package/dist/{native-UPLVQ2SG.js.map → native-J2DFLOLP.js.map} +0 -0
  298. /package/dist/{network-poll-NUL4PDPY.js.map → network-poll-4GWHCJXI.js.map} +0 -0
  299. /package/dist/{new-5NKYPEFT.js.map → new-XDCQPIEG.js.map} +0 -0
  300. /package/dist/{open-NR3BPLXV.js.map → open-GIM3ZCSV.js.map} +0 -0
  301. /package/dist/{perf-HJ36ZI6H.js.map → perf-26VBXDPI.js.map} +0 -0
  302. /package/dist/{pointer-down-IYTTQWXZ.js.map → pointer-down-O3VSNAXW.js.map} +0 -0
  303. /package/dist/{pointer-drag-A2YC5PWI.js.map → pointer-drag-WQ5QGE6J.js.map} +0 -0
  304. /package/dist/{pointer-move-W5K5FUI4.js.map → pointer-move-4N4D7JY2.js.map} +0 -0
  305. /package/dist/{pointer-up-6GWVO64Y.js.map → pointer-up-CQC4NPDX.js.map} +0 -0
  306. /package/dist/{press-A3V5WB3S.js.map → press-XGJD45CU.js.map} +0 -0
  307. /package/dist/{product-video-52REKWF3.js.map → product-video-HD4ZOUI7.js.map} +0 -0
  308. /package/dist/{providers-IMFYMMHQ.js.map → providers-KKNPJSQK.js.map} +0 -0
  309. /package/dist/{research-WB6BBCDD.js.map → research-VUWWEQ4R.js.map} +0 -0
  310. /package/dist/{review-BGWVY4RA.js.map → review-LZ3TA7U7.js.map} +0 -0
  311. /package/dist/{review-desktop-LEORC5VS.js.map → review-desktop-LAO7U7T3.js.map} +0 -0
  312. /package/dist/{rpc-4TSKSFGC.js.map → rpc-HKNIVFGC.js.map} +0 -0
  313. /package/dist/{run-3NBLVWXD.js.map → run-SHCF53FO.js.map} +0 -0
  314. /package/dist/{screencast-start-UZVIT3IN.js.map → screencast-start-JHMQZVWJ.js.map} +0 -0
  315. /package/dist/{screencast-stop-NOSJSIUO.js.map → screencast-stop-RWQTWWQS.js.map} +0 -0
  316. /package/dist/{screenshot-LARG4JQG.js.map → screenshot-QHFYO6PB.js.map} +0 -0
  317. /package/dist/{scroll-VNFMV6TW.js.map → scroll-L3FTMAV4.js.map} +0 -0
  318. /package/dist/{scroll-into-view-VYRT3JPT.js.map → scroll-into-view-JVDHX4WU.js.map} +0 -0
  319. /package/dist/{select-KJTUZDVO.js.map → select-X4BO7GTB.js.map} +0 -0
  320. /package/dist/{shopping-DTXHVQ2X.js.map → shopping-EGSDP2GL.js.map} +0 -0
  321. /package/dist/{skill-lifecycle-5UAZGKSN.js.map → skill-lifecycle-OWZYBPFS.js.map} +0 -0
  322. /package/dist/{skills-NSXDX6YM.js.map → skills-KHMRNOE4.js.map} +0 -0
  323. /package/dist/{snapshot-3XQMCMRJ.js.map → snapshot-QGJ7RDNV.js.map} +0 -0
  324. /package/dist/{status-OXSYA5XD.js.map → status-LEBY2X7N.js.map} +0 -0
  325. /package/dist/{status-capabilities-P4KDSE2Y.js.map → status-capabilities-6QTWNGKM.js.map} +0 -0
  326. /package/dist/{text-V3B7UVIH.js.map → text-VUZU7D3L.js.map} +0 -0
  327. /package/dist/{type-IYBN3ZLR.js.map → type-N5SURP74.js.map} +0 -0
  328. /package/dist/{uncheck-SG737EGI.js.map → uncheck-JFMK3SSY.js.map} +0 -0
  329. /package/dist/{uninstall-KYKGJAX7.js.map → uninstall-FW5ORBIN.js.map} +0 -0
  330. /package/dist/{update-skill-modes-BVX7IVMW.js.map → update-skill-modes-3ULKJK3Y.js.map} +0 -0
  331. /package/dist/{upload-KH6ZABJA.js.map → upload-KFUYLL7M.js.map} +0 -0
  332. /package/dist/{use-7YDKO3U4.js.map → use-CNMPP2ED.js.map} +0 -0
  333. /package/dist/{value-RZBWSKKM.js.map → value-J335MPZE.js.map} +0 -0
  334. /package/dist/{visible-BSFTAKXR.js.map → visible-YQZWWPBZ.js.map} +0 -0
  335. /package/dist/{wait-TMTEAYOP.js.map → wait-IC7YJJPJ.js.map} +0 -0
  336. /package/dist/{windows-HIZ23OHS.js.map → windows-AGVQ3KX3.js.map} +0 -0
@@ -172,6 +172,45 @@
172
172
  "figma_token_missing"
173
173
  ]
174
174
  },
175
+ {
176
+ "packId": "opendevbrowser-motion-design",
177
+ "packType": "browser_surface",
178
+ "docOnly": false,
179
+ "validatorCommands": [
180
+ "./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh"
181
+ ],
182
+ "sharedEvidenceIds": [
183
+ "live-regression",
184
+ "canvas-competitive",
185
+ "skill-discovery"
186
+ ],
187
+ "runtimeSurfaces": {
188
+ "cliCommands": [
189
+ "canvas",
190
+ "screenshot",
191
+ "debug-trace-snapshot",
192
+ "screencast-start",
193
+ "screencast-stop"
194
+ ],
195
+ "tools": [
196
+ "opendevbrowser_canvas",
197
+ "opendevbrowser_screenshot",
198
+ "opendevbrowser_debug_trace_snapshot",
199
+ "opendevbrowser_screencast_start",
200
+ "opendevbrowser_screencast_stop"
201
+ ],
202
+ "modes": [
203
+ "managed",
204
+ "extension",
205
+ "cdpConnect"
206
+ ]
207
+ },
208
+ "allowsEnvLimited": true,
209
+ "envLimitedReasons": [
210
+ "extension_unavailable",
211
+ "reduced_motion_emulation_unavailable"
212
+ ]
213
+ },
175
214
  {
176
215
  "packId": "opendevbrowser-form-testing",
177
216
  "packType": "workflow",
@@ -335,6 +374,7 @@
335
374
  "opendevbrowser-continuity-ledger",
336
375
  "opendevbrowser-data-extraction",
337
376
  "opendevbrowser-design-agent",
377
+ "opendevbrowser-motion-design",
338
378
  "opendevbrowser-form-testing",
339
379
  "opendevbrowser-login-automation",
340
380
  "opendevbrowser-product-presentation-asset",
@@ -361,6 +401,7 @@
361
401
  ],
362
402
  "targetedRerunCommands": [
363
403
  "./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh",
404
+ "./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh",
364
405
  "node scripts/skill-runtime-audit.mjs --smoke --out artifacts/skill-runtime-audit/smoke.json"
365
406
  ]
366
407
  },
@@ -470,7 +511,8 @@
470
511
  "label": "Canvas, annotate, and design surfaces",
471
512
  "priority": 5,
472
513
  "packIds": [
473
- "opendevbrowser-design-agent"
514
+ "opendevbrowser-design-agent",
515
+ "opendevbrowser-motion-design"
474
516
  ],
475
517
  "proofLanes": [
476
518
  "live-regression",
@@ -488,13 +530,16 @@
488
530
  "src/tools/index.ts",
489
531
  "src/public-surface/source.ts",
490
532
  "extension/src/canvas/canvas-runtime.ts",
491
- "extension/src/annotate-content.ts"
533
+ "extension/src/annotate-content.ts",
534
+ "skills/opendevbrowser-motion-design/SKILL.md",
535
+ "skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md"
492
536
  ],
493
537
  "targetedRerunCommands": [
494
538
  "node scripts/live-regression-direct.mjs --out artifacts/skill-runtime-audit/lanes/live-regression.json",
495
539
  "node scripts/canvas-competitive-validation.mjs --out artifacts/skill-runtime-audit/lanes/canvas-competitive.json",
496
540
  "node scripts/canvas-live-workflow.mjs --surface managed-headless",
497
- "node scripts/annotate-live-probe.mjs --transport direct"
541
+ "node scripts/annotate-live-probe.mjs --transport direct",
542
+ "./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh"
498
543
  ]
499
544
  },
500
545
  {
@@ -504,6 +549,7 @@
504
549
  "packIds": [
505
550
  "opendevbrowser-best-practices",
506
551
  "opendevbrowser-design-agent",
552
+ "opendevbrowser-motion-design",
507
553
  "opendevbrowser-shopping"
508
554
  ],
509
555
  "proofLanes": [
@@ -18,6 +18,14 @@ CLI_PREFIX="$(render_cli_prefix)"
18
18
  PACKAGE_ROOT="$(cd "$script_dir/../../.." && pwd)"
19
19
  TRANSCRIPT_PROBE_PATH="$(printf '%q' "$PACKAGE_ROOT/scripts/youtube-transcript-live-probe.mjs")"
20
20
 
21
+ print_daemon_preflight() {
22
+ cat <<EOF
23
+ # Daemon preflight for daemon-backed workflows:
24
+ $CLI_PREFIX status --daemon --output-format json
25
+ # Continue only when data.fingerprintCurrent === true.
26
+ EOF
27
+ }
28
+
21
29
  print_help() {
22
30
  cat <<'EOF'
23
31
  OpenDevBrowser workflow router
@@ -73,9 +81,13 @@ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
73
81
  EOF
74
82
  ;;
75
83
  inspiredesign)
84
+ print_daemon_preflight
76
85
  cat <<EOF
77
86
  # Pair with opendevbrowser-design-agent when the contract will flow into implementation or /canvas work.
78
87
  $CLI_PREFIX inspiredesign run --brief "Design a premium docs workspace" --url "https://example.com/reference-a" --url "https://example.com/reference-b" --capture-mode off --include-prototype-guidance --mode json --output-format json
88
+ $CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
89
+ # Inspect nextStepGuidance.readiness and doNotProceedIf before Canvas continuation. For non-ready evidence, follow recovery-first guidance.
90
+ # Review visual-evidence.json, screenshot-index.json, ranked-references.json, and meta-prompt.md before design or Canvas work.
79
91
  EOF
80
92
  ;;
81
93
  parallel-multipage-safe)
@@ -118,6 +130,7 @@ opendevbrowser_network_poll sessionId="<session-id>" max=100
118
130
  EOF
119
131
  ;;
120
132
  canvas-preflight)
133
+ print_daemon_preflight
121
134
  cat <<EOF
122
135
  cat skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json
123
136
  cat skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json
@@ -126,12 +139,14 @@ $CLI_PREFIX canvas --command canvas.session.open --params '{"requestId":"req_ope
126
139
  $CLI_PREFIX canvas --command canvas.plan.set --params-file skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json
127
140
  # Replace placeholders in the plan file with canvasSessionId, leaseId, and documentId from the open response.
128
141
  # If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
142
+ # If canvas.plan.set returns generation_plan_invalid, read guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf, then repair the params file and retry.
129
143
  # Optional diagnostics after generation_plan_invalid:
130
144
  # $CLI_PREFIX canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
131
145
  # or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.
132
146
  EOF
133
147
  ;;
134
148
  canvas-feedback-eval)
149
+ print_daemon_preflight
135
150
  cat <<EOF
136
151
  cat skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md
137
152
  cat skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json
@@ -151,6 +166,7 @@ npm run test -- tests/tools.test.ts tests/daemon-commands.integration.test.ts
151
166
  EOF
152
167
  ;;
153
168
  release-direct-gates)
169
+ print_daemon_preflight
154
170
  cat <<'EOF'
155
171
  mkdir -p artifacts/release/vX.Y.Z
156
172
  node scripts/provider-direct-runs.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-direct-runs.json
@@ -158,6 +174,7 @@ node scripts/live-regression-direct.mjs --release-gate --out artifacts/release/v
158
174
  EOF
159
175
  ;;
160
176
  skill-runtime-audit)
177
+ print_daemon_preflight
161
178
  cat <<'EOF'
162
179
  npm run build
163
180
  node scripts/docs-drift-check.mjs
@@ -174,6 +191,7 @@ OPENCODE_CONFIG_DIR="$WORKDIR/config" CODEX_HOME="$WORKDIR/codex-home" CLAUDECOD
174
191
  ./skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh
175
192
  ./skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh
176
193
  ./skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh
194
+ ./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh
177
195
  ./skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh
178
196
  ./skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh
179
197
  ./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh
@@ -184,6 +202,7 @@ node scripts/skill-runtime-audit.mjs --out artifacts/skill-runtime-audit/full.js
184
202
  EOF
185
203
  ;;
186
204
  validated-capabilities)
205
+ print_daemon_preflight
187
206
  cat <<EOF
188
207
  # Public-first YouTube transcript probe
189
208
  node $TRANSCRIPT_PROBE_PATH --url "https://www.youtube.com/watch?v=aircAruvnKk" --youtube-mode auto --out artifacts/capability-fix/youtube-transcript-auto.json
@@ -199,6 +218,9 @@ $CLI_PREFIX shopping run --query "27 inch 4k monitor" --providers shopping/bestb
199
218
  # Public-reference inspiredesign contract synthesis
200
219
  $CLI_PREFIX inspiredesign run --brief "Design a premium docs workspace" --url "https://example.com/reference-a" --url "https://example.com/reference-b" --capture-mode off --include-prototype-guidance --mode json --output-format json
201
220
 
221
+ # Browser-native Pinterest recipe. Continue only when nextStepGuidance.readiness is ready.
222
+ $CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
223
+
202
224
  # Region note: advisory unless output reports meta.selection.region_authoritative=true
203
225
  $CLI_PREFIX shopping run --query "wireless earbuds" --providers shopping/amazon --region us --browser-mode managed --mode json --output-format json
204
226
  EOF
@@ -214,22 +236,29 @@ EOF
214
236
  ops-channel-check)
215
237
  cat <<EOF
216
238
  $CLI_PREFIX serve
239
+ # Daemon preflight for daemon-backed workflows:
240
+ $CLI_PREFIX status --daemon --output-format json
241
+ # Continue only when data.fingerprintCurrent === true.
217
242
  $CLI_PREFIX launch --extension-only --wait-for-extension --output-format json
218
243
  $CLI_PREFIX status --daemon --output-format json
219
- # Verify opsConnected=true and extensionHandshakeComplete=true
244
+ # Verify fingerprintCurrent=true, opsConnected=true, and extensionHandshakeComplete=true
220
245
  cat skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json
221
246
  EOF
222
247
  ;;
223
248
  cdp-channel-check)
224
249
  cat <<EOF
225
250
  $CLI_PREFIX serve
251
+ # Daemon preflight for daemon-backed workflows:
252
+ $CLI_PREFIX status --daemon --output-format json
253
+ # Continue only when data.fingerprintCurrent === true.
226
254
  $CLI_PREFIX launch --extension-only --extension-legacy --wait-for-extension --output-format json
227
255
  $CLI_PREFIX status --daemon --output-format json
228
- # Verify cdpConnected=true while legacy session is active
256
+ # Verify fingerprintCurrent=true and cdpConnected=true while legacy session is active
229
257
  cat skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json
230
258
  EOF
231
259
  ;;
232
260
  mode-flag-matrix)
261
+ print_daemon_preflight
233
262
  cat <<EOF
234
263
  cat skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json
235
264
  $CLI_PREFIX launch --no-extension --output-format json
@@ -66,6 +66,10 @@ const executableScripts = [
66
66
  const workflowMarkers = [
67
67
  "inspiredesign)",
68
68
  "inspiredesign run",
69
+ "inspiredesign harvest",
70
+ "social/pinterest",
71
+ "nextStepGuidance.readiness",
72
+ "visual-evidence.json",
69
73
  "--include-prototype-guidance",
70
74
  "canvas-preflight",
71
75
  "canvas-feedback-eval",
@@ -79,6 +83,7 @@ const workflowMarkers = [
79
83
  "npx opendevbrowser help",
80
84
  "./skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh",
81
85
  "resolve-odb-cli.sh",
86
+ "./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh",
82
87
  "CLI_PREFIX"
83
88
  ];
84
89
 
@@ -104,6 +109,8 @@ const canvasPlaybookMarkers = [
104
109
  "canvas.plan.set",
105
110
  "canvas.feedback.poll",
106
111
  "guidance.recommendedNextCommands",
112
+ "guidance.nextStepGuidance",
113
+ "guidance.paramsExamples",
107
114
  "generationPlanIssues",
108
115
  "plan_invalid",
109
116
  "generation_plan_invalid",
@@ -40,6 +40,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
40
40
  - `scripts/design-workflow.sh`
41
41
  - `scripts/extract-canvas-plan.sh`
42
42
  - `scripts/validate-skill-assets.sh`
43
+ - Motion authority: `../opendevbrowser-motion-design/SKILL.md`
43
44
  - Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
44
45
  - Shared canvas workflow baseline: `../opendevbrowser-best-practices/SKILL.md`
45
46
 
@@ -72,6 +73,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
72
73
  ## Supporting Surfaces
73
74
 
74
75
  - Use browser replay (`screencast-start` / `screencast-stop`) during real-surface validation when motion, sequencing, or transition timing matters.
76
+ - Load `opendevbrowser-motion-design` when motion-heavy work needs terminology, pattern catalog decisions, platform/framework policy, device posture, reduced-motion rules, performance budgets, or temporal proof.
75
77
  - Treat shader, WebGL, Spline-style, and custom 3D motion references as advisory cues unless current runtime evidence proves support.
76
78
  - Desktop observation stays read-only and is only for external window or OS-level evidence around the workflow; it is not a design-surface control lane.
77
79
  - Browser-scoped computer use remains a challenge posture knob via `--challenge-automation-mode`, not a desktop-agent capability.
@@ -79,7 +81,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
79
81
  ## Core Rules
80
82
 
81
83
  - Start with a design contract, not ad-hoc implementation.
82
- - Build a reference pattern board before locking a new direction when external inspiration matters.
84
+ - Build a reference pattern board before locking a new direction when external inspiration matters, and inspect `nextStepGuidance.readiness` before treating a harvest as design-ready.
83
85
  - Choose a component family from `artifacts/component-pattern-index.md` before inventing a new screen structure.
84
86
  - Start from the closest shipped OpenDevBrowser example in `artifacts/opendevbrowser-ui-example-map.md` when the repo already has a related surface.
85
87
  - Route repo-first redesigns through `artifacts/existing-surface-adaptation.md` before changing shells or component anatomy.
@@ -93,11 +95,12 @@ Use this skill for frontend work that must be visually strong, contract-first, a
93
95
  - Keep one visual direction per task. Do not mix unrelated design languages.
94
96
  - Prefer real content, realistic states, and explicit user journeys over placeholder copy.
95
97
  - Preserve the repo's existing design system when one already exists. Only introduce a new direction when the brief or product gap justifies it.
96
- - Treat `/canvas` governance as the strongest contract in the repo: read the handshake, respect `generationPlanRequirements`, and do not mutate before the plan is accepted.
98
+ - Treat `/canvas` governance as the strongest contract in the repo: read the handshake, respect `generationPlanRequirements`, inspect typed repair examples, and do not mutate before the plan is accepted.
97
99
  - Treat `preflightState="handshake_read"` as the required ready state for the first post-open decision loop unless the handshake is already reporting an invalid-plan repair path.
98
100
  - For non-canvas frontend work, still fill the same design-contract fields before coding so decisions stay consistent across code, preview, and docs.
99
101
  - Use one owner for overlays, drawers, sheets, and detail panels; prefer item-backed state over boolean sprawl.
100
102
  - If motion depends on scroll or viewport progress, define the driver and reduced-motion fallback before implementation.
103
+ - For animation systems, route the motion-specific decisions through `../opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md`, `../opendevbrowser-motion-design/artifacts/platform-framework-guide.md`, `../opendevbrowser-motion-design/artifacts/performance-frame-budget.md`, and `../opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md`.
101
104
  - Carry advanced motion cues through `designVectors` and `motionSystem` as design intent only; they do not authorize new runtime libraries.
102
105
  - Keep `libraryPolicy.motion` and `libraryPolicy.threeD` empty in samples unless a separate runtime change explicitly approves those lanes.
103
106
  - Use `artifacts/scroll-reveal-surface-planning.md` whenever the design depends on pinned sections, reveal stages, or viewport-driven sequencing.
@@ -165,7 +168,9 @@ Use when a redesign needs external references or when the brief explicitly asks
165
168
 
166
169
  - Start with `artifacts/research-harvest-workflow.md`.
167
170
  - Capture `3` to `5` live references with OpenDevBrowser.
168
- - Record them in `assets/templates/reference-pattern-board.v1.json`.
171
+ - For Pinterest, use the browser-native `social/pinterest` recipe with extension mode and cookies instead of treating Pinterest as a default full provider.
172
+ - Inspect `nextStepGuidance.readiness`, `doNotProceedIf`, and recovery commands before using the bundle.
173
+ - Record ready evidence in `assets/templates/reference-pattern-board.v1.json`.
169
174
  - Turn the synthesis into contract deltas before implementation.
170
175
 
171
176
  ### `screenshot-audit`
@@ -182,13 +187,13 @@ Use when starting from screenshots, mocks, or an existing page.
182
187
 
183
188
  Use when the task should run through the design canvas.
184
189
 
185
- - Start with `canvas.session.open` or `canvas.capabilities.get`.
186
- - Read the handshake and inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, and `guidance.recommendedNextCommands` before choosing the next command.
190
+ - Start with `canvas.session.open`; use `canvas.capabilities.get` only after you have a `canvasSessionId`.
191
+ - Read the handshake and inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, `guidance.recommendedNextCommands`, `guidance.nextStepGuidance`, params examples, field examples, validation checks, and do-not-proceed blockers before choosing the next command.
187
192
  - Treat `preflightState="handshake_read"` as the normal first-step checkpoint before `canvas.plan.set`; if the handshake already reports `plan_invalid`, repair the plan instead of mutating.
188
193
  - Fill the full design contract and extract the `generationPlan`.
189
194
  - Submit `canvas.plan.set`.
190
195
  - If `canvas.plan.set` succeeds with `planStatus="accepted"` or `preflightState="plan_accepted"`, follow the returned `guidance.recommendedNextCommands`, then mutate with `canvas.document.patch`.
191
- - If `canvas.plan.set` fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, and `generationPlanIssues`, then optionally re-read with `canvas.plan.get` or `canvas.capabilities.get` before resubmitting.
196
+ - If `canvas.plan.set` fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, `guidance.paramsExamples`, `guidance.fieldExamples`, `guidance.validationChecks`, `guidance.doNotProceedIf`, and `generationPlanIssues`, then repair and resubmit the params file. Use `canvas.plan.get` or `canvas.capabilities.get` only when diagnostics are still needed after reading repair examples.
192
197
  - After every successful `canvas.document.patch`, `canvas.preview.render`, `canvas.preview.refresh`, `canvas.feedback.poll`, `canvas.document.save`, or `canvas.document.export`, read `guidance.recommendedNextCommands` and `guidance.reason` before choosing the next step.
193
198
  - Validate extension-stage history controls against public `canvas.history.undo` and `canvas.history.redo`; design-tab clicks emit the internal `canvas_history_requested` event, but acceptance is still on the public command outcomes.
194
199
  - When token work is in scope, validate collection or mode authoring, token value or alias edits, selected-node binding, and token usage inspection in the extension stage.
@@ -77,22 +77,23 @@ Use when the work should flow through the OpenDevBrowser design canvas.
77
77
 
78
78
  1. Open a canvas session.
79
79
  2. Read the handshake and document context.
80
- 3. Inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, and `guidance.recommendedNextCommands` before moving on.
80
+ 3. Inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, `guidance.recommendedNextCommands`, `guidance.nextStepGuidance`, params examples, field examples, validation checks, and do-not-proceed blockers before moving on.
81
81
  4. Treat `preflightState="handshake_read"` as the normal first-step checkpoint; if the handshake is already reporting `plan_invalid`, repair the plan instead of mutating.
82
82
  5. Fill the full design contract.
83
83
  6. Extract the `generationPlan`.
84
84
  7. Send `canvas.plan.set`.
85
85
  8. If the response is accepted, read `guidance.recommendedNextCommands` again and mutate with `canvas.document.patch`.
86
- 9. If the response fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, and `generationPlanIssues`, then optionally re-read with `canvas.plan.get` or `canvas.capabilities.get`.
86
+ 9. If the response fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, `generationPlanIssues`, and typed repair examples, then fix the params file before retrying.
87
87
  10. Render preview, poll feedback, and save or export until the contract and runtime match.
88
88
 
89
89
  Canonical command order:
90
90
 
91
91
  ```bash
92
92
  npx opendevbrowser canvas --command canvas.session.open --params '{"requestId":"req_open_01","browserSessionId":"<browser-session-id>","documentId":null,"repoPath":null,"mode":"dual-track"}'
93
- # Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, and guidance.recommendedNextCommands before continuing.
93
+ # Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, guidance.recommendedNextCommands, guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf before continuing.
94
94
  npx opendevbrowser canvas --command canvas.plan.set --params-file ./tmp/canvas-plan.json
95
95
  # If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
96
+ # If canvas.plan.set returns generation_plan_invalid, repair ./tmp/canvas-plan.json from guidance.paramsExamples before retrying.
96
97
  # Optional diagnostics after generation_plan_invalid:
97
98
  # npx opendevbrowser canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
98
99
  # or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.
@@ -4,44 +4,119 @@ Use this workflow before design direction is locked, when the brief references c
4
4
 
5
5
  ## Goal
6
6
 
7
- Turn live product references into a deterministic pattern board instead of vague inspiration.
7
+ Turn live product references into a deterministic ranked pattern board and motion-aware design brief instead of vague inspiration.
8
8
 
9
9
  ## Inputs
10
10
 
11
11
  - A focused brief or design question
12
- - `3` to `5` reference products or pages
12
+ - `3` to `5` reference products or pages, or a bounded public discovery query
13
13
  - The target surface in this repo
14
14
  - Constraints that must not be violated:
15
15
  - existing design system rules
16
16
  - supported libraries and runtime budgets
17
17
  - accessibility and responsive requirements
18
+ - provider policy boundaries for blocked, auth-required, challenge, or rate-limited references
18
19
 
19
- ## Evidence Loop
20
-
21
- 1. Pick reference pages that match the product shape:
22
- - dashboard
23
- - marketing landing page
24
- - onboarding flow
25
- - editor
26
- - auth/settings surface
27
- 2. Capture the surface with OpenDevBrowser:
28
- - `launch`
29
- - `goto`
30
- - `snapshot`
31
- - `screenshot`
32
- - `debug-trace-snapshot` when motion, loading, or layout churn matters
33
- 3. Record each page in `assets/templates/reference-pattern-board.v1.json`.
34
- 4. For each reference, extract:
35
- - layout recipe
36
- - content hierarchy
37
- - component families
38
- - motion posture
39
- - loading and empty-state strategy
40
- - token and theming clues
41
- - patterns to borrow
42
- - patterns to reject
43
- 5. Synthesize only the patterns that fit the repo's current surface, libraries, and runtime budgets.
44
- 6. Translate the synthesis into the design contract before touching `/canvas` or code.
20
+ ## Primary Harvest Loop
21
+
22
+ Prefer the dedicated InspireDesign harvest entrypoint for visual-first research:
23
+
24
+ ```bash
25
+ npx opendevbrowser inspiredesign harvest \
26
+ --brief "Synthesize a premium docs workspace" \
27
+ --query "best docs product landing pages" \
28
+ --provider web/default \
29
+ --max-references 5 \
30
+ --visual-evidence required \
31
+ --browser-mode managed \
32
+ --mode json
33
+ ```
34
+
35
+ Use the browser-native Pinterest site recipe when the brief specifically needs logged-in Pinterest search. Pinterest is not a default full social provider, and the workflow should not widen to unrelated sources without user confirmation:
36
+
37
+ ```bash
38
+ npx opendevbrowser inspiredesign harvest \
39
+ --brief "Premium digital photography studio landing page" \
40
+ --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" \
41
+ --provider social/pinterest \
42
+ --max-references 5 \
43
+ --visual-evidence required \
44
+ --browser-mode extension \
45
+ --use-cookies \
46
+ --cookie-policy required \
47
+ --challenge-automation-mode browser_with_helper \
48
+ --mode json \
49
+ --output-format json
50
+ ```
51
+
52
+ Use explicit references when the team already knows the right examples:
53
+
54
+ ```bash
55
+ npx opendevbrowser inspiredesign harvest \
56
+ --brief "Extract reusable dashboard patterns" \
57
+ --url https://example.com/reference-a \
58
+ --url https://example.com/reference-b \
59
+ --visual-evidence required \
60
+ --mode json
61
+ ```
62
+
63
+ Harvest defaults:
64
+
65
+ - `mode=path`
66
+ - `visualEvidence=required`
67
+ - `maxReferences=5`
68
+ - explicit `--url` references rank before query-discovered candidates during collection
69
+ - the daemon method remains `inspiredesign.run`
70
+
71
+ ## Required Artifact Review
72
+
73
+ After every harvest, inspect `nextStepGuidance` before `/canvas` or code changes:
74
+
75
+ - `readiness="ready"`: continue only after artifact review.
76
+ - `readiness="needs_recovery"`, `"blocked"`, or `"diagnostic_only"`: follow the primary recovery action first.
77
+ - `doNotProceedIf`: treat each matching condition as a hard stop for Canvas continuation.
78
+ - `paramsExamples` and `validationChecks`: use these as the next command and proof checklist.
79
+
80
+ Then inspect these files before `/canvas` or code changes:
81
+
82
+ 1. `advanced-brief.md` for the reference-first creative brief.
83
+ 2. `ranked-references.json` for rank, score, confidence, visual strengths, visual risks, rejected references, and selection reasons.
84
+ 3. `visual-evidence.json` and `screenshot-index.json` for artifact-relative PNG paths, hashes, byte counts, viewport metadata when available, provenance, and warnings.
85
+ 4. PNG files under `visual-evidence/<referenceId>/viewport.png` for actual visual review.
86
+ 5. `meta-prompt.md` for borrow guidance, reject guidance, motion posture, accessibility constraints, no-copy warning, and validation gates.
87
+ 6. `canvas-plan.request.json` and `design-agent-handoff.json` only after the visual synthesis is accepted and `nextStepGuidance.readiness` is `ready`.
88
+
89
+ JSON files are metadata-only. They must not contain base64 screenshots, absolute temp paths, full DOM, or full snapshot text.
90
+
91
+ ## Manual Evidence Fallback
92
+
93
+ Use the lower-level browser loop only when harvest cannot run or when a single reference needs debugging:
94
+
95
+ ```bash
96
+ npx opendevbrowser launch --no-extension --start-url https://example.com
97
+ npx opendevbrowser goto --session-id <session-id> --url <reference-url>
98
+ npx opendevbrowser snapshot --session-id <session-id>
99
+ npx opendevbrowser screenshot --session-id <session-id> --path ./artifacts/reference.png
100
+ npx opendevbrowser debug-trace-snapshot --session-id <session-id>
101
+ ```
102
+
103
+ Record manual evidence in `assets/templates/reference-pattern-board.v1.json` using the same ranking and screenshot metadata fields as harvest.
104
+
105
+ ## What To Extract
106
+
107
+ For each accepted reference, extract:
108
+
109
+ - layout recipe
110
+ - content hierarchy
111
+ - component families
112
+ - motion posture
113
+ - loading and empty-state strategy
114
+ - token and theming clues
115
+ - visual strengths to borrow
116
+ - visual risks and patterns to reject
117
+ - screenshot path, hash, viewport, and warning metadata when available
118
+
119
+ Synthesize only the patterns that fit the repo's current surface, libraries, runtime budgets, and accessibility policy.
45
120
 
46
121
  ## What To Borrow From External Patterns
47
122
 
@@ -61,21 +136,15 @@ These cues should stay explicit in the pattern board:
61
136
  - inspect current stack and assets first
62
137
  - combine aesthetics, accessibility, and implementation practicality in one review loop
63
138
 
64
- ## OpenDevBrowser Command Pattern
65
-
66
- ```bash
67
- npx opendevbrowser launch --no-extension --start-url https://example.com
68
- npx opendevbrowser goto --session-id <session-id> --url <reference-url>
69
- npx opendevbrowser snapshot --session-id <session-id>
70
- npx opendevbrowser screenshot --session-id <session-id>
71
- npx opendevbrowser debug-trace-snapshot --session-id <session-id>
72
- ```
139
+ ## Motion Follow-through
73
140
 
74
- Repeat this for each selected reference. Keep the resulting notes in one pattern board so the design contract has a visible source of truth.
141
+ Load `opendevbrowser-motion-design` before translating harvest motion posture into timing tokens, scroll choreography, gesture motion, reduced-motion behavior, or temporal proof. Harvest motion cues are design intent only; they do not authorize new runtime dependencies or shader, WebGL, Spline, or 3D lanes.
75
142
 
76
143
  ## Exit Criteria
77
144
 
78
- - The pattern board lists at least `3` live references.
145
+ - The pattern board lists at least `3` live references unless provider policy, browser-native recipe diagnostics, or recovery guidance explain the smaller set.
79
146
  - Borrowed and rejected patterns are both explicit.
80
- - The chosen design direction is justified by evidence, not taste alone.
81
- - The resulting design contract names component families, state ownership, and validation targets before implementation starts.
147
+ - Rank 1 justifies the dominant direction.
148
+ - Screenshot metadata points to existing PNG artifacts or explains skipped or failed visual evidence.
149
+ - The chosen design direction is justified by ready evidence, not taste alone or diagnostic-only artifacts.
150
+ - The resulting design contract names component families, state ownership, motion posture, and validation targets before implementation starts.
@@ -2,6 +2,8 @@
2
2
 
3
3
  Use this when narrative sequencing, pinned sections, or viewport-driven motion is part of the design instead of decorative afterthought.
4
4
 
5
+ For broader motion language, pattern selection, device posture, reduced-motion rules, performance budgets, and temporal proof, also load `../opendevbrowser-motion-design/SKILL.md`.
6
+
5
7
  ## 1. Declare The Driver First
6
8
 
7
9
  Choose one progress owner before writing animation code:
@@ -4,30 +4,46 @@
4
4
  "references": [
5
5
  {
6
6
  "id": "ref-001",
7
+ "rank": 1,
8
+ "score": 86,
9
+ "confidence": 0.86,
7
10
  "name": "Example product page",
8
11
  "url": "https://example.com",
9
12
  "surfaceType": "marketing",
10
13
  "capturedVia": [
14
+ "fetch",
11
15
  "snapshot",
12
- "screenshot"
16
+ "clone",
17
+ "dom",
18
+ "visual"
13
19
  ],
20
+ "intentMatched": true,
14
21
  "layoutRecipe": "",
15
22
  "contentHierarchy": [],
16
23
  "componentFamilies": [],
17
- "motionPosture": "",
18
- "advancedMotionAdvisory": [],
19
- "loadingStrategy": "",
24
+ "motionPosture": [],
20
25
  "tokenNotes": [],
26
+ "visualStrengths": [],
27
+ "visualRisks": [],
28
+ "selectionReason": "",
21
29
  "patternsToBorrow": [],
22
30
  "patternsToReject": [],
23
31
  "whyItWorks": ""
24
32
  }
25
33
  ],
34
+ "rejectedReferences": [
35
+ {
36
+ "id": "ref-rejected-001",
37
+ "url": "https://example.com/rejected",
38
+ "reason": "policy_blocked|auth_required|challenge_detected|rate_limited|not_relevant|duplicate",
39
+ "fetchStatus": "failed",
40
+ "captureStatus": "off"
41
+ }
42
+ ],
26
43
  "synthesis": {
27
44
  "dominantDirection": "",
28
45
  "sharedStrengths": [],
29
46
  "sharedFailuresToAvoid": [],
30
- "motionContractDeltas": [],
31
47
  "contractDeltas": []
32
48
  }
33
49
  }
@@ -67,12 +67,14 @@ cat skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.
67
67
  cat skills/opendevbrowser-design-agent/artifacts/external-pattern-synthesis.md
68
68
  cat skills/opendevbrowser-design-agent/artifacts/component-pattern-index.md
69
69
  cat skills/opendevbrowser-design-agent/artifacts/existing-surface-adaptation.md
70
+ $CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
71
+ # Inspect nextStepGuidance.readiness and doNotProceedIf first. Use recovery-first guidance unless readiness is ready.
70
72
  $CLI_PREFIX launch --no-extension --start-url https://example.com
71
73
  $CLI_PREFIX goto --session-id <session-id> --url <reference-url>
72
74
  $CLI_PREFIX snapshot --session-id <session-id>
73
75
  $CLI_PREFIX screenshot --session-id <session-id>
74
76
  $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
75
- # Repeat for 3-5 live references, then turn the synthesis into contract deltas before implementation.
77
+ # Repeat for 3-5 live references, then turn ready synthesis into contract deltas before implementation.
76
78
  EOF
77
79
  ;;
78
80
  screenshot-audit)
@@ -101,10 +103,11 @@ cat skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md
101
103
  cat skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json
102
104
  ./skills/opendevbrowser-design-agent/scripts/extract-canvas-plan.sh ./tmp/design-contract.json > ./tmp/canvas-plan.json
103
105
  $CLI_PREFIX canvas --command canvas.session.open --params '{"requestId":"req_open_01","browserSessionId":"<browser-session-id>","documentId":null,"repoPath":null,"mode":"dual-track"}'
104
- # Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, and guidance.recommendedNextCommands before continuing.
106
+ # Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, guidance.recommendedNextCommands, guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf before continuing.
105
107
  # Treat preflightState=handshake_read as the normal first-step checkpoint before canvas.plan.set.
106
108
  $CLI_PREFIX canvas --command canvas.plan.set --params-file ./tmp/canvas-plan.json
107
109
  # If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
110
+ # If canvas.plan.set returns generation_plan_invalid, repair ./tmp/canvas-plan.json from guidance.paramsExamples before retrying.
108
111
  # Optional diagnostics after generation_plan_invalid:
109
112
  # $CLI_PREFIX canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
110
113
  # or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.