@hcu-lab.me/mcp-device 1.0.9 → 1.0.12
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/PRIVACY.md +21 -0
- package/README.md +58 -3
- package/SECURITY.md +67 -0
- package/config/revoked-approvals.json +1 -0
- package/control-plane/config/mcp-servers.example.toml +52 -0
- package/control-plane/config/mcp-servers.toml +52 -0
- package/control-plane/contracts/device-public-contract-v1.json +733 -0
- package/control-plane/scripts/GATEWAY-LICENSE.txt +7 -0
- package/control-plane/scripts/account-http.mjs +220 -0
- package/control-plane/scripts/account-store.mjs +368 -0
- package/control-plane/scripts/admin.mjs +68 -0
- package/control-plane/scripts/auth-session.mjs +411 -0
- package/control-plane/scripts/authenticated-mcp-wrapper.mjs +1281 -0
- package/control-plane/scripts/benchmark-command.mjs +9 -0
- package/control-plane/scripts/benchmark-mcp-catalog.mjs +174 -0
- package/control-plane/scripts/catalog-budget.mjs +87 -0
- package/control-plane/scripts/check-device-public-contract.mjs +20 -0
- package/control-plane/scripts/custom-tools/index.mjs +221 -0
- package/control-plane/scripts/custom-tools/path-utils.mjs +117 -0
- package/control-plane/scripts/custom-tools/response-utils.mjs +34 -0
- package/control-plane/scripts/dashboard-http.mjs +598 -0
- package/control-plane/scripts/device-access-policy.mjs +205 -0
- package/control-plane/scripts/device-admin.mjs +43 -0
- package/control-plane/scripts/device-audit.mjs +63 -0
- package/control-plane/scripts/device-broker.mjs +1461 -0
- package/control-plane/scripts/device-execution-tool-definitions.mjs +217 -0
- package/control-plane/scripts/device-inventory.mjs +128 -0
- package/control-plane/scripts/device-pairing-http.mjs +109 -0
- package/control-plane/scripts/device-pairing-store.mjs +245 -0
- package/control-plane/scripts/device-public-contract.mjs +165 -0
- package/control-plane/scripts/device-release.mjs +95 -0
- package/control-plane/scripts/device-secure-transport.mjs +128 -0
- package/control-plane/scripts/device-store.mjs +283 -0
- package/control-plane/scripts/device-usage.mjs +657 -0
- package/control-plane/scripts/embedded-device.mjs +149 -0
- package/control-plane/scripts/enduser-ui.mjs +45 -0
- package/control-plane/scripts/external-tool-broker.mjs +179 -0
- package/control-plane/scripts/oauth-authorization-server.mjs +589 -0
- package/control-plane/scripts/operator-dashboard-http.mjs +81 -0
- package/control-plane/scripts/project-inspection.mjs +227 -0
- package/control-plane/scripts/projects/project-id.mjs +69 -0
- package/control-plane/scripts/projects/trusted-roots-projects.mjs +375 -0
- package/control-plane/scripts/prompts/index.mjs +60 -0
- package/control-plane/scripts/remote-process-sessions.mjs +78 -0
- package/control-plane/scripts/remote-tool-result.mjs +9 -0
- package/control-plane/scripts/resources/index.mjs +166 -0
- package/control-plane/scripts/runtime-profile.mjs +54 -0
- package/control-plane/scripts/shell-tool-descriptor.mjs +17 -0
- package/control-plane/scripts/skill-source-safety.mjs +46 -0
- package/control-plane/scripts/skills/README.md +70 -0
- package/control-plane/scripts/skills/_upstream_licenses/anthropic-THIRD_PARTY_NOTICES.md +405 -0
- package/control-plane/scripts/skills/_upstream_licenses/hallmark-LICENSE.txt +21 -0
- package/control-plane/scripts/skills/_upstream_licenses/ponytail-LICENSE.txt +21 -0
- package/control-plane/scripts/skills/_upstream_licenses/stitch-skills-LICENSE.txt +201 -0
- package/control-plane/scripts/skills/_upstream_licenses/superpowers-LICENSE.txt +21 -0
- package/control-plane/scripts/skills/algorithmic-art/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/algorithmic-art/SKILL.md +405 -0
- package/control-plane/scripts/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/control-plane/scripts/skills/algorithmic-art/templates/viewer.html +599 -0
- package/control-plane/scripts/skills/brainstorming/SKILL.md +285 -0
- package/control-plane/scripts/skills/brainstorming/scripts/frame-template.html +213 -0
- package/control-plane/scripts/skills/brainstorming/scripts/helper.js +167 -0
- package/control-plane/scripts/skills/brainstorming/scripts/server.cjs +723 -0
- package/control-plane/scripts/skills/brainstorming/scripts/start-server.sh +209 -0
- package/control-plane/scripts/skills/brainstorming/scripts/stop-server.sh +120 -0
- package/control-plane/scripts/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/control-plane/scripts/skills/brainstorming/visual-companion.md +299 -0
- package/control-plane/scripts/skills/brand-guidelines/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/brand-guidelines/SKILL.md +73 -0
- package/control-plane/scripts/skills/claude-api/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/claude-api/SKILL.md +570 -0
- package/control-plane/scripts/skills/claude-api/csharp/claude-api/README.md +362 -0
- package/control-plane/scripts/skills/claude-api/csharp/claude-api/batches.md +14 -0
- package/control-plane/scripts/skills/claude-api/csharp/claude-api/files-api.md +25 -0
- package/control-plane/scripts/skills/claude-api/csharp/claude-api/streaming.md +28 -0
- package/control-plane/scripts/skills/claude-api/csharp/claude-api/tool-use.md +164 -0
- package/control-plane/scripts/skills/claude-api/curl/examples.md +256 -0
- package/control-plane/scripts/skills/claude-api/curl/managed-agents.md +371 -0
- package/control-plane/scripts/skills/claude-api/go/claude-api/README.md +188 -0
- package/control-plane/scripts/skills/claude-api/go/claude-api/files-api.md +23 -0
- package/control-plane/scripts/skills/claude-api/go/claude-api/streaming.md +43 -0
- package/control-plane/scripts/skills/claude-api/go/claude-api/tool-use.md +220 -0
- package/control-plane/scripts/skills/claude-api/go/managed-agents/README.md +564 -0
- package/control-plane/scripts/skills/claude-api/java/claude-api/README.md +238 -0
- package/control-plane/scripts/skills/claude-api/java/claude-api/files-api.md +27 -0
- package/control-plane/scripts/skills/claude-api/java/claude-api/streaming.md +24 -0
- package/control-plane/scripts/skills/claude-api/java/claude-api/tool-use.md +228 -0
- package/control-plane/scripts/skills/claude-api/java/managed-agents/README.md +443 -0
- package/control-plane/scripts/skills/claude-api/php/claude-api/README.md +174 -0
- package/control-plane/scripts/skills/claude-api/php/claude-api/batches.md +15 -0
- package/control-plane/scripts/skills/claude-api/php/claude-api/files-api.md +13 -0
- package/control-plane/scripts/skills/claude-api/php/claude-api/streaming.md +27 -0
- package/control-plane/scripts/skills/claude-api/php/claude-api/tool-use.md +253 -0
- package/control-plane/scripts/skills/claude-api/php/managed-agents/README.md +443 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/README.md +565 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/batches.md +198 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/files-api.md +170 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/sdk-upgrade.md +286 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/streaming.md +179 -0
- package/control-plane/scripts/skills/claude-api/python/claude-api/tool-use.md +627 -0
- package/control-plane/scripts/skills/claude-api/python/managed-agents/README.md +335 -0
- package/control-plane/scripts/skills/claude-api/ruby/claude-api/README.md +134 -0
- package/control-plane/scripts/skills/claude-api/ruby/claude-api/streaming.md +16 -0
- package/control-plane/scripts/skills/claude-api/ruby/claude-api/tool-use.md +41 -0
- package/control-plane/scripts/skills/claude-api/ruby/managed-agents/README.md +394 -0
- package/control-plane/scripts/skills/claude-api/shared/admin-api.md +179 -0
- package/control-plane/scripts/skills/claude-api/shared/agent-design.md +101 -0
- package/control-plane/scripts/skills/claude-api/shared/anthropic-cli.md +269 -0
- package/control-plane/scripts/skills/claude-api/shared/claude-platform-on-aws.md +59 -0
- package/control-plane/scripts/skills/claude-api/shared/cost-optimization.md +233 -0
- package/control-plane/scripts/skills/claude-api/shared/error-codes.md +262 -0
- package/control-plane/scripts/skills/claude-api/shared/live-sources.md +166 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-api-reference.md +455 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-client-patterns.md +220 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-core.md +359 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-environments.md +226 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-events.md +290 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-memory.md +201 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-multiagent.md +260 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-onboarding.md +82 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-outcomes.md +108 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-overview.md +77 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-scheduled-deployments.md +156 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +282 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-tools.md +504 -0
- package/control-plane/scripts/skills/claude-api/shared/managed-agents-webhooks.md +143 -0
- package/control-plane/scripts/skills/claude-api/shared/model-migration.md +1872 -0
- package/control-plane/scripts/skills/claude-api/shared/models.md +142 -0
- package/control-plane/scripts/skills/claude-api/shared/platform-availability.md +52 -0
- package/control-plane/scripts/skills/claude-api/shared/prompt-audit.md +223 -0
- package/control-plane/scripts/skills/claude-api/shared/prompt-caching.md +292 -0
- package/control-plane/scripts/skills/claude-api/shared/token-counting.md +56 -0
- package/control-plane/scripts/skills/claude-api/shared/tool-use-concepts.md +526 -0
- package/control-plane/scripts/skills/claude-api/typescript/claude-api/README.md +405 -0
- package/control-plane/scripts/skills/claude-api/typescript/claude-api/batches.md +106 -0
- package/control-plane/scripts/skills/claude-api/typescript/claude-api/files-api.md +98 -0
- package/control-plane/scripts/skills/claude-api/typescript/claude-api/streaming.md +178 -0
- package/control-plane/scripts/skills/claude-api/typescript/claude-api/tool-use.md +586 -0
- package/control-plane/scripts/skills/claude-api/typescript/managed-agents/README.md +359 -0
- package/control-plane/scripts/skills/dispatching-parallel-agents/SKILL.md +167 -0
- package/control-plane/scripts/skills/enhance-prompt/README.md +34 -0
- package/control-plane/scripts/skills/enhance-prompt/SKILL.md +204 -0
- package/control-plane/scripts/skills/enhance-prompt/references/KEYWORDS.md +114 -0
- package/control-plane/scripts/skills/executing-plans/SKILL.md +371 -0
- package/control-plane/scripts/skills/executing-plans/scripts/task-done +52 -0
- package/control-plane/scripts/skills/executing-plans/scripts/task-start +28 -0
- package/control-plane/scripts/skills/extract-design-md/SKILL.md +358 -0
- package/control-plane/scripts/skills/extract-design-md/examples/DESIGN.md +210 -0
- package/control-plane/scripts/skills/extract-design-md/references/angular.md +122 -0
- package/control-plane/scripts/skills/extract-design-md/references/plain-css.md +161 -0
- package/control-plane/scripts/skills/extract-design-md/references/react-tailwind.md +157 -0
- package/control-plane/scripts/skills/extract-design-md/references/svelte.md +101 -0
- package/control-plane/scripts/skills/extract-design-md/references/vue.md +107 -0
- package/control-plane/scripts/skills/finishing-a-development-branch/SKILL.md +225 -0
- package/control-plane/scripts/skills/frontend-design/LICENSE.txt +177 -0
- package/control-plane/scripts/skills/frontend-design/SKILL.md +71 -0
- package/control-plane/scripts/skills/hallmark/SKILL.md +558 -0
- package/control-plane/scripts/skills/hallmark/references/anti-patterns.md +418 -0
- package/control-plane/scripts/skills/hallmark/references/assets.md +406 -0
- package/control-plane/scripts/skills/hallmark/references/color.md +95 -0
- package/control-plane/scripts/skills/hallmark/references/component-cookbook.md +263 -0
- package/control-plane/scripts/skills/hallmark/references/components/c1-outlined-chip.md +12 -0
- package/control-plane/scripts/skills/hallmark/references/components/c2-inline-form-as-cta.md +16 -0
- package/control-plane/scripts/skills/hallmark/references/components/c3-typographic-link.md +8 -0
- package/control-plane/scripts/skills/hallmark/references/components/c4-sticky-bottom-bar.md +16 -0
- package/control-plane/scripts/skills/hallmark/references/components/f1-bento-grid.md +20 -0
- package/control-plane/scripts/skills/hallmark/references/components/f2-sticky-scroll-stack.md +20 -0
- package/control-plane/scripts/skills/hallmark/references/components/f3-tabular-spec-sheet.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/f4-step-sequence.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/f5-annotated-screenshot.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/f6-product-card-grid.md +41 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft1-mast-headed.md +13 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft2-inline-rule-single-line.md +10 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft3-index-style-category-list.md +12 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft4-dense-typographic.md +10 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft5-statement.md +21 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft6-letter-close.md +19 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft7-newsletter-first.md +27 -0
- package/control-plane/scripts/skills/hallmark/references/components/ft8-marquee-scroll.md +25 -0
- package/control-plane/scripts/skills/hallmark/references/components/h1-marquee.md +15 -0
- package/control-plane/scripts/skills/hallmark/references/components/h2-split-diptych.md +15 -0
- package/control-plane/scripts/skills/hallmark/references/components/h3-quote-led.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/h4-stat-led.md +14 -0
- package/control-plane/scripts/skills/hallmark/references/components/h5-letter-hero.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/h6-photographic-fold.md +16 -0
- package/control-plane/scripts/skills/hallmark/references/components/h7-demo-video-clipped-by-viewport-edge.md +27 -0
- package/control-plane/scripts/skills/hallmark/references/components/h8-mockup-split-browser-framed.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/components/h9-custom-illustration-centerpiece.md +27 -0
- package/control-plane/scripts/skills/hallmark/references/components/n1-wordmark-2-links.md +12 -0
- package/control-plane/scripts/skills/hallmark/references/components/n10-floating-on-scroll-morph.md +19 -0
- package/control-plane/scripts/skills/hallmark/references/components/n11-mega-menu.md +40 -0
- package/control-plane/scripts/skills/hallmark/references/components/n12-banner-retract.md +34 -0
- package/control-plane/scripts/skills/hallmark/references/components/n13-inline-cmdk-pill.md +39 -0
- package/control-plane/scripts/skills/hallmark/references/components/n1b-saas-three-section.md +35 -0
- package/control-plane/scripts/skills/hallmark/references/components/n2-floating-chip.md +14 -0
- package/control-plane/scripts/skills/hallmark/references/components/n3-side-rail.md +14 -0
- package/control-plane/scripts/skills/hallmark/references/components/n4-hidden-behind-k.md +9 -0
- package/control-plane/scripts/skills/hallmark/references/components/n5-floating-pill.md +28 -0
- package/control-plane/scripts/skills/hallmark/references/components/n6-newspaper-masthead.md +24 -0
- package/control-plane/scripts/skills/hallmark/references/components/n7-brutal-slab.md +22 -0
- package/control-plane/scripts/skills/hallmark/references/components/n8-terminal-command.md +21 -0
- package/control-plane/scripts/skills/hallmark/references/components/n9-edge-aligned-minimal.md +17 -0
- package/control-plane/scripts/skills/hallmark/references/components/s1-left-margin-numbered.md +15 -0
- package/control-plane/scripts/skills/hallmark/references/components/s2-hanging.md +13 -0
- package/control-plane/scripts/skills/hallmark/references/components/s3-sticky-pinned.md +19 -0
- package/control-plane/scripts/skills/hallmark/references/components/s4-inline-no-break.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/s5-bottom-anchored.md +13 -0
- package/control-plane/scripts/skills/hallmark/references/components/t1-pull-quote-with-marginalia.md +12 -0
- package/control-plane/scripts/skills/hallmark/references/components/t2-logo-wall-hairline.md +19 -0
- package/control-plane/scripts/skills/hallmark/references/components/t3-single-huge-quote.md +11 -0
- package/control-plane/scripts/skills/hallmark/references/components/t4-numbered-stat-strip.md +14 -0
- package/control-plane/scripts/skills/hallmark/references/contract.md +25 -0
- package/control-plane/scripts/skills/hallmark/references/copy.md +182 -0
- package/control-plane/scripts/skills/hallmark/references/custom-craft.md +626 -0
- package/control-plane/scripts/skills/hallmark/references/custom-theme.md +367 -0
- package/control-plane/scripts/skills/hallmark/references/design-md.md +116 -0
- package/control-plane/scripts/skills/hallmark/references/export-formats.md +329 -0
- package/control-plane/scripts/skills/hallmark/references/floating-nav.md +89 -0
- package/control-plane/scripts/skills/hallmark/references/genres/atmospheric.md +69 -0
- package/control-plane/scripts/skills/hallmark/references/genres/editorial.md +72 -0
- package/control-plane/scripts/skills/hallmark/references/genres/modern-minimal.md +71 -0
- package/control-plane/scripts/skills/hallmark/references/genres/playful.md +70 -0
- package/control-plane/scripts/skills/hallmark/references/hero-enrichment.md +475 -0
- package/control-plane/scripts/skills/hallmark/references/imagery-kit.md +170 -0
- package/control-plane/scripts/skills/hallmark/references/interaction-and-states.md +208 -0
- package/control-plane/scripts/skills/hallmark/references/layout-and-space.md +112 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/01-bento-grid.md +35 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/02-long-document.md +34 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/03-marquee-hero.md +31 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/04-stat-led.md +34 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/05-workbench.md +32 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/06-conversational-faq.md +33 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/07-manifesto.md +32 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/08-photographic.md +34 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/09-quote-led.md +32 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/10-specimen.md +32 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/11-catalogue.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/12-letter.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/13-index-first.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/14-narrative-workflow.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/15-split-studio.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/16-feature-stack.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/17-type-specimen.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/18-portfolio-grid.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/19-map-diagram.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/20-ecosystem-index.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures/21-component-playground.md +23 -0
- package/control-plane/scripts/skills/hallmark/references/macrostructures.md +89 -0
- package/control-plane/scripts/skills/hallmark/references/microinteractions.md +258 -0
- package/control-plane/scripts/skills/hallmark/references/motion.md +109 -0
- package/control-plane/scripts/skills/hallmark/references/preview-examples.md +49 -0
- package/control-plane/scripts/skills/hallmark/references/responsive.md +138 -0
- package/control-plane/scripts/skills/hallmark/references/slop-test.md +192 -0
- package/control-plane/scripts/skills/hallmark/references/structure.md +160 -0
- package/control-plane/scripts/skills/hallmark/references/study.md +509 -0
- package/control-plane/scripts/skills/hallmark/references/themes/carnival.md +301 -0
- package/control-plane/scripts/skills/hallmark/references/themes/cobalt.md +146 -0
- package/control-plane/scripts/skills/hallmark/references/themes/grid.md +161 -0
- package/control-plane/scripts/skills/hallmark/references/themes/hum.md +403 -0
- package/control-plane/scripts/skills/hallmark/references/themes/lumen.md +478 -0
- package/control-plane/scripts/skills/hallmark/references/typography.md +243 -0
- package/control-plane/scripts/skills/hallmark/references/upstream/recipes.md +186 -0
- package/control-plane/scripts/skills/hallmark/references/upstream/study-examples.md +176 -0
- package/control-plane/scripts/skills/hallmark/references/upstream/tokens.css +1221 -0
- package/control-plane/scripts/skills/hallmark/references/verbs/audit.md +25 -0
- package/control-plane/scripts/skills/hallmark/references/verbs/redesign.md +269 -0
- package/control-plane/scripts/skills/human-comms/SKILL.md +29 -0
- package/control-plane/scripts/skills/index.mjs +432 -0
- package/control-plane/scripts/skills/internal-comms/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/internal-comms/SKILL.md +32 -0
- package/control-plane/scripts/skills/internal-comms/examples/3p-updates.md +47 -0
- package/control-plane/scripts/skills/internal-comms/examples/company-newsletter.md +65 -0
- package/control-plane/scripts/skills/internal-comms/examples/faq-answers.md +30 -0
- package/control-plane/scripts/skills/internal-comms/examples/general-comms.md +16 -0
- package/control-plane/scripts/skills/mcp-adapter.mjs +94 -0
- package/control-plane/scripts/skills/mcp-builder/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/mcp-builder/SKILL.md +236 -0
- package/control-plane/scripts/skills/mcp-builder/reference/evaluation.md +602 -0
- package/control-plane/scripts/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/control-plane/scripts/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/control-plane/scripts/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/control-plane/scripts/skills/mcp-builder/scripts/connections.py +151 -0
- package/control-plane/scripts/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/control-plane/scripts/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/control-plane/scripts/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/control-plane/scripts/skills/ponytail/SKILL.md +120 -0
- package/control-plane/scripts/skills/ponytail-audit/SKILL.md +41 -0
- package/control-plane/scripts/skills/ponytail-debt/SKILL.md +44 -0
- package/control-plane/scripts/skills/ponytail-gain/SKILL.md +50 -0
- package/control-plane/scripts/skills/ponytail-help/SKILL.md +71 -0
- package/control-plane/scripts/skills/ponytail-review/SKILL.md +57 -0
- package/control-plane/scripts/skills/receiving-code-review/SKILL.md +205 -0
- package/control-plane/scripts/skills/requesting-code-review/SKILL.md +95 -0
- package/control-plane/scripts/skills/requesting-code-review/code-reviewer.md +198 -0
- package/control-plane/scripts/skills/skill-creator/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/skill-creator/SKILL.md +485 -0
- package/control-plane/scripts/skills/skill-creator/agents/analyzer.md +274 -0
- package/control-plane/scripts/skills/skill-creator/agents/comparator.md +202 -0
- package/control-plane/scripts/skills/skill-creator/agents/grader.md +223 -0
- package/control-plane/scripts/skills/skill-creator/assets/eval_review.html +146 -0
- package/control-plane/scripts/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/control-plane/scripts/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/control-plane/scripts/skills/skill-creator/references/schemas.md +430 -0
- package/control-plane/scripts/skills/skill-creator/scripts/__init__.py +0 -0
- package/control-plane/scripts/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/control-plane/scripts/skills/skill-creator/scripts/generate_report.py +326 -0
- package/control-plane/scripts/skills/skill-creator/scripts/improve_description.py +247 -0
- package/control-plane/scripts/skills/skill-creator/scripts/package_skill.py +136 -0
- package/control-plane/scripts/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/control-plane/scripts/skills/skill-creator/scripts/run_eval.py +310 -0
- package/control-plane/scripts/skills/skill-creator/scripts/run_loop.py +328 -0
- package/control-plane/scripts/skills/skill-creator/scripts/utils.py +47 -0
- package/control-plane/scripts/skills/slack-gif-creator/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/slack-gif-creator/SKILL.md +254 -0
- package/control-plane/scripts/skills/slack-gif-creator/core/easing.py +234 -0
- package/control-plane/scripts/skills/slack-gif-creator/core/frame_composer.py +176 -0
- package/control-plane/scripts/skills/slack-gif-creator/core/gif_builder.py +269 -0
- package/control-plane/scripts/skills/slack-gif-creator/core/validators.py +136 -0
- package/control-plane/scripts/skills/slack-gif-creator/requirements.txt +4 -0
- package/control-plane/scripts/skills/sources.json +401 -0
- package/control-plane/scripts/skills/sources.lock.json +416 -0
- package/control-plane/scripts/skills/subagent-driven-development/SKILL.md +570 -0
- package/control-plane/scripts/skills/subagent-driven-development/implementer-prompt.md +154 -0
- package/control-plane/scripts/skills/subagent-driven-development/re-review-prompt.md +115 -0
- package/control-plane/scripts/skills/subagent-driven-development/scripts/review-package +53 -0
- package/control-plane/scripts/skills/subagent-driven-development/scripts/sdd-workspace +82 -0
- package/control-plane/scripts/skills/subagent-driven-development/scripts/task-brief +43 -0
- package/control-plane/scripts/skills/subagent-driven-development/task-reviewer-prompt.md +207 -0
- package/control-plane/scripts/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/control-plane/scripts/skills/systematic-debugging/SKILL.md +283 -0
- package/control-plane/scripts/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/control-plane/scripts/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/control-plane/scripts/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/control-plane/scripts/skills/systematic-debugging/find-polluter.sh +72 -0
- package/control-plane/scripts/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/control-plane/scripts/skills/systematic-debugging/test-academic.md +14 -0
- package/control-plane/scripts/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/control-plane/scripts/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/control-plane/scripts/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/control-plane/scripts/skills/test-driven-development/SKILL.md +330 -0
- package/control-plane/scripts/skills/test-driven-development/writing-good-tests.md +198 -0
- package/control-plane/scripts/skills/theme-factory/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/theme-factory/SKILL.md +59 -0
- package/control-plane/scripts/skills/theme-factory/theme-showcase.pdf +0 -0
- package/control-plane/scripts/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/desert-rose.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/golden-hour.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/control-plane/scripts/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/control-plane/scripts/skills/using-git-worktrees/SKILL.md +167 -0
- package/control-plane/scripts/skills/verification-before-completion/SKILL.md +120 -0
- package/control-plane/scripts/skills/web-artifacts-builder/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/web-artifacts-builder/SKILL.md +74 -0
- package/control-plane/scripts/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/control-plane/scripts/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/control-plane/scripts/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/control-plane/scripts/skills/webapp-testing/LICENSE.txt +202 -0
- package/control-plane/scripts/skills/webapp-testing/SKILL.md +96 -0
- package/control-plane/scripts/skills/webapp-testing/examples/console_logging.py +35 -0
- package/control-plane/scripts/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/control-plane/scripts/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/control-plane/scripts/skills/webapp-testing/scripts/with_server.py +106 -0
- package/control-plane/scripts/skills/writing-plans/SKILL.md +192 -0
- package/control-plane/scripts/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/control-plane/scripts/skills/writing-skills/SKILL.md +681 -0
- package/control-plane/scripts/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/control-plane/scripts/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/control-plane/scripts/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/control-plane/scripts/skills/writing-skills/persuasion-principles.md +187 -0
- package/control-plane/scripts/skills/writing-skills/render-graphs.js +169 -0
- package/control-plane/scripts/skills/writing-skills/testing-skills-with-subagents.md +384 -0
- package/control-plane/scripts/smoke-mcp-schemas.mjs +30 -0
- package/control-plane/scripts/surface-config.mjs +45 -0
- package/control-plane/scripts/sync-skills.mjs +370 -0
- package/control-plane/scripts/tool-metrics.mjs +74 -0
- package/control-plane/scripts/tool-risk.mjs +156 -0
- package/control-plane/scripts/tool-surface-stability.mjs +38 -0
- package/control-plane/scripts/upstreams/catalog-cache.mjs +28 -0
- package/control-plane/scripts/upstreams/config.mjs +158 -0
- package/control-plane/scripts/upstreams/diagnostics.mjs +21 -0
- package/control-plane/scripts/upstreams/http-client.mjs +67 -0
- package/control-plane/scripts/upstreams/manager.mjs +535 -0
- package/control-plane/scripts/upstreams/names.mjs +55 -0
- package/control-plane/scripts/upstreams/presets.mjs +60 -0
- package/control-plane/scripts/upstreams/resource-uri.mjs +29 -0
- package/control-plane/scripts/upstreams/stdio-client.mjs +73 -0
- package/control-plane/scripts/workspace-registry.mjs +147 -0
- package/dist/context/authorization.d.ts +5 -0
- package/dist/context/authorization.js +70 -0
- package/dist/context/capture.d.ts +46 -0
- package/dist/context/capture.js +187 -0
- package/dist/context/cli.d.ts +47 -0
- package/dist/context/cli.js +287 -0
- package/dist/context/device-adapter.d.ts +102 -0
- package/dist/context/device-adapter.js +79 -0
- package/dist/context/gateway.d.ts +354 -0
- package/dist/context/gateway.js +50 -0
- package/dist/context/graph.d.ts +63 -0
- package/dist/context/graph.js +214 -0
- package/dist/context/importer.d.ts +8 -0
- package/dist/context/importer.js +69 -0
- package/dist/context/indexer.d.ts +14 -0
- package/dist/context/indexer.js +57 -0
- package/dist/context/migrations/index.d.ts +4 -0
- package/dist/context/migrations/index.js +87 -0
- package/dist/context/redact.d.ts +15 -0
- package/dist/context/redact.js +43 -0
- package/dist/context/repositories.d.ts +9 -0
- package/dist/context/repositories.js +45 -0
- package/dist/context/search.d.ts +63 -0
- package/dist/context/search.js +207 -0
- package/dist/context/service.d.ts +278 -0
- package/dist/context/service.js +160 -0
- package/dist/context/store.d.ts +134 -0
- package/dist/context/store.js +722 -0
- package/dist/context/text.d.ts +4 -0
- package/dist/context/text.js +14 -0
- package/dist/context/tool-contract.d.ts +534 -0
- package/dist/context/tool-contract.js +45 -0
- package/dist/device/core.d.ts +29 -0
- package/dist/device/core.js +66 -0
- package/dist/device/device.d.ts +5 -0
- package/dist/device/device.js +94 -37
- package/dist/device/gateway-channel.d.ts +8 -1
- package/dist/device/gateway-channel.js +51 -3
- package/dist/device/gateway-tool-adapter.d.ts +11 -3
- package/dist/device/gateway-tool-adapter.js +141 -98
- package/dist/device/official-trust.d.ts +12 -0
- package/dist/device/official-trust.js +25 -1
- package/dist/device/runtime-owner.js +9 -1
- package/dist/distribution.d.ts +4 -0
- package/dist/distribution.js +8 -0
- package/dist/handlers/filesystem-handlers.js +53 -37
- package/dist/handlers/search-handlers.d.ts +1 -0
- package/dist/handlers/search-handlers.js +51 -1
- package/dist/log-palace/cli.d.ts +7 -0
- package/dist/log-palace/cli.js +89 -0
- package/dist/log-palace/formats.d.ts +26 -0
- package/dist/log-palace/formats.js +126 -0
- package/dist/log-palace/store.d.ts +129 -0
- package/dist/log-palace/store.js +856 -0
- package/dist/mcp-device.d.ts +1 -1
- package/dist/mcp-device.js +28 -6
- package/dist/npm-scripts/remote.js +1 -0
- package/dist/platform/activity-journal.d.ts +16 -0
- package/dist/platform/activity-journal.js +68 -0
- package/dist/platform/cli.d.ts +1 -0
- package/dist/platform/cli.js +300 -0
- package/dist/platform/coordination-lock.d.ts +45 -0
- package/dist/platform/coordination-lock.js +233 -0
- package/dist/platform/device-runtime.d.ts +16 -0
- package/dist/platform/device-runtime.js +83 -0
- package/dist/platform/knowledge-contract.d.ts +46 -0
- package/dist/platform/knowledge-contract.js +1 -0
- package/dist/platform/knowledge-mcp.d.ts +29 -0
- package/dist/platform/knowledge-mcp.js +95 -0
- package/dist/platform/knowledge-router.d.ts +64 -0
- package/dist/platform/knowledge-router.js +320 -0
- package/dist/platform/plugin-child.d.ts +1 -0
- package/dist/platform/plugin-child.js +115 -0
- package/dist/platform/plugin-contract.d.ts +76 -0
- package/dist/platform/plugin-contract.js +53 -0
- package/dist/platform/plugin-driver.d.ts +8 -0
- package/dist/platform/plugin-driver.js +443 -0
- package/dist/platform/plugin-host.d.ts +88 -0
- package/dist/platform/plugin-host.js +817 -0
- package/dist/platform/plugin-policy.d.ts +3 -0
- package/dist/platform/plugin-policy.js +29 -0
- package/dist/platform/plugin-services.d.ts +14 -0
- package/dist/platform/plugin-services.js +32 -0
- package/dist/platform/process-identity.d.ts +9 -0
- package/dist/platform/process-identity.js +68 -0
- package/dist/platform/runtime-lease.d.ts +4 -0
- package/dist/platform/runtime-lease.js +58 -0
- package/dist/platform/runtime-root.d.ts +9 -0
- package/dist/platform/runtime-root.js +61 -0
- package/dist/platform/state-backup.d.ts +92 -0
- package/dist/platform/state-backup.js +399 -0
- package/dist/plugins/reference/plugin.d.ts +3 -0
- package/dist/plugins/reference/plugin.js +13 -0
- package/dist/search-manager.d.ts +6 -0
- package/dist/search-manager.js +123 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.js +7 -3
- package/dist/terminal-manager.d.ts +16 -0
- package/dist/terminal-manager.js +137 -42
- package/dist/tool-dispatcher.d.ts +11 -0
- package/dist/tool-dispatcher.js +228 -0
- package/dist/tools/edit.js +72 -1
- package/dist/tools/filesystem.d.ts +1 -1
- package/dist/tools/filesystem.js +2 -2
- package/dist/tools/improved-process-tools.js +91 -108
- package/dist/tools/schemas.d.ts +94 -2
- package/dist/tools/schemas.js +20 -6
- package/dist/types.d.ts +8 -0
- package/dist/utils/output-budget.d.ts +6 -0
- package/dist/utils/output-budget.js +15 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +29 -6
- package/skills/mcp-device-context/SKILL.md +40 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Close one task of an inline plan execution in a single call: run the task's
|
|
3
|
+
# test command, keep its full output in the workspace, print the tail, and —
|
|
4
|
+
# only if the command succeeded — append the completion line to the ledger.
|
|
5
|
+
# A failing command records nothing: the task is not complete.
|
|
6
|
+
#
|
|
7
|
+
# Usage: task-done PLAN_FILE TASK_NUMBER BASE -- TEST_COMMAND [ARGS...]
|
|
8
|
+
# BASE is the SHA task-start printed; the completion line records BASE..HEAD.
|
|
9
|
+
# Exit: the test command's exit status.
|
|
10
|
+
set -euo pipefail
|
|
11
|
+
|
|
12
|
+
if [ $# -lt 5 ] || [ "$4" != "--" ]; then
|
|
13
|
+
echo "usage: task-done PLAN_FILE TASK_NUMBER BASE -- TEST_COMMAND [ARGS...]" >&2
|
|
14
|
+
exit 2
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
plan=$1
|
|
18
|
+
n=$2
|
|
19
|
+
base=$3
|
|
20
|
+
shift 4
|
|
21
|
+
sdd="$(cd "$(dirname "$0")/../../subagent-driven-development/scripts" && pwd)"
|
|
22
|
+
|
|
23
|
+
git rev-parse --verify --quiet "$base" >/dev/null || { echo "bad BASE: $base" >&2; exit 2; }
|
|
24
|
+
|
|
25
|
+
dir=$("$sdd/sdd-workspace" "$plan")
|
|
26
|
+
log="$dir/task-${n}-tests.log"
|
|
27
|
+
ledger="$dir/progress.md"
|
|
28
|
+
|
|
29
|
+
# Render the command the way a person would type it, for the ledger line.
|
|
30
|
+
cmd=""
|
|
31
|
+
for a in "$@"; do
|
|
32
|
+
case "$a" in
|
|
33
|
+
*[[:space:]\"\;\|\&]*) cmd="$cmd '$a'" ;;
|
|
34
|
+
*) cmd="$cmd $a" ;;
|
|
35
|
+
esac
|
|
36
|
+
done
|
|
37
|
+
cmd=${cmd# }
|
|
38
|
+
|
|
39
|
+
rc=0
|
|
40
|
+
"$@" > "$log" 2>&1 || rc=$?
|
|
41
|
+
|
|
42
|
+
tail -n 5 "$log"
|
|
43
|
+
if [ "$rc" -ne 0 ]; then
|
|
44
|
+
echo "task-done: test command exited $rc; Task $n NOT recorded (full output: $log)" >&2
|
|
45
|
+
exit "$rc"
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
last=$(grep -v '^[[:space:]]*$' "$log" | tail -n 1)
|
|
49
|
+
[ -f "$ledger" ] || printf '# SDD ledger — plan: %s\n' "$plan" > "$ledger"
|
|
50
|
+
line="Task $n: complete (commits $(git rev-parse --short=7 "$base")..$(git rev-parse --short=7 HEAD), tests: $cmd → $last)"
|
|
51
|
+
printf '%s\n' "$line" >> "$ledger"
|
|
52
|
+
echo "ledger: $line"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Begin one task of an inline plan execution in a single call: extract the
|
|
3
|
+
# task's brief (via subagent-driven-development's task-brief, so both skills
|
|
4
|
+
# share one workspace) and record BASE, the commit the task's review range is
|
|
5
|
+
# cut from. One tool call instead of two, because every call in an inline
|
|
6
|
+
# session is a turn that re-reads the whole context.
|
|
7
|
+
#
|
|
8
|
+
# Usage: task-start PLAN_FILE TASK_NUMBER
|
|
9
|
+
# Prints:
|
|
10
|
+
# brief: <path to the task's brief file>
|
|
11
|
+
# base: <full SHA of HEAD>
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
if [ $# -ne 2 ]; then
|
|
15
|
+
echo "usage: task-start PLAN_FILE TASK_NUMBER" >&2
|
|
16
|
+
exit 2
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
plan=$1
|
|
20
|
+
n=$2
|
|
21
|
+
sdd="$(cd "$(dirname "$0")/../../subagent-driven-development/scripts" && pwd)"
|
|
22
|
+
|
|
23
|
+
out=$("$sdd/task-brief" "$plan" "$n")
|
|
24
|
+
brief=$(printf '%s\n' "$out" | sed -n 's/^wrote \(.*\): [0-9][0-9]* lines$/\1/p')
|
|
25
|
+
[ -n "$brief" ] || { echo "task-brief did not report a path: $out" >&2; exit 1; }
|
|
26
|
+
|
|
27
|
+
echo "brief: $brief"
|
|
28
|
+
echo "base: $(git rev-parse HEAD)"
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: extract-design-md
|
|
3
|
+
description: >-
|
|
4
|
+
Use when analyzing an existing frontend source tree to extract design tokens, component conventions, and visual language into DESIGN.md without rendering or redesigning the interface.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- "stitch*:*"
|
|
7
|
+
- "Bash"
|
|
8
|
+
- "Read"
|
|
9
|
+
- "Write"
|
|
10
|
+
- "web_fetch"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Extract Design System from Frontend Code
|
|
14
|
+
|
|
15
|
+
Analyze frontend source code to extract a comprehensive design system document
|
|
16
|
+
(DESIGN.md) that captures the project's visual language — colors, typography,
|
|
17
|
+
spacing, component patterns, and layout principles — directly from the source
|
|
18
|
+
files, without needing to build or render the application.
|
|
19
|
+
|
|
20
|
+
## Why This Exists
|
|
21
|
+
|
|
22
|
+
The `design-md` skill works from rendered HTML. But often you have a codebase
|
|
23
|
+
and want to understand its design system before you can even run the app —
|
|
24
|
+
maybe dependencies are missing, the build is broken, or you just want a quick
|
|
25
|
+
audit. This skill reads the source files themselves: stylesheets, component
|
|
26
|
+
files, theme configs, and Tailwind setups. It's faster and works anywhere.
|
|
27
|
+
|
|
28
|
+
## When to Use
|
|
29
|
+
|
|
30
|
+
- User has a frontend codebase and wants to extract or document its design system
|
|
31
|
+
- User wants to migrate a project's visual identity into Stitch
|
|
32
|
+
- User asks to "audit the styling" or "understand the design language" of a repo
|
|
33
|
+
- User wants to create a DESIGN.md from existing source code
|
|
34
|
+
- The app can't be built/rendered but the source is available
|
|
35
|
+
- User wants to unify or reconcile inconsistent styles across a codebase
|
|
36
|
+
|
|
37
|
+
## Prerequisites
|
|
38
|
+
|
|
39
|
+
- Access to the frontend project's source directory
|
|
40
|
+
- No build or runtime dependencies needed — this skill reads source files only
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
### Phase 1: Project Discovery
|
|
47
|
+
|
|
48
|
+
Start by understanding what you're working with. This determines which
|
|
49
|
+
extraction patterns to use.
|
|
50
|
+
|
|
51
|
+
#### 1. Detect the Framework and Stack
|
|
52
|
+
|
|
53
|
+
Scan the project root for telltale files:
|
|
54
|
+
|
|
55
|
+
| Signal File | Framework / Tool |
|
|
56
|
+
|:---|:---|
|
|
57
|
+
| `package.json` with `react` | React / Next.js |
|
|
58
|
+
| `package.json` with `vue` | Vue / Nuxt |
|
|
59
|
+
| `package.json` with `svelte` | Svelte / SvelteKit |
|
|
60
|
+
| `package.json` with `@angular/core` | Angular |
|
|
61
|
+
| `tailwind.config.js/ts` | Tailwind CSS |
|
|
62
|
+
| `postcss.config.js` | PostCSS pipeline |
|
|
63
|
+
| `styled-components` or `@emotion` in deps | CSS-in-JS |
|
|
64
|
+
| `.css` / `.scss` / `.less` files only | Plain CSS / SASS |
|
|
65
|
+
| `theme.js` / `theme.ts` / `tokens.js` | Design token files |
|
|
66
|
+
|
|
67
|
+
Read `package.json` first — it reveals the framework, CSS tooling, and any
|
|
68
|
+
design-token libraries (e.g., `style-dictionary`, `@chakra-ui/react`,
|
|
69
|
+
`@mui/material`, `ant-design`). This context tells you *where* to look for
|
|
70
|
+
styling information.
|
|
71
|
+
|
|
72
|
+
#### 2. Map the Source Tree
|
|
73
|
+
|
|
74
|
+
Identify the key directories and files you'll analyze:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
src/
|
|
78
|
+
├── components/ ← Component-level styles
|
|
79
|
+
├── styles/ ← Global stylesheets
|
|
80
|
+
├── theme/ ← Theme definitions, tokens
|
|
81
|
+
├── assets/ ← Fonts, images
|
|
82
|
+
├── app.css ← Root styles
|
|
83
|
+
└── index.css ← Entry CSS
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Also check for:
|
|
87
|
+
- `tailwind.config.js` / `tailwind.config.ts` — Custom colors, fonts, spacing
|
|
88
|
+
- `globals.css` / `global.css` — CSS custom properties (variables)
|
|
89
|
+
- Any `theme.*` or `tokens.*` files
|
|
90
|
+
- Component library config (e.g., `chakra-theme.ts`, `vuetify.config.ts`)
|
|
91
|
+
|
|
92
|
+
#### 3. Read Framework-Specific Guidance
|
|
93
|
+
|
|
94
|
+
Consult the appropriate reference for extraction patterns:
|
|
95
|
+
|
|
96
|
+
- **React / Next.js / Tailwind** → [references/react-tailwind.md](references/react-tailwind.md)
|
|
97
|
+
- **Vue / Nuxt** → [references/vue.md](references/vue.md)
|
|
98
|
+
- **Svelte / SvelteKit** → [references/svelte.md](references/svelte.md)
|
|
99
|
+
- **Angular** → [references/angular.md](references/angular.md)
|
|
100
|
+
- **Plain CSS / SASS / Less** → [references/plain-css.md](references/plain-css.md)
|
|
101
|
+
|
|
102
|
+
These references contain framework-specific patterns for locating colors,
|
|
103
|
+
typography, spacing, and component styles. Read the one that matches before
|
|
104
|
+
proceeding.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Phase 2: Deep Extraction
|
|
109
|
+
|
|
110
|
+
Work through each design dimension systematically. For each one, gather raw
|
|
111
|
+
data from the source files, then synthesize it into descriptive language.
|
|
112
|
+
|
|
113
|
+
The goal isn't to dump every CSS property — it's to understand the *intent*
|
|
114
|
+
behind the styling choices and describe them in human, editorial language that
|
|
115
|
+
another designer (or Stitch) can use to recreate the same visual feel.
|
|
116
|
+
|
|
117
|
+
#### 1. Visual Theme & Atmosphere
|
|
118
|
+
|
|
119
|
+
Read the broadest styling first to understand the overall mood:
|
|
120
|
+
|
|
121
|
+
- **Root background**: What's the `body` or root element background? Light
|
|
122
|
+
cream (#f-range) signals airy/clean; dark (#0-#2 range) signals moody/dramatic.
|
|
123
|
+
- **Whitespace philosophy**: Are spacing values generous (32px+) or tight?
|
|
124
|
+
Check padding/margin values on root containers, section wrappers, and card components.
|
|
125
|
+
- **Density**: Count the components per page/section. Few with space = minimal;
|
|
126
|
+
many packed tight = information-dense.
|
|
127
|
+
- **Color temperature**: Are the neutrals warm (creams, tans) or cool (blue-grays, slates)?
|
|
128
|
+
- **Overall feel**: Synthesize into 1-2 rich sentences that capture the mood.
|
|
129
|
+
|
|
130
|
+
Look for these signals in the source:
|
|
131
|
+
|
|
132
|
+
| Source Location | What It Tells You |
|
|
133
|
+
|:---|:---|
|
|
134
|
+
| Root `background-color` or Tailwind `bg-*` on layouts | Overall lightness/darkness |
|
|
135
|
+
| Spacing scale in Tailwind config or CSS vars | Whitespace philosophy |
|
|
136
|
+
| Number of components vs. wrapper padding | Density |
|
|
137
|
+
| Custom property naming (`--warm-*` vs `--cool-*`) | Color temperature intent |
|
|
138
|
+
| Comments in theme files | Design intent in the developer's own words |
|
|
139
|
+
|
|
140
|
+
#### 2. Color Palette & Roles
|
|
141
|
+
|
|
142
|
+
Extract every unique color from the codebase and assign functional roles.
|
|
143
|
+
Search across all layers:
|
|
144
|
+
|
|
145
|
+
**Where to find colors:**
|
|
146
|
+
|
|
147
|
+
| Layer | What to Search |
|
|
148
|
+
|:---|:---|
|
|
149
|
+
| CSS custom properties | `--color-*`, `--primary`, `--bg-*` |
|
|
150
|
+
| Tailwind config | `theme.extend.colors` |
|
|
151
|
+
| Theme/token files | Color objects, palettes |
|
|
152
|
+
| Component styles | `background-color`, `color`, `border-color` |
|
|
153
|
+
| Inline/scoped styles | `bg-*`, `text-*` classes in templates |
|
|
154
|
+
| CSS-in-JS theme objects | `colors`, `palette` keys |
|
|
155
|
+
|
|
156
|
+
**How to organize:** Group colors by function, not by hue:
|
|
157
|
+
|
|
158
|
+
1. **Primary Foundation** — Background and surface colors
|
|
159
|
+
2. **Accent & Interactive** — CTA buttons, active states, links
|
|
160
|
+
3. **Typography & Text Hierarchy** — Primary, secondary, tertiary text
|
|
161
|
+
4. **Functional States** — Success, error, warning, info
|
|
162
|
+
|
|
163
|
+
For each color, create a descriptive name that evokes the color's character
|
|
164
|
+
rather than its raw hex value:
|
|
165
|
+
|
|
166
|
+
- ❌ `#294056` → "Blue"
|
|
167
|
+
- ✅ `#294056` → **"Deep Muted Teal-Navy"** — Primary CTA, active navigation
|
|
168
|
+
|
|
169
|
+
**Deduplication matters.** Codebases often have near-duplicate colors (e.g.,
|
|
170
|
+
`#333` and `#2C2C2C`). Consolidate them under one name that best represents
|
|
171
|
+
the intended color.
|
|
172
|
+
|
|
173
|
+
#### 3. Typography Rules
|
|
174
|
+
|
|
175
|
+
Extract the complete typographic system:
|
|
176
|
+
|
|
177
|
+
**Font families:**
|
|
178
|
+
- Check CSS `font-family`, Tailwind `fontFamily`, Google Fonts links, or
|
|
179
|
+
local `@font-face` declarations.
|
|
180
|
+
- Note the **character** of each font: geometric vs humanist, serif vs sans,
|
|
181
|
+
the feeling it evokes.
|
|
182
|
+
|
|
183
|
+
**Type scale (hierarchy):**
|
|
184
|
+
- Find every heading level (H1-H6) and body text, noting:
|
|
185
|
+
- `font-size` (in rem or px)
|
|
186
|
+
- `font-weight` (numeric value + descriptive name)
|
|
187
|
+
- `letter-spacing` (and why — elegance? compactness?)
|
|
188
|
+
- `line-height` (generous for readability? tight for display?)
|
|
189
|
+
- Map component usage: Which heading level do product cards use? What about
|
|
190
|
+
hero sections?
|
|
191
|
+
|
|
192
|
+
**Spacing principles:**
|
|
193
|
+
- How does text spacing relate to the overall spacing scale?
|
|
194
|
+
- Letter-spacing patterns on headings vs body
|
|
195
|
+
- Line-height philosophy (generous/relaxed for body, tighter for display)
|
|
196
|
+
|
|
197
|
+
#### 4. Component Stylings
|
|
198
|
+
|
|
199
|
+
Analyze the 4-5 most important UI primitives:
|
|
200
|
+
|
|
201
|
+
**Buttons:**
|
|
202
|
+
- Corner radius (and what it communicates — playful? professional? minimal?)
|
|
203
|
+
- Color scheme for primary, secondary, and ghost variants
|
|
204
|
+
- Hover/focus/active states and transition timing
|
|
205
|
+
- Padding ratios (horizontal vs vertical)
|
|
206
|
+
|
|
207
|
+
**Cards / Containers:**
|
|
208
|
+
- Corner radius (often different from buttons — slightly rounder)
|
|
209
|
+
- Shadow strategy: flat, subtle hover shadows, or always elevated?
|
|
210
|
+
- Border treatment: hairline borders, colored accents, or none?
|
|
211
|
+
- Internal padding (generous or compact?)
|
|
212
|
+
- Image treatment within cards (full-bleed, padded, rounded?)
|
|
213
|
+
|
|
214
|
+
**Navigation:**
|
|
215
|
+
- Layout pattern (horizontal bar, vertical sidebar, drawer)
|
|
216
|
+
- Typography treatment (uppercase, letter-spacing, weight)
|
|
217
|
+
- Active/hover state indicators (underline, color, background)
|
|
218
|
+
- Mobile behavior (hamburger, bottom nav, drawer)
|
|
219
|
+
|
|
220
|
+
**Inputs & Forms:**
|
|
221
|
+
- Border style and focus state behavior
|
|
222
|
+
- Corner style consistency with buttons
|
|
223
|
+
- Padding and touch-target sizing
|
|
224
|
+
|
|
225
|
+
**Domain-Specific Components:**
|
|
226
|
+
- Identify 1-2 components unique to this project (e.g., product cards,
|
|
227
|
+
dashboard widgets, chat bubbles) and describe their styling patterns.
|
|
228
|
+
|
|
229
|
+
#### 5. Layout Principles
|
|
230
|
+
|
|
231
|
+
Extract the structural system:
|
|
232
|
+
|
|
233
|
+
**Grid & Structure:**
|
|
234
|
+
- Max content width (from `max-width` on containers)
|
|
235
|
+
- Column system (CSS Grid, Flexbox patterns, defined breakpoints)
|
|
236
|
+
- Responsive breakpoints (from media queries or Tailwind config)
|
|
237
|
+
|
|
238
|
+
**Whitespace Strategy:**
|
|
239
|
+
- Base spacing unit (8px grid? 4px? custom?)
|
|
240
|
+
- Section margins (how much space between major sections)
|
|
241
|
+
- Edge padding (page margins at different breakpoints)
|
|
242
|
+
|
|
243
|
+
**Alignment & Visual Balance:**
|
|
244
|
+
- Text alignment patterns (centered heroes, left-aligned body)
|
|
245
|
+
- Image-to-text ratios
|
|
246
|
+
- Visual weight distribution
|
|
247
|
+
|
|
248
|
+
**Responsive Behavior:**
|
|
249
|
+
- Mobile-first or desktop-first?
|
|
250
|
+
- How do grids collapse? Padding scale?
|
|
251
|
+
- Touch target sizing
|
|
252
|
+
|
|
253
|
+
#### 6. Stitch Generation Notes
|
|
254
|
+
|
|
255
|
+
Synthesize the extraction into actionable prompts for Stitch:
|
|
256
|
+
|
|
257
|
+
- **Atmosphere language**: Translate the mood into natural descriptors
|
|
258
|
+
- **Color references**: List colors by descriptive name + hex
|
|
259
|
+
- **Component prompts**: Write 2-3 example prompts that would recreate
|
|
260
|
+
key components in Stitch
|
|
261
|
+
- **Iteration guidance**: Tips for refining screens in this design system
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### Phase 3: Write the DESIGN.md
|
|
266
|
+
|
|
267
|
+
Assemble everything into the standard DESIGN.md format. Place it at
|
|
268
|
+
`.stitch/DESIGN.md` in the project directory (create the `.stitch/` directory
|
|
269
|
+
if it doesn't exist).
|
|
270
|
+
|
|
271
|
+
> [!IMPORTANT]
|
|
272
|
+
> You **MUST** include the YAML frontmatter at the top of the file with `name` and `colors` mapping, exactly as shown in the example at [examples/DESIGN.md](examples/DESIGN.md). This structured data is required for other skills to parse the design system.
|
|
273
|
+
>
|
|
274
|
+
> Failure to include this YAML block with at least the core color tokens is a failure to use this skill correctly.
|
|
275
|
+
|
|
276
|
+
Use the format from the example at [examples/DESIGN.md](examples/DESIGN.md) as your template. The file must start with the YAML block, followed by the markdown sections:
|
|
277
|
+
|
|
278
|
+
```markdown
|
|
279
|
+
# Design System: [Project Name]
|
|
280
|
+
**Project ID:** [If known, otherwise omit]
|
|
281
|
+
|
|
282
|
+
## 1. Visual Theme & Atmosphere
|
|
283
|
+
[Rich 2-paragraph description of mood, philosophy, and key characteristics]
|
|
284
|
+
|
|
285
|
+
## 2. Color Palette & Roles
|
|
286
|
+
### Primary Foundation
|
|
287
|
+
### Accent & Interactive
|
|
288
|
+
### Typography & Text Hierarchy
|
|
289
|
+
### Functional States
|
|
290
|
+
|
|
291
|
+
## 3. Typography Rules
|
|
292
|
+
### Hierarchy & Weights
|
|
293
|
+
### Spacing Principles
|
|
294
|
+
|
|
295
|
+
## 4. Component Stylings
|
|
296
|
+
### Buttons
|
|
297
|
+
### Cards & [Domain-Specific Containers]
|
|
298
|
+
### Navigation
|
|
299
|
+
### Inputs & Forms
|
|
300
|
+
### [Domain-Specific Components]
|
|
301
|
+
|
|
302
|
+
## 5. Layout Principles
|
|
303
|
+
### Grid & Structure
|
|
304
|
+
### Whitespace Strategy
|
|
305
|
+
### Alignment & Visual Balance
|
|
306
|
+
### Responsive Behavior & Touch
|
|
307
|
+
|
|
308
|
+
## 6. Design System Notes for Stitch Generation
|
|
309
|
+
### Language to Use
|
|
310
|
+
### Color References
|
|
311
|
+
### Component Prompts
|
|
312
|
+
### Incremental Iteration
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### Phase 4: Integration (Optional)
|
|
318
|
+
|
|
319
|
+
If the user wants to push the design system into Stitch:
|
|
320
|
+
|
|
321
|
+
1. Hand off to the `manage-design-system` skill for the MCP create/update calls
|
|
322
|
+
2. The DESIGN.md you wrote is the input — the manage-design-system skill handles
|
|
323
|
+
the Stitch API integration
|
|
324
|
+
|
|
325
|
+
If the user just wants the document, you're done after Phase 3.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Quality Checklist
|
|
330
|
+
|
|
331
|
+
Before delivering the DESIGN.md, verify:
|
|
332
|
+
|
|
333
|
+
- [ ] Every color has a descriptive name, hex code, and functional role
|
|
334
|
+
- [ ] Typography includes font family, character description, and full hierarchy
|
|
335
|
+
- [ ] Component styles describe shape, color, states, and transitions
|
|
336
|
+
- [ ] Layout includes max-width, grid, breakpoints, and spacing strategy
|
|
337
|
+
- [ ] Stitch generation notes use natural language, not CSS syntax
|
|
338
|
+
- [ ] The atmosphere section reads like editorial copy, not technical docs
|
|
339
|
+
- [ ] Near-duplicate colors are consolidated
|
|
340
|
+
- [ ] The document captures the *intent* behind styling, not just raw values
|
|
341
|
+
|
|
342
|
+
## Tips for Better Extraction
|
|
343
|
+
|
|
344
|
+
- **Read comments and commit messages.** Developers often document design
|
|
345
|
+
intent in code comments (`/* hero section — breathable */`) and commit
|
|
346
|
+
messages. These are gold for understanding the *why*.
|
|
347
|
+
- **Check for design-token libraries.** If the project uses `style-dictionary`,
|
|
348
|
+
`@tokens-studio`, or similar, these files are the most authoritative
|
|
349
|
+
source of design values.
|
|
350
|
+
- **Theme files are higher-signal than component styles.** A `theme.ts` that
|
|
351
|
+
defines a palette tells you the intended design system; scattered inline
|
|
352
|
+
styles in components tell you what actually shipped. Both matter, but
|
|
353
|
+
start from the theme.
|
|
354
|
+
- **Tailwind config is a design system.** If a project has a customized
|
|
355
|
+
`tailwind.config.js`, that *is* the design system — extract from it first,
|
|
356
|
+
then spot-check components for overrides.
|
|
357
|
+
- **CSS custom properties are intentional.** If a developer defined
|
|
358
|
+
`--brand-primary`, they're telling you this is a design token. Respect that.
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Alpine Peak
|
|
3
|
+
colors:
|
|
4
|
+
surface: '#fcf8fa'
|
|
5
|
+
surface-dim: '#dcd9db'
|
|
6
|
+
surface-bright: '#fcf8fa'
|
|
7
|
+
surface-container-lowest: '#ffffff'
|
|
8
|
+
surface-container-low: '#f6f3f5'
|
|
9
|
+
surface-container: '#f0edef'
|
|
10
|
+
surface-container-high: '#eae7e9'
|
|
11
|
+
surface-container-highest: '#e4e2e4'
|
|
12
|
+
on-surface: '#1b1b1d'
|
|
13
|
+
on-surface-variant: '#45464d'
|
|
14
|
+
inverse-surface: '#303032'
|
|
15
|
+
inverse-on-surface: '#f3f0f2'
|
|
16
|
+
outline: '#76777d'
|
|
17
|
+
outline-variant: '#c6c6cd'
|
|
18
|
+
surface-tint: '#565e74'
|
|
19
|
+
primary: '#000000'
|
|
20
|
+
on-primary: '#ffffff'
|
|
21
|
+
primary-container: '#131b2e'
|
|
22
|
+
on-primary-container: '#7c839b'
|
|
23
|
+
inverse-primary: '#bec6e0'
|
|
24
|
+
secondary: '#5c5f61'
|
|
25
|
+
on-secondary: '#ffffff'
|
|
26
|
+
secondary-container: '#e0e3e5'
|
|
27
|
+
on-secondary-container: '#626567'
|
|
28
|
+
tertiary: '#000000'
|
|
29
|
+
on-tertiary: '#ffffff'
|
|
30
|
+
tertiary-container: '#161c22'
|
|
31
|
+
on-tertiary-container: '#7e848c'
|
|
32
|
+
error: '#ba1a1a'
|
|
33
|
+
on-error: '#ffffff'
|
|
34
|
+
error-container: '#ffdad6'
|
|
35
|
+
on-error-container: '#93000a'
|
|
36
|
+
primary-fixed: '#dae2fd'
|
|
37
|
+
primary-fixed-dim: '#bec6e0'
|
|
38
|
+
on-primary-fixed: '#131b2e'
|
|
39
|
+
on-primary-fixed-variant: '#3f465c'
|
|
40
|
+
secondary-fixed: '#e0e3e5'
|
|
41
|
+
secondary-fixed-dim: '#c4c7c9'
|
|
42
|
+
on-secondary-fixed: '#191c1e'
|
|
43
|
+
on-secondary-fixed-variant: '#444749'
|
|
44
|
+
tertiary-fixed: '#dde3eb'
|
|
45
|
+
tertiary-fixed-dim: '#c1c7cf'
|
|
46
|
+
on-tertiary-fixed: '#161c22'
|
|
47
|
+
on-tertiary-fixed-variant: '#41474e'
|
|
48
|
+
background: '#fcf8fa'
|
|
49
|
+
on-background: '#1b1b1d'
|
|
50
|
+
surface-variant: '#e4e2e4'
|
|
51
|
+
typography:
|
|
52
|
+
display-lg:
|
|
53
|
+
fontFamily: Inter
|
|
54
|
+
fontSize: 48px
|
|
55
|
+
fontWeight: '800'
|
|
56
|
+
lineHeight: 56px
|
|
57
|
+
letterSpacing: -0.02em
|
|
58
|
+
headline-md:
|
|
59
|
+
fontFamily: Inter
|
|
60
|
+
fontSize: 24px
|
|
61
|
+
fontWeight: '700'
|
|
62
|
+
lineHeight: 32px
|
|
63
|
+
letterSpacing: -0.01em
|
|
64
|
+
body-base:
|
|
65
|
+
fontFamily: Inter
|
|
66
|
+
fontSize: 16px
|
|
67
|
+
fontWeight: '400'
|
|
68
|
+
lineHeight: 24px
|
|
69
|
+
letterSpacing: '0'
|
|
70
|
+
body-bold:
|
|
71
|
+
fontFamily: Inter
|
|
72
|
+
fontSize: 16px
|
|
73
|
+
fontWeight: '600'
|
|
74
|
+
lineHeight: 24px
|
|
75
|
+
letterSpacing: '0'
|
|
76
|
+
label-caps:
|
|
77
|
+
fontFamily: Lexend
|
|
78
|
+
fontSize: 12px
|
|
79
|
+
fontWeight: '700'
|
|
80
|
+
lineHeight: 16px
|
|
81
|
+
letterSpacing: 0.05em
|
|
82
|
+
stat-lg:
|
|
83
|
+
fontFamily: Lexend
|
|
84
|
+
fontSize: 32px
|
|
85
|
+
fontWeight: '600'
|
|
86
|
+
lineHeight: 40px
|
|
87
|
+
letterSpacing: -0.02em
|
|
88
|
+
rounded:
|
|
89
|
+
sm: 0.25rem
|
|
90
|
+
DEFAULT: 0.5rem
|
|
91
|
+
md: 0.75rem
|
|
92
|
+
lg: 1rem
|
|
93
|
+
xl: 1.5rem
|
|
94
|
+
full: 9999px
|
|
95
|
+
spacing:
|
|
96
|
+
unit: 4px
|
|
97
|
+
xs: 4px
|
|
98
|
+
sm: 8px
|
|
99
|
+
md: 16px
|
|
100
|
+
lg: 24px
|
|
101
|
+
xl: 32px
|
|
102
|
+
gutter: 16px
|
|
103
|
+
margin-mobile: 20px
|
|
104
|
+
margin-desktop: 40px
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Brand & Style
|
|
108
|
+
|
|
109
|
+
The brand personality is high-performance, sophisticated, and dependable. It is
|
|
110
|
+
designed for the modern skier who demands clarity and precision in harsh
|
|
111
|
+
environments. The visual language evokes the crystalline beauty of a mountain
|
|
112
|
+
peak while prioritizing the rugged utility required for outdoor navigation.
|
|
113
|
+
|
|
114
|
+
The design system utilizes **Glassmorphism** to achieve a "frozen" aesthetic,
|
|
115
|
+
mimicking the properties of ice and packed snow. This is paired with a
|
|
116
|
+
**High-Contrast** philosophy to ensure that critical data—like trail status and
|
|
117
|
+
weather alerts—remains legible under intense mountain sunlight or the
|
|
118
|
+
low-visibility conditions of a snowstorm.
|
|
119
|
+
|
|
120
|
+
## Colors
|
|
121
|
+
|
|
122
|
+
The palette is anchored by **Deep Peak Blue**, a dark navy that provides a
|
|
123
|
+
grounding contrast for white text and maps. **Powder White** serves as the
|
|
124
|
+
primary canvas, ensuring the interface feels airy and cold.
|
|
125
|
+
|
|
126
|
+
**Safety Orange** is reserved strictly for primary calls to action, hazard
|
|
127
|
+
warnings, and emergency trail closures, ensuring immediate eye-tracking.
|
|
128
|
+
**Electric Blue** (the info status) is used for weather updates and general
|
|
129
|
+
interactivity. For trail difficulty levels, standard industry colors (Green,
|
|
130
|
+
Blue, Black) are used but rendered with high-saturation values to pop against
|
|
131
|
+
the white backgrounds.
|
|
132
|
+
|
|
133
|
+
## Typography
|
|
134
|
+
|
|
135
|
+
The typography system uses **Inter** for core functional text and body copy due
|
|
136
|
+
to its exceptional x-height and legibility at small sizes. **Lexend** is
|
|
137
|
+
introduced for labels and statistics; its hyper-readable, athletic character
|
|
138
|
+
suits the "active" nature of skiing data like speed and vertical drop.
|
|
139
|
+
|
|
140
|
+
To combat outdoor glare, font weights are generally heavier than standard web
|
|
141
|
+
applications. Display styles use tight tracking and heavy weights to create a
|
|
142
|
+
sense of strength. Labels always utilize high-contrast coloring against their
|
|
143
|
+
backgrounds.
|
|
144
|
+
|
|
145
|
+
## Layout & Spacing
|
|
146
|
+
|
|
147
|
+
This design system uses a **Fluid Grid** model with generous safe areas.
|
|
148
|
+
Elements are spaced using a strict 4px/8px baseline rhythm to maintain a
|
|
149
|
+
disciplined, professional appearance.
|
|
150
|
+
|
|
151
|
+
Touch targets are intentionally oversized (minimum 48x48px) to accommodate users
|
|
152
|
+
wearing gloves. Padding within cards and containers is kept spacious (`lg` or
|
|
153
|
+
`xl`) to prevent the interface from feeling cluttered when displaying complex
|
|
154
|
+
trail data.
|
|
155
|
+
|
|
156
|
+
## Elevation & Depth
|
|
157
|
+
|
|
158
|
+
Depth is conveyed through **Glassmorphism** and backdrop filters rather than
|
|
159
|
+
traditional heavy shadows. Surfaces use a hierarchy of transparency:
|
|
160
|
+
|
|
161
|
+
1. **Base Layer:** Solid 'Powder White' or 'Deep Peak Blue'.
|
|
162
|
+
2. **Middle Layer (Cards/Modals):** 70% opacity white with a 20px backdrop blur
|
|
163
|
+
and a thin 1px 'Ice' border (white at 40% opacity).
|
|
164
|
+
3. **Top Layer (Floating Actions):** 90% opacity with a subtle 4px ambient
|
|
165
|
+
shadow to separate the element from the blurred background.
|
|
166
|
+
|
|
167
|
+
This creates a "stacked ice" effect that maintains visual clarity while giving
|
|
168
|
+
the UI a premium, modern feel.
|
|
169
|
+
|
|
170
|
+
## Shapes
|
|
171
|
+
|
|
172
|
+
The shape language is defined by modern, organic **rounded corners**. This
|
|
173
|
+
softens the high-contrast color palette and makes the app feel approachable.
|
|
174
|
+
|
|
175
|
+
Interactive elements like buttons and chips utilize `rounded-lg` (1rem) or
|
|
176
|
+
`rounded-xl` (1.5rem) to suggest a tactile, "pebble" feel. Large containers like
|
|
177
|
+
map overlays use 1rem corners, while small status indicators for trail
|
|
178
|
+
difficulty may use pill shapes for instant recognition.
|
|
179
|
+
|
|
180
|
+
## Components
|
|
181
|
+
|
|
182
|
+
### Buttons
|
|
183
|
+
|
|
184
|
+
Primary buttons use a solid 'Safety Orange' or 'Deep Peak Blue' fill with white
|
|
185
|
+
text. High-contrast outlines are used for secondary actions. All buttons must
|
|
186
|
+
feature a minimum height of 52px for gloved-hand accessibility.
|
|
187
|
+
|
|
188
|
+
### Cards & Modals
|
|
189
|
+
|
|
190
|
+
Cards utilize the glassmorphism effect—semi-transparent backgrounds with a 1px
|
|
191
|
+
white border. This ensures that map imagery or photos underneath remain slightly
|
|
192
|
+
visible, maintaining the "frozen" aesthetic.
|
|
193
|
+
|
|
194
|
+
### Trail Status Chips
|
|
195
|
+
|
|
196
|
+
Pill-shaped indicators with high-saturation icons. Green (Easy), Blue
|
|
197
|
+
(Intermediate), Black (Expert), and Double Black (Extreme). These must include
|
|
198
|
+
text labels alongside icons to ensure accessibility for colorblind users.
|
|
199
|
+
|
|
200
|
+
### Input Fields
|
|
201
|
+
|
|
202
|
+
Fields feature a 'Cloud Gray' background with a thick bottom border that
|
|
203
|
+
transforms into 'Electric Blue' on focus. Labels are always visible above the
|
|
204
|
+
field to ensure the user doesn't lose context in bright environments.
|
|
205
|
+
|
|
206
|
+
### Weather Widgets
|
|
207
|
+
|
|
208
|
+
Bold, thick-stroke iconography (minimum 2pt stroke) to represent sun, snow, or
|
|
209
|
+
wind. These icons should be large and accompanied by 'Lexend' typography for
|
|
210
|
+
temperature and wind speed.
|