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
package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json
CHANGED
|
@@ -172,6 +172,45 @@
|
|
|
172
172
|
"figma_token_missing"
|
|
173
173
|
]
|
|
174
174
|
},
|
|
175
|
+
{
|
|
176
|
+
"packId": "opendevbrowser-motion-design",
|
|
177
|
+
"packType": "browser_surface",
|
|
178
|
+
"docOnly": false,
|
|
179
|
+
"validatorCommands": [
|
|
180
|
+
"./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh"
|
|
181
|
+
],
|
|
182
|
+
"sharedEvidenceIds": [
|
|
183
|
+
"live-regression",
|
|
184
|
+
"canvas-competitive",
|
|
185
|
+
"skill-discovery"
|
|
186
|
+
],
|
|
187
|
+
"runtimeSurfaces": {
|
|
188
|
+
"cliCommands": [
|
|
189
|
+
"canvas",
|
|
190
|
+
"screenshot",
|
|
191
|
+
"debug-trace-snapshot",
|
|
192
|
+
"screencast-start",
|
|
193
|
+
"screencast-stop"
|
|
194
|
+
],
|
|
195
|
+
"tools": [
|
|
196
|
+
"opendevbrowser_canvas",
|
|
197
|
+
"opendevbrowser_screenshot",
|
|
198
|
+
"opendevbrowser_debug_trace_snapshot",
|
|
199
|
+
"opendevbrowser_screencast_start",
|
|
200
|
+
"opendevbrowser_screencast_stop"
|
|
201
|
+
],
|
|
202
|
+
"modes": [
|
|
203
|
+
"managed",
|
|
204
|
+
"extension",
|
|
205
|
+
"cdpConnect"
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
"allowsEnvLimited": true,
|
|
209
|
+
"envLimitedReasons": [
|
|
210
|
+
"extension_unavailable",
|
|
211
|
+
"reduced_motion_emulation_unavailable"
|
|
212
|
+
]
|
|
213
|
+
},
|
|
175
214
|
{
|
|
176
215
|
"packId": "opendevbrowser-form-testing",
|
|
177
216
|
"packType": "workflow",
|
|
@@ -335,6 +374,7 @@
|
|
|
335
374
|
"opendevbrowser-continuity-ledger",
|
|
336
375
|
"opendevbrowser-data-extraction",
|
|
337
376
|
"opendevbrowser-design-agent",
|
|
377
|
+
"opendevbrowser-motion-design",
|
|
338
378
|
"opendevbrowser-form-testing",
|
|
339
379
|
"opendevbrowser-login-automation",
|
|
340
380
|
"opendevbrowser-product-presentation-asset",
|
|
@@ -361,6 +401,7 @@
|
|
|
361
401
|
],
|
|
362
402
|
"targetedRerunCommands": [
|
|
363
403
|
"./skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh",
|
|
404
|
+
"./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh",
|
|
364
405
|
"node scripts/skill-runtime-audit.mjs --smoke --out artifacts/skill-runtime-audit/smoke.json"
|
|
365
406
|
]
|
|
366
407
|
},
|
|
@@ -470,7 +511,8 @@
|
|
|
470
511
|
"label": "Canvas, annotate, and design surfaces",
|
|
471
512
|
"priority": 5,
|
|
472
513
|
"packIds": [
|
|
473
|
-
"opendevbrowser-design-agent"
|
|
514
|
+
"opendevbrowser-design-agent",
|
|
515
|
+
"opendevbrowser-motion-design"
|
|
474
516
|
],
|
|
475
517
|
"proofLanes": [
|
|
476
518
|
"live-regression",
|
|
@@ -488,13 +530,16 @@
|
|
|
488
530
|
"src/tools/index.ts",
|
|
489
531
|
"src/public-surface/source.ts",
|
|
490
532
|
"extension/src/canvas/canvas-runtime.ts",
|
|
491
|
-
"extension/src/annotate-content.ts"
|
|
533
|
+
"extension/src/annotate-content.ts",
|
|
534
|
+
"skills/opendevbrowser-motion-design/SKILL.md",
|
|
535
|
+
"skills/opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md"
|
|
492
536
|
],
|
|
493
537
|
"targetedRerunCommands": [
|
|
494
538
|
"node scripts/live-regression-direct.mjs --out artifacts/skill-runtime-audit/lanes/live-regression.json",
|
|
495
539
|
"node scripts/canvas-competitive-validation.mjs --out artifacts/skill-runtime-audit/lanes/canvas-competitive.json",
|
|
496
540
|
"node scripts/canvas-live-workflow.mjs --surface managed-headless",
|
|
497
|
-
"node scripts/annotate-live-probe.mjs --transport direct"
|
|
541
|
+
"node scripts/annotate-live-probe.mjs --transport direct",
|
|
542
|
+
"./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh"
|
|
498
543
|
]
|
|
499
544
|
},
|
|
500
545
|
{
|
|
@@ -504,6 +549,7 @@
|
|
|
504
549
|
"packIds": [
|
|
505
550
|
"opendevbrowser-best-practices",
|
|
506
551
|
"opendevbrowser-design-agent",
|
|
552
|
+
"opendevbrowser-motion-design",
|
|
507
553
|
"opendevbrowser-shopping"
|
|
508
554
|
],
|
|
509
555
|
"proofLanes": [
|
|
@@ -18,6 +18,14 @@ CLI_PREFIX="$(render_cli_prefix)"
|
|
|
18
18
|
PACKAGE_ROOT="$(cd "$script_dir/../../.." && pwd)"
|
|
19
19
|
TRANSCRIPT_PROBE_PATH="$(printf '%q' "$PACKAGE_ROOT/scripts/youtube-transcript-live-probe.mjs")"
|
|
20
20
|
|
|
21
|
+
print_daemon_preflight() {
|
|
22
|
+
cat <<EOF
|
|
23
|
+
# Daemon preflight for daemon-backed workflows:
|
|
24
|
+
$CLI_PREFIX status --daemon --output-format json
|
|
25
|
+
# Continue only when data.fingerprintCurrent === true.
|
|
26
|
+
EOF
|
|
27
|
+
}
|
|
28
|
+
|
|
21
29
|
print_help() {
|
|
22
30
|
cat <<'EOF'
|
|
23
31
|
OpenDevBrowser workflow router
|
|
@@ -73,9 +81,13 @@ opendevbrowser_wait sessionId="<session-id>" until="networkidle"
|
|
|
73
81
|
EOF
|
|
74
82
|
;;
|
|
75
83
|
inspiredesign)
|
|
84
|
+
print_daemon_preflight
|
|
76
85
|
cat <<EOF
|
|
77
86
|
# Pair with opendevbrowser-design-agent when the contract will flow into implementation or /canvas work.
|
|
78
87
|
$CLI_PREFIX inspiredesign run --brief "Design a premium docs workspace" --url "https://example.com/reference-a" --url "https://example.com/reference-b" --capture-mode off --include-prototype-guidance --mode json --output-format json
|
|
88
|
+
$CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
|
|
89
|
+
# Inspect nextStepGuidance.readiness and doNotProceedIf before Canvas continuation. For non-ready evidence, follow recovery-first guidance.
|
|
90
|
+
# Review visual-evidence.json, screenshot-index.json, ranked-references.json, and meta-prompt.md before design or Canvas work.
|
|
79
91
|
EOF
|
|
80
92
|
;;
|
|
81
93
|
parallel-multipage-safe)
|
|
@@ -118,6 +130,7 @@ opendevbrowser_network_poll sessionId="<session-id>" max=100
|
|
|
118
130
|
EOF
|
|
119
131
|
;;
|
|
120
132
|
canvas-preflight)
|
|
133
|
+
print_daemon_preflight
|
|
121
134
|
cat <<EOF
|
|
122
135
|
cat skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json
|
|
123
136
|
cat skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json
|
|
@@ -126,12 +139,14 @@ $CLI_PREFIX canvas --command canvas.session.open --params '{"requestId":"req_ope
|
|
|
126
139
|
$CLI_PREFIX canvas --command canvas.plan.set --params-file skills/opendevbrowser-best-practices/assets/templates/canvas-generation-plan.v1.json
|
|
127
140
|
# Replace placeholders in the plan file with canvasSessionId, leaseId, and documentId from the open response.
|
|
128
141
|
# If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
|
|
142
|
+
# If canvas.plan.set returns generation_plan_invalid, read guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf, then repair the params file and retry.
|
|
129
143
|
# Optional diagnostics after generation_plan_invalid:
|
|
130
144
|
# $CLI_PREFIX canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
|
|
131
145
|
# or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.
|
|
132
146
|
EOF
|
|
133
147
|
;;
|
|
134
148
|
canvas-feedback-eval)
|
|
149
|
+
print_daemon_preflight
|
|
135
150
|
cat <<EOF
|
|
136
151
|
cat skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md
|
|
137
152
|
cat skills/opendevbrowser-best-practices/assets/templates/canvas-feedback-eval.json
|
|
@@ -151,6 +166,7 @@ npm run test -- tests/tools.test.ts tests/daemon-commands.integration.test.ts
|
|
|
151
166
|
EOF
|
|
152
167
|
;;
|
|
153
168
|
release-direct-gates)
|
|
169
|
+
print_daemon_preflight
|
|
154
170
|
cat <<'EOF'
|
|
155
171
|
mkdir -p artifacts/release/vX.Y.Z
|
|
156
172
|
node scripts/provider-direct-runs.mjs --release-gate --out artifacts/release/vX.Y.Z/provider-direct-runs.json
|
|
@@ -158,6 +174,7 @@ node scripts/live-regression-direct.mjs --release-gate --out artifacts/release/v
|
|
|
158
174
|
EOF
|
|
159
175
|
;;
|
|
160
176
|
skill-runtime-audit)
|
|
177
|
+
print_daemon_preflight
|
|
161
178
|
cat <<'EOF'
|
|
162
179
|
npm run build
|
|
163
180
|
node scripts/docs-drift-check.mjs
|
|
@@ -174,6 +191,7 @@ OPENCODE_CONFIG_DIR="$WORKDIR/config" CODEX_HOME="$WORKDIR/codex-home" CLAUDECOD
|
|
|
174
191
|
./skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh
|
|
175
192
|
./skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh
|
|
176
193
|
./skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh
|
|
194
|
+
./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh
|
|
177
195
|
./skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh
|
|
178
196
|
./skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh
|
|
179
197
|
./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh
|
|
@@ -184,6 +202,7 @@ node scripts/skill-runtime-audit.mjs --out artifacts/skill-runtime-audit/full.js
|
|
|
184
202
|
EOF
|
|
185
203
|
;;
|
|
186
204
|
validated-capabilities)
|
|
205
|
+
print_daemon_preflight
|
|
187
206
|
cat <<EOF
|
|
188
207
|
# Public-first YouTube transcript probe
|
|
189
208
|
node $TRANSCRIPT_PROBE_PATH --url "https://www.youtube.com/watch?v=aircAruvnKk" --youtube-mode auto --out artifacts/capability-fix/youtube-transcript-auto.json
|
|
@@ -199,6 +218,9 @@ $CLI_PREFIX shopping run --query "27 inch 4k monitor" --providers shopping/bestb
|
|
|
199
218
|
# Public-reference inspiredesign contract synthesis
|
|
200
219
|
$CLI_PREFIX inspiredesign run --brief "Design a premium docs workspace" --url "https://example.com/reference-a" --url "https://example.com/reference-b" --capture-mode off --include-prototype-guidance --mode json --output-format json
|
|
201
220
|
|
|
221
|
+
# Browser-native Pinterest recipe. Continue only when nextStepGuidance.readiness is ready.
|
|
222
|
+
$CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
|
|
223
|
+
|
|
202
224
|
# Region note: advisory unless output reports meta.selection.region_authoritative=true
|
|
203
225
|
$CLI_PREFIX shopping run --query "wireless earbuds" --providers shopping/amazon --region us --browser-mode managed --mode json --output-format json
|
|
204
226
|
EOF
|
|
@@ -214,22 +236,29 @@ EOF
|
|
|
214
236
|
ops-channel-check)
|
|
215
237
|
cat <<EOF
|
|
216
238
|
$CLI_PREFIX serve
|
|
239
|
+
# Daemon preflight for daemon-backed workflows:
|
|
240
|
+
$CLI_PREFIX status --daemon --output-format json
|
|
241
|
+
# Continue only when data.fingerprintCurrent === true.
|
|
217
242
|
$CLI_PREFIX launch --extension-only --wait-for-extension --output-format json
|
|
218
243
|
$CLI_PREFIX status --daemon --output-format json
|
|
219
|
-
# Verify opsConnected=true and extensionHandshakeComplete=true
|
|
244
|
+
# Verify fingerprintCurrent=true, opsConnected=true, and extensionHandshakeComplete=true
|
|
220
245
|
cat skills/opendevbrowser-best-practices/assets/templates/ops-request-envelope.json
|
|
221
246
|
EOF
|
|
222
247
|
;;
|
|
223
248
|
cdp-channel-check)
|
|
224
249
|
cat <<EOF
|
|
225
250
|
$CLI_PREFIX serve
|
|
251
|
+
# Daemon preflight for daemon-backed workflows:
|
|
252
|
+
$CLI_PREFIX status --daemon --output-format json
|
|
253
|
+
# Continue only when data.fingerprintCurrent === true.
|
|
226
254
|
$CLI_PREFIX launch --extension-only --extension-legacy --wait-for-extension --output-format json
|
|
227
255
|
$CLI_PREFIX status --daemon --output-format json
|
|
228
|
-
# Verify cdpConnected=true while legacy session is active
|
|
256
|
+
# Verify fingerprintCurrent=true and cdpConnected=true while legacy session is active
|
|
229
257
|
cat skills/opendevbrowser-best-practices/assets/templates/cdp-forward-envelope.json
|
|
230
258
|
EOF
|
|
231
259
|
;;
|
|
232
260
|
mode-flag-matrix)
|
|
261
|
+
print_daemon_preflight
|
|
233
262
|
cat <<EOF
|
|
234
263
|
cat skills/opendevbrowser-best-practices/assets/templates/mode-flag-matrix.json
|
|
235
264
|
$CLI_PREFIX launch --no-extension --output-format json
|
|
@@ -66,6 +66,10 @@ const executableScripts = [
|
|
|
66
66
|
const workflowMarkers = [
|
|
67
67
|
"inspiredesign)",
|
|
68
68
|
"inspiredesign run",
|
|
69
|
+
"inspiredesign harvest",
|
|
70
|
+
"social/pinterest",
|
|
71
|
+
"nextStepGuidance.readiness",
|
|
72
|
+
"visual-evidence.json",
|
|
69
73
|
"--include-prototype-guidance",
|
|
70
74
|
"canvas-preflight",
|
|
71
75
|
"canvas-feedback-eval",
|
|
@@ -79,6 +83,7 @@ const workflowMarkers = [
|
|
|
79
83
|
"npx opendevbrowser help",
|
|
80
84
|
"./skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh",
|
|
81
85
|
"resolve-odb-cli.sh",
|
|
86
|
+
"./skills/opendevbrowser-motion-design/scripts/validate-skill-assets.sh",
|
|
82
87
|
"CLI_PREFIX"
|
|
83
88
|
];
|
|
84
89
|
|
|
@@ -104,6 +109,8 @@ const canvasPlaybookMarkers = [
|
|
|
104
109
|
"canvas.plan.set",
|
|
105
110
|
"canvas.feedback.poll",
|
|
106
111
|
"guidance.recommendedNextCommands",
|
|
112
|
+
"guidance.nextStepGuidance",
|
|
113
|
+
"guidance.paramsExamples",
|
|
107
114
|
"generationPlanIssues",
|
|
108
115
|
"plan_invalid",
|
|
109
116
|
"generation_plan_invalid",
|
|
@@ -40,6 +40,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
|
|
|
40
40
|
- `scripts/design-workflow.sh`
|
|
41
41
|
- `scripts/extract-canvas-plan.sh`
|
|
42
42
|
- `scripts/validate-skill-assets.sh`
|
|
43
|
+
- Motion authority: `../opendevbrowser-motion-design/SKILL.md`
|
|
43
44
|
- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`
|
|
44
45
|
- Shared canvas workflow baseline: `../opendevbrowser-best-practices/SKILL.md`
|
|
45
46
|
|
|
@@ -72,6 +73,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
|
|
|
72
73
|
## Supporting Surfaces
|
|
73
74
|
|
|
74
75
|
- Use browser replay (`screencast-start` / `screencast-stop`) during real-surface validation when motion, sequencing, or transition timing matters.
|
|
76
|
+
- Load `opendevbrowser-motion-design` when motion-heavy work needs terminology, pattern catalog decisions, platform/framework policy, device posture, reduced-motion rules, performance budgets, or temporal proof.
|
|
75
77
|
- Treat shader, WebGL, Spline-style, and custom 3D motion references as advisory cues unless current runtime evidence proves support.
|
|
76
78
|
- Desktop observation stays read-only and is only for external window or OS-level evidence around the workflow; it is not a design-surface control lane.
|
|
77
79
|
- Browser-scoped computer use remains a challenge posture knob via `--challenge-automation-mode`, not a desktop-agent capability.
|
|
@@ -79,7 +81,7 @@ Use this skill for frontend work that must be visually strong, contract-first, a
|
|
|
79
81
|
## Core Rules
|
|
80
82
|
|
|
81
83
|
- Start with a design contract, not ad-hoc implementation.
|
|
82
|
-
- Build a reference pattern board before locking a new direction when external inspiration matters.
|
|
84
|
+
- Build a reference pattern board before locking a new direction when external inspiration matters, and inspect `nextStepGuidance.readiness` before treating a harvest as design-ready.
|
|
83
85
|
- Choose a component family from `artifacts/component-pattern-index.md` before inventing a new screen structure.
|
|
84
86
|
- Start from the closest shipped OpenDevBrowser example in `artifacts/opendevbrowser-ui-example-map.md` when the repo already has a related surface.
|
|
85
87
|
- Route repo-first redesigns through `artifacts/existing-surface-adaptation.md` before changing shells or component anatomy.
|
|
@@ -93,11 +95,12 @@ Use this skill for frontend work that must be visually strong, contract-first, a
|
|
|
93
95
|
- Keep one visual direction per task. Do not mix unrelated design languages.
|
|
94
96
|
- Prefer real content, realistic states, and explicit user journeys over placeholder copy.
|
|
95
97
|
- Preserve the repo's existing design system when one already exists. Only introduce a new direction when the brief or product gap justifies it.
|
|
96
|
-
- Treat `/canvas` governance as the strongest contract in the repo: read the handshake, respect `generationPlanRequirements`, and do not mutate before the plan is accepted.
|
|
98
|
+
- Treat `/canvas` governance as the strongest contract in the repo: read the handshake, respect `generationPlanRequirements`, inspect typed repair examples, and do not mutate before the plan is accepted.
|
|
97
99
|
- Treat `preflightState="handshake_read"` as the required ready state for the first post-open decision loop unless the handshake is already reporting an invalid-plan repair path.
|
|
98
100
|
- For non-canvas frontend work, still fill the same design-contract fields before coding so decisions stay consistent across code, preview, and docs.
|
|
99
101
|
- Use one owner for overlays, drawers, sheets, and detail panels; prefer item-backed state over boolean sprawl.
|
|
100
102
|
- If motion depends on scroll or viewport progress, define the driver and reduced-motion fallback before implementation.
|
|
103
|
+
- For animation systems, route the motion-specific decisions through `../opendevbrowser-motion-design/artifacts/motion-pattern-catalog.md`, `../opendevbrowser-motion-design/artifacts/platform-framework-guide.md`, `../opendevbrowser-motion-design/artifacts/performance-frame-budget.md`, and `../opendevbrowser-motion-design/artifacts/open-dev-browser-motion-evidence.md`.
|
|
101
104
|
- Carry advanced motion cues through `designVectors` and `motionSystem` as design intent only; they do not authorize new runtime libraries.
|
|
102
105
|
- Keep `libraryPolicy.motion` and `libraryPolicy.threeD` empty in samples unless a separate runtime change explicitly approves those lanes.
|
|
103
106
|
- Use `artifacts/scroll-reveal-surface-planning.md` whenever the design depends on pinned sections, reveal stages, or viewport-driven sequencing.
|
|
@@ -165,7 +168,9 @@ Use when a redesign needs external references or when the brief explicitly asks
|
|
|
165
168
|
|
|
166
169
|
- Start with `artifacts/research-harvest-workflow.md`.
|
|
167
170
|
- Capture `3` to `5` live references with OpenDevBrowser.
|
|
168
|
-
-
|
|
171
|
+
- For Pinterest, use the browser-native `social/pinterest` recipe with extension mode and cookies instead of treating Pinterest as a default full provider.
|
|
172
|
+
- Inspect `nextStepGuidance.readiness`, `doNotProceedIf`, and recovery commands before using the bundle.
|
|
173
|
+
- Record ready evidence in `assets/templates/reference-pattern-board.v1.json`.
|
|
169
174
|
- Turn the synthesis into contract deltas before implementation.
|
|
170
175
|
|
|
171
176
|
### `screenshot-audit`
|
|
@@ -182,13 +187,13 @@ Use when starting from screenshots, mocks, or an existing page.
|
|
|
182
187
|
|
|
183
188
|
Use when the task should run through the design canvas.
|
|
184
189
|
|
|
185
|
-
- Start with `canvas.session.open
|
|
186
|
-
- Read the handshake and inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`,
|
|
190
|
+
- Start with `canvas.session.open`; use `canvas.capabilities.get` only after you have a `canvasSessionId`.
|
|
191
|
+
- Read the handshake and inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, `guidance.recommendedNextCommands`, `guidance.nextStepGuidance`, params examples, field examples, validation checks, and do-not-proceed blockers before choosing the next command.
|
|
187
192
|
- Treat `preflightState="handshake_read"` as the normal first-step checkpoint before `canvas.plan.set`; if the handshake already reports `plan_invalid`, repair the plan instead of mutating.
|
|
188
193
|
- Fill the full design contract and extract the `generationPlan`.
|
|
189
194
|
- Submit `canvas.plan.set`.
|
|
190
195
|
- If `canvas.plan.set` succeeds with `planStatus="accepted"` or `preflightState="plan_accepted"`, follow the returned `guidance.recommendedNextCommands`, then mutate with `canvas.document.patch`.
|
|
191
|
-
- If `canvas.plan.set` fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, and `generationPlanIssues`, then
|
|
196
|
+
- If `canvas.plan.set` fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, `guidance.paramsExamples`, `guidance.fieldExamples`, `guidance.validationChecks`, `guidance.doNotProceedIf`, and `generationPlanIssues`, then repair and resubmit the params file. Use `canvas.plan.get` or `canvas.capabilities.get` only when diagnostics are still needed after reading repair examples.
|
|
192
197
|
- After every successful `canvas.document.patch`, `canvas.preview.render`, `canvas.preview.refresh`, `canvas.feedback.poll`, `canvas.document.save`, or `canvas.document.export`, read `guidance.recommendedNextCommands` and `guidance.reason` before choosing the next step.
|
|
193
198
|
- Validate extension-stage history controls against public `canvas.history.undo` and `canvas.history.redo`; design-tab clicks emit the internal `canvas_history_requested` event, but acceptance is still on the public command outcomes.
|
|
194
199
|
- When token work is in scope, validate collection or mode authoring, token value or alias edits, selected-node binding, and token usage inspection in the extension stage.
|
|
@@ -77,22 +77,23 @@ Use when the work should flow through the OpenDevBrowser design canvas.
|
|
|
77
77
|
|
|
78
78
|
1. Open a canvas session.
|
|
79
79
|
2. Read the handshake and document context.
|
|
80
|
-
3. Inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`,
|
|
80
|
+
3. Inspect `planStatus`, `preflightState`, `generationPlanRequirements.allowedValues`, `generationPlanIssues`, `guidance.recommendedNextCommands`, `guidance.nextStepGuidance`, params examples, field examples, validation checks, and do-not-proceed blockers before moving on.
|
|
81
81
|
4. Treat `preflightState="handshake_read"` as the normal first-step checkpoint; if the handshake is already reporting `plan_invalid`, repair the plan instead of mutating.
|
|
82
82
|
5. Fill the full design contract.
|
|
83
83
|
6. Extract the `generationPlan`.
|
|
84
84
|
7. Send `canvas.plan.set`.
|
|
85
85
|
8. If the response is accepted, read `guidance.recommendedNextCommands` again and mutate with `canvas.document.patch`.
|
|
86
|
-
9. If the response fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`,
|
|
86
|
+
9. If the response fails with `generation_plan_invalid`, inspect `details.missingFields`, `details.issues`, `generationPlanIssues`, and typed repair examples, then fix the params file before retrying.
|
|
87
87
|
10. Render preview, poll feedback, and save or export until the contract and runtime match.
|
|
88
88
|
|
|
89
89
|
Canonical command order:
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
92
|
npx opendevbrowser canvas --command canvas.session.open --params '{"requestId":"req_open_01","browserSessionId":"<browser-session-id>","documentId":null,"repoPath":null,"mode":"dual-track"}'
|
|
93
|
-
# Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, and guidance.
|
|
93
|
+
# Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, guidance.recommendedNextCommands, guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf before continuing.
|
|
94
94
|
npx opendevbrowser canvas --command canvas.plan.set --params-file ./tmp/canvas-plan.json
|
|
95
95
|
# If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
|
|
96
|
+
# If canvas.plan.set returns generation_plan_invalid, repair ./tmp/canvas-plan.json from guidance.paramsExamples before retrying.
|
|
96
97
|
# Optional diagnostics after generation_plan_invalid:
|
|
97
98
|
# npx opendevbrowser canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
|
|
98
99
|
# or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.
|
|
@@ -4,44 +4,119 @@ Use this workflow before design direction is locked, when the brief references c
|
|
|
4
4
|
|
|
5
5
|
## Goal
|
|
6
6
|
|
|
7
|
-
Turn live product references into a deterministic pattern board instead of vague inspiration.
|
|
7
|
+
Turn live product references into a deterministic ranked pattern board and motion-aware design brief instead of vague inspiration.
|
|
8
8
|
|
|
9
9
|
## Inputs
|
|
10
10
|
|
|
11
11
|
- A focused brief or design question
|
|
12
|
-
- `3` to `5` reference products or pages
|
|
12
|
+
- `3` to `5` reference products or pages, or a bounded public discovery query
|
|
13
13
|
- The target surface in this repo
|
|
14
14
|
- Constraints that must not be violated:
|
|
15
15
|
- existing design system rules
|
|
16
16
|
- supported libraries and runtime budgets
|
|
17
17
|
- accessibility and responsive requirements
|
|
18
|
+
- provider policy boundaries for blocked, auth-required, challenge, or rate-limited references
|
|
18
19
|
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
## Primary Harvest Loop
|
|
21
|
+
|
|
22
|
+
Prefer the dedicated InspireDesign harvest entrypoint for visual-first research:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx opendevbrowser inspiredesign harvest \
|
|
26
|
+
--brief "Synthesize a premium docs workspace" \
|
|
27
|
+
--query "best docs product landing pages" \
|
|
28
|
+
--provider web/default \
|
|
29
|
+
--max-references 5 \
|
|
30
|
+
--visual-evidence required \
|
|
31
|
+
--browser-mode managed \
|
|
32
|
+
--mode json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Use the browser-native Pinterest site recipe when the brief specifically needs logged-in Pinterest search. Pinterest is not a default full social provider, and the workflow should not widen to unrelated sources without user confirmation:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx opendevbrowser inspiredesign harvest \
|
|
39
|
+
--brief "Premium digital photography studio landing page" \
|
|
40
|
+
--query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" \
|
|
41
|
+
--provider social/pinterest \
|
|
42
|
+
--max-references 5 \
|
|
43
|
+
--visual-evidence required \
|
|
44
|
+
--browser-mode extension \
|
|
45
|
+
--use-cookies \
|
|
46
|
+
--cookie-policy required \
|
|
47
|
+
--challenge-automation-mode browser_with_helper \
|
|
48
|
+
--mode json \
|
|
49
|
+
--output-format json
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use explicit references when the team already knows the right examples:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx opendevbrowser inspiredesign harvest \
|
|
56
|
+
--brief "Extract reusable dashboard patterns" \
|
|
57
|
+
--url https://example.com/reference-a \
|
|
58
|
+
--url https://example.com/reference-b \
|
|
59
|
+
--visual-evidence required \
|
|
60
|
+
--mode json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Harvest defaults:
|
|
64
|
+
|
|
65
|
+
- `mode=path`
|
|
66
|
+
- `visualEvidence=required`
|
|
67
|
+
- `maxReferences=5`
|
|
68
|
+
- explicit `--url` references rank before query-discovered candidates during collection
|
|
69
|
+
- the daemon method remains `inspiredesign.run`
|
|
70
|
+
|
|
71
|
+
## Required Artifact Review
|
|
72
|
+
|
|
73
|
+
After every harvest, inspect `nextStepGuidance` before `/canvas` or code changes:
|
|
74
|
+
|
|
75
|
+
- `readiness="ready"`: continue only after artifact review.
|
|
76
|
+
- `readiness="needs_recovery"`, `"blocked"`, or `"diagnostic_only"`: follow the primary recovery action first.
|
|
77
|
+
- `doNotProceedIf`: treat each matching condition as a hard stop for Canvas continuation.
|
|
78
|
+
- `paramsExamples` and `validationChecks`: use these as the next command and proof checklist.
|
|
79
|
+
|
|
80
|
+
Then inspect these files before `/canvas` or code changes:
|
|
81
|
+
|
|
82
|
+
1. `advanced-brief.md` for the reference-first creative brief.
|
|
83
|
+
2. `ranked-references.json` for rank, score, confidence, visual strengths, visual risks, rejected references, and selection reasons.
|
|
84
|
+
3. `visual-evidence.json` and `screenshot-index.json` for artifact-relative PNG paths, hashes, byte counts, viewport metadata when available, provenance, and warnings.
|
|
85
|
+
4. PNG files under `visual-evidence/<referenceId>/viewport.png` for actual visual review.
|
|
86
|
+
5. `meta-prompt.md` for borrow guidance, reject guidance, motion posture, accessibility constraints, no-copy warning, and validation gates.
|
|
87
|
+
6. `canvas-plan.request.json` and `design-agent-handoff.json` only after the visual synthesis is accepted and `nextStepGuidance.readiness` is `ready`.
|
|
88
|
+
|
|
89
|
+
JSON files are metadata-only. They must not contain base64 screenshots, absolute temp paths, full DOM, or full snapshot text.
|
|
90
|
+
|
|
91
|
+
## Manual Evidence Fallback
|
|
92
|
+
|
|
93
|
+
Use the lower-level browser loop only when harvest cannot run or when a single reference needs debugging:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npx opendevbrowser launch --no-extension --start-url https://example.com
|
|
97
|
+
npx opendevbrowser goto --session-id <session-id> --url <reference-url>
|
|
98
|
+
npx opendevbrowser snapshot --session-id <session-id>
|
|
99
|
+
npx opendevbrowser screenshot --session-id <session-id> --path ./artifacts/reference.png
|
|
100
|
+
npx opendevbrowser debug-trace-snapshot --session-id <session-id>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Record manual evidence in `assets/templates/reference-pattern-board.v1.json` using the same ranking and screenshot metadata fields as harvest.
|
|
104
|
+
|
|
105
|
+
## What To Extract
|
|
106
|
+
|
|
107
|
+
For each accepted reference, extract:
|
|
108
|
+
|
|
109
|
+
- layout recipe
|
|
110
|
+
- content hierarchy
|
|
111
|
+
- component families
|
|
112
|
+
- motion posture
|
|
113
|
+
- loading and empty-state strategy
|
|
114
|
+
- token and theming clues
|
|
115
|
+
- visual strengths to borrow
|
|
116
|
+
- visual risks and patterns to reject
|
|
117
|
+
- screenshot path, hash, viewport, and warning metadata when available
|
|
118
|
+
|
|
119
|
+
Synthesize only the patterns that fit the repo's current surface, libraries, runtime budgets, and accessibility policy.
|
|
45
120
|
|
|
46
121
|
## What To Borrow From External Patterns
|
|
47
122
|
|
|
@@ -61,21 +136,15 @@ These cues should stay explicit in the pattern board:
|
|
|
61
136
|
- inspect current stack and assets first
|
|
62
137
|
- combine aesthetics, accessibility, and implementation practicality in one review loop
|
|
63
138
|
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
npx opendevbrowser launch --no-extension --start-url https://example.com
|
|
68
|
-
npx opendevbrowser goto --session-id <session-id> --url <reference-url>
|
|
69
|
-
npx opendevbrowser snapshot --session-id <session-id>
|
|
70
|
-
npx opendevbrowser screenshot --session-id <session-id>
|
|
71
|
-
npx opendevbrowser debug-trace-snapshot --session-id <session-id>
|
|
72
|
-
```
|
|
139
|
+
## Motion Follow-through
|
|
73
140
|
|
|
74
|
-
|
|
141
|
+
Load `opendevbrowser-motion-design` before translating harvest motion posture into timing tokens, scroll choreography, gesture motion, reduced-motion behavior, or temporal proof. Harvest motion cues are design intent only; they do not authorize new runtime dependencies or shader, WebGL, Spline, or 3D lanes.
|
|
75
142
|
|
|
76
143
|
## Exit Criteria
|
|
77
144
|
|
|
78
|
-
- The pattern board lists at least `3` live references.
|
|
145
|
+
- The pattern board lists at least `3` live references unless provider policy, browser-native recipe diagnostics, or recovery guidance explain the smaller set.
|
|
79
146
|
- Borrowed and rejected patterns are both explicit.
|
|
80
|
-
-
|
|
81
|
-
-
|
|
147
|
+
- Rank 1 justifies the dominant direction.
|
|
148
|
+
- Screenshot metadata points to existing PNG artifacts or explains skipped or failed visual evidence.
|
|
149
|
+
- The chosen design direction is justified by ready evidence, not taste alone or diagnostic-only artifacts.
|
|
150
|
+
- The resulting design contract names component families, state ownership, motion posture, and validation targets before implementation starts.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Use this when narrative sequencing, pinned sections, or viewport-driven motion is part of the design instead of decorative afterthought.
|
|
4
4
|
|
|
5
|
+
For broader motion language, pattern selection, device posture, reduced-motion rules, performance budgets, and temporal proof, also load `../opendevbrowser-motion-design/SKILL.md`.
|
|
6
|
+
|
|
5
7
|
## 1. Declare The Driver First
|
|
6
8
|
|
|
7
9
|
Choose one progress owner before writing animation code:
|
|
@@ -4,30 +4,46 @@
|
|
|
4
4
|
"references": [
|
|
5
5
|
{
|
|
6
6
|
"id": "ref-001",
|
|
7
|
+
"rank": 1,
|
|
8
|
+
"score": 86,
|
|
9
|
+
"confidence": 0.86,
|
|
7
10
|
"name": "Example product page",
|
|
8
11
|
"url": "https://example.com",
|
|
9
12
|
"surfaceType": "marketing",
|
|
10
13
|
"capturedVia": [
|
|
14
|
+
"fetch",
|
|
11
15
|
"snapshot",
|
|
12
|
-
"
|
|
16
|
+
"clone",
|
|
17
|
+
"dom",
|
|
18
|
+
"visual"
|
|
13
19
|
],
|
|
20
|
+
"intentMatched": true,
|
|
14
21
|
"layoutRecipe": "",
|
|
15
22
|
"contentHierarchy": [],
|
|
16
23
|
"componentFamilies": [],
|
|
17
|
-
"motionPosture":
|
|
18
|
-
"advancedMotionAdvisory": [],
|
|
19
|
-
"loadingStrategy": "",
|
|
24
|
+
"motionPosture": [],
|
|
20
25
|
"tokenNotes": [],
|
|
26
|
+
"visualStrengths": [],
|
|
27
|
+
"visualRisks": [],
|
|
28
|
+
"selectionReason": "",
|
|
21
29
|
"patternsToBorrow": [],
|
|
22
30
|
"patternsToReject": [],
|
|
23
31
|
"whyItWorks": ""
|
|
24
32
|
}
|
|
25
33
|
],
|
|
34
|
+
"rejectedReferences": [
|
|
35
|
+
{
|
|
36
|
+
"id": "ref-rejected-001",
|
|
37
|
+
"url": "https://example.com/rejected",
|
|
38
|
+
"reason": "policy_blocked|auth_required|challenge_detected|rate_limited|not_relevant|duplicate",
|
|
39
|
+
"fetchStatus": "failed",
|
|
40
|
+
"captureStatus": "off"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
26
43
|
"synthesis": {
|
|
27
44
|
"dominantDirection": "",
|
|
28
45
|
"sharedStrengths": [],
|
|
29
46
|
"sharedFailuresToAvoid": [],
|
|
30
|
-
"motionContractDeltas": [],
|
|
31
47
|
"contractDeltas": []
|
|
32
48
|
}
|
|
33
49
|
}
|
|
@@ -67,12 +67,14 @@ cat skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.
|
|
|
67
67
|
cat skills/opendevbrowser-design-agent/artifacts/external-pattern-synthesis.md
|
|
68
68
|
cat skills/opendevbrowser-design-agent/artifacts/component-pattern-index.md
|
|
69
69
|
cat skills/opendevbrowser-design-agent/artifacts/existing-surface-adaptation.md
|
|
70
|
+
$CLI_PREFIX inspiredesign harvest --brief "Premium digital photography studio landing page" --query "Pinterest premium digital photography studio landing page cinematic parallax portfolio" --provider social/pinterest --max-references 5 --visual-evidence required --browser-mode extension --use-cookies --cookie-policy required --challenge-automation-mode browser_with_helper --mode json --output-format json
|
|
71
|
+
# Inspect nextStepGuidance.readiness and doNotProceedIf first. Use recovery-first guidance unless readiness is ready.
|
|
70
72
|
$CLI_PREFIX launch --no-extension --start-url https://example.com
|
|
71
73
|
$CLI_PREFIX goto --session-id <session-id> --url <reference-url>
|
|
72
74
|
$CLI_PREFIX snapshot --session-id <session-id>
|
|
73
75
|
$CLI_PREFIX screenshot --session-id <session-id>
|
|
74
76
|
$CLI_PREFIX debug-trace-snapshot --session-id <session-id>
|
|
75
|
-
# Repeat for 3-5 live references, then turn
|
|
77
|
+
# Repeat for 3-5 live references, then turn ready synthesis into contract deltas before implementation.
|
|
76
78
|
EOF
|
|
77
79
|
;;
|
|
78
80
|
screenshot-audit)
|
|
@@ -101,10 +103,11 @@ cat skills/opendevbrowser-best-practices/artifacts/canvas-governance-playbook.md
|
|
|
101
103
|
cat skills/opendevbrowser-best-practices/assets/templates/canvas-handshake-example.json
|
|
102
104
|
./skills/opendevbrowser-design-agent/scripts/extract-canvas-plan.sh ./tmp/design-contract.json > ./tmp/canvas-plan.json
|
|
103
105
|
$CLI_PREFIX canvas --command canvas.session.open --params '{"requestId":"req_open_01","browserSessionId":"<browser-session-id>","documentId":null,"repoPath":null,"mode":"dual-track"}'
|
|
104
|
-
# Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, and guidance.
|
|
106
|
+
# Inspect planStatus, preflightState, generationPlanRequirements.allowedValues, generationPlanIssues, guidance.recommendedNextCommands, guidance.nextStepGuidance, guidance.paramsExamples, guidance.fieldExamples, guidance.validationChecks, and guidance.doNotProceedIf before continuing.
|
|
105
107
|
# Treat preflightState=handshake_read as the normal first-step checkpoint before canvas.plan.set.
|
|
106
108
|
$CLI_PREFIX canvas --command canvas.plan.set --params-file ./tmp/canvas-plan.json
|
|
107
109
|
# If canvas.plan.set succeeds with planStatus=accepted or preflightState=plan_accepted, follow the returned guidance into canvas.document.patch.
|
|
110
|
+
# If canvas.plan.set returns generation_plan_invalid, repair ./tmp/canvas-plan.json from guidance.paramsExamples before retrying.
|
|
108
111
|
# Optional diagnostics after generation_plan_invalid:
|
|
109
112
|
# $CLI_PREFIX canvas --command canvas.plan.get --params '{"requestId":"req_plan_get_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","documentId":"<document-id>"}'
|
|
110
113
|
# or re-read with canvas.capabilities.get to inspect generationPlanIssues before resubmitting canvas.plan.set.
|