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.
- package/README.md +18 -5
- package/dist/{accessibility-snapshot-CQ4ZKWKC.js → accessibility-snapshot-JSPFVWZ6.js} +12 -12
- package/dist/{active-window-TD5HYJ72.js → active-window-2OB2MSCR.js} +12 -12
- package/dist/{annotate-VTLFS2XV.js → annotate-VDZBZBKZ.js} +11 -11
- package/dist/{artifacts-KJ6RNDO2.js → artifacts-JHDUUJGQ.js} +2 -2
- package/dist/{attr-BCI5KYCW.js → attr-7XIO4MCH.js} +11 -11
- package/dist/browser/canvas-manager.d.ts.map +1 -1
- package/dist/canvas/guidance.d.ts +7 -0
- package/dist/canvas/guidance.d.ts.map +1 -1
- package/dist/canvas/repair-examples.d.ts +45 -0
- package/dist/canvas/repair-examples.d.ts.map +1 -0
- package/dist/{canvas-5DFEEOKM.js → canvas-N4PAA274.js} +26 -11
- package/dist/canvas-N4PAA274.js.map +1 -0
- package/dist/{capture-desktop-HFTTWY4Z.js → capture-desktop-T5YO3EBI.js} +12 -12
- package/dist/{capture-window-X63XPIFF.js → capture-window-UKEUBWKH.js} +12 -12
- package/dist/{check-LWAUY7GC.js → check-PQB6KKMN.js} +11 -11
- package/dist/{checked-ZSOUKVYT.js → checked-RNZIMCU6.js} +11 -11
- package/dist/{chunk-6B5WAQV7.js → chunk-27W46IKI.js} +42 -11
- package/dist/chunk-27W46IKI.js.map +1 -0
- package/dist/{chunk-WHQZBUNY.js → chunk-3WLCWHIV.js} +2 -2
- package/dist/{chunk-WHQZBUNY.js.map → chunk-3WLCWHIV.js.map} +1 -1
- package/dist/{chunk-PPUWQKIC.js → chunk-52ZIOWVU.js} +4 -4
- package/dist/{chunk-IPE7TF2P.js → chunk-7BNU6DFI.js} +8 -5
- package/dist/chunk-7BNU6DFI.js.map +1 -0
- package/dist/{chunk-3ILXPKSJ.js → chunk-BUVYTJZR.js} +2 -1
- package/dist/chunk-BUVYTJZR.js.map +1 -0
- package/dist/{chunk-QOMWCRE3.js → chunk-EOX6U6Q4.js} +47 -19
- package/dist/chunk-EOX6U6Q4.js.map +1 -0
- package/dist/{chunk-4BEJVZRK.js → chunk-FBKPDILE.js} +3625 -289
- package/dist/chunk-FBKPDILE.js.map +1 -0
- package/dist/{chunk-2I3YS3DV.js → chunk-FDBUB7BM.js} +7 -3
- package/dist/chunk-FDBUB7BM.js.map +1 -0
- package/dist/{chunk-COAOWH3G.js → chunk-HMRANSDX.js} +120 -28
- package/dist/chunk-HMRANSDX.js.map +1 -0
- package/dist/{chunk-KZ2IXVQT.js → chunk-IBIHDGTZ.js} +40 -5
- package/dist/chunk-IBIHDGTZ.js.map +1 -0
- package/dist/{chunk-T4GMCW6Z.js → chunk-J3KYGJRQ.js} +3 -3
- package/dist/{chunk-AHEWXOKY.js → chunk-JROW6ZNN.js} +4 -4
- package/dist/{chunk-6PVZ2ABC.js → chunk-L3YNUGYF.js} +2 -2
- package/dist/{chunk-MD655IPO.js → chunk-MJF67OTH.js} +11 -4
- package/dist/chunk-MJF67OTH.js.map +1 -0
- package/dist/{chunk-JZXD6FWR.js → chunk-NURQB55J.js} +2 -2
- package/dist/{chunk-STGGGVYT.js → chunk-QMHKAFYX.js} +2 -2
- package/dist/{chunk-RPXWUCQQ.js → chunk-SKFB5ICF.js} +2 -2
- package/dist/{chunk-2SIMIPLY.js → chunk-W6YPVNDX.js} +3 -3
- package/dist/{chunk-GQJ5S3BL.js → chunk-YRRRUGSQ.js} +3 -3
- package/dist/{chunk-37VSRUW4.js → chunk-ZGCTC5YM.js} +39 -7
- package/dist/chunk-ZGCTC5YM.js.map +1 -0
- package/dist/{chunk-KDSNXS6N.js → chunk-ZMNEWS7A.js} +2 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/commands/canvas.d.ts +12 -0
- package/dist/cli/commands/canvas.d.ts.map +1 -1
- package/dist/cli/commands/daemon.d.ts +19 -2
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/inspiredesign.d.ts +6 -1
- package/dist/cli/commands/inspiredesign.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts +12 -3
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/types.d.ts +1 -0
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon-mismatch.d.ts +15 -0
- package/dist/cli/daemon-mismatch.d.ts.map +1 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/errors.d.ts +4 -2
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +91 -90
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installers/postinstall-skill-sync.js +2 -2
- package/dist/cli/utils/workflow-message.d.ts +1 -1
- package/dist/cli/utils/workflow-message.d.ts.map +1 -1
- package/dist/{click-2AILSEIZ.js → click-U7ZFKSB4.js} +11 -11
- package/dist/{clone-component-TPJS3PEG.js → clone-component-SWYAORTU.js} +10 -10
- package/dist/{clone-page-LE74CIFC.js → clone-page-WJ6UJOJG.js} +10 -10
- package/dist/{close-HN4YI47K.js → close-NAVIHZ2T.js} +10 -10
- package/dist/{close-WFERRHX6.js → close-VKIGIKVT.js} +10 -10
- package/dist/{connect-RWBV2UCQ.js → connect-XVG2MOZL.js} +11 -11
- package/dist/{console-poll-PP4YYPDF.js → console-poll-XI5BZPL7.js} +11 -11
- package/dist/{cookie-import-6IP776FC.js → cookie-import-QELKE7TK.js} +10 -10
- package/dist/{cookie-list-O2KG6DPU.js → cookie-list-QDA6KWIY.js} +10 -10
- package/dist/{daemon-2BSAZXLT.js → daemon-CA4UIIZQ.js} +26 -13
- package/dist/daemon-CA4UIIZQ.js.map +1 -0
- package/dist/daemon-fingerprint.json +1 -1
- package/dist/{debug-trace-snapshot-F3BDVZXS.js → debug-trace-snapshot-AT4GAO57.js} +11 -11
- package/dist/{dialog-6JQYUWMQ.js → dialog-O3V2IBFH.js} +11 -11
- package/dist/{disconnect-763TP7GH.js → disconnect-NAX5TPTG.js} +10 -10
- package/dist/{enabled-DLYQFNIP.js → enabled-VT4FJXDX.js} +11 -11
- package/dist/{goto-S346TJJH.js → goto-GBJG5NC4.js} +11 -11
- package/dist/guidance/context.d.ts +44 -0
- package/dist/guidance/context.d.ts.map +1 -0
- package/dist/guidance/index.d.ts +7 -0
- package/dist/guidance/index.d.ts.map +1 -0
- package/dist/guidance/readiness.d.ts +7 -0
- package/dist/guidance/readiness.d.ts.map +1 -0
- package/dist/guidance/recipes/generic.d.ts +3 -0
- package/dist/guidance/recipes/generic.d.ts.map +1 -0
- package/dist/guidance/recipes/pinterest.d.ts +5 -0
- package/dist/guidance/recipes/pinterest.d.ts.map +1 -0
- package/dist/guidance/recipes/site-recipe-types.d.ts +2 -0
- package/dist/guidance/recipes/site-recipe-types.d.ts.map +1 -0
- package/dist/guidance/recipes/site-registry.d.ts +5 -0
- package/dist/guidance/recipes/site-registry.d.ts.map +1 -0
- package/dist/guidance/renderers.d.ts +22 -0
- package/dist/guidance/renderers.d.ts.map +1 -0
- package/dist/guidance/router.d.ts +8 -0
- package/dist/guidance/router.d.ts.map +1 -0
- package/dist/guidance/types.d.ts +139 -0
- package/dist/guidance/types.d.ts.map +1 -0
- package/dist/{help-U7KBQME6.js → help-SUI4H77K.js} +14 -9
- package/dist/help-SUI4H77K.js.map +1 -0
- package/dist/{hover-6JVJFGO7.js → hover-476ZNQZE.js} +11 -11
- package/dist/{html-EVOSPBIT.js → html-5C4TXOV3.js} +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -18
- package/dist/index.js.map +1 -1
- package/dist/{inspector-H57BVUJP.js → inspector-73ARPCIV.js} +13 -13
- package/dist/{inspector-audit-NQBAJWC7.js → inspector-audit-QT6QY7KS.js} +15 -15
- package/dist/{inspector-plan-ZDIQVND3.js → inspector-plan-JRNSGN2Z.js} +13 -13
- package/dist/inspiredesign/capture.d.ts +4 -0
- package/dist/inspiredesign/capture.d.ts.map +1 -1
- package/dist/inspiredesign/contract.d.ts +24 -0
- package/dist/inspiredesign/contract.d.ts.map +1 -1
- package/dist/inspiredesign/handoff.d.ts +9 -3
- package/dist/inspiredesign/handoff.d.ts.map +1 -1
- package/dist/inspiredesign/meta-prompt.d.ts +9 -0
- package/dist/inspiredesign/meta-prompt.d.ts.map +1 -0
- package/dist/inspiredesign/reference-discovery.d.ts +29 -0
- package/dist/inspiredesign/reference-discovery.d.ts.map +1 -0
- package/dist/inspiredesign/reference-pattern-board.d.ts +38 -1
- package/dist/inspiredesign/reference-pattern-board.d.ts.map +1 -1
- package/dist/inspiredesign/visual-evidence.d.ts +46 -0
- package/dist/inspiredesign/visual-evidence.d.ts.map +1 -0
- package/dist/inspiredesign/visual-policy.d.ts +17 -0
- package/dist/inspiredesign/visual-policy.d.ts.map +1 -0
- package/dist/{inspiredesign-IEUL4PX3.js → inspiredesign-IPVZDLSQ.js} +73 -21
- package/dist/inspiredesign-IPVZDLSQ.js.map +1 -0
- package/dist/{launch-EK66VQPF.js → launch-B35YDRQC.js} +11 -11
- package/dist/{list-ADZAQ2IU.js → list-JV55JVGB.js} +10 -10
- package/dist/{list-KKUKN467.js → list-YETWKTKY.js} +10 -10
- package/dist/{macro-resolve-6DOQJ7CA.js → macro-resolve-DQK4B3W3.js} +12 -12
- package/dist/{native-UPLVQ2SG.js → native-J2DFLOLP.js} +3 -3
- package/dist/{network-poll-NUL4PDPY.js → network-poll-4GWHCJXI.js} +11 -11
- package/dist/{new-5NKYPEFT.js → new-XDCQPIEG.js} +10 -10
- package/dist/{open-NR3BPLXV.js → open-GIM3ZCSV.js} +10 -10
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +47 -18
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/{perf-HJ36ZI6H.js → perf-26VBXDPI.js} +11 -11
- package/dist/{pointer-down-IYTTQWXZ.js → pointer-down-O3VSNAXW.js} +12 -12
- package/dist/{pointer-drag-A2YC5PWI.js → pointer-drag-WQ5QGE6J.js} +12 -12
- package/dist/{pointer-move-W5K5FUI4.js → pointer-move-4N4D7JY2.js} +12 -12
- package/dist/{pointer-up-6GWVO64Y.js → pointer-up-CQC4NPDX.js} +12 -12
- package/dist/{press-A3V5WB3S.js → press-XGJD45CU.js} +11 -11
- package/dist/{product-video-52REKWF3.js → product-video-HD4ZOUI7.js} +13 -13
- package/dist/providers/browser-native-discovery.d.ts +23 -0
- package/dist/providers/browser-native-discovery.d.ts.map +1 -0
- package/dist/providers/renderer.d.ts +9 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/workflow-handoff.d.ts +4 -0
- package/dist/providers/workflow-handoff.d.ts.map +1 -1
- package/dist/providers/workflows.d.ts +45 -3
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-IMFYMMHQ.js → providers-KKNPJSQK.js} +4 -4
- package/dist/public-surface/generated-manifest.d.ts +14 -5
- package/dist/public-surface/generated-manifest.d.ts.map +1 -1
- package/dist/public-surface/source.d.ts +7 -7
- package/dist/public-surface/source.d.ts.map +1 -1
- package/dist/{research-WB6BBCDD.js → research-VUWWEQ4R.js} +13 -13
- package/dist/{review-BGWVY4RA.js → review-LZ3TA7U7.js} +12 -12
- package/dist/{review-desktop-LEORC5VS.js → review-desktop-LAO7U7T3.js} +12 -12
- package/dist/{rpc-4TSKSFGC.js → rpc-HKNIVFGC.js} +11 -11
- package/dist/{run-3NBLVWXD.js → run-SHCF53FO.js} +9 -9
- package/dist/{screencast-start-UZVIT3IN.js → screencast-start-JHMQZVWJ.js} +11 -11
- package/dist/{screencast-stop-NOSJSIUO.js → screencast-stop-RWQTWWQS.js} +11 -11
- package/dist/{screenshot-LARG4JQG.js → screenshot-QHFYO6PB.js} +11 -11
- package/dist/{scroll-VNFMV6TW.js → scroll-L3FTMAV4.js} +11 -11
- package/dist/{scroll-into-view-VYRT3JPT.js → scroll-into-view-JVDHX4WU.js} +11 -11
- package/dist/{select-KJTUZDVO.js → select-X4BO7GTB.js} +11 -11
- package/dist/{serve-EV7K4HKR.js → serve-JIMIBCNO.js} +49 -25
- package/dist/serve-JIMIBCNO.js.map +1 -0
- package/dist/{shopping-DTXHVQ2X.js → shopping-EGSDP2GL.js} +13 -13
- package/dist/{skill-lifecycle-5UAZGKSN.js → skill-lifecycle-OWZYBPFS.js} +3 -3
- package/dist/skills/bundled-skill-directories.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +2 -2
- package/dist/{skills-NSXDX6YM.js → skills-KHMRNOE4.js} +3 -3
- package/dist/{snapshot-3XQMCMRJ.js → snapshot-QGJ7RDNV.js} +11 -11
- package/dist/{status-YUMDP5KY.js → status-CKGPNYIH.js} +21 -13
- package/dist/status-CKGPNYIH.js.map +1 -0
- package/dist/{status-OXSYA5XD.js → status-LEBY2X7N.js} +12 -12
- package/dist/{status-capabilities-P4KDSE2Y.js → status-capabilities-6QTWNGKM.js} +12 -12
- package/dist/{text-V3B7UVIH.js → text-VUZU7D3L.js} +11 -11
- package/dist/tools/inspiredesign_run.d.ts.map +1 -1
- package/dist/{type-IYBN3ZLR.js → type-N5SURP74.js} +11 -11
- package/dist/{uncheck-SG737EGI.js → uncheck-JFMK3SSY.js} +11 -11
- package/dist/{uninstall-KYKGJAX7.js → uninstall-FW5ORBIN.js} +3 -3
- package/dist/{update-skill-modes-BVX7IVMW.js → update-skill-modes-3ULKJK3Y.js} +3 -3
- package/dist/{upload-KH6ZABJA.js → upload-KFUYLL7M.js} +11 -11
- package/dist/{use-7YDKO3U4.js → use-CNMPP2ED.js} +10 -10
- package/dist/{value-RZBWSKKM.js → value-J335MPZE.js} +11 -11
- package/dist/{visible-BSFTAKXR.js → visible-YQZWWPBZ.js} +11 -11
- package/dist/{wait-TMTEAYOP.js → wait-IC7YJJPJ.js} +11 -11
- package/dist/{windows-HIZ23OHS.js → windows-AGVQ3KX3.js} +12 -12
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/AGENTS.md +2 -1
- package/skills/opendevbrowser-best-practices/SKILL.md +16 -3
- package/skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md +4 -4
- package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +4 -3
- package/skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json +7 -0
- package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +49 -3
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +31 -2
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +7 -0
- package/skills/opendevbrowser-design-agent/SKILL.md +11 -6
- package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +4 -3
- package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +110 -41
- package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +2 -0
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +21 -5
- package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +5 -2
- package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +8 -2
- package/skills/opendevbrowser-motion-design/SKILL.md +129 -0
- package/skills/opendevbrowser-motion-design/artifacts/accessibility-reduced-motion.md +37 -0
- package/skills/opendevbrowser-motion-design/artifacts/device-breakpoint-posture.md +40 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-anti-patterns.md +29 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md +430 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-release-gate.md +28 -0
- package/skills/opendevbrowser-motion-design/artifacts/motion-terminology.md +46 -0
- package/skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md +48 -0
- package/skills/opendevbrowser-motion-design/artifacts/performance-frame-budget.md +38 -0
- package/skills/opendevbrowser-motion-design/artifacts/platform-framework-guide.md +166 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-audit-report.v1.md +70 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-contract.v1.json +79 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-release-gate.v1.json +18 -0
- package/skills/opendevbrowser-motion-design/assets/templates/motion-viewport-matrix.v1.json +76 -0
- package/skills/opendevbrowser-motion-design/scripts/motion-workflow.sh +163 -0
- package/skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh +375 -0
- package/dist/canvas-5DFEEOKM.js.map +0 -1
- package/dist/chunk-2I3YS3DV.js.map +0 -1
- package/dist/chunk-37VSRUW4.js.map +0 -1
- package/dist/chunk-3ILXPKSJ.js.map +0 -1
- package/dist/chunk-4BEJVZRK.js.map +0 -1
- package/dist/chunk-6B5WAQV7.js.map +0 -1
- package/dist/chunk-COAOWH3G.js.map +0 -1
- package/dist/chunk-IPE7TF2P.js.map +0 -1
- package/dist/chunk-KZ2IXVQT.js.map +0 -1
- package/dist/chunk-MD655IPO.js.map +0 -1
- package/dist/chunk-QOMWCRE3.js.map +0 -1
- package/dist/daemon-2BSAZXLT.js.map +0 -1
- package/dist/help-U7KBQME6.js.map +0 -1
- package/dist/inspiredesign-IEUL4PX3.js.map +0 -1
- package/dist/serve-EV7K4HKR.js.map +0 -1
- package/dist/status-YUMDP5KY.js.map +0 -1
- /package/dist/{accessibility-snapshot-CQ4ZKWKC.js.map → accessibility-snapshot-JSPFVWZ6.js.map} +0 -0
- /package/dist/{active-window-TD5HYJ72.js.map → active-window-2OB2MSCR.js.map} +0 -0
- /package/dist/{annotate-VTLFS2XV.js.map → annotate-VDZBZBKZ.js.map} +0 -0
- /package/dist/{artifacts-KJ6RNDO2.js.map → artifacts-JHDUUJGQ.js.map} +0 -0
- /package/dist/{attr-BCI5KYCW.js.map → attr-7XIO4MCH.js.map} +0 -0
- /package/dist/{capture-desktop-HFTTWY4Z.js.map → capture-desktop-T5YO3EBI.js.map} +0 -0
- /package/dist/{capture-window-X63XPIFF.js.map → capture-window-UKEUBWKH.js.map} +0 -0
- /package/dist/{check-LWAUY7GC.js.map → check-PQB6KKMN.js.map} +0 -0
- /package/dist/{checked-ZSOUKVYT.js.map → checked-RNZIMCU6.js.map} +0 -0
- /package/dist/{chunk-PPUWQKIC.js.map → chunk-52ZIOWVU.js.map} +0 -0
- /package/dist/{chunk-T4GMCW6Z.js.map → chunk-J3KYGJRQ.js.map} +0 -0
- /package/dist/{chunk-AHEWXOKY.js.map → chunk-JROW6ZNN.js.map} +0 -0
- /package/dist/{chunk-6PVZ2ABC.js.map → chunk-L3YNUGYF.js.map} +0 -0
- /package/dist/{chunk-JZXD6FWR.js.map → chunk-NURQB55J.js.map} +0 -0
- /package/dist/{chunk-STGGGVYT.js.map → chunk-QMHKAFYX.js.map} +0 -0
- /package/dist/{chunk-RPXWUCQQ.js.map → chunk-SKFB5ICF.js.map} +0 -0
- /package/dist/{chunk-2SIMIPLY.js.map → chunk-W6YPVNDX.js.map} +0 -0
- /package/dist/{chunk-GQJ5S3BL.js.map → chunk-YRRRUGSQ.js.map} +0 -0
- /package/dist/{chunk-KDSNXS6N.js.map → chunk-ZMNEWS7A.js.map} +0 -0
- /package/dist/{click-2AILSEIZ.js.map → click-U7ZFKSB4.js.map} +0 -0
- /package/dist/{clone-component-TPJS3PEG.js.map → clone-component-SWYAORTU.js.map} +0 -0
- /package/dist/{clone-page-LE74CIFC.js.map → clone-page-WJ6UJOJG.js.map} +0 -0
- /package/dist/{close-HN4YI47K.js.map → close-NAVIHZ2T.js.map} +0 -0
- /package/dist/{close-WFERRHX6.js.map → close-VKIGIKVT.js.map} +0 -0
- /package/dist/{connect-RWBV2UCQ.js.map → connect-XVG2MOZL.js.map} +0 -0
- /package/dist/{console-poll-PP4YYPDF.js.map → console-poll-XI5BZPL7.js.map} +0 -0
- /package/dist/{cookie-import-6IP776FC.js.map → cookie-import-QELKE7TK.js.map} +0 -0
- /package/dist/{cookie-list-O2KG6DPU.js.map → cookie-list-QDA6KWIY.js.map} +0 -0
- /package/dist/{debug-trace-snapshot-F3BDVZXS.js.map → debug-trace-snapshot-AT4GAO57.js.map} +0 -0
- /package/dist/{dialog-6JQYUWMQ.js.map → dialog-O3V2IBFH.js.map} +0 -0
- /package/dist/{disconnect-763TP7GH.js.map → disconnect-NAX5TPTG.js.map} +0 -0
- /package/dist/{enabled-DLYQFNIP.js.map → enabled-VT4FJXDX.js.map} +0 -0
- /package/dist/{goto-S346TJJH.js.map → goto-GBJG5NC4.js.map} +0 -0
- /package/dist/{hover-6JVJFGO7.js.map → hover-476ZNQZE.js.map} +0 -0
- /package/dist/{html-EVOSPBIT.js.map → html-5C4TXOV3.js.map} +0 -0
- /package/dist/{inspector-H57BVUJP.js.map → inspector-73ARPCIV.js.map} +0 -0
- /package/dist/{inspector-audit-NQBAJWC7.js.map → inspector-audit-QT6QY7KS.js.map} +0 -0
- /package/dist/{inspector-plan-ZDIQVND3.js.map → inspector-plan-JRNSGN2Z.js.map} +0 -0
- /package/dist/{launch-EK66VQPF.js.map → launch-B35YDRQC.js.map} +0 -0
- /package/dist/{list-ADZAQ2IU.js.map → list-JV55JVGB.js.map} +0 -0
- /package/dist/{list-KKUKN467.js.map → list-YETWKTKY.js.map} +0 -0
- /package/dist/{macro-resolve-6DOQJ7CA.js.map → macro-resolve-DQK4B3W3.js.map} +0 -0
- /package/dist/{native-UPLVQ2SG.js.map → native-J2DFLOLP.js.map} +0 -0
- /package/dist/{network-poll-NUL4PDPY.js.map → network-poll-4GWHCJXI.js.map} +0 -0
- /package/dist/{new-5NKYPEFT.js.map → new-XDCQPIEG.js.map} +0 -0
- /package/dist/{open-NR3BPLXV.js.map → open-GIM3ZCSV.js.map} +0 -0
- /package/dist/{perf-HJ36ZI6H.js.map → perf-26VBXDPI.js.map} +0 -0
- /package/dist/{pointer-down-IYTTQWXZ.js.map → pointer-down-O3VSNAXW.js.map} +0 -0
- /package/dist/{pointer-drag-A2YC5PWI.js.map → pointer-drag-WQ5QGE6J.js.map} +0 -0
- /package/dist/{pointer-move-W5K5FUI4.js.map → pointer-move-4N4D7JY2.js.map} +0 -0
- /package/dist/{pointer-up-6GWVO64Y.js.map → pointer-up-CQC4NPDX.js.map} +0 -0
- /package/dist/{press-A3V5WB3S.js.map → press-XGJD45CU.js.map} +0 -0
- /package/dist/{product-video-52REKWF3.js.map → product-video-HD4ZOUI7.js.map} +0 -0
- /package/dist/{providers-IMFYMMHQ.js.map → providers-KKNPJSQK.js.map} +0 -0
- /package/dist/{research-WB6BBCDD.js.map → research-VUWWEQ4R.js.map} +0 -0
- /package/dist/{review-BGWVY4RA.js.map → review-LZ3TA7U7.js.map} +0 -0
- /package/dist/{review-desktop-LEORC5VS.js.map → review-desktop-LAO7U7T3.js.map} +0 -0
- /package/dist/{rpc-4TSKSFGC.js.map → rpc-HKNIVFGC.js.map} +0 -0
- /package/dist/{run-3NBLVWXD.js.map → run-SHCF53FO.js.map} +0 -0
- /package/dist/{screencast-start-UZVIT3IN.js.map → screencast-start-JHMQZVWJ.js.map} +0 -0
- /package/dist/{screencast-stop-NOSJSIUO.js.map → screencast-stop-RWQTWWQS.js.map} +0 -0
- /package/dist/{screenshot-LARG4JQG.js.map → screenshot-QHFYO6PB.js.map} +0 -0
- /package/dist/{scroll-VNFMV6TW.js.map → scroll-L3FTMAV4.js.map} +0 -0
- /package/dist/{scroll-into-view-VYRT3JPT.js.map → scroll-into-view-JVDHX4WU.js.map} +0 -0
- /package/dist/{select-KJTUZDVO.js.map → select-X4BO7GTB.js.map} +0 -0
- /package/dist/{shopping-DTXHVQ2X.js.map → shopping-EGSDP2GL.js.map} +0 -0
- /package/dist/{skill-lifecycle-5UAZGKSN.js.map → skill-lifecycle-OWZYBPFS.js.map} +0 -0
- /package/dist/{skills-NSXDX6YM.js.map → skills-KHMRNOE4.js.map} +0 -0
- /package/dist/{snapshot-3XQMCMRJ.js.map → snapshot-QGJ7RDNV.js.map} +0 -0
- /package/dist/{status-OXSYA5XD.js.map → status-LEBY2X7N.js.map} +0 -0
- /package/dist/{status-capabilities-P4KDSE2Y.js.map → status-capabilities-6QTWNGKM.js.map} +0 -0
- /package/dist/{text-V3B7UVIH.js.map → text-VUZU7D3L.js.map} +0 -0
- /package/dist/{type-IYBN3ZLR.js.map → type-N5SURP74.js.map} +0 -0
- /package/dist/{uncheck-SG737EGI.js.map → uncheck-JFMK3SSY.js.map} +0 -0
- /package/dist/{uninstall-KYKGJAX7.js.map → uninstall-FW5ORBIN.js.map} +0 -0
- /package/dist/{update-skill-modes-BVX7IVMW.js.map → update-skill-modes-3ULKJK3Y.js.map} +0 -0
- /package/dist/{upload-KH6ZABJA.js.map → upload-KFUYLL7M.js.map} +0 -0
- /package/dist/{use-7YDKO3U4.js.map → use-CNMPP2ED.js.map} +0 -0
- /package/dist/{value-RZBWSKKM.js.map → value-J335MPZE.js.map} +0 -0
- /package/dist/{visible-BSFTAKXR.js.map → visible-YQZWWPBZ.js.map} +0 -0
- /package/dist/{wait-TMTEAYOP.js.map → wait-IC7YJJPJ.js.map} +0 -0
- /package/dist/{windows-HIZ23OHS.js.map → windows-AGVQ3KX3.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
|