@design-ai/cli 4.55.0
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/.claude-plugin/plugin.json +164 -0
- package/AGENTS.ko.md +126 -0
- package/AGENTS.md +182 -0
- package/CHANGELOG.md +6883 -0
- package/CLAUDE.md +39 -0
- package/LICENSE +21 -0
- package/README.ko.md +245 -0
- package/README.md +277 -0
- package/agents/README.md +14 -0
- package/agents/a11y-reviewer.md +121 -0
- package/agents/component-architect.md +57 -0
- package/agents/design-critic.md +46 -0
- package/agents/token-extractor.md +63 -0
- package/cli/bin/design-ai-mcp.mjs +6 -0
- package/cli/bin/design-ai.mjs +40 -0
- package/cli/commands/audit.mjs +111 -0
- package/cli/commands/check.mjs +226 -0
- package/cli/commands/doctor.mjs +141 -0
- package/cli/commands/examples.mjs +58 -0
- package/cli/commands/help.mjs +271 -0
- package/cli/commands/install.mjs +161 -0
- package/cli/commands/learn.mjs +1871 -0
- package/cli/commands/list.mjs +143 -0
- package/cli/commands/mcp.mjs +27 -0
- package/cli/commands/pack.mjs +211 -0
- package/cli/commands/prompt.mjs +199 -0
- package/cli/commands/route.mjs +247 -0
- package/cli/commands/search.mjs +60 -0
- package/cli/commands/show.mjs +52 -0
- package/cli/commands/site.mjs +558 -0
- package/cli/commands/status.mjs +161 -0
- package/cli/commands/uninstall.mjs +119 -0
- package/cli/commands/update.mjs +184 -0
- package/cli/commands/version.mjs +94 -0
- package/cli/commands/workspace.mjs +176 -0
- package/cli/lib/brief.mjs +52 -0
- package/cli/lib/check.mjs +642 -0
- package/cli/lib/dispatch.mjs +109 -0
- package/cli/lib/doctor.mjs +505 -0
- package/cli/lib/examples.mjs +258 -0
- package/cli/lib/exec.mjs +63 -0
- package/cli/lib/help-flags.mjs +5 -0
- package/cli/lib/learn.mjs +3694 -0
- package/cli/lib/log.mjs +47 -0
- package/cli/lib/mcp-server.mjs +426 -0
- package/cli/lib/output.mjs +101 -0
- package/cli/lib/pack.mjs +599 -0
- package/cli/lib/paths.mjs +63 -0
- package/cli/lib/prompt.mjs +603 -0
- package/cli/lib/route.mjs +740 -0
- package/cli/lib/search.mjs +158 -0
- package/cli/lib/show.mjs +161 -0
- package/cli/lib/signals.mjs +2337 -0
- package/cli/lib/site.mjs +6617 -0
- package/cli/lib/skill-proposals.mjs +2046 -0
- package/cli/lib/suggest.mjs +66 -0
- package/cli/lib/workspace.mjs +1056 -0
- package/commands/README.md +25 -0
- package/commands/component-spec.md +34 -0
- package/commands/conversational.md +44 -0
- package/commands/design-from-brief.md +141 -0
- package/commands/design-review.md +62 -0
- package/commands/document-from-brief.md +47 -0
- package/commands/extract-tokens.md +38 -0
- package/commands/game-ui.md +40 -0
- package/commands/illustration.md +37 -0
- package/commands/iterate.md +167 -0
- package/commands/motion-design.md +54 -0
- package/commands/palette-from-brand.md +50 -0
- package/commands/print.md +49 -0
- package/commands/slide-deck.md +46 -0
- package/commands/spatial.md +47 -0
- package/commands/stability-review.md +74 -0
- package/commands/video.md +42 -0
- package/commands/website-improvement.md +77 -0
- package/docs/AGENT-DEVELOPMENT.md +658 -0
- package/docs/AI-LEARNING.md +429 -0
- package/docs/AIDER-INTEGRATION.md +224 -0
- package/docs/ARCHITECTURE.ko.md +183 -0
- package/docs/ARCHITECTURE.md +105 -0
- package/docs/CODEX-INTEGRATION.md +311 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.ko.md +144 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.md +150 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.ko.md +153 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.md +154 -0
- package/docs/CONTRIBUTING.ko.md +203 -0
- package/docs/CONTRIBUTING.md +242 -0
- package/docs/CURSOR-INTEGRATION.md +220 -0
- package/docs/DISTRIBUTION.ko.md +248 -0
- package/docs/DISTRIBUTION.md +253 -0
- package/docs/DOGFOOD-FINDINGS.md +180 -0
- package/docs/DOGFOOD-V4-FINDINGS.md +139 -0
- package/docs/DOGFOOD-V4-MKDOCS-FINDINGS.md +233 -0
- package/docs/DOGFOOD-V4-NPM-FINDINGS.md +157 -0
- package/docs/DOGFOOD-V4-VSCODE-FINDINGS.md +135 -0
- package/docs/FIGMA-INTEGRATION.md +222 -0
- package/docs/MCP-INTEGRATION.md +243 -0
- package/docs/MIGRATION-v4.md +121 -0
- package/docs/PLUGIN-PACKAGING.md +240 -0
- package/docs/PRODUCT-READINESS.md +66 -0
- package/docs/QUICKSTART.ko.md +178 -0
- package/docs/QUICKSTART.md +179 -0
- package/docs/RELEASE-CHECKLIST.md +292 -0
- package/docs/ROADMAP.md +19495 -0
- package/docs/SESSION-LOG.md +940 -0
- package/docs/TOKEN-SYNC.md +237 -0
- package/docs/USING.ko.md +206 -0
- package/docs/USING.md +218 -0
- package/docs/WEBSITE-IMPROVEMENT.ko.md +75 -0
- package/docs/WEBSITE-IMPROVEMENT.md +89 -0
- package/docs/announcements/README.md +56 -0
- package/docs/announcements/dev-to-korea.md +206 -0
- package/docs/announcements/hashnode-post.ko.md +232 -0
- package/docs/announcements/okky-post.ko.md +158 -0
- package/docs/announcements/press-kit.md +101 -0
- package/docs/announcements/reddit-r-korea.md +196 -0
- package/docs/announcements/show-hn.md +114 -0
- package/docs/announcements/twitter-thread.md +255 -0
- package/docs/external-status.md +34 -0
- package/docs/integrations/aider-walkthrough.ko.md +275 -0
- package/docs/integrations/aider-walkthrough.md +274 -0
- package/docs/integrations/codex-walkthrough.ko.md +297 -0
- package/docs/integrations/codex-walkthrough.md +297 -0
- package/docs/integrations/cursor-walkthrough.ko.md +281 -0
- package/docs/integrations/cursor-walkthrough.md +284 -0
- package/docs/integrations/design-ai-mcp-server.md +169 -0
- package/docs/integrations/figma-mcp.md +149 -0
- package/docs/integrations/github-mcp.md +178 -0
- package/docs/integrations/linear-mcp.md +215 -0
- package/docs/integrations/notion-mcp.md +174 -0
- package/docs/integrations/sdk-walkthrough.ko.md +375 -0
- package/docs/integrations/sdk-walkthrough.md +375 -0
- package/docs/integrations/slack-mcp.md +208 -0
- package/docs/integrations/vscode-walkthrough.ko.md +202 -0
- package/docs/integrations/vscode-walkthrough.md +205 -0
- package/docs/requirements.txt +16 -0
- package/docs/site-overrides/extra.css +83 -0
- package/docs/site-overrides/favicon.svg +4 -0
- package/docs/site-overrides/logo.svg +10 -0
- package/docs/site-overrides/main.html +18 -0
- package/docs/website-console/app.js +2540 -0
- package/docs/website-console/index.html +24 -0
- package/docs/website-console/styles.css +975 -0
- package/examples/README.md +252 -0
- package/examples/cases/dogfood-v4-korean-hr-onboarding.md +356 -0
- package/examples/component-accordion-actions.md +153 -0
- package/examples/component-accordion-details.md +147 -0
- package/examples/component-accordion-summary.md +180 -0
- package/examples/component-accordion.md +229 -0
- package/examples/component-account-card.md +284 -0
- package/examples/component-address-input.md +260 -0
- package/examples/component-affix.md +190 -0
- package/examples/component-alert-dialog.md +210 -0
- package/examples/component-alert-title.md +77 -0
- package/examples/component-alert.md +192 -0
- package/examples/component-amount-input.md +278 -0
- package/examples/component-anchor.md +198 -0
- package/examples/component-app-bar.md +249 -0
- package/examples/component-aspect-ratio.md +156 -0
- package/examples/component-auto-complete.md +199 -0
- package/examples/component-avatar-group.md +170 -0
- package/examples/component-avatar.md +191 -0
- package/examples/component-back-top.md +123 -0
- package/examples/component-backdrop.md +148 -0
- package/examples/component-badge.md +181 -0
- package/examples/component-banner.md +237 -0
- package/examples/component-biometric-gate.md +281 -0
- package/examples/component-blockquote.md +153 -0
- package/examples/component-border-beam.md +207 -0
- package/examples/component-bottom-navigation.md +226 -0
- package/examples/component-box.md +112 -0
- package/examples/component-breadcrumb.md +222 -0
- package/examples/component-button-base.md +190 -0
- package/examples/component-button-group.md +117 -0
- package/examples/component-button.md +213 -0
- package/examples/component-calendar.md +280 -0
- package/examples/component-callout.md +131 -0
- package/examples/component-card-actions.md +101 -0
- package/examples/component-card-content.md +90 -0
- package/examples/component-card-header.md +122 -0
- package/examples/component-card-media.md +79 -0
- package/examples/component-card.md +233 -0
- package/examples/component-carousel.md +266 -0
- package/examples/component-cascader.md +135 -0
- package/examples/component-category-picker.md +271 -0
- package/examples/component-chart.md +237 -0
- package/examples/component-chat-interface.md +399 -0
- package/examples/component-checkbox.md +149 -0
- package/examples/component-click-away-listener.md +87 -0
- package/examples/component-code.md +213 -0
- package/examples/component-collapsible.md +219 -0
- package/examples/component-color-picker.md +110 -0
- package/examples/component-combobox.md +267 -0
- package/examples/component-command.md +299 -0
- package/examples/component-config-provider.md +190 -0
- package/examples/component-context-menu.md +179 -0
- package/examples/component-css-baseline.md +148 -0
- package/examples/component-date-picker.md +249 -0
- package/examples/component-descriptions.md +242 -0
- package/examples/component-dialog-actions.md +111 -0
- package/examples/component-dialog-content-text.md +76 -0
- package/examples/component-dialog-content.md +105 -0
- package/examples/component-dialog-title.md +104 -0
- package/examples/component-dialog.md +176 -0
- package/examples/component-divider.md +182 -0
- package/examples/component-doc-page.md +217 -0
- package/examples/component-drawer.md +257 -0
- package/examples/component-dropdown.md +220 -0
- package/examples/component-email-layout.md +253 -0
- package/examples/component-empty-state.md +269 -0
- package/examples/component-empty.md +172 -0
- package/examples/component-fade.md +87 -0
- package/examples/component-feature-grid.md +201 -0
- package/examples/component-field.md +266 -0
- package/examples/component-filled-input.md +114 -0
- package/examples/component-flex.md +117 -0
- package/examples/component-float-button.md +214 -0
- package/examples/component-form-control-label.md +134 -0
- package/examples/component-form-control.md +113 -0
- package/examples/component-form-controls.md +251 -0
- package/examples/component-form-group.md +86 -0
- package/examples/component-form-helper-text.md +95 -0
- package/examples/component-form-label.md +98 -0
- package/examples/component-form.md +291 -0
- package/examples/component-game-hud.md +362 -0
- package/examples/component-game-menu.md +327 -0
- package/examples/component-grid.md +140 -0
- package/examples/component-grow.md +79 -0
- package/examples/component-hero-block.md +252 -0
- package/examples/component-hover-card.md +211 -0
- package/examples/component-icon-button.md +142 -0
- package/examples/component-icon.md +102 -0
- package/examples/component-illustration.md +280 -0
- package/examples/component-image-list.md +107 -0
- package/examples/component-image.md +282 -0
- package/examples/component-input-adornment.md +101 -0
- package/examples/component-input-base.md +134 -0
- package/examples/component-input-number.md +141 -0
- package/examples/component-input-otp.md +271 -0
- package/examples/component-input.md +213 -0
- package/examples/component-item.md +243 -0
- package/examples/component-kbd.md +197 -0
- package/examples/component-krw-amount.md +219 -0
- package/examples/component-label.md +118 -0
- package/examples/component-layout.md +217 -0
- package/examples/component-link.md +223 -0
- package/examples/component-list-item-avatar.md +72 -0
- package/examples/component-list-item-button.md +139 -0
- package/examples/component-list-item-icon.md +82 -0
- package/examples/component-list-item-text.md +98 -0
- package/examples/component-list-item.md +116 -0
- package/examples/component-list-subheader.md +70 -0
- package/examples/component-list.md +198 -0
- package/examples/component-loading-button.md +125 -0
- package/examples/component-loading-sequence.md +254 -0
- package/examples/component-lottie-player.md +279 -0
- package/examples/component-masonry.md +191 -0
- package/examples/component-mentions.md +189 -0
- package/examples/component-menu-item.md +102 -0
- package/examples/component-menu-list.md +98 -0
- package/examples/component-menu.md +139 -0
- package/examples/component-menubar.md +259 -0
- package/examples/component-message.md +162 -0
- package/examples/component-mobile-stepper.md +155 -0
- package/examples/component-modal.md +220 -0
- package/examples/component-navigation-menu.md +295 -0
- package/examples/component-notification.md +166 -0
- package/examples/component-otp-countdown.md +245 -0
- package/examples/component-outlined-input.md +145 -0
- package/examples/component-page-transition.md +281 -0
- package/examples/component-pagination.md +226 -0
- package/examples/component-paper.md +199 -0
- package/examples/component-pass-auth.md +265 -0
- package/examples/component-payment-brand-button.md +253 -0
- package/examples/component-payment-method-selector.md +272 -0
- package/examples/component-payment-receipt.md +277 -0
- package/examples/component-popconfirm.md +144 -0
- package/examples/component-popover.md +239 -0
- package/examples/component-popper.md +129 -0
- package/examples/component-pricing-cards.md +247 -0
- package/examples/component-progress.md +195 -0
- package/examples/component-qr-code.md +201 -0
- package/examples/component-radio.md +167 -0
- package/examples/component-rate.md +202 -0
- package/examples/component-resizable.md +163 -0
- package/examples/component-result.md +270 -0
- package/examples/component-scroll-area.md +199 -0
- package/examples/component-scroll-reveal.md +320 -0
- package/examples/component-segmented.md +178 -0
- package/examples/component-select.md +258 -0
- package/examples/component-separator.md +177 -0
- package/examples/component-sheet.md +277 -0
- package/examples/component-sidebar.md +257 -0
- package/examples/component-skeleton.md +178 -0
- package/examples/component-slide.md +89 -0
- package/examples/component-slider.md +208 -0
- package/examples/component-snackbar-content.md +92 -0
- package/examples/component-snackbar.md +121 -0
- package/examples/component-sonner.md +165 -0
- package/examples/component-space.md +125 -0
- package/examples/component-spatial-locomotion.md +373 -0
- package/examples/component-spatial-panel.md +330 -0
- package/examples/component-speed-dial-action.md +78 -0
- package/examples/component-speed-dial.md +177 -0
- package/examples/component-spin.md +173 -0
- package/examples/component-spinner.md +204 -0
- package/examples/component-splitter.md +210 -0
- package/examples/component-stack.md +130 -0
- package/examples/component-statistic.md +282 -0
- package/examples/component-step-button.md +157 -0
- package/examples/component-step-connector.md +157 -0
- package/examples/component-step-content.md +121 -0
- package/examples/component-step-icon.md +115 -0
- package/examples/component-step-label.md +101 -0
- package/examples/component-step.md +84 -0
- package/examples/component-steps.md +264 -0
- package/examples/component-stock-chart.md +251 -0
- package/examples/component-swipeable-drawer.md +149 -0
- package/examples/component-switch.md +99 -0
- package/examples/component-tab-scroll-button.md +180 -0
- package/examples/component-tab.md +120 -0
- package/examples/component-table-body.md +82 -0
- package/examples/component-table-cell.md +118 -0
- package/examples/component-table-container.md +75 -0
- package/examples/component-table-footer.md +72 -0
- package/examples/component-table-head.md +78 -0
- package/examples/component-table-pagination.md +137 -0
- package/examples/component-table-row.md +113 -0
- package/examples/component-table-sort-label.md +109 -0
- package/examples/component-table.md +202 -0
- package/examples/component-tabs.md +184 -0
- package/examples/component-tag-badge.md +309 -0
- package/examples/component-tag.md +102 -0
- package/examples/component-testimonial-carousel.md +218 -0
- package/examples/component-textarea-autosize.md +114 -0
- package/examples/component-textarea.md +173 -0
- package/examples/component-time-picker.md +205 -0
- package/examples/component-timeline.md +170 -0
- package/examples/component-toast.md +224 -0
- package/examples/component-toggle-button.md +129 -0
- package/examples/component-toggle.md +220 -0
- package/examples/component-toolbar.md +104 -0
- package/examples/component-tooltip.md +178 -0
- package/examples/component-tour.md +176 -0
- package/examples/component-transaction-list-item.md +243 -0
- package/examples/component-transfer.md +156 -0
- package/examples/component-tree-select.md +202 -0
- package/examples/component-tree.md +297 -0
- package/examples/component-typography.md +215 -0
- package/examples/component-upload.md +295 -0
- package/examples/component-video-hero.md +409 -0
- package/examples/component-video-player.md +340 -0
- package/examples/component-voice-input.md +408 -0
- package/examples/component-watermark.md +217 -0
- package/examples/component-zoom.md +92 -0
- package/examples/doc-explanation-example.md +196 -0
- package/examples/doc-how-to-example.md +205 -0
- package/examples/doc-tutorial-example.md +162 -0
- package/examples/dogfood-korean-fintech-system.md +433 -0
- package/examples/email-transactional-example.md +259 -0
- package/examples/palette-saas-violet.md +235 -0
- package/examples/print-business-card-spec.md +205 -0
- package/examples/print-packaging-spec.md +285 -0
- package/examples/report-example.md +228 -0
- package/examples/slide-deck-example.md +237 -0
- package/examples/website-improvement-report.md +128 -0
- package/examples/website-improvement-workspace.json +126 -0
- package/install.sh +189 -0
- package/knowledge/COVERAGE.md +740 -0
- package/knowledge/PRINCIPLES.md +108 -0
- package/knowledge/a11y/contrast.md +70 -0
- package/knowledge/a11y/keyboard-and-focus.md +108 -0
- package/knowledge/colors/color-theory.md +90 -0
- package/knowledge/colors/mui-palette-structure.md +105 -0
- package/knowledge/colors/palettes-by-product-type.md +876 -0
- package/knowledge/components/INDEX.md +231 -0
- package/knowledge/components/index.json +1470 -0
- package/knowledge/components/shadcn-registry.md +159 -0
- package/knowledge/conversational/ai-chat-interfaces.md +323 -0
- package/knowledge/conversational/chatbot-design.md +312 -0
- package/knowledge/conversational/conversational-ui-fundamentals.md +299 -0
- package/knowledge/conversational/korean-voice-conventions.md +281 -0
- package/knowledge/conversational/voice-ui-patterns.md +297 -0
- package/knowledge/design-tokens/ant-design.md +124 -0
- package/knowledge/design-tokens/material-3.md +235 -0
- package/knowledge/design-tokens/polaris-and-carbon.md +231 -0
- package/knowledge/design-tokens/tailwind-v4.md +284 -0
- package/knowledge/game-ui/game-accessibility.md +317 -0
- package/knowledge/game-ui/game-ui-fundamentals.md +281 -0
- package/knowledge/game-ui/hud-design.md +324 -0
- package/knowledge/game-ui/korean-gaming-conventions.md +312 -0
- package/knowledge/game-ui/menu-systems.md +388 -0
- package/knowledge/i18n/korean-app-store-visual.md +223 -0
- package/knowledge/i18n/korean-document-style.md +301 -0
- package/knowledge/i18n/korean-payments.md +211 -0
- package/knowledge/i18n/korean-product-conventions.md +96 -0
- package/knowledge/i18n/korean-publishing.md +139 -0
- package/knowledge/i18n/korean-typography.md +123 -0
- package/knowledge/icons/curated-sets.md +225 -0
- package/knowledge/illustration/hero-illustrations.md +234 -0
- package/knowledge/illustration/illustration-systems.md +221 -0
- package/knowledge/illustration/mascot-design.md +208 -0
- package/knowledge/illustration/spot-illustrations.md +246 -0
- package/knowledge/illustration/svg-optimization.md +308 -0
- package/knowledge/layout/spacing-and-grid.md +119 -0
- package/knowledge/motion/app-loading-sequences.md +277 -0
- package/knowledge/motion/choreography-depth.md +297 -0
- package/knowledge/motion/marketing-motion.md +223 -0
- package/knowledge/motion/micro-interactions.md +266 -0
- package/knowledge/motion/motion-tools.md +281 -0
- package/knowledge/motion/principles.md +126 -0
- package/knowledge/patterns/auth-flow-design.md +316 -0
- package/knowledge/patterns/b2b-onboarding-flows.md +182 -0
- package/knowledge/patterns/brand-identity.md +238 -0
- package/knowledge/patterns/brand-references.md +97 -0
- package/knowledge/patterns/chart-color-encoding.md +269 -0
- package/knowledge/patterns/chart-types.md +344 -0
- package/knowledge/patterns/dashboard-composition.md +299 -0
- package/knowledge/patterns/design-system-qa.md +356 -0
- package/knowledge/patterns/document-typography.md +248 -0
- package/knowledge/patterns/email-design.md +338 -0
- package/knowledge/patterns/empty-states.md +263 -0
- package/knowledge/patterns/error-states.md +318 -0
- package/knowledge/patterns/form-design.md +237 -0
- package/knowledge/patterns/information-architecture.md +341 -0
- package/knowledge/patterns/landing-hero-design.md +283 -0
- package/knowledge/patterns/landing-page-patterns.md +681 -0
- package/knowledge/patterns/list-and-feed.md +371 -0
- package/knowledge/patterns/mobile-navigation.md +278 -0
- package/knowledge/patterns/money-and-amount.md +301 -0
- package/knowledge/patterns/onboarding.md +300 -0
- package/knowledge/patterns/pricing-page-design.md +261 -0
- package/knowledge/patterns/realtime-data.md +280 -0
- package/knowledge/patterns/report-design.md +330 -0
- package/knowledge/patterns/search-ux.md +373 -0
- package/knowledge/patterns/settings-page.md +325 -0
- package/knowledge/patterns/slide-deck-design.md +316 -0
- package/knowledge/patterns/styles-catalog.md +2599 -0
- package/knowledge/patterns/technical-writing.md +306 -0
- package/knowledge/patterns/ui-reasoning.md +1853 -0
- package/knowledge/patterns/ux-guidelines.md +1454 -0
- package/knowledge/platforms/react-native.md +395 -0
- package/knowledge/print/brochures-and-flyers.md +276 -0
- package/knowledge/print/korean-print-conventions.md +284 -0
- package/knowledge/print/packaging.md +321 -0
- package/knowledge/print/print-fundamentals.md +238 -0
- package/knowledge/print/signage-and-posters.md +235 -0
- package/knowledge/print/stationery.md +262 -0
- package/knowledge/spatial/ar-patterns.md +253 -0
- package/knowledge/spatial/comfort-and-accessibility.md +245 -0
- package/knowledge/spatial/spatial-design-fundamentals.md +346 -0
- package/knowledge/spatial/spatial-ui-elements.md +343 -0
- package/knowledge/spatial/vr-patterns.md +302 -0
- package/knowledge/typography/font-pairings.md +332 -0
- package/knowledge/typography/mui-type-scale.md +57 -0
- package/knowledge/typography/type-scale-fundamentals.md +105 -0
- package/knowledge/video/in-product-video.md +277 -0
- package/knowledge/video/korean-video-conventions.md +247 -0
- package/knowledge/video/marketing-video.md +258 -0
- package/knowledge/video/social-and-short-form.md +257 -0
- package/knowledge/video/video-fundamentals.md +296 -0
- package/package.json +106 -0
- package/skills/README.md +39 -0
- package/skills/color-palette/PLAYBOOK.md +175 -0
- package/skills/color-palette/SKILL.md +6 -0
- package/skills/color-palette/TEMPLATE.md +103 -0
- package/skills/component-spec-writer/PLAYBOOK.md +169 -0
- package/skills/component-spec-writer/SKILL.md +6 -0
- package/skills/component-spec-writer/TEMPLATE.md +115 -0
- package/skills/conversational-ui-designer/PLAYBOOK.md +231 -0
- package/skills/conversational-ui-designer/SKILL.md +6 -0
- package/skills/design-broadcast/PLAYBOOK.md +146 -0
- package/skills/design-broadcast/SKILL.md +6 -0
- package/skills/design-critique/PLAYBOOK.md +137 -0
- package/skills/design-critique/SKILL.md +6 -0
- package/skills/design-pr-review/PLAYBOOK.md +171 -0
- package/skills/design-pr-review/SKILL.md +6 -0
- package/skills/design-system-builder/PLAYBOOK.md +218 -0
- package/skills/design-system-builder/SKILL.md +6 -0
- package/skills/design-system-qa/PLAYBOOK.md +163 -0
- package/skills/design-system-qa/SKILL.md +6 -0
- package/skills/document-author/PLAYBOOK.md +167 -0
- package/skills/document-author/SKILL.md +6 -0
- package/skills/figma-token-sync/PLAYBOOK.md +149 -0
- package/skills/figma-token-sync/SKILL.md +6 -0
- package/skills/game-ui-designer/PLAYBOOK.md +209 -0
- package/skills/game-ui-designer/SKILL.md +6 -0
- package/skills/handoff-spec/PLAYBOOK.md +170 -0
- package/skills/handoff-spec/SKILL.md +6 -0
- package/skills/illustration-designer/PLAYBOOK.md +166 -0
- package/skills/illustration-designer/SKILL.md +6 -0
- package/skills/motion-designer/PLAYBOOK.md +223 -0
- package/skills/motion-designer/SKILL.md +6 -0
- package/skills/print-designer/PLAYBOOK.md +209 -0
- package/skills/print-designer/SKILL.md +6 -0
- package/skills/slide-deck-author/PLAYBOOK.md +198 -0
- package/skills/slide-deck-author/SKILL.md +6 -0
- package/skills/spatial-designer/PLAYBOOK.md +238 -0
- package/skills/spatial-designer/SKILL.md +6 -0
- package/skills/ux-audit/PLAYBOOK.md +142 -0
- package/skills/ux-audit/SKILL.md +6 -0
- package/skills/video-designer/PLAYBOOK.md +240 -0
- package/skills/video-designer/SKILL.md +6 -0
- package/skills/website-improvement/PLAYBOOK.md +118 -0
- package/skills/website-improvement/SKILL.md +6 -0
- package/skills/website-improvement/TEMPLATE.md +103 -0
- package/tools/audit/changelog-generate.py +176 -0
- package/tools/audit/check-coverage.py +483 -0
- package/tools/audit/doctor_assertions.py +256 -0
- package/tools/audit/example-qa.py +108 -0
- package/tools/audit/frontmatter-check.py +199 -0
- package/tools/audit/integration-check.py +95 -0
- package/tools/audit/korean-copy-check.py +161 -0
- package/tools/audit/link-check.py +146 -0
- package/tools/audit/local-ci.py +558 -0
- package/tools/audit/package-contents.py +723 -0
- package/tools/audit/package-smoke.py +22443 -0
- package/tools/audit/raw-hex-check.py +252 -0
- package/tools/audit/registry-smoke.py +8188 -0
- package/tools/audit/release-metadata.py +9832 -0
- package/tools/audit/run-all.py +351 -0
- package/tools/audit/smoke_assertions.py +12742 -0
- package/tools/audit/stability-review.py +332 -0
- package/tools/audit/stale-check.py +156 -0
- package/tools/migrations/add-version-frontmatter.py +132 -0
- package/tools/migrations/bump-last-updated.py +131 -0
- package/tools/migrations/promote-stability.py +172 -0
- package/tools/preview/README.md +58 -0
- package/tools/preview/render-tokens.py +454 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# Cursor walkthrough
|
|
2
|
+
|
|
3
|
+
A concrete walkthrough of using design-ai with **Cursor IDE**. Picks up where [`docs/CURSOR-INTEGRATION.md`](../CURSOR-INTEGRATION.md) leaves off — that's setup; this is workflow.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install Cursor (cursor.sh)
|
|
9
|
+
# Get design-ai
|
|
10
|
+
git clone https://github.com/sungjin9288/design-ai.git ~/dev/design-ai
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Setup (90 seconds)
|
|
14
|
+
|
|
15
|
+
### Option A: `.cursorrules` in your consuming project
|
|
16
|
+
|
|
17
|
+
The most common pattern. Create `.cursorrules` in the project where you want design-ai's expertise:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cd ~/projects/my-app
|
|
21
|
+
cat > .cursorrules <<'EOF'
|
|
22
|
+
You are a senior product designer with 20+ years of experience in UI/UX,
|
|
23
|
+
design systems, accessibility (WCAG 2.1 AA), and Korean market design.
|
|
24
|
+
|
|
25
|
+
For any design task, follow this protocol:
|
|
26
|
+
1. Read /Users/sungjin/dev/design-ai/AGENTS.md (universal entry point).
|
|
27
|
+
2. Read /Users/sungjin/dev/design-ai/knowledge/PRINCIPLES.md (30 load-bearing rules).
|
|
28
|
+
3. Find the matching skill in /Users/sungjin/dev/design-ai/skills/<skill-name>/PLAYBOOK.md.
|
|
29
|
+
4. Apply it. Cite knowledge files for every claim.
|
|
30
|
+
5. For Korean content, default to Pretendard + 해요체 (consumer) or 합쇼체 (formal).
|
|
31
|
+
6. Mark unsourced claims as "(judgment, not sourced)".
|
|
32
|
+
|
|
33
|
+
Skills available:
|
|
34
|
+
- color-palette, component-spec-writer, ux-audit, design-critique
|
|
35
|
+
- design-system-builder, handoff-spec, design-system-qa, design-pr-review
|
|
36
|
+
- figma-token-sync, design-broadcast, document-author, slide-deck-author
|
|
37
|
+
- motion-designer, illustration-designer, print-designer, video-designer
|
|
38
|
+
- game-ui-designer, conversational-ui-designer, spatial-designer
|
|
39
|
+
|
|
40
|
+
Skills are at /Users/sungjin/dev/design-ai/skills/<name>/PLAYBOOK.md.
|
|
41
|
+
EOF
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Cursor auto-loads `.cursorrules` at chat start.
|
|
45
|
+
|
|
46
|
+
### Option B: Add design-ai as workspace folder
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
File → Add Folder to Workspace → ~/dev/design-ai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Then reference files via `@` in chat:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
@design-ai/skills/color-palette/PLAYBOOK.md apply this for a teal-blue
|
|
56
|
+
fintech app.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The `@` autocomplete searches your whole workspace; design-ai's structured tree shows up clearly.
|
|
60
|
+
|
|
61
|
+
## Walkthrough 1: Spec a component inline
|
|
62
|
+
|
|
63
|
+
**Goal**: working in your app's codebase, ask Cursor to spec a Banner component, then implement it.
|
|
64
|
+
|
|
65
|
+
### Session
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
You ▸ (in src/components/Banner.tsx, file open)
|
|
69
|
+
@design-ai/skills/component-spec-writer/PLAYBOOK.md
|
|
70
|
+
@design-ai/examples/component-banner.md
|
|
71
|
+
|
|
72
|
+
Spec a Banner component for our system. Persistent in-page strip
|
|
73
|
+
for system status. Variants: info / success / warning / error /
|
|
74
|
+
promo. Dismissible. Korean copy.
|
|
75
|
+
|
|
76
|
+
Cursor ▸ I'll apply the component-spec-writer skill using the existing
|
|
77
|
+
Banner spec as reference, adapted to your codebase.
|
|
78
|
+
|
|
79
|
+
[generates a spec inline in chat]
|
|
80
|
+
[includes a tabular API, anatomy, states, tokens]
|
|
81
|
+
|
|
82
|
+
You ▸ Now implement the spec as a React component in this file. Use
|
|
83
|
+
our existing token system (`var(--color-banner-bg-info)` etc).
|
|
84
|
+
Follow our patterns from src/components/Alert.tsx for the
|
|
85
|
+
dismiss button.
|
|
86
|
+
|
|
87
|
+
Cursor ▸ [generates Banner.tsx implementation]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The two-step workflow — **spec first, then implement** — is the key Cursor pattern. Specs are knowledge artifacts; implementation is code.
|
|
91
|
+
|
|
92
|
+
## Walkthrough 2: Audit existing component
|
|
93
|
+
|
|
94
|
+
**Goal**: cursor reviews your current Button component against design-ai's spec.
|
|
95
|
+
|
|
96
|
+
### Session
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
You ▸ Open src/components/Button.tsx side-by-side with
|
|
100
|
+
@design-ai/examples/component-button.md.
|
|
101
|
+
|
|
102
|
+
Audit my Button against the spec. Flag missing variants, missing
|
|
103
|
+
states, a11y gaps, and Korean considerations.
|
|
104
|
+
|
|
105
|
+
Cursor ▸ Comparing your Button.tsx against component-button.md.
|
|
106
|
+
|
|
107
|
+
Findings:
|
|
108
|
+
|
|
109
|
+
[HIGH] Missing `loading` state. Spec section "States" requires
|
|
110
|
+
a loading variant with spinner + disabled events. Your
|
|
111
|
+
component has no loading prop.
|
|
112
|
+
|
|
113
|
+
[HIGH] Missing `asChild` support. Spec section "Composition
|
|
114
|
+
patterns" → asChild lets the Button render as a Link or other
|
|
115
|
+
slot. Your version is button-only.
|
|
116
|
+
|
|
117
|
+
[MEDIUM] Touch target. Spec requires ≥ 44pt for primary mobile;
|
|
118
|
+
your `size="sm"` is 32px tall. Acceptable for desktop secondary;
|
|
119
|
+
fail for mobile primary.
|
|
120
|
+
|
|
121
|
+
[LOW] Korean: no IME consideration. For inputs that lead to a
|
|
122
|
+
Button submit, IME composition can swallow Enter. Recommend
|
|
123
|
+
wrapping in Form's submit handler that respects compositionend.
|
|
124
|
+
|
|
125
|
+
[recommendations with file diffs]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This is `design-system-qa` skill applied per-component. Powerful for raising existing codebase quality to spec.
|
|
129
|
+
|
|
130
|
+
## Walkthrough 3: Iterate on a Figma screenshot
|
|
131
|
+
|
|
132
|
+
**Goal**: paste a Figma screenshot and get a critique with concrete fixes.
|
|
133
|
+
|
|
134
|
+
### Session
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
You ▸ [pastes screenshot.png into chat]
|
|
138
|
+
@design-ai/agents/design-critic.md
|
|
139
|
+
@design-ai/agents/a11y-reviewer.md
|
|
140
|
+
|
|
141
|
+
Critique this hero section. KR fintech audience.
|
|
142
|
+
|
|
143
|
+
Cursor ▸ Running design-critic + a11y-reviewer in parallel.
|
|
144
|
+
|
|
145
|
+
Top recommendation:
|
|
146
|
+
The headline carries 70% of the message but uses 24px Inter
|
|
147
|
+
Light. Korean target users won't get the warmth that the
|
|
148
|
+
Light weight implies in Latin. Bump to Pretendard 600
|
|
149
|
+
Semibold at 32px on mobile, 48px on desktop.
|
|
150
|
+
|
|
151
|
+
[CRITICAL]
|
|
152
|
+
- CTA contrast 3.4:1 (white text on
|
|
153
|
+
oklch(70% 0.16 240)) fails WCAG AA. Bump bg to
|
|
154
|
+
oklch(58% 0.18 240) to clear 4.5:1.
|
|
155
|
+
|
|
156
|
+
[HIGH]
|
|
157
|
+
- Sub-headline uses `당신의 ...` — too formal-distant.
|
|
158
|
+
Rewrite using `~해요`: "여러분의 송금을 더 쉽게 만들어요".
|
|
159
|
+
- Sale-30% badge near CTA competes for attention. Move
|
|
160
|
+
to upper-right corner of card or remove.
|
|
161
|
+
|
|
162
|
+
[Suggested rewrites]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Walkthrough 4: Generate tokens from brand brief
|
|
166
|
+
|
|
167
|
+
**Goal**: bootstrap a design token file from a brand brief, exported as both CSS and Tailwind config.
|
|
168
|
+
|
|
169
|
+
### Session
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
You ▸ @design-ai/skills/color-palette/PLAYBOOK.md
|
|
173
|
+
|
|
174
|
+
Generate a full palette for a Korean fintech for freelancers.
|
|
175
|
+
Brand: trustworthy, calm, modern. Seed: oklch(56% 0.16 244).
|
|
176
|
+
Output: src/tokens/colors.css (CSS vars) + tailwind.config.ts
|
|
177
|
+
(extending colors). Include dark mode.
|
|
178
|
+
|
|
179
|
+
Cursor ▸ [reads the playbook]
|
|
180
|
+
[generates both files in your project]
|
|
181
|
+
|
|
182
|
+
You ▸ Now add semantic aliases (--color-primary-default, etc) per the
|
|
183
|
+
spec. And add a contrast matrix as a comment block at the top
|
|
184
|
+
of colors.css.
|
|
185
|
+
|
|
186
|
+
Cursor ▸ [updates files]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Walkthrough 5: Use Cursor's `Cmd+K` for in-place edits
|
|
190
|
+
|
|
191
|
+
For tight iteration loops, Cursor's `Cmd+K` (inline edit) works with design-ai context if you set the rules globally.
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
[select a problematic JSX block]
|
|
195
|
+
[press Cmd+K]
|
|
196
|
+
"Make this match design-ai's component-button.md spec for the
|
|
197
|
+
'destructive' variant. Use our color tokens."
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Cursor reads the spec via the workspace context and rewrites in place.
|
|
201
|
+
|
|
202
|
+
## Cursor-specific tips
|
|
203
|
+
|
|
204
|
+
### MCP servers
|
|
205
|
+
|
|
206
|
+
Cursor 0.40+ supports MCP. Add design-aware MCPs:
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
// ~/.cursor/mcp.json
|
|
210
|
+
{
|
|
211
|
+
"mcpServers": {
|
|
212
|
+
"figma": {
|
|
213
|
+
"command": "npx",
|
|
214
|
+
"args": ["-y", "figma-mcp"],
|
|
215
|
+
"env": { "FIGMA_TOKEN": "..." }
|
|
216
|
+
},
|
|
217
|
+
"github": {
|
|
218
|
+
"command": "npx",
|
|
219
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
220
|
+
"env": { "GITHUB_TOKEN": "..." }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Then design-ai's Figma + GitHub-aware skills (`figma-token-sync`, `design-pr-review`) work with live data.
|
|
227
|
+
|
|
228
|
+
### Composer mode
|
|
229
|
+
|
|
230
|
+
For multi-file changes (e.g., refactoring 5 components to match a new spec), use Cursor Composer:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
[Composer mode]
|
|
234
|
+
"Apply the destructive variant from
|
|
235
|
+
@design-ai/examples/component-button.md to all uses of
|
|
236
|
+
DangerButton in src/. Update the component, the storybook,
|
|
237
|
+
and any usage. Match our token system."
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Composer reads the spec once, applies across files.
|
|
241
|
+
|
|
242
|
+
### Per-project AGENTS.md fork
|
|
243
|
+
|
|
244
|
+
For large projects, fork the design-ai AGENTS.md into your project:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
cp ~/dev/design-ai/AGENTS.md ./AGENTS.md
|
|
248
|
+
# Edit to add project-specific overrides + the design-ai paths.
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Cursor reads project `AGENTS.md` (when present) AND `.cursorrules`.
|
|
252
|
+
|
|
253
|
+
## Troubleshooting
|
|
254
|
+
|
|
255
|
+
### Cursor doesn't pick up `.cursorrules`
|
|
256
|
+
|
|
257
|
+
Restart Cursor. Or `Cmd+Shift+P → Developer: Reload Window`.
|
|
258
|
+
|
|
259
|
+
### `@` doesn't autocomplete design-ai files
|
|
260
|
+
|
|
261
|
+
Add the design-ai folder to your workspace (not just `.cursorrules`). Cursor's `@` indexes workspace folders only.
|
|
262
|
+
|
|
263
|
+
### Korean conventions are inconsistent across the session
|
|
264
|
+
|
|
265
|
+
Add an explicit reminder to `.cursorrules`:
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
For Korean content, ALWAYS:
|
|
269
|
+
- Pretendard for typography
|
|
270
|
+
- 해요체 (consumer) or 합쇼체 (formal) — never mix in one component
|
|
271
|
+
- 명함 90×50mm not international 85×55
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Cursor uses GPT-4 instead of Claude
|
|
275
|
+
|
|
276
|
+
design-ai is model-agnostic. Both work. For best output on long-form synthesis tasks, Claude Sonnet 4.6+ is slightly stronger; for code generation, GPT-4o + Claude both work. Switch via Cursor's model picker (Cmd+/ → Model).
|
|
277
|
+
|
|
278
|
+
## Next
|
|
279
|
+
|
|
280
|
+
- [`docs/CURSOR-INTEGRATION.md`](../CURSOR-INTEGRATION.md) — full setup reference
|
|
281
|
+
- [`docs/integrations/codex-walkthrough.md`](codex-walkthrough.md) — Codex CLI variant
|
|
282
|
+
- [`docs/integrations/aider-walkthrough.md`](aider-walkthrough.md) — Aider variant
|
|
283
|
+
- [`docs/integrations/sdk-walkthrough.md`](sdk-walkthrough.md) — Anthropic / OpenAI SDK
|
|
284
|
+
- [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — MCP servers
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# design-ai MCP server
|
|
2
|
+
|
|
3
|
+
Use this guide when you want Claude Code or Codex to call design-ai as an MCP server instead of asking the agent to read files manually.
|
|
4
|
+
|
|
5
|
+
The server is local, stdio-based, and deterministic. It wraps existing `design-ai` CLI workflows such as route selection, prompt generation, corpus search, artifact checks, and Website Improvement MCP readiness checks.
|
|
6
|
+
|
|
7
|
+
## What the server exposes
|
|
8
|
+
|
|
9
|
+
| Tool | Purpose | Mutation risk |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `design_ai_route` | Recommend the best design-ai route, skill, command, and knowledge files for a task brief. | Read-only |
|
|
12
|
+
| `design_ai_prompt` | Generate a ready-to-use prompt from a brief. | Read-only by default; `withLearning` records local usage metadata |
|
|
13
|
+
| `design_ai_pack` | Generate a prompt plus bounded context files. | Read-only by default; `withLearning` records local usage metadata |
|
|
14
|
+
| `design_ai_search` | Search `knowledge/`, `examples/`, `skills/`, `docs/`, `agents/`, and `commands/`. | Read-only |
|
|
15
|
+
| `design_ai_show` | Read a corpus file or line range. | Read-only |
|
|
16
|
+
| `design_ai_examples` | Find worked examples by query or route. | Read-only |
|
|
17
|
+
| `design_ai_check` | Check generated Markdown artifacts for grounding, accessibility, responsive notes, and unresolved markers. | Read-only |
|
|
18
|
+
| `design_ai_site_mcp_check` | Validate Website Improvement MCP readiness from workspace JSON. | Read-only |
|
|
19
|
+
| `design_ai_site_mcp_plan` | Generate a Website Improvement MCP action plan. | Read-only |
|
|
20
|
+
| `design_ai_version` | Return CLI and corpus version metadata. | Read-only |
|
|
21
|
+
|
|
22
|
+
## Start the server manually
|
|
23
|
+
|
|
24
|
+
From a local clone:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cd /path/to/design-ai
|
|
28
|
+
node cli/bin/design-ai-mcp.mjs
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
After package installation, use either entrypoint:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
design-ai mcp
|
|
35
|
+
design-ai-mcp
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Do not run the server as a normal terminal command unless an MCP client is connected. It waits for newline-delimited JSON-RPC messages on stdin and writes MCP responses to stdout.
|
|
39
|
+
|
|
40
|
+
## Connect Claude Code
|
|
41
|
+
|
|
42
|
+
For a local-only server on the current machine:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
claude mcp add --transport stdio design-ai -- design-ai mcp
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If `design-ai` is not on `PATH`, point Claude Code at the local clone:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
claude mcp add --transport stdio design-ai \
|
|
52
|
+
-- node /path/to/design-ai/cli/bin/design-ai-mcp.mjs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Then open Claude Code and run:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
/mcp
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Confirm that `design-ai` is connected and exposes tools.
|
|
62
|
+
|
|
63
|
+
Project-scoped Claude configuration can also live in `.mcp.json`:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"design-ai": {
|
|
69
|
+
"command": "design-ai",
|
|
70
|
+
"args": ["mcp"]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Claude Code asks for approval before using project-scoped `.mcp.json` servers.
|
|
77
|
+
|
|
78
|
+
## Connect Codex
|
|
79
|
+
|
|
80
|
+
Use the Codex CLI:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
codex mcp add design-ai -- design-ai mcp
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or edit `~/.codex/config.toml`:
|
|
87
|
+
|
|
88
|
+
```toml
|
|
89
|
+
[mcp_servers.design-ai]
|
|
90
|
+
command = "design-ai"
|
|
91
|
+
args = ["mcp"]
|
|
92
|
+
startup_timeout_sec = 10
|
|
93
|
+
tool_timeout_sec = 60
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For a local clone without a global install:
|
|
97
|
+
|
|
98
|
+
```toml
|
|
99
|
+
[mcp_servers.design-ai]
|
|
100
|
+
command = "node"
|
|
101
|
+
args = ["/path/to/design-ai/cli/bin/design-ai-mcp.mjs"]
|
|
102
|
+
cwd = "/path/to/design-ai"
|
|
103
|
+
startup_timeout_sec = 10
|
|
104
|
+
tool_timeout_sec = 60
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
In the Codex TUI, run:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
/mcp
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Confirm that `design-ai` is active.
|
|
114
|
+
|
|
115
|
+
## Recommended prompts
|
|
116
|
+
|
|
117
|
+
Ask Claude or Codex to use the MCP server explicitly:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
Use the design-ai MCP server to route this task, then generate a prompt pack:
|
|
121
|
+
Spec a dense Korean fintech AmountInput component with accessibility notes.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
For Website Improvement work:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
Use design_ai_site_mcp_check on this Website Improvement workspace JSON.
|
|
128
|
+
Then generate a design_ai_site_mcp_plan and summarize blocking MCP gaps.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Safety boundaries
|
|
132
|
+
|
|
133
|
+
- The server runs locally over stdio.
|
|
134
|
+
- The default tools do not call external MCP servers.
|
|
135
|
+
- Website Improvement MCP readiness tools inspect local workspace JSON only.
|
|
136
|
+
- `design_ai_prompt` and `design_ai_pack` are read-only unless `withLearning` is set.
|
|
137
|
+
- The server does not mutate target repositories.
|
|
138
|
+
- Do not pass secrets in briefs, workspace JSON, or artifacts.
|
|
139
|
+
|
|
140
|
+
## Verify locally
|
|
141
|
+
|
|
142
|
+
Run the unit and subprocess smoke tests:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
node --test cli/lib/mcp-server.test.mjs
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Run a protocol smoke manually:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
printf '%s\n' \
|
|
152
|
+
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25"}}' \
|
|
153
|
+
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
|
|
154
|
+
| node cli/bin/design-ai-mcp.mjs
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
The output must contain valid one-line JSON-RPC responses and a `tools` list.
|
|
158
|
+
|
|
159
|
+
## References
|
|
160
|
+
|
|
161
|
+
- [Model Context Protocol specification](https://modelcontextprotocol.io/specification/2025-11-25)
|
|
162
|
+
- [Claude Code MCP documentation](https://code.claude.com/docs/en/mcp)
|
|
163
|
+
- [Codex MCP documentation](https://developers.openai.com/codex/mcp)
|
|
164
|
+
|
|
165
|
+
## Cross-reference
|
|
166
|
+
|
|
167
|
+
- [`../MCP-INTEGRATION.md`](../MCP-INTEGRATION.md)
|
|
168
|
+
- [`../CODEX-INTEGRATION.md`](../CODEX-INTEGRATION.md)
|
|
169
|
+
- [`../USING.md`](../USING.md)
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Figma MCP integration
|
|
2
|
+
|
|
3
|
+
Use Figma MCP to bridge design-ai with real Figma files: read existing tokens/components, write generated tokens as Variables, set up Code Connect mappings.
|
|
4
|
+
|
|
5
|
+
## Available tools (when MCP connected)
|
|
6
|
+
|
|
7
|
+
| Tool | What it does |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| `mcp__Figma__get_metadata` | File structure — nodes, pages, components |
|
|
10
|
+
| `mcp__Figma__get_design_context` | Selected node's design tokens, styles, components |
|
|
11
|
+
| `mcp__Figma__get_variable_defs` | All Variables in the file |
|
|
12
|
+
| `mcp__Figma__get_screenshot` | Render a frame as image |
|
|
13
|
+
| `mcp__Figma__get_code_connect_map` | Existing Code Connect mappings |
|
|
14
|
+
| `mcp__Figma__add_code_connect_map` | Add a new component mapping |
|
|
15
|
+
| `mcp__Figma__create_design_system_rules` | Apply rule sets to file |
|
|
16
|
+
|
|
17
|
+
## Workflow A: read tokens from Figma
|
|
18
|
+
|
|
19
|
+
When a designer maintains tokens in Figma and you want to extract them.
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
You: Pull the latest tokens from this Figma file: <link>
|
|
23
|
+
Agent:
|
|
24
|
+
1. mcp__Figma__get_variable_defs(file_key=...)
|
|
25
|
+
2. Transforms the result into design-ai's token format (W3C DTCG / Style Dictionary).
|
|
26
|
+
3. Saves to refs/figma/<file>-tokens.json (gitignored).
|
|
27
|
+
4. Shows summary: "Extracted 47 color, 12 spacing, 8 typography variables."
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The output is then consumed by `tools/extractors/figma.py` (when added) or imported into Style Dictionary directly.
|
|
31
|
+
|
|
32
|
+
## Workflow B: audit a Figma design
|
|
33
|
+
|
|
34
|
+
When designs are in Figma and you want a design-ai review.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
You: Audit this Figma frame: <link>
|
|
38
|
+
Agent:
|
|
39
|
+
1. mcp__Figma__get_screenshot(file_key=..., node_id=...)
|
|
40
|
+
[image returned, agent inspects]
|
|
41
|
+
2. mcp__Figma__get_design_context(file_key=..., node_id=...)
|
|
42
|
+
[used components, applied tokens]
|
|
43
|
+
3. Apply skills/ux-audit/PLAYBOOK.md against the screenshot + tokens.
|
|
44
|
+
4. Output: severity-ranked findings.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The agent evaluates the design AND its token usage simultaneously.
|
|
48
|
+
|
|
49
|
+
## Workflow C: spec a component from Figma
|
|
50
|
+
|
|
51
|
+
User has a component in Figma but no spec.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
You: Spec this component: <Figma link with node_id>
|
|
55
|
+
Agent:
|
|
56
|
+
1. mcp__Figma__get_metadata(file_key=..., node_id=...)
|
|
57
|
+
2. Read variants from the component set.
|
|
58
|
+
3. Read tokens from the design context.
|
|
59
|
+
4. Apply skills/component-spec-writer/PLAYBOOK.md.
|
|
60
|
+
5. Output a spec markdown file matching examples/component-*.md format.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The Figma component is the source; the spec is the derived contract.
|
|
64
|
+
|
|
65
|
+
## Workflow D: write tokens TO Figma
|
|
66
|
+
|
|
67
|
+
When code is the source-of-truth and Figma needs updating.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
You: Push our design-ai tokens to this Figma file: <link>
|
|
71
|
+
Agent:
|
|
72
|
+
1. Read tokens/source.json from the project.
|
|
73
|
+
2. For each token, mcp__Figma__... (write Variable).
|
|
74
|
+
|
|
75
|
+
Note: as of mid-2025, Figma MCP's WRITE access for Variables is
|
|
76
|
+
limited. The Tokens Studio plugin is more capable for bidirectional
|
|
77
|
+
sync. For now, READ is the strong path.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
For real two-way sync: use Tokens Studio (UI-based) AND Figma MCP (read-only verification). See [`docs/TOKEN-SYNC.md`](../TOKEN-SYNC.md).
|
|
81
|
+
|
|
82
|
+
## Workflow E: Code Connect mapping via MCP
|
|
83
|
+
|
|
84
|
+
Map a Figma component to its React code without leaving the agent.
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
You: Map our Figma Button to src/components/Button/Button.tsx
|
|
88
|
+
Agent:
|
|
89
|
+
1. mcp__Figma__get_code_connect_map(file_key=...)
|
|
90
|
+
[check existing mappings]
|
|
91
|
+
2. Read the React component's TypeScript types.
|
|
92
|
+
3. Build a Code Connect manifest matching variants.
|
|
93
|
+
4. mcp__Figma__add_code_connect_map(file_key=..., mapping={...})
|
|
94
|
+
5. Confirm.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Setup
|
|
98
|
+
|
|
99
|
+
### Authentication
|
|
100
|
+
|
|
101
|
+
Figma MCP requires:
|
|
102
|
+
- A Figma account (free or paid).
|
|
103
|
+
- The Figma desktop app open (some MCPs need active session).
|
|
104
|
+
- An auth token with read scope (and write, for token-write workflows).
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# Claude Code
|
|
108
|
+
claude mcp add figma --command "npx" --args "@figma/mcp-server"
|
|
109
|
+
|
|
110
|
+
# Codex CLI: add to ~/.codex/mcp.json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
After setup, run `mcp__Figma__get_metadata` once to verify auth works.
|
|
114
|
+
|
|
115
|
+
### File access
|
|
116
|
+
|
|
117
|
+
Figma MCP reads files the authenticated user can access. For team files: ensure the auth user has been invited.
|
|
118
|
+
|
|
119
|
+
For public Figma Community files: anyone can read with auth.
|
|
120
|
+
|
|
121
|
+
## Common pitfalls
|
|
122
|
+
|
|
123
|
+
| Pitfall | Fix |
|
|
124
|
+
| --- | --- |
|
|
125
|
+
| MCP can't find file | Verify `file_key` in URL: `figma.com/file/<file_key>/...` |
|
|
126
|
+
| Variables not returned | File uses Styles (legacy), not Variables. Check Figma's Variables panel. |
|
|
127
|
+
| Permission denied | Auth user needs file access. Re-auth or share the file. |
|
|
128
|
+
| Rate limit | Figma API caps. Cache MCP responses; avoid polling. |
|
|
129
|
+
|
|
130
|
+
## Privacy
|
|
131
|
+
|
|
132
|
+
- Figma file URLs identify private design work. Don't commit them to public repos.
|
|
133
|
+
- The auth token has access to all files the user can see — careful where it's deployed.
|
|
134
|
+
- design-ai never logs or echoes the auth token (skills reference `mcp__Figma__*` tools, not the underlying credentials).
|
|
135
|
+
|
|
136
|
+
## When Figma MCP is unavailable
|
|
137
|
+
|
|
138
|
+
design-ai's `figma-token-sync` skill detects no MCP and falls back to:
|
|
139
|
+
- Asking user to export tokens from Tokens Studio plugin manually.
|
|
140
|
+
- Asking user to paste a screenshot for visual audits.
|
|
141
|
+
- Skipping the Code Connect step (do it via Figma desktop directly).
|
|
142
|
+
|
|
143
|
+
## Cross-reference
|
|
144
|
+
|
|
145
|
+
- [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — overview
|
|
146
|
+
- [`docs/FIGMA-INTEGRATION.md`](../FIGMA-INTEGRATION.md) — broader Figma workflows (without MCP)
|
|
147
|
+
- [`docs/TOKEN-SYNC.md`](../TOKEN-SYNC.md) — token sync strategy
|
|
148
|
+
- [`skills/figma-token-sync/PLAYBOOK.md`](../../skills/figma-token-sync/PLAYBOOK.md) — the MCP-aware skill
|
|
149
|
+
- `tools/figma-plugin/README.md` — alternative manual import path
|