opendevbrowser 0.0.30 → 0.0.32

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 (298) hide show
  1. package/README.md +20 -7
  2. package/dist/{accessibility-snapshot-CQ4ZKWKC.js → accessibility-snapshot-XOP66CSK.js} +11 -11
  3. package/dist/{active-window-TD5HYJ72.js → active-window-E3WFOQGX.js} +11 -11
  4. package/dist/{annotate-VTLFS2XV.js → annotate-MAE7ZJOZ.js} +10 -10
  5. package/dist/{artifacts-KJ6RNDO2.js → artifacts-JHDUUJGQ.js} +2 -2
  6. package/dist/{attr-BCI5KYCW.js → attr-M3PFDJ7Q.js} +10 -10
  7. package/dist/{canvas-5DFEEOKM.js → canvas-3AJVL5I5.js} +10 -10
  8. package/dist/{capture-desktop-HFTTWY4Z.js → capture-desktop-VJGEETMJ.js} +11 -11
  9. package/dist/{capture-window-X63XPIFF.js → capture-window-W5UFSFQL.js} +11 -11
  10. package/dist/{check-LWAUY7GC.js → check-4IR3UJVW.js} +10 -10
  11. package/dist/{checked-ZSOUKVYT.js → checked-PKNY7724.js} +10 -10
  12. package/dist/{chunk-KZ2IXVQT.js → chunk-2X4JFMKJ.js} +39 -4
  13. package/dist/chunk-2X4JFMKJ.js.map +1 -0
  14. package/dist/{chunk-IPE7TF2P.js → chunk-7BNU6DFI.js} +8 -5
  15. package/dist/chunk-7BNU6DFI.js.map +1 -0
  16. package/dist/{chunk-J47N77VG.js → chunk-AKIAGFOE.js} +31 -8
  17. package/dist/chunk-AKIAGFOE.js.map +1 -0
  18. package/dist/{chunk-RCZZGGJS.js → chunk-AWQ37HSC.js} +7 -3
  19. package/dist/chunk-AWQ37HSC.js.map +1 -0
  20. package/dist/{chunk-3ILXPKSJ.js → chunk-BUVYTJZR.js} +2 -1
  21. package/dist/chunk-BUVYTJZR.js.map +1 -0
  22. package/dist/{chunk-AHEWXOKY.js → chunk-BUXFIY2P.js} +4 -4
  23. package/dist/{chunk-QOMWCRE3.js → chunk-HBK56JST.js} +3 -3
  24. package/dist/{chunk-T4GMCW6Z.js → chunk-J3KYGJRQ.js} +3 -3
  25. package/dist/{chunk-6PVZ2ABC.js → chunk-L3YNUGYF.js} +2 -2
  26. package/dist/{chunk-JZXD6FWR.js → chunk-NURQB55J.js} +2 -2
  27. package/dist/{chunk-GQJ5S3BL.js → chunk-P5K3ZIPI.js} +3 -3
  28. package/dist/{chunk-PPUWQKIC.js → chunk-PIFHXKV4.js} +4 -4
  29. package/dist/{chunk-STGGGVYT.js → chunk-QMHKAFYX.js} +2 -2
  30. package/dist/{chunk-4BEJVZRK.js → chunk-RO3SMXF3.js} +1073 -138
  31. package/dist/chunk-RO3SMXF3.js.map +1 -0
  32. package/dist/{chunk-RPXWUCQQ.js → chunk-SKFB5ICF.js} +2 -2
  33. package/dist/{chunk-2SIMIPLY.js → chunk-W6YPVNDX.js} +3 -3
  34. package/dist/{chunk-MD655IPO.js → chunk-XDLJE3RJ.js} +11 -4
  35. package/dist/chunk-XDLJE3RJ.js.map +1 -0
  36. package/dist/{chunk-KDSNXS6N.js → chunk-ZMNEWS7A.js} +2 -2
  37. package/dist/{chunk-COAOWH3G.js → chunk-ZOVMMQO6.js} +119 -27
  38. package/dist/chunk-ZOVMMQO6.js.map +1 -0
  39. package/dist/cli/args.d.ts.map +1 -1
  40. package/dist/cli/commands/daemon.d.ts +19 -2
  41. package/dist/cli/commands/daemon.d.ts.map +1 -1
  42. package/dist/cli/commands/inspiredesign.d.ts +6 -1
  43. package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
  44. package/dist/cli/commands/serve.d.ts +12 -3
  45. package/dist/cli/commands/serve.d.ts.map +1 -1
  46. package/dist/cli/commands/status.d.ts.map +1 -1
  47. package/dist/cli/commands/types.d.ts +1 -0
  48. package/dist/cli/commands/types.d.ts.map +1 -1
  49. package/dist/cli/commands/update.d.ts.map +1 -1
  50. package/dist/cli/daemon-client.d.ts.map +1 -1
  51. package/dist/cli/daemon-commands.d.ts.map +1 -1
  52. package/dist/cli/daemon-mismatch.d.ts +9 -0
  53. package/dist/cli/daemon-mismatch.d.ts.map +1 -0
  54. package/dist/cli/daemon.d.ts.map +1 -1
  55. package/dist/cli/errors.d.ts +4 -2
  56. package/dist/cli/errors.d.ts.map +1 -1
  57. package/dist/cli/help.d.ts.map +1 -1
  58. package/dist/cli/index.js +91 -90
  59. package/dist/cli/index.js.map +1 -1
  60. package/dist/cli/installers/postinstall-skill-sync.js +2 -2
  61. package/dist/{click-2AILSEIZ.js → click-HLNXU4I5.js} +10 -10
  62. package/dist/{clone-component-TPJS3PEG.js → clone-component-QIKN5PIM.js} +9 -9
  63. package/dist/{clone-page-LE74CIFC.js → clone-page-5C7DTGZT.js} +9 -9
  64. package/dist/{close-HN4YI47K.js → close-PCRZHX7F.js} +9 -9
  65. package/dist/{close-WFERRHX6.js → close-WTXB3EDD.js} +9 -9
  66. package/dist/{connect-RWBV2UCQ.js → connect-6C2IG55I.js} +10 -10
  67. package/dist/{console-poll-PP4YYPDF.js → console-poll-VJXCZR3F.js} +10 -10
  68. package/dist/{cookie-import-6IP776FC.js → cookie-import-5OEDFB6U.js} +9 -9
  69. package/dist/{cookie-list-O2KG6DPU.js → cookie-list-44UNJJ6D.js} +9 -9
  70. package/dist/{daemon-2BSAZXLT.js → daemon-CIKGBWEB.js} +25 -12
  71. package/dist/daemon-CIKGBWEB.js.map +1 -0
  72. package/dist/daemon-fingerprint.json +1 -1
  73. package/dist/{debug-trace-snapshot-F3BDVZXS.js → debug-trace-snapshot-RGXAPGWB.js} +10 -10
  74. package/dist/{dialog-6JQYUWMQ.js → dialog-S64MJUM2.js} +10 -10
  75. package/dist/{disconnect-763TP7GH.js → disconnect-MTIELIM7.js} +9 -9
  76. package/dist/{enabled-DLYQFNIP.js → enabled-KF2L7LW4.js} +10 -10
  77. package/dist/{goto-S346TJJH.js → goto-ULWINUAZ.js} +10 -10
  78. package/dist/{help-EKKKEDL5.js → help-IG5S5RJD.js} +14 -10
  79. package/dist/help-IG5S5RJD.js.map +1 -0
  80. package/dist/{hover-6JVJFGO7.js → hover-NOCOTR6N.js} +10 -10
  81. package/dist/{html-EVOSPBIT.js → html-LXSYP6BT.js} +10 -10
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +46 -17
  84. package/dist/index.js.map +1 -1
  85. package/dist/{inspector-H57BVUJP.js → inspector-62EPCLYB.js} +11 -11
  86. package/dist/{inspector-audit-NQBAJWC7.js → inspector-audit-T2IF67RJ.js} +13 -13
  87. package/dist/{inspector-plan-ZDIQVND3.js → inspector-plan-KQS6LRMW.js} +11 -11
  88. package/dist/inspiredesign/capture.d.ts +4 -0
  89. package/dist/inspiredesign/capture.d.ts.map +1 -1
  90. package/dist/inspiredesign/contract.d.ts +22 -0
  91. package/dist/inspiredesign/contract.d.ts.map +1 -1
  92. package/dist/inspiredesign/handoff.d.ts +7 -1
  93. package/dist/inspiredesign/handoff.d.ts.map +1 -1
  94. package/dist/inspiredesign/meta-prompt.d.ts +9 -0
  95. package/dist/inspiredesign/meta-prompt.d.ts.map +1 -0
  96. package/dist/inspiredesign/reference-discovery.d.ts +29 -0
  97. package/dist/inspiredesign/reference-discovery.d.ts.map +1 -0
  98. package/dist/inspiredesign/reference-pattern-board.d.ts +21 -0
  99. package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
  100. package/dist/inspiredesign/visual-evidence.d.ts +46 -0
  101. package/dist/inspiredesign/visual-evidence.d.ts.map +1 -0
  102. package/dist/inspiredesign/visual-policy.d.ts +17 -0
  103. package/dist/inspiredesign/visual-policy.d.ts.map +1 -0
  104. package/dist/{inspiredesign-IEUL4PX3.js → inspiredesign-DB6CHYN3.js} +71 -19
  105. package/dist/inspiredesign-DB6CHYN3.js.map +1 -0
  106. package/dist/{launch-EK66VQPF.js → launch-B5ES6FVS.js} +10 -10
  107. package/dist/{list-KKUKN467.js → list-TIZVR6RO.js} +9 -9
  108. package/dist/{list-ADZAQ2IU.js → list-XM4BP5GM.js} +9 -9
  109. package/dist/{macro-resolve-6DOQJ7CA.js → macro-resolve-TTQZVFIW.js} +10 -10
  110. package/dist/{native-UPLVQ2SG.js → native-J2DFLOLP.js} +3 -3
  111. package/dist/{network-poll-NUL4PDPY.js → network-poll-NNSY4W63.js} +10 -10
  112. package/dist/{new-5NKYPEFT.js → new-E6VNAC2A.js} +9 -9
  113. package/dist/{open-NR3BPLXV.js → open-F55XKMKB.js} +9 -9
  114. package/dist/opendevbrowser.d.ts.map +1 -1
  115. package/dist/opendevbrowser.js +46 -17
  116. package/dist/opendevbrowser.js.map +1 -1
  117. package/dist/{perf-HJ36ZI6H.js → perf-RE7JE6CP.js} +10 -10
  118. package/dist/{pointer-down-IYTTQWXZ.js → pointer-down-BCBPC5FJ.js} +11 -11
  119. package/dist/{pointer-drag-A2YC5PWI.js → pointer-drag-QK7KGF7W.js} +11 -11
  120. package/dist/{pointer-move-W5K5FUI4.js → pointer-move-VFAZQAXA.js} +11 -11
  121. package/dist/{pointer-up-6GWVO64Y.js → pointer-up-FA5WE6LS.js} +11 -11
  122. package/dist/{press-A3V5WB3S.js → press-TNRHNDSW.js} +10 -10
  123. package/dist/{product-video-52REKWF3.js → product-video-UEANMZ2U.js} +11 -11
  124. package/dist/providers/renderer.d.ts +7 -1
  125. package/dist/providers/renderer.d.ts.map +1 -1
  126. package/dist/providers/workflow-handoff.d.ts +1 -0
  127. package/dist/providers/workflow-handoff.d.ts.map +1 -1
  128. package/dist/providers/workflows.d.ts +45 -3
  129. package/dist/providers/workflows.d.ts.map +1 -1
  130. package/dist/{providers-IMFYMMHQ.js → providers-AMCNWZUL.js} +3 -3
  131. package/dist/public-surface/generated-manifest.d.ts +12 -3
  132. package/dist/public-surface/generated-manifest.d.ts.map +1 -1
  133. package/dist/public-surface/source.d.ts +6 -6
  134. package/dist/public-surface/source.d.ts.map +1 -1
  135. package/dist/{research-WB6BBCDD.js → research-YFY7WJSZ.js} +11 -11
  136. package/dist/{review-BGWVY4RA.js → review-NHOPLAT7.js} +11 -11
  137. package/dist/{review-desktop-LEORC5VS.js → review-desktop-OFWPDYGD.js} +11 -11
  138. package/dist/{rpc-4TSKSFGC.js → rpc-TVVQPUOL.js} +10 -10
  139. package/dist/{run-3NBLVWXD.js → run-OCBEZRDW.js} +8 -8
  140. package/dist/{screencast-start-UZVIT3IN.js → screencast-start-GTSDA33J.js} +10 -10
  141. package/dist/{screencast-stop-NOSJSIUO.js → screencast-stop-FYBUIXAA.js} +10 -10
  142. package/dist/{screenshot-LARG4JQG.js → screenshot-OEYRT3SP.js} +10 -10
  143. package/dist/{scroll-VNFMV6TW.js → scroll-35OFEFC5.js} +10 -10
  144. package/dist/{scroll-into-view-VYRT3JPT.js → scroll-into-view-UQ5RAWIX.js} +10 -10
  145. package/dist/{select-KJTUZDVO.js → select-K56QELVZ.js} +10 -10
  146. package/dist/{serve-EV7K4HKR.js → serve-5UJ3VMWC.js} +48 -24
  147. package/dist/serve-5UJ3VMWC.js.map +1 -0
  148. package/dist/{shopping-DTXHVQ2X.js → shopping-FJG7XB4Q.js} +11 -11
  149. package/dist/{skill-lifecycle-5UAZGKSN.js → skill-lifecycle-OWZYBPFS.js} +3 -3
  150. package/dist/skills/bundled-skill-directories.d.ts.map +1 -1
  151. package/dist/skills/skill-loader.js +2 -2
  152. package/dist/{skills-NSXDX6YM.js → skills-KHMRNOE4.js} +3 -3
  153. package/dist/{snapshot-3XQMCMRJ.js → snapshot-W7RKVZEI.js} +10 -10
  154. package/dist/{status-YUMDP5KY.js → status-KHYCLGUD.js} +20 -12
  155. package/dist/status-KHYCLGUD.js.map +1 -0
  156. package/dist/{status-OXSYA5XD.js → status-R4EV4TWO.js} +11 -11
  157. package/dist/{status-capabilities-P4KDSE2Y.js → status-capabilities-XD3RGLKF.js} +11 -11
  158. package/dist/{text-V3B7UVIH.js → text-TANLFZ4O.js} +10 -10
  159. package/dist/tools/inspiredesign_run.d.ts.map +1 -1
  160. package/dist/{type-IYBN3ZLR.js → type-Y2Y7LX7Y.js} +10 -10
  161. package/dist/{uncheck-SG737EGI.js → uncheck-6REVUUB2.js} +10 -10
  162. package/dist/{uninstall-KYKGJAX7.js → uninstall-FW5ORBIN.js} +3 -3
  163. package/dist/{update-SMXPYGXS.js → update-FZGSXB74.js} +6 -2
  164. package/dist/update-FZGSXB74.js.map +1 -0
  165. package/dist/{update-skill-modes-BVX7IVMW.js → update-skill-modes-3ULKJK3Y.js} +3 -3
  166. package/dist/{upload-KH6ZABJA.js → upload-GGZC5UQP.js} +10 -10
  167. package/dist/{use-7YDKO3U4.js → use-B4Q7CFG2.js} +9 -9
  168. package/dist/{value-RZBWSKKM.js → value-DHOHO55D.js} +10 -10
  169. package/dist/{visible-BSFTAKXR.js → visible-S5BTWYNH.js} +10 -10
  170. package/dist/{wait-TMTEAYOP.js → wait-WV6NZUKL.js} +10 -10
  171. package/dist/{windows-HIZ23OHS.js → windows-GKE36DJQ.js} +11 -11
  172. package/extension/manifest.json +1 -1
  173. package/package.json +1 -1
  174. package/skills/AGENTS.md +2 -1
  175. package/skills/opendevbrowser-best-practices/SKILL.md +9 -2
  176. package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +4 -3
  177. package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +7 -0
  178. package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +49 -3
  179. package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +24 -2
  180. package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +1 -0
  181. package/skills/opendevbrowser-design-agent/SKILL.md +3 -0
  182. package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +85 -40
  183. package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +2 -0
  184. package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +20 -5
  185. package/skills/opendevbrowser-motion-design/SKILL.md +129 -0
  186. package/skills/opendevbrowser-motion-design/artifacts/accessibility-reduced-motion.md +37 -0
  187. package/skills/opendevbrowser-motion-design/artifacts/device-breakpoint-posture.md +40 -0
  188. package/skills/opendevbrowser-motion-design/artifacts/motion-anti-patterns.md +29 -0
  189. package/skills/opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md +430 -0
  190. package/skills/opendevbrowser-motion-design/artifacts/motion-release-gate.md +28 -0
  191. package/skills/opendevbrowser-motion-design/artifacts/motion-terminology.md +46 -0
  192. package/skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md +48 -0
  193. package/skills/opendevbrowser-motion-design/artifacts/performance-frame-budget.md +38 -0
  194. package/skills/opendevbrowser-motion-design/artifacts/platform-framework-guide.md +166 -0
  195. package/skills/opendevbrowser-motion-design/assets/templates/motion-audit-report.v1.md +70 -0
  196. package/skills/opendevbrowser-motion-design/assets/templates/motion-contract.v1.json +79 -0
  197. package/skills/opendevbrowser-motion-design/assets/templates/motion-release-gate.v1.json +18 -0
  198. package/skills/opendevbrowser-motion-design/assets/templates/motion-viewport-matrix.v1.json +76 -0
  199. package/skills/opendevbrowser-motion-design/scripts/motion-workflow.sh +163 -0
  200. package/skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh +374 -0
  201. package/dist/chunk-3ILXPKSJ.js.map +0 -1
  202. package/dist/chunk-4BEJVZRK.js.map +0 -1
  203. package/dist/chunk-COAOWH3G.js.map +0 -1
  204. package/dist/chunk-IPE7TF2P.js.map +0 -1
  205. package/dist/chunk-J47N77VG.js.map +0 -1
  206. package/dist/chunk-KZ2IXVQT.js.map +0 -1
  207. package/dist/chunk-MD655IPO.js.map +0 -1
  208. package/dist/chunk-RCZZGGJS.js.map +0 -1
  209. package/dist/daemon-2BSAZXLT.js.map +0 -1
  210. package/dist/help-EKKKEDL5.js.map +0 -1
  211. package/dist/inspiredesign-IEUL4PX3.js.map +0 -1
  212. package/dist/serve-EV7K4HKR.js.map +0 -1
  213. package/dist/status-YUMDP5KY.js.map +0 -1
  214. package/dist/update-SMXPYGXS.js.map +0 -1
  215. /package/dist/{accessibility-snapshot-CQ4ZKWKC.js.map → accessibility-snapshot-XOP66CSK.js.map} +0 -0
  216. /package/dist/{active-window-TD5HYJ72.js.map → active-window-E3WFOQGX.js.map} +0 -0
  217. /package/dist/{annotate-VTLFS2XV.js.map → annotate-MAE7ZJOZ.js.map} +0 -0
  218. /package/dist/{artifacts-KJ6RNDO2.js.map → artifacts-JHDUUJGQ.js.map} +0 -0
  219. /package/dist/{attr-BCI5KYCW.js.map → attr-M3PFDJ7Q.js.map} +0 -0
  220. /package/dist/{canvas-5DFEEOKM.js.map → canvas-3AJVL5I5.js.map} +0 -0
  221. /package/dist/{capture-desktop-HFTTWY4Z.js.map → capture-desktop-VJGEETMJ.js.map} +0 -0
  222. /package/dist/{capture-window-X63XPIFF.js.map → capture-window-W5UFSFQL.js.map} +0 -0
  223. /package/dist/{check-LWAUY7GC.js.map → check-4IR3UJVW.js.map} +0 -0
  224. /package/dist/{checked-ZSOUKVYT.js.map → checked-PKNY7724.js.map} +0 -0
  225. /package/dist/{chunk-AHEWXOKY.js.map → chunk-BUXFIY2P.js.map} +0 -0
  226. /package/dist/{chunk-QOMWCRE3.js.map → chunk-HBK56JST.js.map} +0 -0
  227. /package/dist/{chunk-T4GMCW6Z.js.map → chunk-J3KYGJRQ.js.map} +0 -0
  228. /package/dist/{chunk-6PVZ2ABC.js.map → chunk-L3YNUGYF.js.map} +0 -0
  229. /package/dist/{chunk-JZXD6FWR.js.map → chunk-NURQB55J.js.map} +0 -0
  230. /package/dist/{chunk-GQJ5S3BL.js.map → chunk-P5K3ZIPI.js.map} +0 -0
  231. /package/dist/{chunk-PPUWQKIC.js.map → chunk-PIFHXKV4.js.map} +0 -0
  232. /package/dist/{chunk-STGGGVYT.js.map → chunk-QMHKAFYX.js.map} +0 -0
  233. /package/dist/{chunk-RPXWUCQQ.js.map → chunk-SKFB5ICF.js.map} +0 -0
  234. /package/dist/{chunk-2SIMIPLY.js.map → chunk-W6YPVNDX.js.map} +0 -0
  235. /package/dist/{chunk-KDSNXS6N.js.map → chunk-ZMNEWS7A.js.map} +0 -0
  236. /package/dist/{click-2AILSEIZ.js.map → click-HLNXU4I5.js.map} +0 -0
  237. /package/dist/{clone-component-TPJS3PEG.js.map → clone-component-QIKN5PIM.js.map} +0 -0
  238. /package/dist/{clone-page-LE74CIFC.js.map → clone-page-5C7DTGZT.js.map} +0 -0
  239. /package/dist/{close-HN4YI47K.js.map → close-PCRZHX7F.js.map} +0 -0
  240. /package/dist/{close-WFERRHX6.js.map → close-WTXB3EDD.js.map} +0 -0
  241. /package/dist/{connect-RWBV2UCQ.js.map → connect-6C2IG55I.js.map} +0 -0
  242. /package/dist/{console-poll-PP4YYPDF.js.map → console-poll-VJXCZR3F.js.map} +0 -0
  243. /package/dist/{cookie-import-6IP776FC.js.map → cookie-import-5OEDFB6U.js.map} +0 -0
  244. /package/dist/{cookie-list-O2KG6DPU.js.map → cookie-list-44UNJJ6D.js.map} +0 -0
  245. /package/dist/{debug-trace-snapshot-F3BDVZXS.js.map → debug-trace-snapshot-RGXAPGWB.js.map} +0 -0
  246. /package/dist/{dialog-6JQYUWMQ.js.map → dialog-S64MJUM2.js.map} +0 -0
  247. /package/dist/{disconnect-763TP7GH.js.map → disconnect-MTIELIM7.js.map} +0 -0
  248. /package/dist/{enabled-DLYQFNIP.js.map → enabled-KF2L7LW4.js.map} +0 -0
  249. /package/dist/{goto-S346TJJH.js.map → goto-ULWINUAZ.js.map} +0 -0
  250. /package/dist/{hover-6JVJFGO7.js.map → hover-NOCOTR6N.js.map} +0 -0
  251. /package/dist/{html-EVOSPBIT.js.map → html-LXSYP6BT.js.map} +0 -0
  252. /package/dist/{inspector-H57BVUJP.js.map → inspector-62EPCLYB.js.map} +0 -0
  253. /package/dist/{inspector-audit-NQBAJWC7.js.map → inspector-audit-T2IF67RJ.js.map} +0 -0
  254. /package/dist/{inspector-plan-ZDIQVND3.js.map → inspector-plan-KQS6LRMW.js.map} +0 -0
  255. /package/dist/{launch-EK66VQPF.js.map → launch-B5ES6FVS.js.map} +0 -0
  256. /package/dist/{list-KKUKN467.js.map → list-TIZVR6RO.js.map} +0 -0
  257. /package/dist/{list-ADZAQ2IU.js.map → list-XM4BP5GM.js.map} +0 -0
  258. /package/dist/{macro-resolve-6DOQJ7CA.js.map → macro-resolve-TTQZVFIW.js.map} +0 -0
  259. /package/dist/{native-UPLVQ2SG.js.map → native-J2DFLOLP.js.map} +0 -0
  260. /package/dist/{network-poll-NUL4PDPY.js.map → network-poll-NNSY4W63.js.map} +0 -0
  261. /package/dist/{new-5NKYPEFT.js.map → new-E6VNAC2A.js.map} +0 -0
  262. /package/dist/{open-NR3BPLXV.js.map → open-F55XKMKB.js.map} +0 -0
  263. /package/dist/{perf-HJ36ZI6H.js.map → perf-RE7JE6CP.js.map} +0 -0
  264. /package/dist/{pointer-down-IYTTQWXZ.js.map → pointer-down-BCBPC5FJ.js.map} +0 -0
  265. /package/dist/{pointer-drag-A2YC5PWI.js.map → pointer-drag-QK7KGF7W.js.map} +0 -0
  266. /package/dist/{pointer-move-W5K5FUI4.js.map → pointer-move-VFAZQAXA.js.map} +0 -0
  267. /package/dist/{pointer-up-6GWVO64Y.js.map → pointer-up-FA5WE6LS.js.map} +0 -0
  268. /package/dist/{press-A3V5WB3S.js.map → press-TNRHNDSW.js.map} +0 -0
  269. /package/dist/{product-video-52REKWF3.js.map → product-video-UEANMZ2U.js.map} +0 -0
  270. /package/dist/{providers-IMFYMMHQ.js.map → providers-AMCNWZUL.js.map} +0 -0
  271. /package/dist/{research-WB6BBCDD.js.map → research-YFY7WJSZ.js.map} +0 -0
  272. /package/dist/{review-BGWVY4RA.js.map → review-NHOPLAT7.js.map} +0 -0
  273. /package/dist/{review-desktop-LEORC5VS.js.map → review-desktop-OFWPDYGD.js.map} +0 -0
  274. /package/dist/{rpc-4TSKSFGC.js.map → rpc-TVVQPUOL.js.map} +0 -0
  275. /package/dist/{run-3NBLVWXD.js.map → run-OCBEZRDW.js.map} +0 -0
  276. /package/dist/{screencast-start-UZVIT3IN.js.map → screencast-start-GTSDA33J.js.map} +0 -0
  277. /package/dist/{screencast-stop-NOSJSIUO.js.map → screencast-stop-FYBUIXAA.js.map} +0 -0
  278. /package/dist/{screenshot-LARG4JQG.js.map → screenshot-OEYRT3SP.js.map} +0 -0
  279. /package/dist/{scroll-VNFMV6TW.js.map → scroll-35OFEFC5.js.map} +0 -0
  280. /package/dist/{scroll-into-view-VYRT3JPT.js.map → scroll-into-view-UQ5RAWIX.js.map} +0 -0
  281. /package/dist/{select-KJTUZDVO.js.map → select-K56QELVZ.js.map} +0 -0
  282. /package/dist/{shopping-DTXHVQ2X.js.map → shopping-FJG7XB4Q.js.map} +0 -0
  283. /package/dist/{skill-lifecycle-5UAZGKSN.js.map → skill-lifecycle-OWZYBPFS.js.map} +0 -0
  284. /package/dist/{skills-NSXDX6YM.js.map → skills-KHMRNOE4.js.map} +0 -0
  285. /package/dist/{snapshot-3XQMCMRJ.js.map → snapshot-W7RKVZEI.js.map} +0 -0
  286. /package/dist/{status-OXSYA5XD.js.map → status-R4EV4TWO.js.map} +0 -0
  287. /package/dist/{status-capabilities-P4KDSE2Y.js.map → status-capabilities-XD3RGLKF.js.map} +0 -0
  288. /package/dist/{text-V3B7UVIH.js.map → text-TANLFZ4O.js.map} +0 -0
  289. /package/dist/{type-IYBN3ZLR.js.map → type-Y2Y7LX7Y.js.map} +0 -0
  290. /package/dist/{uncheck-SG737EGI.js.map → uncheck-6REVUUB2.js.map} +0 -0
  291. /package/dist/{uninstall-KYKGJAX7.js.map → uninstall-FW5ORBIN.js.map} +0 -0
  292. /package/dist/{update-skill-modes-BVX7IVMW.js.map → update-skill-modes-3ULKJK3Y.js.map} +0 -0
  293. /package/dist/{upload-KH6ZABJA.js.map → upload-GGZC5UQP.js.map} +0 -0
  294. /package/dist/{use-7YDKO3U4.js.map → use-B4Q7CFG2.js.map} +0 -0
  295. /package/dist/{value-RZBWSKKM.js.map → value-DHOHO55D.js.map} +0 -0
  296. /package/dist/{visible-BSFTAKXR.js.map → visible-S5BTWYNH.js.map} +0 -0
  297. /package/dist/{wait-TMTEAYOP.js.map → wait-WV6NZUKL.js.map} +0 -0
  298. /package/dist/{windows-HIZ23OHS.js.map → windows-GKE36DJQ.js.map} +0 -0
