@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.
Files changed (529) hide show
  1. package/.claude-plugin/plugin.json +164 -0
  2. package/AGENTS.ko.md +126 -0
  3. package/AGENTS.md +182 -0
  4. package/CHANGELOG.md +6883 -0
  5. package/CLAUDE.md +39 -0
  6. package/LICENSE +21 -0
  7. package/README.ko.md +245 -0
  8. package/README.md +277 -0
  9. package/agents/README.md +14 -0
  10. package/agents/a11y-reviewer.md +121 -0
  11. package/agents/component-architect.md +57 -0
  12. package/agents/design-critic.md +46 -0
  13. package/agents/token-extractor.md +63 -0
  14. package/cli/bin/design-ai-mcp.mjs +6 -0
  15. package/cli/bin/design-ai.mjs +40 -0
  16. package/cli/commands/audit.mjs +111 -0
  17. package/cli/commands/check.mjs +226 -0
  18. package/cli/commands/doctor.mjs +141 -0
  19. package/cli/commands/examples.mjs +58 -0
  20. package/cli/commands/help.mjs +271 -0
  21. package/cli/commands/install.mjs +161 -0
  22. package/cli/commands/learn.mjs +1871 -0
  23. package/cli/commands/list.mjs +143 -0
  24. package/cli/commands/mcp.mjs +27 -0
  25. package/cli/commands/pack.mjs +211 -0
  26. package/cli/commands/prompt.mjs +199 -0
  27. package/cli/commands/route.mjs +247 -0
  28. package/cli/commands/search.mjs +60 -0
  29. package/cli/commands/show.mjs +52 -0
  30. package/cli/commands/site.mjs +558 -0
  31. package/cli/commands/status.mjs +161 -0
  32. package/cli/commands/uninstall.mjs +119 -0
  33. package/cli/commands/update.mjs +184 -0
  34. package/cli/commands/version.mjs +94 -0
  35. package/cli/commands/workspace.mjs +176 -0
  36. package/cli/lib/brief.mjs +52 -0
  37. package/cli/lib/check.mjs +642 -0
  38. package/cli/lib/dispatch.mjs +109 -0
  39. package/cli/lib/doctor.mjs +505 -0
  40. package/cli/lib/examples.mjs +258 -0
  41. package/cli/lib/exec.mjs +63 -0
  42. package/cli/lib/help-flags.mjs +5 -0
  43. package/cli/lib/learn.mjs +3694 -0
  44. package/cli/lib/log.mjs +47 -0
  45. package/cli/lib/mcp-server.mjs +426 -0
  46. package/cli/lib/output.mjs +101 -0
  47. package/cli/lib/pack.mjs +599 -0
  48. package/cli/lib/paths.mjs +63 -0
  49. package/cli/lib/prompt.mjs +603 -0
  50. package/cli/lib/route.mjs +740 -0
  51. package/cli/lib/search.mjs +158 -0
  52. package/cli/lib/show.mjs +161 -0
  53. package/cli/lib/signals.mjs +2337 -0
  54. package/cli/lib/site.mjs +6617 -0
  55. package/cli/lib/skill-proposals.mjs +2046 -0
  56. package/cli/lib/suggest.mjs +66 -0
  57. package/cli/lib/workspace.mjs +1056 -0
  58. package/commands/README.md +25 -0
  59. package/commands/component-spec.md +34 -0
  60. package/commands/conversational.md +44 -0
  61. package/commands/design-from-brief.md +141 -0
  62. package/commands/design-review.md +62 -0
  63. package/commands/document-from-brief.md +47 -0
  64. package/commands/extract-tokens.md +38 -0
  65. package/commands/game-ui.md +40 -0
  66. package/commands/illustration.md +37 -0
  67. package/commands/iterate.md +167 -0
  68. package/commands/motion-design.md +54 -0
  69. package/commands/palette-from-brand.md +50 -0
  70. package/commands/print.md +49 -0
  71. package/commands/slide-deck.md +46 -0
  72. package/commands/spatial.md +47 -0
  73. package/commands/stability-review.md +74 -0
  74. package/commands/video.md +42 -0
  75. package/commands/website-improvement.md +77 -0
  76. package/docs/AGENT-DEVELOPMENT.md +658 -0
  77. package/docs/AI-LEARNING.md +429 -0
  78. package/docs/AIDER-INTEGRATION.md +224 -0
  79. package/docs/ARCHITECTURE.ko.md +183 -0
  80. package/docs/ARCHITECTURE.md +105 -0
  81. package/docs/CODEX-INTEGRATION.md +311 -0
  82. package/docs/COMPANY-WEBSITE-DOGFOOD.ko.md +144 -0
  83. package/docs/COMPANY-WEBSITE-DOGFOOD.md +150 -0
  84. package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.ko.md +153 -0
  85. package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.md +154 -0
  86. package/docs/CONTRIBUTING.ko.md +203 -0
  87. package/docs/CONTRIBUTING.md +242 -0
  88. package/docs/CURSOR-INTEGRATION.md +220 -0
  89. package/docs/DISTRIBUTION.ko.md +248 -0
  90. package/docs/DISTRIBUTION.md +253 -0
  91. package/docs/DOGFOOD-FINDINGS.md +180 -0
  92. package/docs/DOGFOOD-V4-FINDINGS.md +139 -0
  93. package/docs/DOGFOOD-V4-MKDOCS-FINDINGS.md +233 -0
  94. package/docs/DOGFOOD-V4-NPM-FINDINGS.md +157 -0
  95. package/docs/DOGFOOD-V4-VSCODE-FINDINGS.md +135 -0
  96. package/docs/FIGMA-INTEGRATION.md +222 -0
  97. package/docs/MCP-INTEGRATION.md +243 -0
  98. package/docs/MIGRATION-v4.md +121 -0
  99. package/docs/PLUGIN-PACKAGING.md +240 -0
  100. package/docs/PRODUCT-READINESS.md +66 -0
  101. package/docs/QUICKSTART.ko.md +178 -0
  102. package/docs/QUICKSTART.md +179 -0
  103. package/docs/RELEASE-CHECKLIST.md +292 -0
  104. package/docs/ROADMAP.md +19495 -0
  105. package/docs/SESSION-LOG.md +940 -0
  106. package/docs/TOKEN-SYNC.md +237 -0
  107. package/docs/USING.ko.md +206 -0
  108. package/docs/USING.md +218 -0
  109. package/docs/WEBSITE-IMPROVEMENT.ko.md +75 -0
  110. package/docs/WEBSITE-IMPROVEMENT.md +89 -0
  111. package/docs/announcements/README.md +56 -0
  112. package/docs/announcements/dev-to-korea.md +206 -0
  113. package/docs/announcements/hashnode-post.ko.md +232 -0
  114. package/docs/announcements/okky-post.ko.md +158 -0
  115. package/docs/announcements/press-kit.md +101 -0
  116. package/docs/announcements/reddit-r-korea.md +196 -0
  117. package/docs/announcements/show-hn.md +114 -0
  118. package/docs/announcements/twitter-thread.md +255 -0
  119. package/docs/external-status.md +34 -0
  120. package/docs/integrations/aider-walkthrough.ko.md +275 -0
  121. package/docs/integrations/aider-walkthrough.md +274 -0
  122. package/docs/integrations/codex-walkthrough.ko.md +297 -0
  123. package/docs/integrations/codex-walkthrough.md +297 -0
  124. package/docs/integrations/cursor-walkthrough.ko.md +281 -0
  125. package/docs/integrations/cursor-walkthrough.md +284 -0
  126. package/docs/integrations/design-ai-mcp-server.md +169 -0
  127. package/docs/integrations/figma-mcp.md +149 -0
  128. package/docs/integrations/github-mcp.md +178 -0
  129. package/docs/integrations/linear-mcp.md +215 -0
  130. package/docs/integrations/notion-mcp.md +174 -0
  131. package/docs/integrations/sdk-walkthrough.ko.md +375 -0
  132. package/docs/integrations/sdk-walkthrough.md +375 -0
  133. package/docs/integrations/slack-mcp.md +208 -0
  134. package/docs/integrations/vscode-walkthrough.ko.md +202 -0
  135. package/docs/integrations/vscode-walkthrough.md +205 -0
  136. package/docs/requirements.txt +16 -0
  137. package/docs/site-overrides/extra.css +83 -0
  138. package/docs/site-overrides/favicon.svg +4 -0
  139. package/docs/site-overrides/logo.svg +10 -0
  140. package/docs/site-overrides/main.html +18 -0
  141. package/docs/website-console/app.js +2540 -0
  142. package/docs/website-console/index.html +24 -0
  143. package/docs/website-console/styles.css +975 -0
  144. package/examples/README.md +252 -0
  145. package/examples/cases/dogfood-v4-korean-hr-onboarding.md +356 -0
  146. package/examples/component-accordion-actions.md +153 -0
  147. package/examples/component-accordion-details.md +147 -0
  148. package/examples/component-accordion-summary.md +180 -0
  149. package/examples/component-accordion.md +229 -0
  150. package/examples/component-account-card.md +284 -0
  151. package/examples/component-address-input.md +260 -0
  152. package/examples/component-affix.md +190 -0
  153. package/examples/component-alert-dialog.md +210 -0
  154. package/examples/component-alert-title.md +77 -0
  155. package/examples/component-alert.md +192 -0
  156. package/examples/component-amount-input.md +278 -0
  157. package/examples/component-anchor.md +198 -0
  158. package/examples/component-app-bar.md +249 -0
  159. package/examples/component-aspect-ratio.md +156 -0
  160. package/examples/component-auto-complete.md +199 -0
  161. package/examples/component-avatar-group.md +170 -0
  162. package/examples/component-avatar.md +191 -0
  163. package/examples/component-back-top.md +123 -0
  164. package/examples/component-backdrop.md +148 -0
  165. package/examples/component-badge.md +181 -0
  166. package/examples/component-banner.md +237 -0
  167. package/examples/component-biometric-gate.md +281 -0
  168. package/examples/component-blockquote.md +153 -0
  169. package/examples/component-border-beam.md +207 -0
  170. package/examples/component-bottom-navigation.md +226 -0
  171. package/examples/component-box.md +112 -0
  172. package/examples/component-breadcrumb.md +222 -0
  173. package/examples/component-button-base.md +190 -0
  174. package/examples/component-button-group.md +117 -0
  175. package/examples/component-button.md +213 -0
  176. package/examples/component-calendar.md +280 -0
  177. package/examples/component-callout.md +131 -0
  178. package/examples/component-card-actions.md +101 -0
  179. package/examples/component-card-content.md +90 -0
  180. package/examples/component-card-header.md +122 -0
  181. package/examples/component-card-media.md +79 -0
  182. package/examples/component-card.md +233 -0
  183. package/examples/component-carousel.md +266 -0
  184. package/examples/component-cascader.md +135 -0
  185. package/examples/component-category-picker.md +271 -0
  186. package/examples/component-chart.md +237 -0
  187. package/examples/component-chat-interface.md +399 -0
  188. package/examples/component-checkbox.md +149 -0
  189. package/examples/component-click-away-listener.md +87 -0
  190. package/examples/component-code.md +213 -0
  191. package/examples/component-collapsible.md +219 -0
  192. package/examples/component-color-picker.md +110 -0
  193. package/examples/component-combobox.md +267 -0
  194. package/examples/component-command.md +299 -0
  195. package/examples/component-config-provider.md +190 -0
  196. package/examples/component-context-menu.md +179 -0
  197. package/examples/component-css-baseline.md +148 -0
  198. package/examples/component-date-picker.md +249 -0
  199. package/examples/component-descriptions.md +242 -0
  200. package/examples/component-dialog-actions.md +111 -0
  201. package/examples/component-dialog-content-text.md +76 -0
  202. package/examples/component-dialog-content.md +105 -0
  203. package/examples/component-dialog-title.md +104 -0
  204. package/examples/component-dialog.md +176 -0
  205. package/examples/component-divider.md +182 -0
  206. package/examples/component-doc-page.md +217 -0
  207. package/examples/component-drawer.md +257 -0
  208. package/examples/component-dropdown.md +220 -0
  209. package/examples/component-email-layout.md +253 -0
  210. package/examples/component-empty-state.md +269 -0
  211. package/examples/component-empty.md +172 -0
  212. package/examples/component-fade.md +87 -0
  213. package/examples/component-feature-grid.md +201 -0
  214. package/examples/component-field.md +266 -0
  215. package/examples/component-filled-input.md +114 -0
  216. package/examples/component-flex.md +117 -0
  217. package/examples/component-float-button.md +214 -0
  218. package/examples/component-form-control-label.md +134 -0
  219. package/examples/component-form-control.md +113 -0
  220. package/examples/component-form-controls.md +251 -0
  221. package/examples/component-form-group.md +86 -0
  222. package/examples/component-form-helper-text.md +95 -0
  223. package/examples/component-form-label.md +98 -0
  224. package/examples/component-form.md +291 -0
  225. package/examples/component-game-hud.md +362 -0
  226. package/examples/component-game-menu.md +327 -0
  227. package/examples/component-grid.md +140 -0
  228. package/examples/component-grow.md +79 -0
  229. package/examples/component-hero-block.md +252 -0
  230. package/examples/component-hover-card.md +211 -0
  231. package/examples/component-icon-button.md +142 -0
  232. package/examples/component-icon.md +102 -0
  233. package/examples/component-illustration.md +280 -0
  234. package/examples/component-image-list.md +107 -0
  235. package/examples/component-image.md +282 -0
  236. package/examples/component-input-adornment.md +101 -0
  237. package/examples/component-input-base.md +134 -0
  238. package/examples/component-input-number.md +141 -0
  239. package/examples/component-input-otp.md +271 -0
  240. package/examples/component-input.md +213 -0
  241. package/examples/component-item.md +243 -0
  242. package/examples/component-kbd.md +197 -0
  243. package/examples/component-krw-amount.md +219 -0
  244. package/examples/component-label.md +118 -0
  245. package/examples/component-layout.md +217 -0
  246. package/examples/component-link.md +223 -0
  247. package/examples/component-list-item-avatar.md +72 -0
  248. package/examples/component-list-item-button.md +139 -0
  249. package/examples/component-list-item-icon.md +82 -0
  250. package/examples/component-list-item-text.md +98 -0
  251. package/examples/component-list-item.md +116 -0
  252. package/examples/component-list-subheader.md +70 -0
  253. package/examples/component-list.md +198 -0
  254. package/examples/component-loading-button.md +125 -0
  255. package/examples/component-loading-sequence.md +254 -0
  256. package/examples/component-lottie-player.md +279 -0
  257. package/examples/component-masonry.md +191 -0
  258. package/examples/component-mentions.md +189 -0
  259. package/examples/component-menu-item.md +102 -0
  260. package/examples/component-menu-list.md +98 -0
  261. package/examples/component-menu.md +139 -0
  262. package/examples/component-menubar.md +259 -0
  263. package/examples/component-message.md +162 -0
  264. package/examples/component-mobile-stepper.md +155 -0
  265. package/examples/component-modal.md +220 -0
  266. package/examples/component-navigation-menu.md +295 -0
  267. package/examples/component-notification.md +166 -0
  268. package/examples/component-otp-countdown.md +245 -0
  269. package/examples/component-outlined-input.md +145 -0
  270. package/examples/component-page-transition.md +281 -0
  271. package/examples/component-pagination.md +226 -0
  272. package/examples/component-paper.md +199 -0
  273. package/examples/component-pass-auth.md +265 -0
  274. package/examples/component-payment-brand-button.md +253 -0
  275. package/examples/component-payment-method-selector.md +272 -0
  276. package/examples/component-payment-receipt.md +277 -0
  277. package/examples/component-popconfirm.md +144 -0
  278. package/examples/component-popover.md +239 -0
  279. package/examples/component-popper.md +129 -0
  280. package/examples/component-pricing-cards.md +247 -0
  281. package/examples/component-progress.md +195 -0
  282. package/examples/component-qr-code.md +201 -0
  283. package/examples/component-radio.md +167 -0
  284. package/examples/component-rate.md +202 -0
  285. package/examples/component-resizable.md +163 -0
  286. package/examples/component-result.md +270 -0
  287. package/examples/component-scroll-area.md +199 -0
  288. package/examples/component-scroll-reveal.md +320 -0
  289. package/examples/component-segmented.md +178 -0
  290. package/examples/component-select.md +258 -0
  291. package/examples/component-separator.md +177 -0
  292. package/examples/component-sheet.md +277 -0
  293. package/examples/component-sidebar.md +257 -0
  294. package/examples/component-skeleton.md +178 -0
  295. package/examples/component-slide.md +89 -0
  296. package/examples/component-slider.md +208 -0
  297. package/examples/component-snackbar-content.md +92 -0
  298. package/examples/component-snackbar.md +121 -0
  299. package/examples/component-sonner.md +165 -0
  300. package/examples/component-space.md +125 -0
  301. package/examples/component-spatial-locomotion.md +373 -0
  302. package/examples/component-spatial-panel.md +330 -0
  303. package/examples/component-speed-dial-action.md +78 -0
  304. package/examples/component-speed-dial.md +177 -0
  305. package/examples/component-spin.md +173 -0
  306. package/examples/component-spinner.md +204 -0
  307. package/examples/component-splitter.md +210 -0
  308. package/examples/component-stack.md +130 -0
  309. package/examples/component-statistic.md +282 -0
  310. package/examples/component-step-button.md +157 -0
  311. package/examples/component-step-connector.md +157 -0
  312. package/examples/component-step-content.md +121 -0
  313. package/examples/component-step-icon.md +115 -0
  314. package/examples/component-step-label.md +101 -0
  315. package/examples/component-step.md +84 -0
  316. package/examples/component-steps.md +264 -0
  317. package/examples/component-stock-chart.md +251 -0
  318. package/examples/component-swipeable-drawer.md +149 -0
  319. package/examples/component-switch.md +99 -0
  320. package/examples/component-tab-scroll-button.md +180 -0
  321. package/examples/component-tab.md +120 -0
  322. package/examples/component-table-body.md +82 -0
  323. package/examples/component-table-cell.md +118 -0
  324. package/examples/component-table-container.md +75 -0
  325. package/examples/component-table-footer.md +72 -0
  326. package/examples/component-table-head.md +78 -0
  327. package/examples/component-table-pagination.md +137 -0
  328. package/examples/component-table-row.md +113 -0
  329. package/examples/component-table-sort-label.md +109 -0
  330. package/examples/component-table.md +202 -0
  331. package/examples/component-tabs.md +184 -0
  332. package/examples/component-tag-badge.md +309 -0
  333. package/examples/component-tag.md +102 -0
  334. package/examples/component-testimonial-carousel.md +218 -0
  335. package/examples/component-textarea-autosize.md +114 -0
  336. package/examples/component-textarea.md +173 -0
  337. package/examples/component-time-picker.md +205 -0
  338. package/examples/component-timeline.md +170 -0
  339. package/examples/component-toast.md +224 -0
  340. package/examples/component-toggle-button.md +129 -0
  341. package/examples/component-toggle.md +220 -0
  342. package/examples/component-toolbar.md +104 -0
  343. package/examples/component-tooltip.md +178 -0
  344. package/examples/component-tour.md +176 -0
  345. package/examples/component-transaction-list-item.md +243 -0
  346. package/examples/component-transfer.md +156 -0
  347. package/examples/component-tree-select.md +202 -0
  348. package/examples/component-tree.md +297 -0
  349. package/examples/component-typography.md +215 -0
  350. package/examples/component-upload.md +295 -0
  351. package/examples/component-video-hero.md +409 -0
  352. package/examples/component-video-player.md +340 -0
  353. package/examples/component-voice-input.md +408 -0
  354. package/examples/component-watermark.md +217 -0
  355. package/examples/component-zoom.md +92 -0
  356. package/examples/doc-explanation-example.md +196 -0
  357. package/examples/doc-how-to-example.md +205 -0
  358. package/examples/doc-tutorial-example.md +162 -0
  359. package/examples/dogfood-korean-fintech-system.md +433 -0
  360. package/examples/email-transactional-example.md +259 -0
  361. package/examples/palette-saas-violet.md +235 -0
  362. package/examples/print-business-card-spec.md +205 -0
  363. package/examples/print-packaging-spec.md +285 -0
  364. package/examples/report-example.md +228 -0
  365. package/examples/slide-deck-example.md +237 -0
  366. package/examples/website-improvement-report.md +128 -0
  367. package/examples/website-improvement-workspace.json +126 -0
  368. package/install.sh +189 -0
  369. package/knowledge/COVERAGE.md +740 -0
  370. package/knowledge/PRINCIPLES.md +108 -0
  371. package/knowledge/a11y/contrast.md +70 -0
  372. package/knowledge/a11y/keyboard-and-focus.md +108 -0
  373. package/knowledge/colors/color-theory.md +90 -0
  374. package/knowledge/colors/mui-palette-structure.md +105 -0
  375. package/knowledge/colors/palettes-by-product-type.md +876 -0
  376. package/knowledge/components/INDEX.md +231 -0
  377. package/knowledge/components/index.json +1470 -0
  378. package/knowledge/components/shadcn-registry.md +159 -0
  379. package/knowledge/conversational/ai-chat-interfaces.md +323 -0
  380. package/knowledge/conversational/chatbot-design.md +312 -0
  381. package/knowledge/conversational/conversational-ui-fundamentals.md +299 -0
  382. package/knowledge/conversational/korean-voice-conventions.md +281 -0
  383. package/knowledge/conversational/voice-ui-patterns.md +297 -0
  384. package/knowledge/design-tokens/ant-design.md +124 -0
  385. package/knowledge/design-tokens/material-3.md +235 -0
  386. package/knowledge/design-tokens/polaris-and-carbon.md +231 -0
  387. package/knowledge/design-tokens/tailwind-v4.md +284 -0
  388. package/knowledge/game-ui/game-accessibility.md +317 -0
  389. package/knowledge/game-ui/game-ui-fundamentals.md +281 -0
  390. package/knowledge/game-ui/hud-design.md +324 -0
  391. package/knowledge/game-ui/korean-gaming-conventions.md +312 -0
  392. package/knowledge/game-ui/menu-systems.md +388 -0
  393. package/knowledge/i18n/korean-app-store-visual.md +223 -0
  394. package/knowledge/i18n/korean-document-style.md +301 -0
  395. package/knowledge/i18n/korean-payments.md +211 -0
  396. package/knowledge/i18n/korean-product-conventions.md +96 -0
  397. package/knowledge/i18n/korean-publishing.md +139 -0
  398. package/knowledge/i18n/korean-typography.md +123 -0
  399. package/knowledge/icons/curated-sets.md +225 -0
  400. package/knowledge/illustration/hero-illustrations.md +234 -0
  401. package/knowledge/illustration/illustration-systems.md +221 -0
  402. package/knowledge/illustration/mascot-design.md +208 -0
  403. package/knowledge/illustration/spot-illustrations.md +246 -0
  404. package/knowledge/illustration/svg-optimization.md +308 -0
  405. package/knowledge/layout/spacing-and-grid.md +119 -0
  406. package/knowledge/motion/app-loading-sequences.md +277 -0
  407. package/knowledge/motion/choreography-depth.md +297 -0
  408. package/knowledge/motion/marketing-motion.md +223 -0
  409. package/knowledge/motion/micro-interactions.md +266 -0
  410. package/knowledge/motion/motion-tools.md +281 -0
  411. package/knowledge/motion/principles.md +126 -0
  412. package/knowledge/patterns/auth-flow-design.md +316 -0
  413. package/knowledge/patterns/b2b-onboarding-flows.md +182 -0
  414. package/knowledge/patterns/brand-identity.md +238 -0
  415. package/knowledge/patterns/brand-references.md +97 -0
  416. package/knowledge/patterns/chart-color-encoding.md +269 -0
  417. package/knowledge/patterns/chart-types.md +344 -0
  418. package/knowledge/patterns/dashboard-composition.md +299 -0
  419. package/knowledge/patterns/design-system-qa.md +356 -0
  420. package/knowledge/patterns/document-typography.md +248 -0
  421. package/knowledge/patterns/email-design.md +338 -0
  422. package/knowledge/patterns/empty-states.md +263 -0
  423. package/knowledge/patterns/error-states.md +318 -0
  424. package/knowledge/patterns/form-design.md +237 -0
  425. package/knowledge/patterns/information-architecture.md +341 -0
  426. package/knowledge/patterns/landing-hero-design.md +283 -0
  427. package/knowledge/patterns/landing-page-patterns.md +681 -0
  428. package/knowledge/patterns/list-and-feed.md +371 -0
  429. package/knowledge/patterns/mobile-navigation.md +278 -0
  430. package/knowledge/patterns/money-and-amount.md +301 -0
  431. package/knowledge/patterns/onboarding.md +300 -0
  432. package/knowledge/patterns/pricing-page-design.md +261 -0
  433. package/knowledge/patterns/realtime-data.md +280 -0
  434. package/knowledge/patterns/report-design.md +330 -0
  435. package/knowledge/patterns/search-ux.md +373 -0
  436. package/knowledge/patterns/settings-page.md +325 -0
  437. package/knowledge/patterns/slide-deck-design.md +316 -0
  438. package/knowledge/patterns/styles-catalog.md +2599 -0
  439. package/knowledge/patterns/technical-writing.md +306 -0
  440. package/knowledge/patterns/ui-reasoning.md +1853 -0
  441. package/knowledge/patterns/ux-guidelines.md +1454 -0
  442. package/knowledge/platforms/react-native.md +395 -0
  443. package/knowledge/print/brochures-and-flyers.md +276 -0
  444. package/knowledge/print/korean-print-conventions.md +284 -0
  445. package/knowledge/print/packaging.md +321 -0
  446. package/knowledge/print/print-fundamentals.md +238 -0
  447. package/knowledge/print/signage-and-posters.md +235 -0
  448. package/knowledge/print/stationery.md +262 -0
  449. package/knowledge/spatial/ar-patterns.md +253 -0
  450. package/knowledge/spatial/comfort-and-accessibility.md +245 -0
  451. package/knowledge/spatial/spatial-design-fundamentals.md +346 -0
  452. package/knowledge/spatial/spatial-ui-elements.md +343 -0
  453. package/knowledge/spatial/vr-patterns.md +302 -0
  454. package/knowledge/typography/font-pairings.md +332 -0
  455. package/knowledge/typography/mui-type-scale.md +57 -0
  456. package/knowledge/typography/type-scale-fundamentals.md +105 -0
  457. package/knowledge/video/in-product-video.md +277 -0
  458. package/knowledge/video/korean-video-conventions.md +247 -0
  459. package/knowledge/video/marketing-video.md +258 -0
  460. package/knowledge/video/social-and-short-form.md +257 -0
  461. package/knowledge/video/video-fundamentals.md +296 -0
  462. package/package.json +106 -0
  463. package/skills/README.md +39 -0
  464. package/skills/color-palette/PLAYBOOK.md +175 -0
  465. package/skills/color-palette/SKILL.md +6 -0
  466. package/skills/color-palette/TEMPLATE.md +103 -0
  467. package/skills/component-spec-writer/PLAYBOOK.md +169 -0
  468. package/skills/component-spec-writer/SKILL.md +6 -0
  469. package/skills/component-spec-writer/TEMPLATE.md +115 -0
  470. package/skills/conversational-ui-designer/PLAYBOOK.md +231 -0
  471. package/skills/conversational-ui-designer/SKILL.md +6 -0
  472. package/skills/design-broadcast/PLAYBOOK.md +146 -0
  473. package/skills/design-broadcast/SKILL.md +6 -0
  474. package/skills/design-critique/PLAYBOOK.md +137 -0
  475. package/skills/design-critique/SKILL.md +6 -0
  476. package/skills/design-pr-review/PLAYBOOK.md +171 -0
  477. package/skills/design-pr-review/SKILL.md +6 -0
  478. package/skills/design-system-builder/PLAYBOOK.md +218 -0
  479. package/skills/design-system-builder/SKILL.md +6 -0
  480. package/skills/design-system-qa/PLAYBOOK.md +163 -0
  481. package/skills/design-system-qa/SKILL.md +6 -0
  482. package/skills/document-author/PLAYBOOK.md +167 -0
  483. package/skills/document-author/SKILL.md +6 -0
  484. package/skills/figma-token-sync/PLAYBOOK.md +149 -0
  485. package/skills/figma-token-sync/SKILL.md +6 -0
  486. package/skills/game-ui-designer/PLAYBOOK.md +209 -0
  487. package/skills/game-ui-designer/SKILL.md +6 -0
  488. package/skills/handoff-spec/PLAYBOOK.md +170 -0
  489. package/skills/handoff-spec/SKILL.md +6 -0
  490. package/skills/illustration-designer/PLAYBOOK.md +166 -0
  491. package/skills/illustration-designer/SKILL.md +6 -0
  492. package/skills/motion-designer/PLAYBOOK.md +223 -0
  493. package/skills/motion-designer/SKILL.md +6 -0
  494. package/skills/print-designer/PLAYBOOK.md +209 -0
  495. package/skills/print-designer/SKILL.md +6 -0
  496. package/skills/slide-deck-author/PLAYBOOK.md +198 -0
  497. package/skills/slide-deck-author/SKILL.md +6 -0
  498. package/skills/spatial-designer/PLAYBOOK.md +238 -0
  499. package/skills/spatial-designer/SKILL.md +6 -0
  500. package/skills/ux-audit/PLAYBOOK.md +142 -0
  501. package/skills/ux-audit/SKILL.md +6 -0
  502. package/skills/video-designer/PLAYBOOK.md +240 -0
  503. package/skills/video-designer/SKILL.md +6 -0
  504. package/skills/website-improvement/PLAYBOOK.md +118 -0
  505. package/skills/website-improvement/SKILL.md +6 -0
  506. package/skills/website-improvement/TEMPLATE.md +103 -0
  507. package/tools/audit/changelog-generate.py +176 -0
  508. package/tools/audit/check-coverage.py +483 -0
  509. package/tools/audit/doctor_assertions.py +256 -0
  510. package/tools/audit/example-qa.py +108 -0
  511. package/tools/audit/frontmatter-check.py +199 -0
  512. package/tools/audit/integration-check.py +95 -0
  513. package/tools/audit/korean-copy-check.py +161 -0
  514. package/tools/audit/link-check.py +146 -0
  515. package/tools/audit/local-ci.py +558 -0
  516. package/tools/audit/package-contents.py +723 -0
  517. package/tools/audit/package-smoke.py +22443 -0
  518. package/tools/audit/raw-hex-check.py +252 -0
  519. package/tools/audit/registry-smoke.py +8188 -0
  520. package/tools/audit/release-metadata.py +9832 -0
  521. package/tools/audit/run-all.py +351 -0
  522. package/tools/audit/smoke_assertions.py +12742 -0
  523. package/tools/audit/stability-review.py +332 -0
  524. package/tools/audit/stale-check.py +156 -0
  525. package/tools/migrations/add-version-frontmatter.py +132 -0
  526. package/tools/migrations/bump-last-updated.py +131 -0
  527. package/tools/migrations/promote-stability.py +172 -0
  528. package/tools/preview/README.md +58 -0
  529. 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