opendevbrowser 0.0.17 → 0.0.18
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 +171 -73
- package/dist/annotate/agent-inbox-store.d.ts +58 -0
- package/dist/annotate/agent-inbox-store.d.ts.map +1 -0
- package/dist/annotate/agent-inbox.d.ts +25 -0
- package/dist/annotate/agent-inbox.d.ts.map +1 -0
- package/dist/annotate/direct-annotator.d.ts.map +1 -1
- package/dist/annotate/timeout-messages.d.ts +4 -0
- package/dist/annotate/timeout-messages.d.ts.map +1 -0
- package/dist/automation/coordinator.d.ts +55 -0
- package/dist/automation/coordinator.d.ts.map +1 -0
- package/dist/browser/annotation-manager.d.ts +4 -1
- package/dist/browser/annotation-manager.d.ts.map +1 -1
- package/dist/browser/browser-manager.d.ts +147 -47
- package/dist/browser/browser-manager.d.ts.map +1 -1
- package/dist/browser/canvas-client.d.ts +1 -0
- package/dist/browser/canvas-client.d.ts.map +1 -1
- package/dist/browser/canvas-code-sync-manager.d.ts +9 -1
- package/dist/browser/canvas-code-sync-manager.d.ts.map +1 -1
- package/dist/browser/canvas-manager.d.ts +29 -1
- package/dist/browser/canvas-manager.d.ts.map +1 -1
- package/dist/browser/global-challenge-coordinator.d.ts +27 -0
- package/dist/browser/global-challenge-coordinator.d.ts.map +1 -0
- package/dist/browser/manager-types.d.ts +167 -1
- package/dist/browser/manager-types.d.ts.map +1 -1
- package/dist/browser/ops-browser-manager.d.ts +103 -3
- package/dist/browser/ops-browser-manager.d.ts.map +1 -1
- package/dist/browser/ops-client.d.ts +17 -1
- package/dist/browser/ops-client.d.ts.map +1 -1
- package/dist/browser/playwright-runtime.d.ts +4 -0
- package/dist/browser/playwright-runtime.d.ts.map +1 -0
- package/dist/browser/review-surface.d.ts +9 -0
- package/dist/browser/review-surface.d.ts.map +1 -0
- package/dist/browser/screencast-recorder.d.ts +57 -0
- package/dist/browser/screencast-recorder.d.ts.map +1 -0
- package/dist/browser/session-inspector.d.ts +71 -0
- package/dist/browser/session-inspector.d.ts.map +1 -0
- package/dist/browser/session-store.d.ts +5 -1
- package/dist/browser/session-store.d.ts.map +1 -1
- package/dist/browser/system-chrome-cookies.d.ts +46 -0
- package/dist/browser/system-chrome-cookies.d.ts.map +1 -0
- package/dist/browser/target-manager.d.ts +1 -0
- package/dist/browser/target-manager.d.ts.map +1 -1
- package/dist/cache/chrome-locator.d.ts.map +1 -1
- package/dist/cache/chrome-user-data.d.ts +17 -0
- package/dist/cache/chrome-user-data.d.ts.map +1 -0
- package/dist/canvas/adapter-plugins/loader.d.ts +13 -0
- package/dist/canvas/adapter-plugins/loader.d.ts.map +1 -0
- package/dist/canvas/adapter-plugins/manifest.d.ts +146 -0
- package/dist/canvas/adapter-plugins/manifest.d.ts.map +1 -0
- package/dist/canvas/adapter-plugins/types.d.ts +83 -0
- package/dist/canvas/adapter-plugins/types.d.ts.map +1 -0
- package/dist/canvas/adapter-plugins/validator.d.ts +10 -0
- package/dist/canvas/adapter-plugins/validator.d.ts.map +1 -0
- package/dist/canvas/code-sync/apply-tsx.d.ts +3 -1
- package/dist/canvas/code-sync/apply-tsx.d.ts.map +1 -1
- package/dist/canvas/code-sync/import.d.ts +1 -0
- package/dist/canvas/code-sync/import.d.ts.map +1 -1
- package/dist/canvas/code-sync/manifest.d.ts +2 -1
- package/dist/canvas/code-sync/manifest.d.ts.map +1 -1
- package/dist/canvas/code-sync/tsx-adapter.d.ts.map +1 -1
- package/dist/canvas/code-sync/types.d.ts +102 -10
- package/dist/canvas/code-sync/types.d.ts.map +1 -1
- package/dist/canvas/document-store.d.ts +11 -1
- package/dist/canvas/document-store.d.ts.map +1 -1
- package/dist/canvas/export.d.ts.map +1 -1
- package/dist/canvas/framework-adapters/custom-elements-v1.d.ts +3 -0
- package/dist/canvas/framework-adapters/custom-elements-v1.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/html-static-v1.d.ts +3 -0
- package/dist/canvas/framework-adapters/html-static-v1.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/markup.d.ts +9 -0
- package/dist/canvas/framework-adapters/markup.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/react-tsx-v2.d.ts +3 -0
- package/dist/canvas/framework-adapters/react-tsx-v2.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/registry.d.ts +12 -0
- package/dist/canvas/framework-adapters/registry.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts +3 -0
- package/dist/canvas/framework-adapters/svelte-sfc-v1.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/types.d.ts +57 -0
- package/dist/canvas/framework-adapters/types.d.ts.map +1 -0
- package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts +3 -0
- package/dist/canvas/framework-adapters/vue-sfc-v1.d.ts.map +1 -0
- package/dist/canvas/kits/catalog.d.ts +5 -0
- package/dist/canvas/kits/catalog.d.ts.map +1 -0
- package/dist/canvas/library-adapters/react/index.d.ts +3 -0
- package/dist/canvas/library-adapters/react/index.d.ts.map +1 -0
- package/dist/canvas/library-adapters/registry.d.ts +11 -0
- package/dist/canvas/library-adapters/registry.d.ts.map +1 -0
- package/dist/canvas/library-adapters/types.d.ts +43 -0
- package/dist/canvas/library-adapters/types.d.ts.map +1 -0
- package/dist/canvas/repo-store.d.ts +2 -0
- package/dist/canvas/repo-store.d.ts.map +1 -1
- package/dist/canvas/starters/catalog.d.ts +34 -0
- package/dist/canvas/starters/catalog.d.ts.map +1 -0
- package/dist/canvas/token-references.d.ts +22 -0
- package/dist/canvas/token-references.d.ts.map +1 -0
- package/dist/canvas/types.d.ts +345 -6
- package/dist/canvas/types.d.ts.map +1 -1
- package/dist/challenges/action-loop.d.ts +13 -0
- package/dist/challenges/action-loop.d.ts.map +1 -0
- package/dist/challenges/capability-matrix.d.ts +3 -0
- package/dist/challenges/capability-matrix.d.ts.map +1 -0
- package/dist/challenges/evidence-bundle.d.ts +48 -0
- package/dist/challenges/evidence-bundle.d.ts.map +1 -0
- package/dist/challenges/governed-adapter-gateway.d.ts +4 -0
- package/dist/challenges/governed-adapter-gateway.d.ts.map +1 -0
- package/dist/challenges/human-yield-gate.d.ts +20 -0
- package/dist/challenges/human-yield-gate.d.ts.map +1 -0
- package/dist/challenges/index.d.ts +15 -0
- package/dist/challenges/index.d.ts.map +1 -0
- package/dist/challenges/interpreter.d.ts +3 -0
- package/dist/challenges/interpreter.d.ts.map +1 -0
- package/dist/challenges/optional-computer-use-bridge.d.ts +9 -0
- package/dist/challenges/optional-computer-use-bridge.d.ts.map +1 -0
- package/dist/challenges/orchestrator.d.ts +32 -0
- package/dist/challenges/orchestrator.d.ts.map +1 -0
- package/dist/challenges/outcome-recorder.d.ts +8 -0
- package/dist/challenges/outcome-recorder.d.ts.map +1 -0
- package/dist/challenges/owned-environment-lane.d.ts +3 -0
- package/dist/challenges/owned-environment-lane.d.ts.map +1 -0
- package/dist/challenges/policy-gate.d.ts +9 -0
- package/dist/challenges/policy-gate.d.ts.map +1 -0
- package/dist/challenges/sanctioned-identity-lane.d.ts +3 -0
- package/dist/challenges/sanctioned-identity-lane.d.ts.map +1 -0
- package/dist/challenges/service-adapter-lane.d.ts +3 -0
- package/dist/challenges/service-adapter-lane.d.ts.map +1 -0
- package/dist/challenges/strategy-selector.d.ts +10 -0
- package/dist/challenges/strategy-selector.d.ts.map +1 -0
- package/dist/challenges/types.d.ts +277 -0
- package/dist/challenges/types.d.ts.map +1 -0
- package/dist/challenges/verification-gate.d.ts +15 -0
- package/dist/challenges/verification-gate.d.ts.map +1 -0
- package/dist/chunk-5FZQJRBQ.js +15256 -0
- package/dist/chunk-5FZQJRBQ.js.map +1 -0
- package/dist/chunk-L57D35TB.js +33513 -0
- package/dist/chunk-L57D35TB.js.map +1 -0
- package/dist/chunk-YBQECXZX.js +409 -0
- package/dist/chunk-YBQECXZX.js.map +1 -0
- package/dist/cli/args.d.ts +4 -4
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/commands/artifacts.d.ts.map +1 -1
- package/dist/cli/commands/canvas.d.ts +7 -7
- package/dist/cli/commands/canvas.d.ts.map +1 -1
- package/dist/cli/commands/daemon.d.ts +7 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -1
- package/dist/cli/commands/desktop/accessibility-snapshot.d.ts +3 -0
- package/dist/cli/commands/desktop/accessibility-snapshot.d.ts.map +1 -0
- package/dist/cli/commands/desktop/active-window.d.ts +3 -0
- package/dist/cli/commands/desktop/active-window.d.ts.map +1 -0
- package/dist/cli/commands/desktop/capture-desktop.d.ts +3 -0
- package/dist/cli/commands/desktop/capture-desktop.d.ts.map +1 -0
- package/dist/cli/commands/desktop/capture-window.d.ts +3 -0
- package/dist/cli/commands/desktop/capture-window.d.ts.map +1 -0
- package/dist/cli/commands/desktop/shared.d.ts +19 -0
- package/dist/cli/commands/desktop/shared.d.ts.map +1 -0
- package/dist/cli/commands/desktop/status.d.ts +3 -0
- package/dist/cli/commands/desktop/status.d.ts.map +1 -0
- package/dist/cli/commands/desktop/windows.d.ts +3 -0
- package/dist/cli/commands/desktop/windows.d.ts.map +1 -0
- package/dist/cli/commands/devtools/dialog.d.ts +19 -0
- package/dist/cli/commands/devtools/dialog.d.ts.map +1 -0
- package/dist/cli/commands/devtools/screencast-start.d.ts +20 -0
- package/dist/cli/commands/devtools/screencast-start.d.ts.map +1 -0
- package/dist/cli/commands/devtools/screencast-stop.d.ts +17 -0
- package/dist/cli/commands/devtools/screencast-stop.d.ts.map +1 -0
- package/dist/cli/commands/devtools/screenshot.d.ts +2 -0
- package/dist/cli/commands/devtools/screenshot.d.ts.map +1 -1
- package/dist/cli/commands/interact/click.d.ts.map +1 -1
- package/dist/cli/commands/interact/pointer-down.d.ts +7 -0
- package/dist/cli/commands/interact/pointer-down.d.ts.map +1 -0
- package/dist/cli/commands/interact/pointer-drag.d.ts +7 -0
- package/dist/cli/commands/interact/pointer-drag.d.ts.map +1 -0
- package/dist/cli/commands/interact/pointer-move.d.ts +7 -0
- package/dist/cli/commands/interact/pointer-move.d.ts.map +1 -0
- package/dist/cli/commands/interact/pointer-shared.d.ts +6 -0
- package/dist/cli/commands/interact/pointer-shared.d.ts.map +1 -0
- package/dist/cli/commands/interact/pointer-up.d.ts +7 -0
- package/dist/cli/commands/interact/pointer-up.d.ts.map +1 -0
- package/dist/cli/commands/interact/upload.d.ts +18 -0
- package/dist/cli/commands/interact/upload.d.ts.map +1 -0
- package/dist/cli/commands/macro-resolve.d.ts +2 -0
- package/dist/cli/commands/macro-resolve.d.ts.map +1 -1
- package/dist/cli/commands/native.d.ts +10 -7
- package/dist/cli/commands/native.d.ts.map +1 -1
- package/dist/cli/commands/nav/review.d.ts +7 -0
- package/dist/cli/commands/nav/review.d.ts.map +1 -0
- package/dist/cli/commands/nav/snapshot.d.ts.map +1 -1
- package/dist/cli/commands/pages/open.d.ts.map +1 -1
- package/dist/cli/commands/product-video.d.ts +2 -0
- package/dist/cli/commands/product-video.d.ts.map +1 -1
- package/dist/cli/commands/research.d.ts +3 -0
- package/dist/cli/commands/research.d.ts.map +1 -1
- package/dist/cli/commands/run.d.ts +14 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/serve.d.ts +1 -26
- package/dist/cli/commands/serve.d.ts.map +1 -1
- package/dist/cli/commands/session/connect.d.ts.map +1 -1
- package/dist/cli/commands/session/disconnect.d.ts.map +1 -1
- package/dist/cli/commands/session/inspector.d.ts +21 -0
- package/dist/cli/commands/session/inspector.d.ts.map +1 -0
- package/dist/cli/commands/session/launch.d.ts.map +1 -1
- package/dist/cli/commands/shopping.d.ts +5 -0
- package/dist/cli/commands/shopping.d.ts.map +1 -1
- package/dist/cli/commands/status.d.ts +2 -14
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/targets/new.d.ts.map +1 -1
- package/dist/cli/daemon-autostart.d.ts +11 -0
- package/dist/cli/daemon-autostart.d.ts.map +1 -1
- package/dist/cli/daemon-client.d.ts +3 -0
- package/dist/cli/daemon-client.d.ts.map +1 -1
- package/dist/cli/daemon-commands.d.ts.map +1 -1
- package/dist/cli/daemon-state.d.ts +16 -0
- package/dist/cli/daemon-state.d.ts.map +1 -1
- package/dist/cli/daemon-status.d.ts +7 -2
- package/dist/cli/daemon-status.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts +1 -0
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/help.d.ts +15 -4
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/index.js +2467 -1033
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install-autostart-output.d.ts +6 -0
- package/dist/cli/install-autostart-output.d.ts.map +1 -0
- package/dist/cli/install-autostart-reconciliation.d.ts +23 -0
- package/dist/cli/install-autostart-reconciliation.d.ts.map +1 -0
- package/dist/cli/installers/skills.d.ts +42 -6
- package/dist/cli/installers/skills.d.ts.map +1 -1
- package/dist/cli/output.d.ts +3 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/remote-desktop-runtime.d.ts +15 -0
- package/dist/cli/remote-desktop-runtime.d.ts.map +1 -0
- package/dist/cli/remote-manager.d.ts +24 -2
- package/dist/cli/remote-manager.d.ts.map +1 -1
- package/dist/cli/transport-timeouts.d.ts +8 -0
- package/dist/cli/transport-timeouts.d.ts.map +1 -0
- package/dist/cli/utils/http.d.ts +9 -0
- package/dist/cli/utils/http.d.ts.map +1 -1
- package/dist/cli/utils/parse.d.ts +2 -0
- package/dist/cli/utils/parse.d.ts.map +1 -1
- package/dist/cli/utils/skills.d.ts +1 -2
- package/dist/cli/utils/skills.d.ts.map +1 -1
- package/dist/cli/utils/workflow-message.d.ts +2 -0
- package/dist/cli/utils/workflow-message.d.ts.map +1 -0
- package/dist/config.d.ts +47 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/core/bootstrap.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/logging.d.ts +3 -1
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/runtime-assemblies.d.ts +22 -0
- package/dist/core/runtime-assemblies.d.ts.map +1 -0
- package/dist/core/types.d.ts +15 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/desktop/audit.d.ts +37 -0
- package/dist/desktop/audit.d.ts.map +1 -0
- package/dist/desktop/errors.d.ts +7 -0
- package/dist/desktop/errors.d.ts.map +1 -0
- package/dist/desktop/index.d.ts +6 -0
- package/dist/desktop/index.d.ts.map +1 -0
- package/dist/desktop/runtime.d.ts +26 -0
- package/dist/desktop/runtime.d.ts.map +1 -0
- package/dist/desktop/types.d.ts +76 -0
- package/dist/desktop/types.d.ts.map +1 -0
- package/dist/extension-extractor.d.ts +6 -0
- package/dist/extension-extractor.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1103 -467
- package/dist/index.js.map +1 -1
- package/dist/integrations/figma/assets.d.ts +13 -0
- package/dist/integrations/figma/assets.d.ts.map +1 -0
- package/dist/integrations/figma/auth.d.ts +3 -0
- package/dist/integrations/figma/auth.d.ts.map +1 -0
- package/dist/integrations/figma/client.d.ts +42 -0
- package/dist/integrations/figma/client.d.ts.map +1 -0
- package/dist/integrations/figma/mappers.d.ts +23 -0
- package/dist/integrations/figma/mappers.d.ts.map +1 -0
- package/dist/integrations/figma/normalize.d.ts +99 -0
- package/dist/integrations/figma/normalize.d.ts.map +1 -0
- package/dist/integrations/figma/url.d.ts +17 -0
- package/dist/integrations/figma/url.d.ts.map +1 -0
- package/dist/integrations/figma/variables.d.ts +21 -0
- package/dist/integrations/figma/variables.d.ts.map +1 -0
- package/dist/macros/execute-runtime.d.ts +19 -0
- package/dist/macros/execute-runtime.d.ts.map +1 -0
- package/dist/macros/execute.d.ts +3 -1
- package/dist/macros/execute.d.ts.map +1 -1
- package/dist/opendevbrowser.d.ts.map +1 -1
- package/dist/opendevbrowser.js +1103 -467
- package/dist/opendevbrowser.js.map +1 -1
- package/dist/providers/blocker.d.ts.map +1 -1
- package/dist/providers/browser-fallback.d.ts +30 -0
- package/dist/providers/browser-fallback.d.ts.map +1 -0
- package/dist/providers/constraint.d.ts +45 -0
- package/dist/providers/constraint.d.ts.map +1 -0
- package/dist/providers/index.d.ts +11 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/policy.d.ts.map +1 -1
- package/dist/providers/product-video-compiler.d.ts +92 -0
- package/dist/providers/product-video-compiler.d.ts.map +1 -0
- package/dist/providers/registry.d.ts +37 -1
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/renderer.d.ts.map +1 -1
- package/dist/providers/research-compiler.d.ts +64 -0
- package/dist/providers/research-compiler.d.ts.map +1 -0
- package/dist/providers/research-executor.d.ts +27 -0
- package/dist/providers/research-executor.d.ts.map +1 -0
- package/dist/providers/runtime-bundle.d.ts +26 -0
- package/dist/providers/runtime-bundle.d.ts.map +1 -0
- package/dist/providers/runtime-factory.d.ts +6 -1
- package/dist/providers/runtime-factory.d.ts.map +1 -1
- package/dist/providers/runtime-policy.d.ts +24 -0
- package/dist/providers/runtime-policy.d.ts.map +1 -0
- package/dist/providers/shared/anti-bot-policy.d.ts +3 -2
- package/dist/providers/shared/anti-bot-policy.d.ts.map +1 -1
- package/dist/providers/shopping/index.d.ts +11 -1
- package/dist/providers/shopping/index.d.ts.map +1 -1
- package/dist/providers/shopping-compiler.d.ts +51 -0
- package/dist/providers/shopping-compiler.d.ts.map +1 -0
- package/dist/providers/shopping-executor.d.ts +18 -0
- package/dist/providers/shopping-executor.d.ts.map +1 -0
- package/dist/providers/shopping-postprocess.d.ts +46 -0
- package/dist/providers/shopping-postprocess.d.ts.map +1 -0
- package/dist/providers/shopping-workflow.d.ts +33 -0
- package/dist/providers/shopping-workflow.d.ts.map +1 -0
- package/dist/providers/social/platform.d.ts +2 -1
- package/dist/providers/social/platform.d.ts.map +1 -1
- package/dist/providers/social/search-quality.d.ts +16 -0
- package/dist/providers/social/search-quality.d.ts.map +1 -0
- package/dist/providers/social/youtube-resolver.d.ts +2 -1
- package/dist/providers/social/youtube-resolver.d.ts.map +1 -1
- package/dist/providers/social/youtube.d.ts.map +1 -1
- package/dist/providers/types.d.ts +116 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/web/crawl-worker.d.ts.map +1 -1
- package/dist/providers/web/extract.d.ts +16 -0
- package/dist/providers/web/extract.d.ts.map +1 -1
- package/dist/providers/web/index.d.ts.map +1 -1
- package/dist/providers/workflow-contracts.d.ts +53 -0
- package/dist/providers/workflow-contracts.d.ts.map +1 -0
- package/dist/providers/workflows.d.ts +30 -6
- package/dist/providers/workflows.d.ts.map +1 -1
- package/dist/{providers-G3LRHQXX.js → providers-G36AM3Z2.js} +2 -2
- package/dist/public-surface/generated-manifest.d.ts +1168 -0
- package/dist/public-surface/generated-manifest.d.ts.map +1 -0
- package/dist/public-surface/source.d.ts +437 -0
- package/dist/public-surface/source.d.ts.map +1 -0
- package/dist/relay/protocol.d.ts +25 -3
- package/dist/relay/protocol.d.ts.map +1 -1
- package/dist/relay/relay-endpoints.d.ts +21 -0
- package/dist/relay/relay-endpoints.d.ts.map +1 -1
- package/dist/relay/relay-server.d.ts +18 -0
- package/dist/relay/relay-server.d.ts.map +1 -1
- package/dist/skills/bundled-skill-directories.d.ts +8 -0
- package/dist/skills/bundled-skill-directories.d.ts.map +1 -0
- package/dist/skills/skill-loader.d.ts +9 -1
- package/dist/skills/skill-loader.d.ts.map +1 -1
- package/dist/skills/skill-loader.js +7 -0
- package/dist/skills/skill-nudge.d.ts.map +1 -1
- package/dist/skills/types.d.ts +31 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/snapshot/ops-snapshot.d.ts +1 -1
- package/dist/snapshot/ops-snapshot.d.ts.map +1 -1
- package/dist/snapshot/refs.d.ts +6 -1
- package/dist/snapshot/refs.d.ts.map +1 -1
- package/dist/snapshot/snapshotter.d.ts.map +1 -1
- package/dist/tools/connect.d.ts.map +1 -1
- package/dist/tools/deps.d.ts +4 -0
- package/dist/tools/deps.d.ts.map +1 -1
- package/dist/tools/desktop-shared.d.ts +6 -0
- package/dist/tools/desktop-shared.d.ts.map +1 -0
- package/dist/tools/desktop_accessibility_snapshot.d.ts +4 -0
- package/dist/tools/desktop_accessibility_snapshot.d.ts.map +1 -0
- package/dist/tools/desktop_active_window.d.ts +4 -0
- package/dist/tools/desktop_active_window.d.ts.map +1 -0
- package/dist/tools/desktop_capture_desktop.d.ts +4 -0
- package/dist/tools/desktop_capture_desktop.d.ts.map +1 -0
- package/dist/tools/desktop_capture_window.d.ts +4 -0
- package/dist/tools/desktop_capture_window.d.ts.map +1 -0
- package/dist/tools/desktop_status.d.ts +4 -0
- package/dist/tools/desktop_status.d.ts.map +1 -0
- package/dist/tools/desktop_windows.d.ts +4 -0
- package/dist/tools/desktop_windows.d.ts.map +1 -0
- package/dist/tools/dialog.d.ts +4 -0
- package/dist/tools/dialog.d.ts.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/launch.d.ts.map +1 -1
- package/dist/tools/macro_resolve.d.ts.map +1 -1
- package/dist/tools/pointer_down.d.ts +4 -0
- package/dist/tools/pointer_down.d.ts.map +1 -0
- package/dist/tools/pointer_drag.d.ts +4 -0
- package/dist/tools/pointer_drag.d.ts.map +1 -0
- package/dist/tools/pointer_move.d.ts +4 -0
- package/dist/tools/pointer_move.d.ts.map +1 -0
- package/dist/tools/pointer_up.d.ts +4 -0
- package/dist/tools/pointer_up.d.ts.map +1 -0
- package/dist/tools/product_video_run.d.ts.map +1 -1
- package/dist/tools/prompting_guide.d.ts.map +1 -1
- package/dist/tools/research_run.d.ts.map +1 -1
- package/dist/tools/review.d.ts +4 -0
- package/dist/tools/review.d.ts.map +1 -0
- package/dist/tools/screencast_start.d.ts +4 -0
- package/dist/tools/screencast_start.d.ts.map +1 -0
- package/dist/tools/screencast_stop.d.ts +4 -0
- package/dist/tools/screencast_stop.d.ts.map +1 -0
- package/dist/tools/screenshot.d.ts.map +1 -1
- package/dist/tools/session_inspector.d.ts +4 -0
- package/dist/tools/session_inspector.d.ts.map +1 -0
- package/dist/tools/shopping_run.d.ts.map +1 -1
- package/dist/tools/skill_list.d.ts.map +1 -1
- package/dist/tools/skill_load.d.ts.map +1 -1
- package/dist/tools/upload.d.ts +4 -0
- package/dist/tools/upload.d.ts.map +1 -0
- package/dist/tools/workflow-runtime.d.ts +4 -1
- package/dist/tools/workflow-runtime.d.ts.map +1 -1
- package/dist/utils/package-assets.d.ts +4 -0
- package/dist/utils/package-assets.d.ts.map +1 -0
- package/extension/canvas.html +379 -9
- package/extension/dist/annotate-content.js +62 -32
- package/extension/dist/annotation-payload.js +57 -21
- package/extension/dist/background.js +406 -61
- package/extension/dist/canvas/canvas-runtime.js +481 -52
- package/extension/dist/canvas/model.js +129 -1
- package/extension/dist/canvas-page.js +1882 -74
- package/extension/dist/ops/dom-bridge.js +139 -0
- package/extension/dist/ops/ops-runtime.js +2854 -295
- package/extension/dist/ops/ops-session-store.js +83 -5
- package/extension/dist/ops/snapshot-builder.js +2 -2
- package/extension/dist/ops/snapshot-shared.js +2 -2
- package/extension/dist/ops/target-session-coordinator.js +5 -3
- package/extension/dist/popup.js +50 -15
- package/extension/dist/services/CDPRouter.js +1567 -63
- package/extension/dist/services/ConnectionManager.js +436 -78
- package/extension/dist/services/RelayClient.js +70 -30
- package/extension/dist/services/TabManager.js +83 -10
- package/extension/dist/services/TargetSessionMap.js +127 -3
- package/extension/dist/services/attach-errors.js +20 -0
- package/extension/dist/services/cdp-router-commands.js +135 -8
- package/extension/dist/services/url-restrictions.js +9 -13
- package/extension/manifest.json +2 -2
- package/extension/popup.html +7 -6
- package/package.json +15 -7
- package/skills/AGENTS.md +9 -8
- package/skills/opendevbrowser-best-practices/SKILL.md +118 -9
- package/skills/opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md +1 -0
- package/skills/opendevbrowser-best-practices/artifacts/command-channel-reference.md +26 -12
- package/skills/opendevbrowser-best-practices/artifacts/parity-gates.md +9 -2
- package/skills/opendevbrowser-best-practices/artifacts/provider-workflows.md +6 -0
- package/skills/opendevbrowser-best-practices/artifacts/skill-runtime-surface-matrix.md +58 -0
- package/skills/opendevbrowser-best-practices/assets/templates/skill-runtime-pack-matrix.json +674 -0
- package/skills/opendevbrowser-best-practices/assets/templates/surface-audit-checklist.json +9 -4
- package/skills/opendevbrowser-best-practices/scripts/odb-workflow.sh +89 -20
- package/skills/opendevbrowser-best-practices/scripts/resolve-odb-cli.sh +100 -0
- package/skills/opendevbrowser-best-practices/scripts/run-robustness-audit.sh +1 -0
- package/skills/opendevbrowser-best-practices/scripts/validate-skill-assets.sh +256 -116
- package/skills/opendevbrowser-best-practices/scripts/validator-fixture-cli.sh +208 -0
- package/skills/opendevbrowser-continuity-ledger/SKILL.md +14 -1
- package/skills/opendevbrowser-continuity-ledger/scripts/validate-skill-assets.sh +61 -0
- package/skills/opendevbrowser-data-extraction/SKILL.md +6 -0
- package/skills/opendevbrowser-data-extraction/scripts/validate-skill-assets.sh +112 -0
- package/skills/opendevbrowser-design-agent/SKILL.md +275 -0
- package/skills/opendevbrowser-design-agent/artifacts/app-shell-and-state-wiring.md +84 -0
- package/skills/opendevbrowser-design-agent/artifacts/async-search-state-ownership.md +58 -0
- package/skills/opendevbrowser-design-agent/artifacts/component-pattern-index.md +130 -0
- package/skills/opendevbrowser-design-agent/artifacts/design-contract-playbook.md +157 -0
- package/skills/opendevbrowser-design-agent/artifacts/design-release-gate.md +40 -0
- package/skills/opendevbrowser-design-agent/artifacts/design-workflows.md +153 -0
- package/skills/opendevbrowser-design-agent/artifacts/existing-surface-adaptation.md +56 -0
- package/skills/opendevbrowser-design-agent/artifacts/external-pattern-synthesis.md +103 -0
- package/skills/opendevbrowser-design-agent/artifacts/frontend-evaluation-rubric.md +61 -0
- package/skills/opendevbrowser-design-agent/artifacts/implementation-anti-patterns.md +163 -0
- package/skills/opendevbrowser-design-agent/artifacts/isolated-preview-validation.md +68 -0
- package/skills/opendevbrowser-design-agent/artifacts/loading-and-feedback-surfaces.md +56 -0
- package/skills/opendevbrowser-design-agent/artifacts/opendevbrowser-ui-example-map.md +44 -0
- package/skills/opendevbrowser-design-agent/artifacts/performance-audit-playbook.md +70 -0
- package/skills/opendevbrowser-design-agent/artifacts/research-harvest-workflow.md +81 -0
- package/skills/opendevbrowser-design-agent/artifacts/scroll-reveal-surface-planning.md +64 -0
- package/skills/opendevbrowser-design-agent/artifacts/state-ownership-matrix.md +36 -0
- package/skills/opendevbrowser-design-agent/artifacts/theming-and-token-ownership.md +43 -0
- package/skills/opendevbrowser-design-agent/assets/templates/canvas-generation-plan.design.v1.json +58 -0
- package/skills/opendevbrowser-design-agent/assets/templates/design-audit-report.v1.md +34 -0
- package/skills/opendevbrowser-design-agent/assets/templates/design-brief.v1.md +40 -0
- package/skills/opendevbrowser-design-agent/assets/templates/design-contract.v1.json +226 -0
- package/skills/opendevbrowser-design-agent/assets/templates/design-release-gate.v1.json +35 -0
- package/skills/opendevbrowser-design-agent/assets/templates/design-review-checklist.json +57 -0
- package/skills/opendevbrowser-design-agent/assets/templates/real-surface-design-matrix.json +32 -0
- package/skills/opendevbrowser-design-agent/assets/templates/reference-pattern-board.v1.json +31 -0
- package/skills/opendevbrowser-design-agent/scripts/design-workflow.sh +171 -0
- package/skills/opendevbrowser-design-agent/scripts/extract-canvas-plan.sh +56 -0
- package/skills/opendevbrowser-design-agent/scripts/validate-skill-assets.sh +223 -0
- package/skills/opendevbrowser-form-testing/SKILL.md +19 -3
- package/skills/opendevbrowser-form-testing/artifacts/form-workflows.md +5 -4
- package/skills/opendevbrowser-form-testing/assets/templates/challenge-decision-tree.json +2 -0
- package/skills/opendevbrowser-form-testing/scripts/validate-skill-assets.sh +109 -0
- package/skills/opendevbrowser-login-automation/SKILL.md +21 -3
- package/skills/opendevbrowser-login-automation/artifacts/login-workflows.md +5 -4
- package/skills/opendevbrowser-login-automation/assets/templates/auth-signals.json +5 -0
- package/skills/opendevbrowser-login-automation/assets/templates/login-scenario-matrix.json +3 -2
- package/skills/opendevbrowser-login-automation/scripts/run-login-workflow.sh +17 -1
- package/skills/opendevbrowser-login-automation/scripts/validate-skill-assets.sh +133 -0
- package/skills/opendevbrowser-product-presentation-asset/SKILL.md +23 -11
- package/skills/opendevbrowser-product-presentation-asset/artifacts/asset-pack-assembly.md +5 -3
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/shot-list.md +2 -0
- package/skills/opendevbrowser-product-presentation-asset/assets/templates/video-assembly.md +3 -2
- package/skills/opendevbrowser-product-presentation-asset/scripts/capture-screenshots.sh +5 -1
- package/skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh +6 -2
- package/skills/opendevbrowser-product-presentation-asset/scripts/download-images.sh +5 -1
- package/skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh +20 -7
- package/skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh +39 -0
- package/skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh +5 -1
- package/skills/opendevbrowser-research/SKILL.md +14 -6
- package/skills/opendevbrowser-research/scripts/render-output.sh +5 -1
- package/skills/opendevbrowser-research/scripts/run-research.sh +5 -1
- package/skills/opendevbrowser-research/scripts/validate-skill-assets.sh +45 -0
- package/skills/opendevbrowser-research/scripts/write-artifacts.sh +5 -1
- package/skills/opendevbrowser-shopping/SKILL.md +20 -1
- package/skills/opendevbrowser-shopping/scripts/normalize-offers.sh +6 -2
- package/skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh +5 -1
- package/skills/opendevbrowser-shopping/scripts/run-shopping.sh +5 -1
- package/skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh +54 -0
- package/dist/chunk-5J3IFL3X.js +0 -16706
- package/dist/chunk-5J3IFL3X.js.map +0 -1
- package/dist/chunk-D633UO34.js +0 -8149
- package/dist/chunk-D633UO34.js.map +0 -1
- package/dist/chunk-V7KUDHDG.js +0 -276
- package/dist/chunk-V7KUDHDG.js.map +0 -1
- package/dist/runtime-factory-BICHDPE7.js +0 -13
- /package/dist/{providers-G3LRHQXX.js.map → providers-G36AM3Z2.js.map} +0 -0
- /package/dist/{runtime-factory-BICHDPE7.js.map → skills/skill-loader.js.map} +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Component Pattern Index
|
|
2
|
+
|
|
3
|
+
Use this index before inventing a new screen structure from scratch. Pick one dominant pattern family, justify it in the design contract, then adapt it to the repo's product language.
|
|
4
|
+
|
|
5
|
+
## 1. App Shells And Navigation
|
|
6
|
+
|
|
7
|
+
Use when the page has repeatable navigation, toolbars, inspectors, or multistep depth.
|
|
8
|
+
|
|
9
|
+
- Preferred families:
|
|
10
|
+
- top bar + primary content + optional inspector rail
|
|
11
|
+
- split navigation with list/detail content
|
|
12
|
+
- dense workspace shell with command row, canvas pane, and secondary panels
|
|
13
|
+
- Web guidance:
|
|
14
|
+
- keep route navigation and panel toggles separate
|
|
15
|
+
- treat command bars, breadcrumbs, and tab rows as one system
|
|
16
|
+
- collapse secondary rails deliberately on tablet and mobile
|
|
17
|
+
- Failure signals:
|
|
18
|
+
- toolbar actions compete with global navigation
|
|
19
|
+
- left rail, tabs, and breadcrumbs all claim the same hierarchy
|
|
20
|
+
|
|
21
|
+
## 2. Search, Filters, And Segmentation
|
|
22
|
+
|
|
23
|
+
Use when the user must narrow or switch views quickly.
|
|
24
|
+
|
|
25
|
+
- Preferred families:
|
|
26
|
+
- search plus token filters
|
|
27
|
+
- segmented control plus summary count
|
|
28
|
+
- stacked refinement rail for dense datasets
|
|
29
|
+
- Web guidance:
|
|
30
|
+
- keep search query, filter state, and sort state addressable in URL params when the view should survive refresh or sharing
|
|
31
|
+
- separate quick toggles from advanced filters
|
|
32
|
+
- Failure signals:
|
|
33
|
+
- filter chips, tabs, and sort dropdown all mutate the same state without a clear owner
|
|
34
|
+
|
|
35
|
+
## 3. Collections, Cards, And Feeds
|
|
36
|
+
|
|
37
|
+
Use when the UI is primarily about scanning repeated items.
|
|
38
|
+
|
|
39
|
+
- Preferred families:
|
|
40
|
+
- editorial card stacks
|
|
41
|
+
- compact data cards with one clear primary action
|
|
42
|
+
- masonry or asymmetric feature grids only when the content supports it
|
|
43
|
+
- Web guidance:
|
|
44
|
+
- define card anatomy once: media, eyebrow, title, metadata, actions
|
|
45
|
+
- keep empty, loading, and error states visually related to the collection pattern
|
|
46
|
+
- declare the scan unit and stable item identity before adding per-card motion or toolbar complexity
|
|
47
|
+
- choose progressive reveal, lazy containers, or virtualization intentionally when realistic data volume will make the surface heavy
|
|
48
|
+
- Failure signals:
|
|
49
|
+
- each card variant invents its own spacing, radius, or action order
|
|
50
|
+
- card identity or expansion state is index-based and collapses during reordering or filtering
|
|
51
|
+
|
|
52
|
+
## 4. Forms, Settings, And Editors
|
|
53
|
+
|
|
54
|
+
Use when the interface collects or edits structured input.
|
|
55
|
+
|
|
56
|
+
- Preferred families:
|
|
57
|
+
- grouped settings sections with clear save semantics
|
|
58
|
+
- single-column editor with sticky action bar
|
|
59
|
+
- split preview/editor only when the comparison is essential
|
|
60
|
+
- Web guidance:
|
|
61
|
+
- state whether the flow autosaves, batches, or requires explicit submit
|
|
62
|
+
- keep validation, hint text, and irreversible actions visually distinct
|
|
63
|
+
- Failure signals:
|
|
64
|
+
- field-level save and page-level save coexist without clear precedence
|
|
65
|
+
|
|
66
|
+
## 5. Dashboards, Tables, And Detail Panes
|
|
67
|
+
|
|
68
|
+
Use when the screen mixes overview metrics with drill-down detail.
|
|
69
|
+
|
|
70
|
+
- Preferred families:
|
|
71
|
+
- summary strip plus focused detail pane
|
|
72
|
+
- table with sticky controls and adjacent record inspector
|
|
73
|
+
- dashboard sections ordered by operator task frequency, not by visual symmetry
|
|
74
|
+
- Web guidance:
|
|
75
|
+
- choose whether the primary scan unit is a row, card, or metric tile
|
|
76
|
+
- keep dense tables readable before adding ornamental styling
|
|
77
|
+
- keep inspectors, previews, and secondary panels lazy when the primary task is scanning or triage
|
|
78
|
+
- Failure signals:
|
|
79
|
+
- cards, charts, and tables all have equal prominence and no scan path
|
|
80
|
+
|
|
81
|
+
## 6. Overlays, Drawers, Sheets, And Menus
|
|
82
|
+
|
|
83
|
+
Use when work must happen without leaving the current context.
|
|
84
|
+
|
|
85
|
+
- Preferred families:
|
|
86
|
+
- item-owned detail drawer
|
|
87
|
+
- single modal for confirmation or destructive review
|
|
88
|
+
- contextual menu for low-commitment actions
|
|
89
|
+
- Web guidance:
|
|
90
|
+
- use one owner for overlay visibility
|
|
91
|
+
- prefer item-based presentation over multiple booleans
|
|
92
|
+
- define escape, backdrop, and focus-return behavior up front
|
|
93
|
+
- Failure signals:
|
|
94
|
+
- sibling components toggle the same modal independently
|
|
95
|
+
- multiple overlays can stack accidentally
|
|
96
|
+
|
|
97
|
+
## 7. Empty, Loading, Success, And Error States
|
|
98
|
+
|
|
99
|
+
Treat state surfaces as first-class components, not afterthoughts.
|
|
100
|
+
|
|
101
|
+
- Required questions:
|
|
102
|
+
- what reassures the user while data loads
|
|
103
|
+
- what action is possible from the empty state
|
|
104
|
+
- what recovery path exists from the error state
|
|
105
|
+
- Web guidance:
|
|
106
|
+
- reuse the same layout skeleton as the successful state whenever possible
|
|
107
|
+
- success states should confirm progress without hijacking the next action
|
|
108
|
+
|
|
109
|
+
## 8. Scroll-Driven Storytelling And Motion
|
|
110
|
+
|
|
111
|
+
Use only when motion improves comprehension or narrative sequencing.
|
|
112
|
+
|
|
113
|
+
- Preferred families:
|
|
114
|
+
- section reveal with normalized progress
|
|
115
|
+
- pinned explainer with explicit stage transitions
|
|
116
|
+
- lightweight parallax reserved for emphasis, not default decoration
|
|
117
|
+
- Web guidance:
|
|
118
|
+
- drive the effect from one progress model, not many competing observers
|
|
119
|
+
- define reduced-motion fallbacks before implementation
|
|
120
|
+
- Failure signals:
|
|
121
|
+
- every section animates differently
|
|
122
|
+
- motion blocks reading or keyboard interaction
|
|
123
|
+
|
|
124
|
+
## Reference Routine
|
|
125
|
+
|
|
126
|
+
1. Pick one dominant pattern family.
|
|
127
|
+
2. Write the choice into the design contract and explain why it fits the task.
|
|
128
|
+
3. Declare the required states and state ownership before component code.
|
|
129
|
+
4. Validate the pattern in isolation or in `/canvas` preview before broad rollout.
|
|
130
|
+
5. Validate the integrated screen on a real browser surface.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Design Contract Playbook
|
|
2
|
+
|
|
3
|
+
The design contract is the single source of truth for frontend decisions in this skill.
|
|
4
|
+
|
|
5
|
+
## 1. Intent
|
|
6
|
+
|
|
7
|
+
Capture why the design exists.
|
|
8
|
+
|
|
9
|
+
- `audience`: who is this for
|
|
10
|
+
- `task`: what must they accomplish
|
|
11
|
+
- `successCriteria`: how the UI proves it succeeded
|
|
12
|
+
- `trustPosture`: conservative, neutral, bold, editorial, etc.
|
|
13
|
+
|
|
14
|
+
If the task does not have a crisp audience or job-to-be-done, stop and define it before styling anything.
|
|
15
|
+
|
|
16
|
+
## 2. Design Language
|
|
17
|
+
|
|
18
|
+
Choose one coherent direction.
|
|
19
|
+
|
|
20
|
+
- `direction`: a named visual family
|
|
21
|
+
- `styleAxes`: contrast, density, warmth, shape language, texture, depth, motion
|
|
22
|
+
- `semanticTokenSource`: which shell or provider owns semantic color, spacing, radius, shadow, and motion tokens
|
|
23
|
+
- `approvedLibraries`: allowed component, icon, and styling libraries
|
|
24
|
+
|
|
25
|
+
Do not mix multiple unrelated directions inside one screen.
|
|
26
|
+
|
|
27
|
+
## 3. Content Model
|
|
28
|
+
|
|
29
|
+
Content is part of the design system, not filler.
|
|
30
|
+
|
|
31
|
+
- define the primary message
|
|
32
|
+
- define the supporting messages
|
|
33
|
+
- require real content when possible
|
|
34
|
+
- list the UI states that must exist
|
|
35
|
+
- define loading, empty, error, and transient feedback behavior
|
|
36
|
+
- avoid placeholder copy unless the task explicitly needs scaffolding
|
|
37
|
+
|
|
38
|
+
## 4. Async Model
|
|
39
|
+
|
|
40
|
+
State how async work begins, restarts, and stops.
|
|
41
|
+
|
|
42
|
+
- `owner`: which layer owns query, result, and status transitions
|
|
43
|
+
- `loadTrigger`: load-on-enter, restart-on-input, or long-lived workflow
|
|
44
|
+
- `restartTriggers`: query, scope, sort, selection, or route changes
|
|
45
|
+
- `debounceMs`: the delay for user-driven restarts
|
|
46
|
+
- `emptyQueryBehavior`: what happens when the query clears
|
|
47
|
+
- `cancellationPolicy`: how stale work is ignored
|
|
48
|
+
- `urlOwnership`: when query, scope, or sort belongs in the URL
|
|
49
|
+
|
|
50
|
+
If async ownership is unclear, the design contract is incomplete even if the visual direction is strong.
|
|
51
|
+
|
|
52
|
+
## 5. Navigation Model
|
|
53
|
+
|
|
54
|
+
State how routes, tabs, overlays, and deep links are translated into UI state.
|
|
55
|
+
|
|
56
|
+
- `owner`: which shell or controller owns route resolution
|
|
57
|
+
- `primaryRouteModel`: the canonical route, tab, or view map
|
|
58
|
+
- `deepLinkPolicy`: which params survive refresh, sharing, or external entry
|
|
59
|
+
- `invalidRouteFallback`: what happens when params are missing, stale, or malformed
|
|
60
|
+
- `overlayEntryPoints`: which routes or actions are allowed to open drawers, sheets, or modal review states
|
|
61
|
+
|
|
62
|
+
Do not let buttons, tabs, and row actions invent route strings independently. One navigation owner should translate external entry points into screen state.
|
|
63
|
+
|
|
64
|
+
## 6. Layout System
|
|
65
|
+
|
|
66
|
+
State the page architecture, not just the component list.
|
|
67
|
+
|
|
68
|
+
- grid type
|
|
69
|
+
- container strategy
|
|
70
|
+
- spacing rhythm
|
|
71
|
+
- alignment rules
|
|
72
|
+
- section sequencing
|
|
73
|
+
- scan unit for dense collections or dashboards
|
|
74
|
+
|
|
75
|
+
## 7. Typography System
|
|
76
|
+
|
|
77
|
+
Decide typography deliberately.
|
|
78
|
+
|
|
79
|
+
- primary and secondary families
|
|
80
|
+
- scale
|
|
81
|
+
- measure
|
|
82
|
+
- fallback policy
|
|
83
|
+
- loading strategy
|
|
84
|
+
|
|
85
|
+
## 8. Motion System
|
|
86
|
+
|
|
87
|
+
Motion must help comprehension.
|
|
88
|
+
|
|
89
|
+
- timing and easing
|
|
90
|
+
- where motion is allowed
|
|
91
|
+
- reduced-motion posture
|
|
92
|
+
- whether depth, 3D, or parallax are justified
|
|
93
|
+
|
|
94
|
+
## 9. Performance Model
|
|
95
|
+
|
|
96
|
+
State the performance posture before interaction regressions appear.
|
|
97
|
+
|
|
98
|
+
- `renderHotspots`: which subtree is most likely to churn
|
|
99
|
+
- `stableIdentityPolicy`: how rows, cards, tabs, or stages keep stable ids
|
|
100
|
+
- `listStrategy`: static list, lazy container, progressive reveal, or virtualization threshold
|
|
101
|
+
- `secondaryPanelPolicy`: whether inspectors, previews, or editors load eagerly or on demand
|
|
102
|
+
- `measurementPlan`: which profiler or browser evidence proves the screen is healthy under realistic data
|
|
103
|
+
|
|
104
|
+
If scan-heavy or motion-heavy screens have no performance model, the design contract is incomplete.
|
|
105
|
+
|
|
106
|
+
## 10. Responsive System
|
|
107
|
+
|
|
108
|
+
Responsive behavior is an authored outcome.
|
|
109
|
+
|
|
110
|
+
- breakpoints
|
|
111
|
+
- layout changes by breakpoint
|
|
112
|
+
- touch targets
|
|
113
|
+
- overflow rules
|
|
114
|
+
- collapsed navigation or panel behavior
|
|
115
|
+
|
|
116
|
+
## 11. Accessibility Policy
|
|
117
|
+
|
|
118
|
+
Accessibility must be explicit.
|
|
119
|
+
|
|
120
|
+
- WCAG target
|
|
121
|
+
- keyboard requirements
|
|
122
|
+
- focus visibility rules
|
|
123
|
+
- semantic structure requirements
|
|
124
|
+
- color contrast expectations
|
|
125
|
+
|
|
126
|
+
## 12. Generation Plan
|
|
127
|
+
|
|
128
|
+
This is the mutation-safe subset used by `/canvas`.
|
|
129
|
+
|
|
130
|
+
Required keys:
|
|
131
|
+
|
|
132
|
+
- `targetOutcome`
|
|
133
|
+
- `visualDirection`
|
|
134
|
+
- `layoutStrategy`
|
|
135
|
+
- `contentStrategy`
|
|
136
|
+
- `componentStrategy`
|
|
137
|
+
- `motionPosture`
|
|
138
|
+
- `responsivePosture`
|
|
139
|
+
- `accessibilityPosture`
|
|
140
|
+
- `validationTargets`
|
|
141
|
+
|
|
142
|
+
Use `scripts/extract-canvas-plan.sh` to derive this from the full contract.
|
|
143
|
+
|
|
144
|
+
## Review Questions
|
|
145
|
+
|
|
146
|
+
Before implementation, answer:
|
|
147
|
+
|
|
148
|
+
1. What should the user notice first?
|
|
149
|
+
2. What should they do second?
|
|
150
|
+
3. What content is real, and what still needs product input?
|
|
151
|
+
4. Which layer owns async restarts, query state, and stale-request handling?
|
|
152
|
+
5. Which layer owns route translation, deep-link recovery, and overlay entry points?
|
|
153
|
+
6. What loading, empty, error, and transient feedback surfaces are required?
|
|
154
|
+
7. Where is the canonical theme or token source?
|
|
155
|
+
8. Which list, grid, or pane is most likely to become render-heavy under realistic data?
|
|
156
|
+
9. What part of the design is most likely to regress on mobile?
|
|
157
|
+
10. What evidence will prove the design works on a real browser surface?
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Design Release Gate
|
|
2
|
+
|
|
3
|
+
Use this before calling a design task shipped.
|
|
4
|
+
|
|
5
|
+
## Blocking Checks
|
|
6
|
+
|
|
7
|
+
- The design contract is complete and still matches the implemented screen.
|
|
8
|
+
- A reference pattern board exists when external inspiration shaped the work.
|
|
9
|
+
- Default, empty, loading, success, and error states were checked when relevant.
|
|
10
|
+
- Responsive behavior was validated intentionally.
|
|
11
|
+
- Accessibility posture was reviewed against the contract.
|
|
12
|
+
- Real-browser evidence exists for the primary surface.
|
|
13
|
+
- Cross-surface parity was checked when the acceptance criteria require it.
|
|
14
|
+
- `/canvas` work obeyed the session handshake and saved only after required governance blocks were satisfied.
|
|
15
|
+
- Docs, AGENTS guidance, and skill references were updated in the same pass when the design surface changed.
|
|
16
|
+
|
|
17
|
+
## Required Artifacts
|
|
18
|
+
|
|
19
|
+
Record the gate in `assets/templates/design-release-gate.v1.json` and keep it aligned with:
|
|
20
|
+
|
|
21
|
+
- `assets/templates/design-review-checklist.json`
|
|
22
|
+
- `assets/templates/real-surface-design-matrix.json`
|
|
23
|
+
- `assets/templates/reference-pattern-board.v1.json` when research harvest was used
|
|
24
|
+
|
|
25
|
+
## Minimum Shipping Loop
|
|
26
|
+
|
|
27
|
+
1. Re-read the design contract.
|
|
28
|
+
2. Compare the shipped UI against the contract and the pattern board.
|
|
29
|
+
3. Run the real-surface matrix on the required modes.
|
|
30
|
+
4. Record evidence and blockers in the release-gate JSON.
|
|
31
|
+
5. Fix gaps.
|
|
32
|
+
6. Repeat until every required check is `pass` or explicitly `not_applicable` with evidence.
|
|
33
|
+
|
|
34
|
+
## Do Not Ship If
|
|
35
|
+
|
|
36
|
+
- the direction drifted away from the contract
|
|
37
|
+
- the visual language mixes unrelated patterns
|
|
38
|
+
- feedback/loading states still cause layout reflow or state confusion
|
|
39
|
+
- the design relies on unsupported libraries or hidden runtime assumptions
|
|
40
|
+
- the final answer claims parity or design quality that the browser evidence does not prove
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Design Workflows
|
|
2
|
+
|
|
3
|
+
This file turns the design-agent skill into repeatable execution paths.
|
|
4
|
+
|
|
5
|
+
## Workflow A — Contract-First Frontend Delivery
|
|
6
|
+
|
|
7
|
+
Use when the task starts from a PRD, issue, or user request.
|
|
8
|
+
|
|
9
|
+
1. Fill `assets/templates/design-brief.v1.md`.
|
|
10
|
+
2. Translate the brief into `assets/templates/design-contract.v1.json`.
|
|
11
|
+
3. Check `artifacts/opendevbrowser-ui-example-map.md` for nearby repo patterns worth reusing.
|
|
12
|
+
4. If a nearby shipped surface exists, review `artifacts/existing-surface-adaptation.md` before changing shells or component anatomy.
|
|
13
|
+
5. Pick the dominant screen family from `artifacts/component-pattern-index.md`.
|
|
14
|
+
6. Declare shell and route ownership with `artifacts/app-shell-and-state-wiring.md`.
|
|
15
|
+
7. Declare state ownership using `artifacts/state-ownership-matrix.md`.
|
|
16
|
+
8. Declare navigation and deep-link ownership in the contract before route-changing controls are wired.
|
|
17
|
+
9. Declare async and search ownership with `artifacts/async-search-state-ownership.md`.
|
|
18
|
+
10. Declare theme and token ownership with `artifacts/theming-and-token-ownership.md`.
|
|
19
|
+
11. Declare loading, empty/error, and transient feedback behavior with `artifacts/loading-and-feedback-surfaces.md`.
|
|
20
|
+
12. If the surface is scan-heavy or pane-heavy, declare the performance posture with `artifacts/performance-audit-playbook.md` before implementation.
|
|
21
|
+
13. If motion depends on scroll or pinned stages, add `artifacts/scroll-reveal-surface-planning.md` to the contract inputs.
|
|
22
|
+
14. Confirm the contract answers:
|
|
23
|
+
- audience and task
|
|
24
|
+
- primary and secondary message
|
|
25
|
+
- route owner, deep-link policy, and invalid-route fallback
|
|
26
|
+
- async trigger, query ownership, and restart policy
|
|
27
|
+
- layout approach
|
|
28
|
+
- list identity and heavy-surface strategy
|
|
29
|
+
- theme and token source
|
|
30
|
+
- type system
|
|
31
|
+
- motion posture
|
|
32
|
+
- responsive rules
|
|
33
|
+
- accessibility target
|
|
34
|
+
- loading, empty, error, and transient feedback plan
|
|
35
|
+
- validation plan
|
|
36
|
+
15. Review `artifacts/frontend-evaluation-rubric.md` and `artifacts/implementation-anti-patterns.md`.
|
|
37
|
+
16. Implement the smallest coherent slice that satisfies the contract.
|
|
38
|
+
17. Validate in an isolated fixture first, then in a real browser before declaring the work complete.
|
|
39
|
+
|
|
40
|
+
## Workflow B — Screenshot Or Existing-Page Audit
|
|
41
|
+
|
|
42
|
+
Use when a screenshot, mock, or live page is the starting point.
|
|
43
|
+
|
|
44
|
+
1. Identify the visible structure:
|
|
45
|
+
- information hierarchy
|
|
46
|
+
- grid or container model
|
|
47
|
+
- spacing rhythm
|
|
48
|
+
- typography scale
|
|
49
|
+
- color, contrast, and token system
|
|
50
|
+
- interaction states
|
|
51
|
+
- loading and transient feedback surfaces
|
|
52
|
+
2. Convert those observations into the shared design contract.
|
|
53
|
+
3. Map the screen to one dominant family from `artifacts/component-pattern-index.md`.
|
|
54
|
+
4. If the repo already ships a related shell or surface, review `artifacts/existing-surface-adaptation.md`.
|
|
55
|
+
5. Flag gaps explicitly:
|
|
56
|
+
- unknown mobile behavior
|
|
57
|
+
- unknown route, deep-link, or invalid-param fallback behavior
|
|
58
|
+
- unknown query, filter, or sort ownership
|
|
59
|
+
- missing empty/loading/error states
|
|
60
|
+
- layout-shifting placeholders or spinner stacking
|
|
61
|
+
- unstable row or card identity under filtering, sorting, or refresh
|
|
62
|
+
- raw-value token drift across repeated components
|
|
63
|
+
- inaccessible focus treatment
|
|
64
|
+
- inconsistent spacing or type rules
|
|
65
|
+
6. If search, async work, theming, transient feedback, or scroll-driven motion matter to the task, cross-check:
|
|
66
|
+
- `artifacts/async-search-state-ownership.md`
|
|
67
|
+
- `artifacts/theming-and-token-ownership.md`
|
|
68
|
+
- `artifacts/loading-and-feedback-surfaces.md`
|
|
69
|
+
- `artifacts/scroll-reveal-surface-planning.md`
|
|
70
|
+
7. Check `artifacts/implementation-anti-patterns.md` for ownership or pattern drift traps.
|
|
71
|
+
8. Record the audit in `assets/templates/design-audit-report.v1.md`.
|
|
72
|
+
9. Implement changes only after the contract reflects the intended end state.
|
|
73
|
+
|
|
74
|
+
## Workflow C — `/canvas` Contract-Governed Iteration
|
|
75
|
+
|
|
76
|
+
Use when the work should flow through the OpenDevBrowser design canvas.
|
|
77
|
+
|
|
78
|
+
1. Open a canvas session.
|
|
79
|
+
2. Read the handshake and document context.
|
|
80
|
+
3. Fill the full design contract.
|
|
81
|
+
4. Extract the `generationPlan`.
|
|
82
|
+
5. Send `canvas.plan.set`.
|
|
83
|
+
6. Mutate with `canvas.document.patch`.
|
|
84
|
+
7. Poll feedback and refresh preview until the contract and runtime match.
|
|
85
|
+
|
|
86
|
+
Canonical command order:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npx opendevbrowser canvas --command canvas.session.open --params '{"requestId":"req_open_01","browserSessionId":"<browser-session-id>","documentId":null,"repoPath":null,"mode":"dual-track"}'
|
|
90
|
+
npx opendevbrowser canvas --command canvas.plan.set --params-file ./tmp/canvas-plan.json
|
|
91
|
+
npx opendevbrowser canvas --command canvas.document.patch --params-file ./tmp/canvas-patch.json
|
|
92
|
+
npx opendevbrowser canvas --command canvas.feedback.poll --params '{"requestId":"req_feedback_01","canvasSessionId":"<canvas-session-id>","documentId":"<document-id>","targetId":"<target-id>","afterCursor":null}'
|
|
93
|
+
npx opendevbrowser canvas --command canvas.preview.render --params '{"requestId":"req_preview_01","canvasSessionId":"<canvas-session-id>","leaseId":"<lease-id>","targetId":"<target-id>","projection":"canvas_html"}'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Workflow D — Real-Surface Validation
|
|
97
|
+
|
|
98
|
+
Use when design quality must be demonstrated, not inferred.
|
|
99
|
+
|
|
100
|
+
1. Validate the final or intermediate UI in a real browser session.
|
|
101
|
+
2. Validate the same state matrix in an isolated preview or fixture when the component family is still moving.
|
|
102
|
+
3. Confirm the preview installs deterministic data and the same theme or token dependencies the real surface expects.
|
|
103
|
+
4. If the interaction is scroll-driven, confirm the live surface still matches `artifacts/scroll-reveal-surface-planning.md`.
|
|
104
|
+
5. Capture:
|
|
105
|
+
- snapshots for structure
|
|
106
|
+
- screenshots for visual output
|
|
107
|
+
- debug traces when behavior or styling is dynamic
|
|
108
|
+
6. Confirm:
|
|
109
|
+
- expected layout at mobile, tablet, and desktop widths
|
|
110
|
+
- focus visibility and keyboard reachability
|
|
111
|
+
- loading, error, success, and empty states where relevant
|
|
112
|
+
- search, filter, or sort transitions do not surface stale or duplicated results
|
|
113
|
+
- no console or network regressions caused by the UI change
|
|
114
|
+
7. If parity matters, repeat across supported surfaces before sign-off.
|
|
115
|
+
|
|
116
|
+
## Workflow E — Performance Audit
|
|
117
|
+
|
|
118
|
+
Use when the screen is visually correct but interaction quality is poor.
|
|
119
|
+
|
|
120
|
+
1. Describe the slow interaction, viewport, and data size.
|
|
121
|
+
2. Capture a baseline with the framework profiler or browser performance tooling.
|
|
122
|
+
3. Use `artifacts/performance-audit-playbook.md` to classify the problem.
|
|
123
|
+
4. If scroll progression is part of the issue, verify the single progress owner with `artifacts/scroll-reveal-surface-planning.md`.
|
|
124
|
+
5. Record evidence and fixes in `assets/templates/design-audit-report.v1.md`.
|
|
125
|
+
6. Re-measure before declaring the issue fixed.
|
|
126
|
+
|
|
127
|
+
Recommended command sequence:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npx opendevbrowser launch --no-extension --start-url https://example.com
|
|
131
|
+
npx opendevbrowser snapshot --session-id <session-id>
|
|
132
|
+
npx opendevbrowser screenshot --session-id <session-id>
|
|
133
|
+
npx opendevbrowser debug-trace-snapshot --session-id <session-id>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Workflow F — Ship Audit
|
|
137
|
+
|
|
138
|
+
Use after implementation and before final sign-off.
|
|
139
|
+
|
|
140
|
+
1. Re-read the design contract.
|
|
141
|
+
2. Compare the shipped output against the contract and the rubric.
|
|
142
|
+
3. Re-check shell and route ownership against `artifacts/app-shell-and-state-wiring.md`.
|
|
143
|
+
4. Re-check whether the work extended the nearest shipped surface appropriately with `artifacts/existing-surface-adaptation.md`.
|
|
144
|
+
5. Re-check state and overlay ownership against `artifacts/state-ownership-matrix.md`.
|
|
145
|
+
6. Re-check:
|
|
146
|
+
- `artifacts/async-search-state-ownership.md`
|
|
147
|
+
- `artifacts/theming-and-token-ownership.md`
|
|
148
|
+
- `artifacts/loading-and-feedback-surfaces.md`
|
|
149
|
+
- `artifacts/scroll-reveal-surface-planning.md`
|
|
150
|
+
7. Re-scan `artifacts/implementation-anti-patterns.md` for any regressions introduced during polishing.
|
|
151
|
+
8. Re-run the relevant skill validators.
|
|
152
|
+
9. Update README, CLI docs, architecture docs, AGENTS, and skill docs if any user-visible behavior changed.
|
|
153
|
+
10. Record blockers explicitly; do not convert uncertainty into a pass.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Existing Surface Adaptation
|
|
2
|
+
|
|
3
|
+
Use this when the repo already has a nearby screen, shell, or component family and the goal is to evolve it instead of inventing a parallel UI language.
|
|
4
|
+
|
|
5
|
+
## 1. Start With The Nearest Shipped Surface
|
|
6
|
+
|
|
7
|
+
Before drafting a new structure:
|
|
8
|
+
|
|
9
|
+
- read `artifacts/opendevbrowser-ui-example-map.md`
|
|
10
|
+
- identify the closest shipped shell, editor, list/detail, or overlay pattern
|
|
11
|
+
- inspect the existing state owner, route owner, and token owner before changing visuals
|
|
12
|
+
|
|
13
|
+
If the repo already has the right family, extend it. Do not build a second shell that solves the same navigation or ownership problem.
|
|
14
|
+
|
|
15
|
+
## 2. Read The Surface In This Order
|
|
16
|
+
|
|
17
|
+
1. shell and route ownership
|
|
18
|
+
2. state ownership and async ownership
|
|
19
|
+
3. token and theme ownership
|
|
20
|
+
4. component anatomy
|
|
21
|
+
5. loading, empty, success, and error states
|
|
22
|
+
6. preview or fixture coverage
|
|
23
|
+
|
|
24
|
+
This keeps structural decisions ahead of styling polish.
|
|
25
|
+
|
|
26
|
+
## 3. Reuse Before Recompose
|
|
27
|
+
|
|
28
|
+
Prefer:
|
|
29
|
+
|
|
30
|
+
- refining existing component anatomy
|
|
31
|
+
- tightening spacing, hierarchy, and state handling
|
|
32
|
+
- widening deterministic preview coverage
|
|
33
|
+
- extracting a shared primitive only when two real surfaces need it
|
|
34
|
+
|
|
35
|
+
Avoid:
|
|
36
|
+
|
|
37
|
+
- forking a near-duplicate shell
|
|
38
|
+
- replacing a working component family with a generic new one
|
|
39
|
+
- moving ownership upward without a concrete cross-surface need
|
|
40
|
+
|
|
41
|
+
## 4. Review Prompts
|
|
42
|
+
|
|
43
|
+
Before implementation, answer:
|
|
44
|
+
|
|
45
|
+
1. Which shipped surface is the closest reference?
|
|
46
|
+
2. What should stay structurally stable?
|
|
47
|
+
3. Which ownership boundary actually needs to move?
|
|
48
|
+
4. Which visual or interaction debt is being corrected?
|
|
49
|
+
5. Which preview or browser proof needs to be updated with the change?
|
|
50
|
+
|
|
51
|
+
## Failure Signals
|
|
52
|
+
|
|
53
|
+
- a new shell is introduced when an existing one already fits
|
|
54
|
+
- component names and files diverge from the shipped family for cosmetic reasons
|
|
55
|
+
- previews still prove only the old behavior after a real structural change
|
|
56
|
+
- the work claims to preserve the design system while silently bypassing its token or state owners
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# External Pattern Synthesis
|
|
2
|
+
|
|
3
|
+
This file captures the external patterns that shaped the OpenDevBrowser design-agent skill.
|
|
4
|
+
|
|
5
|
+
## Official Anthropic Patterns
|
|
6
|
+
|
|
7
|
+
Sources:
|
|
8
|
+
|
|
9
|
+
- Claude Code subagents: https://docs.anthropic.com/en/docs/claude-code/sub-agents
|
|
10
|
+
- Claude Code settings: https://docs.anthropic.com/en/docs/claude-code/settings
|
|
11
|
+
|
|
12
|
+
Patterns carried into this skill:
|
|
13
|
+
|
|
14
|
+
- keep the agent focused on one domain instead of making a general prompt larger
|
|
15
|
+
- be explicit about tool access, scope, and success criteria
|
|
16
|
+
- preload reusable expertise so repeated tasks are faster and more consistent
|
|
17
|
+
- use concrete examples and deterministic workflows instead of vague stylistic advice
|
|
18
|
+
|
|
19
|
+
## Official Vercel v0 Patterns
|
|
20
|
+
|
|
21
|
+
Source:
|
|
22
|
+
|
|
23
|
+
- v0 prompting guide: https://v0.dev/docs/prompting/text
|
|
24
|
+
|
|
25
|
+
Patterns carried into this skill:
|
|
26
|
+
|
|
27
|
+
- specify stack, layout intent, and UI constraints directly
|
|
28
|
+
- describe structure, state, and interaction, not just mood adjectives
|
|
29
|
+
- break large UI requests into staged prompts and refinements
|
|
30
|
+
- include enough design detail that the system does not invent critical behavior
|
|
31
|
+
- collect concrete visual references before direction lock instead of treating "modern" or "premium" as sufficient input
|
|
32
|
+
|
|
33
|
+
## Official Lovable Patterns
|
|
34
|
+
|
|
35
|
+
Source:
|
|
36
|
+
|
|
37
|
+
- Lovable prompting best practices: https://docs.lovable.dev/prompting/prompting-best-practices
|
|
38
|
+
|
|
39
|
+
Patterns carried into this skill:
|
|
40
|
+
|
|
41
|
+
- use real content and real workflows whenever possible
|
|
42
|
+
- prompt by component and user flow, not by abstract buzzwords
|
|
43
|
+
- keep iterations narrow and intentional
|
|
44
|
+
- write prompts that explain what should improve and why it matters
|
|
45
|
+
- keep inspiration grounded in screenshots and product references instead of text-only taste claims
|
|
46
|
+
|
|
47
|
+
## Public Frontend-Designer Agent Patterns
|
|
48
|
+
|
|
49
|
+
Source:
|
|
50
|
+
|
|
51
|
+
- Public claude-agents repository: https://github.com/iannuttall/claude-agents
|
|
52
|
+
|
|
53
|
+
Patterns carried into this skill:
|
|
54
|
+
|
|
55
|
+
- assess the current stack and available assets before proposing UI direction
|
|
56
|
+
- turn observations into a repeatable design schema
|
|
57
|
+
- include an explicit review and feedback loop
|
|
58
|
+
- combine aesthetics, accessibility, and implementation practicality in the same agent
|
|
59
|
+
- split work into analyze, specify, and generate phases so direction-setting and implementation stay distinct
|
|
60
|
+
|
|
61
|
+
## Dimillian SwiftUI UI Pattern Library
|
|
62
|
+
|
|
63
|
+
Source:
|
|
64
|
+
|
|
65
|
+
- Dimillian Skills repo: https://github.com/Dimillian/Skills/tree/main
|
|
66
|
+
- SwiftUI UI patterns skill: https://github.com/Dimillian/Skills/blob/main/swiftui-ui-patterns/SKILL.md
|
|
67
|
+
|
|
68
|
+
Patterns carried into this skill:
|
|
69
|
+
|
|
70
|
+
- keep a component and screen-pattern index so the agent starts from proven families instead of inventing a structure every time
|
|
71
|
+
- start from the closest existing surface when the repo already ships the right family, then adapt instead of forking a parallel shell
|
|
72
|
+
- declare state ownership before component implementation, especially for navigation, overlays, async data, and editing flows
|
|
73
|
+
- keep route translation and deep-link handling centralized instead of spreading string-based navigation across controls
|
|
74
|
+
- prefer item-driven or enum-driven sheet and overlay routing so modal state stays typed and recoverable
|
|
75
|
+
- define async restart, debounce, and cancellation behavior explicitly when user input can restart work
|
|
76
|
+
- keep search-query ownership narrow and make URL ownership deliberate instead of accidental
|
|
77
|
+
- preserve layout during loading with deterministic placeholder counts instead of spinner-heavy state drift
|
|
78
|
+
- keep one semantic theme or token source so leaf components stay visual consumers instead of token owners
|
|
79
|
+
- use overlays for transient banners or toasts so feedback does not reflow the main layout
|
|
80
|
+
- document app wiring and shell boundaries explicitly so route, overlay, and shared-service ownership stay coherent
|
|
81
|
+
- treat isolated previews and deterministic fixtures as a required stop before full integration
|
|
82
|
+
- keep a reusable performance-audit path with baseline measurement, symptom classification, and evidence-backed fixes
|
|
83
|
+
- give scroll-reveal and pinned-stage UIs one explicit progress owner plus a reduced-motion contract
|
|
84
|
+
- keep scan-heavy screens fast by deciding stable identity, lazy container posture, and progressive reveal before polishing each item
|
|
85
|
+
- include explicit anti-patterns so the skill blocks weak implementation habits instead of only describing ideal outcomes
|
|
86
|
+
- treat previews, examples, and isolated validation as part of frontend engineering, not optional polish
|
|
87
|
+
- document app wiring concerns such as shells, routing depth, overlay ownership, scroll drivers, and performance restraint alongside visual direction
|
|
88
|
+
|
|
89
|
+
## OpenDevBrowser-Specific Adaptation
|
|
90
|
+
|
|
91
|
+
The external patterns above are not copied verbatim into this pack. They are adapted to OpenDevBrowser's shipped capabilities:
|
|
92
|
+
|
|
93
|
+
- `/canvas` governance handshake and `canvas.plan.set`
|
|
94
|
+
- extension, managed, and CDP-backed validation
|
|
95
|
+
- repo-local docs and AGENTS sync requirements
|
|
96
|
+
- repeated audit/fix loops before sign-off
|
|
97
|
+
- real-browser proof instead of purely textual design claims
|
|
98
|
+
- web-first component families in `artifacts/component-pattern-index.md`
|
|
99
|
+
- explicit ownership decisions in `artifacts/state-ownership-matrix.md`
|
|
100
|
+
- async and query ownership decisions in `artifacts/async-search-state-ownership.md`
|
|
101
|
+
- semantic token ownership in `artifacts/theming-and-token-ownership.md`
|
|
102
|
+
- loading and transient feedback discipline in `artifacts/loading-and-feedback-surfaces.md`
|
|
103
|
+
- failure shields in `artifacts/implementation-anti-patterns.md`
|