@@ -0,0 +1,166 @@
1
+ # Platform And Framework Guide
2
+
3
+ Motion frameworks are implementation primitives. They do not authorize new dependencies. Prefer existing project libraries and platform APIs. Any new runtime dependency requires approval, maintenance review, and a `libraryPolicy` entry in the motion contract.
4
+
5
+ ## Web Platform
6
+
7
+ ### CSS Transitions
8
+ - Approved use: simple state changes on opacity, transform, color, and filter when supported by the design system.
9
+ - Avoid: sequencing, complex interruption, or layout-property animation.
10
+ - Primitive mapping: duration, easing, transition-property.
11
+ - Reduced motion: shorten or remove transition under `prefers-reduced-motion`.
12
+ - Performance hazards: animating width, height, top, left, or box-shadow in hot paths.
13
+ - Library policy: no dependency.
14
+
15
+ ### CSS Keyframe Animations
16
+ - Approved use: repeated decorative effects, skeletons, icon states, and controlled loops.
17
+ - Avoid: user-blocking sequences and infinite attention traps.
18
+ - Primitive mapping: `@keyframes`, animation duration, direction, fill mode.
19
+ - Reduced motion: pause, remove, or replace with static state.
20
+ - Performance hazards: infinite animations on many nodes.
21
+ - Library policy: no dependency.
22
+
23
+ ### Web Animations API
24
+ - Approved use: cancellable timeline control, dynamic keyframes, and interruption.
25
+ - Avoid: trivial CSS-only transitions.
26
+ - Primitive mapping: `Element.animate()`, `Animation`, `KeyframeEffect`, playback controls, `document.getAnimations()`.
27
+ - Reduced motion: cancel or retarget to final states.
28
+ - Performance hazards: unmanaged animation handles and missing cleanup.
29
+ - Library policy: no dependency.
30
+
31
+ ### View Transition API
32
+ - Approved use: route, view, or shared element continuity in supported browsers.
33
+ - Avoid: pages with unstable identity or unsupported fallback needs that have not been designed.
34
+ - Primitive mapping: `document.startViewTransition`, view-transition names, route hooks.
35
+ - Reduced motion: focus-first instant navigation or fade-through.
36
+ - Performance hazards: stale snapshots, large raster layers, and wrong shared names.
37
+ - Library policy: no dependency.
38
+
39
+ ### CSS Scroll-driven Animations
40
+ - Approved use: scroll progress and view progress where progressive enhancement is acceptable.
41
+ - Avoid: core task flows that require all browsers to animate.
42
+ - Primitive mapping: scroll timelines, view timelines, CSS animation progress.
43
+ - Reduced motion: static content, no pinning, no parallax.
44
+ - Performance hazards: unreadable content during scroll, browser support gaps.
45
+ - Library policy: no dependency.
46
+
47
+ ## JavaScript And React Libraries
48
+
49
+ ### Motion For React
50
+ - Approved use: React UI transitions, layout transitions, gesture, and scroll hooks when already in the project or explicitly approved.
51
+ - Avoid: adding it only for one opacity fade.
52
+ - Primitive mapping: `motion/react`, motion components, layout, variants, AnimatePresence.
53
+ - Reduced motion: use reduced-motion hooks and contract fallback.
54
+ - Performance hazards: layout measurement on large lists and unbounded re-renders.
55
+ - Library policy: new dependency requires approval.
56
+
57
+ ### GSAP 3.x
58
+ - Approved use: complex timelines, SVG, scroll scenes, and production-grade choreography when approved.
59
+ - Avoid: basic UI state transitions and unowned scroll stages.
60
+ - Primitive mapping: timelines, tweens, ScrollTrigger when allowed.
61
+ - Reduced motion: disable timelines or jump to final state.
62
+ - Performance hazards: competing scroll observers and cleanup leaks.
63
+ - Library policy: new dependency requires approval.
64
+
65
+ ### Anime.js 4.x
66
+ - Approved use: lightweight timeline and SVG effects when approved.
67
+ - Avoid: framework state transitions that platform or existing libraries cover.
68
+ - Primitive mapping: timelines, keyframes, targets.
69
+ - Reduced motion: pause or complete instantly.
70
+ - Performance hazards: broad selectors and unmanaged loops.
71
+ - Library policy: new dependency requires approval.
72
+
73
+ ### react-spring
74
+ - Approved use: spring-driven UI states and direct manipulation when already installed or approved.
75
+ - Avoid: deterministic route choreography that needs exact timing.
76
+ - Primitive mapping: spring config, damping, stiffness, mass.
77
+ - Reduced motion: critically damped or instant states.
78
+ - Performance hazards: too many active springs and inaccessible bounce.
79
+ - Library policy: new dependency requires approval.
80
+
81
+ ### Lottie
82
+ - Approved use: exported illustration, onboarding, empty states, and success moments.
83
+ - Avoid: critical controls or data-only content.
84
+ - Primitive mapping: JSON animation, renderer, poster fallback.
85
+ - Reduced motion: static poster frame or no loop.
86
+ - Performance hazards: large JSON, endless loops, renderer overhead.
87
+ - Lifecycle: stop and destroy when removed.
88
+ - Library policy: new dependency requires approval.
89
+
90
+ ### Rive Web Runtime
91
+ - Approved use: state-machine illustration and interactive animated diagrams.
92
+ - Avoid: essential controls without static equivalent.
93
+ - Primitive mapping: Rive state machines, inputs, canvas/WebGL renderer.
94
+ - Reduced motion: static artboard or disabled autoplay.
95
+ - Performance hazards: runtime object leaks, heavy canvases.
96
+ - Lifecycle: clean up runtime objects.
97
+ - Library policy: new dependency requires approval.
98
+
99
+ ### Three.js And react-three-fiber
100
+ - Approved use: real spatial product or scene requirements.
101
+ - Avoid: decorative background only.
102
+ - Primitive mapping: scene, camera, mesh, material, render loop, controls.
103
+ - Reduced motion: static render or 2D equivalent.
104
+ - Performance hazards: GPU cost, battery drain, inaccessible canvas.
105
+ - Lifecycle: dispose geometries, materials, textures, and renderers.
106
+ - Library policy: new dependency requires approval.
107
+
108
+ ### Spline And WebGL Advisory
109
+ - Approved use: visual reference or exported asset only when runtime support and dependency policy are explicit.
110
+ - Avoid: assuming a Spline reference can ship directly.
111
+ - Primitive mapping: static export, embedded scene, or translated Three.js model.
112
+ - Reduced motion: poster frame.
113
+ - Performance hazards: black-box runtime size and device load.
114
+ - Library policy: advisory unless approved.
115
+
116
+ ## Native And Mobile Platforms
117
+
118
+ ### SwiftUI
119
+ - Approved use: state-driven transitions, matched geometry, gestures, and springs.
120
+ - Avoid: hiding navigation or focus order changes behind animation.
121
+ - Primitive mapping: `withAnimation`, `transition`, `matchedGeometryEffect`, gestures.
122
+ - Reduced motion: inspect accessibility reduce-motion setting and reduce travel.
123
+ - Performance hazards: animating large view trees and repeated layout invalidation.
124
+
125
+ ### UIKit And Core Animation
126
+ - Approved use: explicit view, layer, and transition animations.
127
+ - Avoid: running animations outside lifecycle ownership.
128
+ - Primitive mapping: UIView animation, Core Animation, interruptible animators.
129
+ - Reduced motion: instant state or crossfade where essential.
130
+ - Performance hazards: offscreen rendering and layer churn.
131
+
132
+ ### Jetpack Compose
133
+ - Approved use: declarative state animation, visibility, content size, and transitions.
134
+ - Avoid: motion that changes semantic order.
135
+ - Primitive mapping: animate APIs, updateTransition, AnimatedVisibility.
136
+ - Reduced motion: use platform animator duration scale and static fallbacks.
137
+ - Performance hazards: recomposition churn and list animation without keys.
138
+
139
+ ### Android MotionLayout
140
+ - Approved use: complex constraint transitions and coordinated layout states.
141
+ - Avoid: simple microinteractions.
142
+ - Primitive mapping: constraint sets, transitions, progress.
143
+ - Reduced motion: jump to end state or simplified transition.
144
+ - Performance hazards: constraint complexity and gesture conflict.
145
+
146
+ ### React Native Reanimated 4.x
147
+ - Approved use: gesture-coupled native-thread animation with approved architecture.
148
+ - Avoid: projects not on required New Architecture/Fabric posture.
149
+ - Primitive mapping: shared values, worklets, gestures, animations.
150
+ - Reduced motion: static state, shorter duration, or disabled gesture flourish.
151
+ - Performance hazards: JS/native boundary assumptions and missing cleanup.
152
+ - Library policy: new dependency and architecture requirements need approval.
153
+
154
+ ### Flutter Animation APIs
155
+ - Approved use: implicit and explicit animation, page transitions, gestures.
156
+ - Avoid: animation controller sprawl without lifecycle ownership.
157
+ - Primitive mapping: AnimationController, Tween, AnimatedBuilder, Hero.
158
+ - Reduced motion: respect platform accessibility and provide non-motion path.
159
+ - Performance hazards: expensive rebuilds and missing controller disposal.
160
+
161
+ ### Haptics
162
+ - Approved use: threshold, snap, selection, and confirmation feedback on native surfaces.
163
+ - Avoid: web-only assumptions, loops, errors, or high-frequency feedback.
164
+ - Primitive mapping: platform haptics, optional vibration where appropriate.
165
+ - Reduced motion: haptics cannot be the only feedback.
166
+ - Performance hazards: annoyance, accessibility conflict, battery impact.
@@ -0,0 +1,70 @@
1
+ # Motion Audit Report
2
+
3
+ ## Scope
4
+
5
+ - Surface:
6
+ - Task:
7
+ - Browser/session:
8
+
9
+ ## Contract Source
10
+
11
+ - Motion contract:
12
+ - Design-agent contract:
13
+ - Related skills:
14
+
15
+ ## Selected Patterns
16
+
17
+ | Pattern | User value | Driver | Evidence |
18
+ |---|---|---|---|
19
+ | | | | |
20
+
21
+ ## Device Matrix
22
+
23
+ | Posture | Result | Evidence | Issues |
24
+ |---|---|---|---|
25
+ | Phone portrait | | | |
26
+ | Tablet | | | |
27
+ | Desktop | | | |
28
+ | Short viewport | | | |
29
+ | Reduced motion | | | |
30
+
31
+ ## Reduced-motion Result
32
+
33
+ - `prefers-reduced-motion` path:
34
+ - Meaning preserved:
35
+ - Task completion preserved:
36
+
37
+ ## Keyboard Result
38
+
39
+ - Focus order:
40
+ - Focus visibility:
41
+ - Escape paths:
42
+
43
+ ## Performance Result
44
+
45
+ - Frame stability:
46
+ - Input latency:
47
+ - Layout shift:
48
+ - Overflow:
49
+ - Cleanup:
50
+
51
+ ## Temporal Evidence
52
+
53
+ - `screencast-start` artifact:
54
+ - `screencast-stop` artifact:
55
+ - `snapshot`:
56
+ - `screenshot`:
57
+ - `debug-trace-snapshot`:
58
+ - Console/network stability:
59
+
60
+ ## Issues
61
+
62
+ | ID | Severity | Evidence | Fix |
63
+ |---|---|---|---|
64
+ | | | | |
65
+
66
+ ## Release Decision
67
+
68
+ - Decision: block or pass
69
+ - Reason:
70
+ - Remaining risk:
@@ -0,0 +1,79 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "intent": {
4
+ "surface": "<page-or-component>",
5
+ "userValue": "<what-motion-clarifies>",
6
+ "nonGoals": []
7
+ },
8
+ "motionLanguage": {
9
+ "personality": "<precise-motion-language>",
10
+ "timingTokens": {
11
+ "instantMs": 0,
12
+ "microMs": 120,
13
+ "standardMs": 220,
14
+ "expressiveMs": 420
15
+ },
16
+ "easingTokens": {
17
+ "standard": "cubic-bezier(0.2, 0, 0, 1)",
18
+ "emphasized": "cubic-bezier(0.2, 0, 0, 1)",
19
+ "exit": "cubic-bezier(0.4, 0, 1, 1)"
20
+ },
21
+ "springTokens": {
22
+ "settle": {
23
+ "stiffness": 260,
24
+ "damping": 28,
25
+ "mass": 1
26
+ }
27
+ }
28
+ },
29
+ "selectedPatterns": [
30
+ {
31
+ "pattern": "no-motion stability",
32
+ "userValue": "protect task speed",
33
+ "driver": "state",
34
+ "owner": "<component-or-route>"
35
+ }
36
+ ],
37
+ "devicePosture": {
38
+ "mobilePortrait": "short travel, no pinning",
39
+ "mobileLandscape": "short viewport safe",
40
+ "tablet": "moderate travel",
41
+ "desktop": "local transitions",
42
+ "largeMonitor": "anchor to local region",
43
+ "foldable": "progressive enhancement only"
44
+ },
45
+ "accessibility": {
46
+ "prefersReducedMotion": "meaning-preserving static or opacity-only path",
47
+ "keyboardOrder": "unchanged",
48
+ "focusPolicy": "visible and stable",
49
+ "motionOnlyFeedback": false
50
+ },
51
+ "performance": {
52
+ "frameBudget": "transform and opacity first",
53
+ "layoutAnimationAllowed": false,
54
+ "scrollListenerPolicy": "bounded and passive",
55
+ "cleanupRequired": true
56
+ },
57
+ "libraryPolicy": {
58
+ "approvedExistingLibraries": [],
59
+ "newRuntimeDependencies": [],
60
+ "approvalReference": null
61
+ },
62
+ "verificationPlan": {
63
+ "viewports": [
64
+ "phone-portrait",
65
+ "tablet",
66
+ "desktop",
67
+ "short-viewport",
68
+ "reduced-motion"
69
+ ],
70
+ "opendevbrowserEvidence": [
71
+ "snapshot",
72
+ "screenshot",
73
+ "debug-trace-snapshot",
74
+ "screencast-start",
75
+ "screencast-stop"
76
+ ],
77
+ "releaseGate": "assets/templates/motion-release-gate.v1.json"
78
+ }
79
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "decision": "block",
4
+ "checks": [
5
+ { "id": "contract", "status": "pending", "blocking": true, "evidence": "" },
6
+ { "id": "pattern-justification", "status": "pending", "blocking": true, "evidence": "" },
7
+ { "id": "reduced-motion", "status": "pending", "blocking": true, "evidence": "" },
8
+ { "id": "keyboard", "status": "pending", "blocking": true, "evidence": "" },
9
+ { "id": "viewports", "status": "pending", "blocking": true, "evidence": "" },
10
+ { "id": "temporal-proof", "status": "pending", "blocking": true, "evidence": "" },
11
+ { "id": "debug-trace", "status": "pending", "blocking": true, "evidence": "" },
12
+ { "id": "console-network", "status": "pending", "blocking": true, "evidence": "" },
13
+ { "id": "performance", "status": "pending", "blocking": true, "evidence": "" },
14
+ { "id": "overflow", "status": "pending", "blocking": true, "evidence": "" },
15
+ { "id": "focus", "status": "pending", "blocking": true, "evidence": "" },
16
+ { "id": "library-policy", "status": "pending", "blocking": true, "evidence": "" }
17
+ ]
18
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "rows": [
4
+ {
5
+ "id": "phone-portrait",
6
+ "viewport": { "width": 390, "height": 844 },
7
+ "pointer": "coarse",
8
+ "requirements": ["short travel", "no default parallax", "no pinned scroll by default"]
9
+ },
10
+ {
11
+ "id": "phone-landscape",
12
+ "viewport": { "width": 844, "height": 390 },
13
+ "pointer": "coarse",
14
+ "requirements": ["short viewport safe", "primary actions visible"]
15
+ },
16
+ {
17
+ "id": "tablet-portrait",
18
+ "viewport": { "width": 820, "height": 1180 },
19
+ "pointer": "coarse",
20
+ "requirements": ["touch thresholds", "moderate travel"]
21
+ },
22
+ {
23
+ "id": "tablet-landscape",
24
+ "viewport": { "width": 1180, "height": 820 },
25
+ "pointer": "coarse",
26
+ "requirements": ["touch and keyboard parity"]
27
+ },
28
+ {
29
+ "id": "desktop",
30
+ "viewport": { "width": 1440, "height": 900 },
31
+ "pointer": "fine",
32
+ "requirements": ["local transitions", "keyboard parity"]
33
+ },
34
+ {
35
+ "id": "large-monitor",
36
+ "viewport": { "width": 1920, "height": 1080 },
37
+ "pointer": "fine",
38
+ "requirements": ["avoid excessive travel", "anchor to local regions"]
39
+ },
40
+ {
41
+ "id": "short-viewport",
42
+ "viewport": { "width": 1280, "height": 560 },
43
+ "pointer": "fine",
44
+ "requirements": ["no pinning", "no required tall-stage animation"]
45
+ },
46
+ {
47
+ "id": "reduced-motion",
48
+ "viewport": { "width": 1440, "height": 900 },
49
+ "media": { "prefersReducedMotion": "reduce" },
50
+ "requirements": ["meaning preserved", "task completion preserved"]
51
+ },
52
+ {
53
+ "id": "coarse-pointer",
54
+ "pointer": "coarse",
55
+ "requirements": ["no hover-only affordance", "large touch targets"]
56
+ },
57
+ {
58
+ "id": "fine-pointer",
59
+ "pointer": "fine",
60
+ "requirements": ["hover has focus equivalent"]
61
+ },
62
+ {
63
+ "id": "keyboard-only",
64
+ "input": "keyboard",
65
+ "requirements": ["focus visible", "focus order stable", "escape paths work"]
66
+ },
67
+ {
68
+ "id": "reduced-power",
69
+ "requirements": ["fewer simultaneous animations", "static skeletons preferred"]
70
+ },
71
+ {
72
+ "id": "foldable-adaptive",
73
+ "requirements": ["device-posture progressive enhancement only", "default responsive path works first"]
74
+ }
75
+ ]
76
+ }
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ skill_root="$(cd "$script_dir/.." && pwd)"
6
+ skills_root="$(cd "$skill_root/.." && pwd)"
7
+ best_practices_root="$skills_root/opendevbrowser-best-practices"
8
+ design_agent_root="$skills_root/opendevbrowser-design-agent"
9
+ # shellcheck source=../../opendevbrowser-best-practices/scripts/resolve-odb-cli.sh
10
+ source "$best_practices_root/scripts/resolve-odb-cli.sh"
11
+
12
+ render_cli_prefix() {
13
+ local rendered=()
14
+ local part
15
+ for part in "${ODB_CLI[@]}"; do
16
+ rendered+=("$(printf '%q' "$part")")
17
+ done
18
+ printf '%s' "${rendered[*]}"
19
+ }
20
+
21
+ CLI_PREFIX="$(render_cli_prefix)"
22
+
23
+ quote_path() {
24
+ printf '%q' "$1"
25
+ }
26
+
27
+ print_cat() {
28
+ printf 'cat %s\n' "$(quote_path "$1")"
29
+ }
30
+
31
+ print_validator() {
32
+ printf '%s\n' "$(quote_path "$skill_root/scripts/validate-skill-assets.sh")"
33
+ }
34
+
35
+ print_help() {
36
+ cat <<EOF
37
+ OpenDevBrowser motion-design workflow router
38
+
39
+ Usage:
40
+ $(quote_path "$script_dir/motion-workflow.sh") <workflow>
41
+
42
+ Workflows:
43
+ contract-first
44
+ pattern-select
45
+ viewport-matrix
46
+ reduced-motion-check
47
+ temporal-proof
48
+ scroll-stage-audit
49
+ gesture-motion
50
+ performance-audit
51
+ release-gate
52
+ list
53
+ EOF
54
+ }
55
+
56
+ workflow="${1:-list}"
57
+
58
+ case "$workflow" in
59
+ list)
60
+ print_help
61
+ ;;
62
+ contract-first)
63
+ print_cat "$skill_root/assets/templates/motion-contract.v1.json"
64
+ print_cat "$skill_root/artifacts/motion-terminology.md"
65
+ print_cat "$skill_root/artifacts/platform-framework-guide.md"
66
+ print_cat "$design_agent_root/assets/templates/design-contract.v1.json"
67
+ cat <<'EOF'
68
+ # Fill the motion contract before implementation and connect it to design-agent motionSystem.
69
+ EOF
70
+ ;;
71
+ pattern-select)
72
+ print_cat "$skill_root/artifacts/motion-pattern-catalog.md"
73
+ print_cat "$skill_root/artifacts/motion-anti-patterns.md"
74
+ print_cat "$skill_root/assets/templates/motion-contract.v1.json"
75
+ cat <<'EOF'
76
+ # Select only patterns with user value, fallback, device posture, and evidence.
77
+ EOF
78
+ ;;
79
+ viewport-matrix)
80
+ print_cat "$skill_root/assets/templates/motion-viewport-matrix.v1.json"
81
+ print_cat "$skill_root/artifacts/device-breakpoint-posture.md"
82
+ cat <<EOF
83
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
84
+ $CLI_PREFIX screenshot --session-id <session-id>
85
+ $CLI_PREFIX snapshot --session-id <session-id>
86
+ # Repeat for phone, tablet, desktop, short viewport, reduced motion, coarse pointer, and keyboard-only posture.
87
+ EOF
88
+ ;;
89
+ reduced-motion-check)
90
+ print_cat "$skill_root/artifacts/accessibility-reduced-motion.md"
91
+ print_cat "$skill_root/assets/templates/motion-audit-report.v1.md"
92
+ cat <<EOF
93
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
94
+ $CLI_PREFIX snapshot --session-id <session-id>
95
+ $CLI_PREFIX screenshot --session-id <session-id>
96
+ $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
97
+ # Emulate or configure prefers-reduced-motion, then prove meaning and task completion are preserved.
98
+ EOF
99
+ ;;
100
+ temporal-proof)
101
+ print_cat "$skill_root/artifacts/open-dev-browser-motion-evidence.md"
102
+ cat <<EOF
103
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
104
+ $CLI_PREFIX snapshot --session-id <session-id>
105
+ $CLI_PREFIX screenshot --session-id <session-id>
106
+ $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
107
+ $CLI_PREFIX screencast-start --session-id <session-id> --output-dir <artifact-dir>
108
+ # Perform the motion interaction: click, pointer-drag, scroll, keyboard, or route transition.
109
+ $CLI_PREFIX screencast-stop --session-id <session-id> --screencast-id <screencast-id>
110
+ $CLI_PREFIX snapshot --session-id <session-id>
111
+ $CLI_PREFIX screenshot --session-id <session-id>
112
+ $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
113
+ EOF
114
+ ;;
115
+ scroll-stage-audit)
116
+ print_cat "$skill_root/artifacts/motion-pattern-catalog.md"
117
+ print_cat "$design_agent_root/artifacts/scroll-reveal-surface-planning.md"
118
+ print_cat "$skill_root/artifacts/device-breakpoint-posture.md"
119
+ cat <<EOF
120
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
121
+ $CLI_PREFIX screencast-start --session-id <session-id> --output-dir <artifact-dir>
122
+ $CLI_PREFIX scroll --session-id <session-id> --dy 900
123
+ $CLI_PREFIX screencast-stop --session-id <session-id> --screencast-id <screencast-id>
124
+ $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
125
+ EOF
126
+ ;;
127
+ gesture-motion)
128
+ print_cat "$skill_root/artifacts/motion-pattern-catalog.md"
129
+ print_cat "$skill_root/artifacts/device-breakpoint-posture.md"
130
+ cat <<EOF
131
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
132
+ $CLI_PREFIX pointer-move --session-id <session-id> --x <x> --y <y>
133
+ $CLI_PREFIX pointer-down --session-id <session-id>
134
+ $CLI_PREFIX pointer-drag --session-id <session-id> --to-x <x2> --to-y <y2>
135
+ $CLI_PREFIX pointer-up --session-id <session-id>
136
+ $CLI_PREFIX snapshot --session-id <session-id>
137
+ EOF
138
+ ;;
139
+ performance-audit)
140
+ print_cat "$skill_root/artifacts/performance-frame-budget.md"
141
+ print_cat "$skill_root/assets/templates/motion-audit-report.v1.md"
142
+ cat <<EOF
143
+ $CLI_PREFIX launch --no-extension --start-url <url> --output-format json
144
+ $CLI_PREFIX debug-trace-snapshot --session-id <session-id>
145
+ $CLI_PREFIX screenshot --session-id <session-id>
146
+ # Pair browser proof with framework profiler or performance trace for complex motion.
147
+ EOF
148
+ ;;
149
+ release-gate)
150
+ print_validator
151
+ print_cat "$skill_root/artifacts/motion-release-gate.md"
152
+ print_cat "$skill_root/assets/templates/motion-release-gate.v1.json"
153
+ print_cat "$skill_root/assets/templates/motion-audit-report.v1.md"
154
+ cat <<'EOF'
155
+ # Mark every blocking check pass/fail with evidence. Missing temporal proof blocks release.
156
+ EOF
157
+ ;;
158
+ *)
159
+ echo "Unknown workflow: $workflow" >&2
160
+ print_help
161
+ exit 2
162
+ ;;
163
+ esac