@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,375 @@
1
+ # SDK walkthrough — Anthropic + OpenAI
2
+
3
+ How to use design-ai inside your own code via the Anthropic SDK or OpenAI SDK. For when you're embedding design-aware AI into a product (not using a CLI agent).
4
+
5
+ ## Prerequisites
6
+
7
+ ```bash
8
+ # Get design-ai (just the corpus; no CLI install needed for SDK use)
9
+ git clone https://github.com/sungjin9288/design-ai.git ~/dev/design-ai
10
+
11
+ # Install your SDK of choice
12
+ pip install anthropic # or
13
+ pip install openai
14
+
15
+ # Set API key
16
+ export ANTHROPIC_API_KEY=...
17
+ # OR
18
+ export OPENAI_API_KEY=...
19
+ ```
20
+
21
+ ## Setup
22
+
23
+ For SDK adoption, design-ai is just markdown files. There's no install step — your code reads them directly into the model's system prompt at runtime.
24
+
25
+ The pattern below loads a configurable subset of the corpus:
26
+
27
+ ```python
28
+ from pathlib import Path
29
+
30
+ DESIGN_AI = Path("/Users/you/dev/design-ai") # adjust to your clone path
31
+
32
+ def design_ai_path(rel: str) -> str:
33
+ return (DESIGN_AI / rel).read_text(encoding="utf-8")
34
+ ```
35
+
36
+ That's it. The walkthroughs below build on this primitive.
37
+
38
+ ## Pattern: design-ai as system prompt
39
+
40
+ design-ai is markdown. Load relevant files into the system prompt; the model treats them as authoritative context.
41
+
42
+ ### Anatomy
43
+
44
+ ```
45
+ System prompt =
46
+ AGENTS.md (universal entry)
47
+ + knowledge/PRINCIPLES.md (single-page load-bearing rules)
48
+ + skills/<skill>/PLAYBOOK.md (the active skill)
49
+ + knowledge/<relevant>/<file>.md (per task)
50
+
51
+ User message =
52
+ "Apply the X skill: <task>"
53
+
54
+ Output =
55
+ Per the skill's template
56
+ ```
57
+
58
+ ## Walkthrough 1: Anthropic SDK + Sonnet
59
+
60
+ ```python
61
+ import anthropic
62
+ from pathlib import Path
63
+
64
+ DESIGN_AI = Path("/Users/you/dev/design-ai")
65
+
66
+ def load_skill_context(skill: str, knowledge_files: list[str]) -> str:
67
+ parts = [
68
+ (DESIGN_AI / "AGENTS.md").read_text(),
69
+ (DESIGN_AI / "knowledge/PRINCIPLES.md").read_text(),
70
+ (DESIGN_AI / f"skills/{skill}/PLAYBOOK.md").read_text(),
71
+ ]
72
+ for k in knowledge_files:
73
+ parts.append((DESIGN_AI / k).read_text())
74
+ return "\n\n---\n\n".join(parts)
75
+
76
+ client = anthropic.Anthropic()
77
+
78
+ system = load_skill_context(
79
+ skill="component-spec-writer",
80
+ knowledge_files=[
81
+ "knowledge/components/INDEX.md",
82
+ "knowledge/i18n/korean-document-style.md",
83
+ "examples/component-banner.md", # reference for shape
84
+ ],
85
+ )
86
+
87
+ message = client.messages.create(
88
+ model="claude-sonnet-4-6",
89
+ max_tokens=4096,
90
+ system=system,
91
+ messages=[
92
+ {"role": "user", "content": (
93
+ "Spec a Banner component for a Korean fintech app. "
94
+ "Persistent in-page strip for system status. Distinct from "
95
+ "Alert (inline) and Toast (transient). Variants: info / "
96
+ "success / warning / error / promo. Dismissible."
97
+ )},
98
+ ],
99
+ )
100
+
101
+ print(message.content[0].text)
102
+ ```
103
+
104
+ ### With prompt caching (recommended)
105
+
106
+ For repeated calls with the same system prompt, use prompt caching to avoid re-paying for the corpus:
107
+
108
+ ```python
109
+ import anthropic
110
+
111
+ client = anthropic.Anthropic()
112
+
113
+ system_blocks = [
114
+ {
115
+ "type": "text",
116
+ "text": (DESIGN_AI / "AGENTS.md").read_text(),
117
+ "cache_control": {"type": "ephemeral"},
118
+ },
119
+ {
120
+ "type": "text",
121
+ "text": (DESIGN_AI / "knowledge/PRINCIPLES.md").read_text(),
122
+ "cache_control": {"type": "ephemeral"},
123
+ },
124
+ {
125
+ "type": "text",
126
+ "text": (DESIGN_AI / "skills/component-spec-writer/PLAYBOOK.md").read_text(),
127
+ "cache_control": {"type": "ephemeral"},
128
+ },
129
+ ]
130
+
131
+ message = client.messages.create(
132
+ model="claude-sonnet-4-6",
133
+ max_tokens=4096,
134
+ system=system_blocks, # array of cache-aware blocks
135
+ messages=[{"role": "user", "content": "Spec a Banner component..."}],
136
+ )
137
+ ```
138
+
139
+ The corpus contributes ~10-30K tokens to the prompt. With caching, after the first call, subsequent calls hit the cache (5-min TTL); cost drops by ~90%.
140
+
141
+ ## Walkthrough 2: OpenAI SDK + GPT-4o
142
+
143
+ ```python
144
+ import openai
145
+ from pathlib import Path
146
+
147
+ DESIGN_AI = Path("/Users/you/dev/design-ai")
148
+
149
+ def load_skill_context(skill: str, knowledge_files: list[str]) -> str:
150
+ parts = [
151
+ (DESIGN_AI / "AGENTS.md").read_text(),
152
+ (DESIGN_AI / "knowledge/PRINCIPLES.md").read_text(),
153
+ (DESIGN_AI / f"skills/{skill}/PLAYBOOK.md").read_text(),
154
+ ]
155
+ for k in knowledge_files:
156
+ parts.append((DESIGN_AI / k).read_text())
157
+ return "\n\n---\n\n".join(parts)
158
+
159
+ client = openai.OpenAI()
160
+
161
+ system = load_skill_context(
162
+ skill="color-palette",
163
+ knowledge_files=[
164
+ "knowledge/colors/color-theory.md",
165
+ "knowledge/colors/palettes-by-product-type.md",
166
+ "knowledge/i18n/korean-typography.md",
167
+ ],
168
+ )
169
+
170
+ response = client.chat.completions.create(
171
+ model="gpt-4o",
172
+ messages=[
173
+ {"role": "system", "content": system},
174
+ {"role": "user", "content": (
175
+ "Generate a full palette for a Korean fintech for freelancers. "
176
+ "Brand: trustworthy, calm, modern. Seed: oklch(56% 0.16 244)."
177
+ )},
178
+ ],
179
+ )
180
+
181
+ print(response.choices[0].message.content)
182
+ ```
183
+
184
+ OpenAI's prompt caching (auto-detected for `messages` ≄ 1024 tokens) handles the cost savings without explicit `cache_control`.
185
+
186
+ ## Walkthrough 3: Streaming for long outputs
187
+
188
+ For long design system bootstraps, streaming UX is essential:
189
+
190
+ ```python
191
+ with client.messages.stream(
192
+ model="claude-sonnet-4-6",
193
+ max_tokens=8192,
194
+ system=system_blocks,
195
+ messages=[{"role": "user", "content": "Apply design-system-builder..."}],
196
+ ) as stream:
197
+ for chunk in stream.text_stream:
198
+ print(chunk, end="", flush=True)
199
+ ```
200
+
201
+ OpenAI equivalent:
202
+
203
+ ```python
204
+ stream = client.chat.completions.create(
205
+ model="gpt-4o",
206
+ messages=[{"role": "system", "content": system}, {"role": "user", "content": "..."}],
207
+ stream=True,
208
+ )
209
+ for chunk in stream:
210
+ if chunk.choices[0].delta.content:
211
+ print(chunk.choices[0].delta.content, end="", flush=True)
212
+ ```
213
+
214
+ ## Walkthrough 4: Tool use for multi-skill workflows
215
+
216
+ Use the model's tool-use capability to chain skills:
217
+
218
+ ```python
219
+ tools = [
220
+ {
221
+ "name": "apply_skill",
222
+ "description": "Apply a design-ai skill. Returns the skill's playbook for the model to follow.",
223
+ "input_schema": {
224
+ "type": "object",
225
+ "properties": {
226
+ "skill": {
227
+ "type": "string",
228
+ "enum": ["color-palette", "component-spec-writer", "ux-audit", "..."],
229
+ },
230
+ },
231
+ "required": ["skill"],
232
+ },
233
+ },
234
+ {
235
+ "name": "read_knowledge",
236
+ "description": "Read a knowledge file from the design-ai corpus.",
237
+ "input_schema": {
238
+ "type": "object",
239
+ "properties": {"path": {"type": "string"}},
240
+ "required": ["path"],
241
+ },
242
+ },
243
+ ]
244
+
245
+ # When the model calls apply_skill or read_knowledge, your handler reads
246
+ # the corresponding markdown file and returns its content as the tool result.
247
+ ```
248
+
249
+ This lets the model dynamically choose what to read instead of forcing all context into the initial system prompt.
250
+
251
+ ## Walkthrough 5: Production app — design-aware chatbot
252
+
253
+ A practical example: a chatbot that answers design questions for your team, grounded in design-ai.
254
+
255
+ ```python
256
+ from anthropic import Anthropic
257
+ from pathlib import Path
258
+
259
+ DESIGN_AI = Path("/Users/you/dev/design-ai")
260
+ client = Anthropic()
261
+
262
+ # Pre-load corpus into a single cached system prompt.
263
+ def build_system() -> list[dict]:
264
+ return [
265
+ {
266
+ "type": "text",
267
+ "text": (DESIGN_AI / "AGENTS.md").read_text(),
268
+ "cache_control": {"type": "ephemeral"},
269
+ },
270
+ {
271
+ "type": "text",
272
+ "text": (DESIGN_AI / "knowledge/PRINCIPLES.md").read_text(),
273
+ "cache_control": {"type": "ephemeral"},
274
+ },
275
+ # Pre-include the most-asked playbooks
276
+ *[
277
+ {
278
+ "type": "text",
279
+ "text": (DESIGN_AI / f"skills/{s}/PLAYBOOK.md").read_text(),
280
+ "cache_control": {"type": "ephemeral"},
281
+ }
282
+ for s in ["component-spec-writer", "color-palette", "ux-audit"]
283
+ ],
284
+ ]
285
+
286
+ SYSTEM = build_system()
287
+
288
+ def ask(question: str) -> str:
289
+ response = client.messages.create(
290
+ model="claude-sonnet-4-6",
291
+ max_tokens=4096,
292
+ system=SYSTEM,
293
+ messages=[{"role": "user", "content": question}],
294
+ )
295
+ return response.content[0].text
296
+
297
+ # Use:
298
+ print(ask("What's the canonical Toast vs Alert vs Banner distinction?"))
299
+ print(ask("How should I compose a Form using shadcn primitives?"))
300
+ ```
301
+
302
+ For a Slack bot / Discord bot / web chat: wrap `ask()` in your platform's HTTP handler. Cache hit-rate stays high; per-question cost drops to ~$0.001-0.005 with Sonnet.
303
+
304
+ ## Tips for SDK adoption
305
+
306
+ ### Cost control
307
+
308
+ - **Cache the corpus**: 90% cost reduction on repeat calls.
309
+ - **Load only what's needed**: don't include all 92 knowledge files. Per-task selection (3-7 files) is plenty.
310
+ - **Use Haiku for simpler tasks**: color-palette generation works fine on Haiku (5Ɨ cheaper). Reserve Sonnet/Opus for design-system-builder, ux-audit (complex synthesis).
311
+
312
+ ### Output structure
313
+
314
+ design-ai skills produce predictable structures (anatomy / API / states / tokens / a11y). For programmatic post-processing:
315
+ - Parse markdown into sections via headings.
316
+ - Or instruct the model to output JSON: "Same content, but as JSON with keys: anatomy, api, states, tokens, a11y, edgeCases."
317
+
318
+ ### Integration with your product
319
+
320
+ Common patterns:
321
+ - **Design assistant chatbot** — Q&A bot for design teams.
322
+ - **PR comment bot** — auto-review design PRs against the corpus.
323
+ - **Internal docs generator** — turn brand brief → design system docs.
324
+ - **Token sync agent** — compare Figma tokens to code tokens, suggest reconciliation.
325
+ - **Pre-flight check** — before shipping a component, audit it via design-system-qa.
326
+
327
+ ### Korean output
328
+
329
+ Same as other agents: load `knowledge/i18n/` files for Korean tasks; prompt explicitly for ķ•“ģš”ģ²“ / 합쇼첓 register.
330
+
331
+ ## Reference projects
332
+
333
+ This pattern mirrors how Anthropic's own internal design tooling and other open-source projects load corpus context. Notable similar approaches:
334
+ - **Continue.dev** — code-context-aware coding assistants.
335
+ - **Claude Code itself** — uses skills + agents the same way at the SDK level.
336
+ - **Cursor / Windsurf / Codeium** — workspace-aware editors that load relevant docs.
337
+
338
+ ## Troubleshooting
339
+
340
+ ### "Context too large" errors
341
+
342
+ Reduce loaded files. Default load:
343
+ - AGENTS.md (~3K tokens)
344
+ - PRINCIPLES.md (~5K tokens)
345
+ - One skill PLAYBOOK (~3-8K tokens)
346
+ - 1-3 knowledge files (~3-15K tokens each)
347
+
348
+ Total: 15-50K tokens. Well within Sonnet 4.6 (200K) / GPT-4o (128K). If you're loading more, you're probably loading too much.
349
+
350
+ ### Model ignores skill conventions
351
+
352
+ The skill PLAYBOOK has a "verification phase" checklist at the end. Prompt the model to apply it:
353
+
354
+ ```
355
+ "After producing your output, run the verification phase from the
356
+ playbook. List any items that fail and adjust."
357
+ ```
358
+
359
+ ### Korean conventions ignored
360
+
361
+ Either load `i18n/` files explicitly OR add to system prompt:
362
+
363
+ ```
364
+ "Audience is Korean B2C. Apply ķ•“ģš”ģ²“ voice. Use Pretendard
365
+ typography defaults. Follow knowledge/i18n/ conventions."
366
+ ```
367
+
368
+ ## Next
369
+
370
+ - [`docs/integrations/codex-walkthrough.md`](codex-walkthrough.md) — Codex CLI
371
+ - [`docs/integrations/cursor-walkthrough.md`](cursor-walkthrough.md) — Cursor
372
+ - [`docs/integrations/aider-walkthrough.md`](aider-walkthrough.md) — Aider
373
+ - [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — MCP servers (alternative to SDK loading)
374
+ - [Anthropic SDK docs](https://docs.anthropic.com/) — prompt caching reference
375
+ - [OpenAI SDK docs](https://platform.openai.com/docs) — caching reference
@@ -0,0 +1,208 @@
1
+ # Slack MCP integration
2
+
3
+ Use Slack MCP to broadcast design-ai outputs to a team channel: design review summaries, palette updates, audit reports, token version bumps.
4
+
5
+ ## Available tools (when Slack MCP connected)
6
+
7
+ After authenticating via `mcp__plugin_design_slack__authenticate`:
8
+
9
+ | Tool | What it does |
10
+ | --- | --- |
11
+ | `send_message` | Post to a channel or DM |
12
+ | `list_channels` | Find channels by name |
13
+ | `find_user` | Look up user by name/email |
14
+ | `upload_file` | Attach a file (image, doc) |
15
+ | `update_message` | Edit a previously-sent message (for status updates) |
16
+ | `react_to_message` | Add emoji reaction |
17
+
18
+ ## Workflow A: post a design review summary
19
+
20
+ After running `/design-review`, post the summary to `#design-reviews`.
21
+
22
+ ```
23
+ You: Review this Figma frame and post the summary to #design.
24
+ Agent:
25
+ 1. [optional: Figma MCP to read the frame]
26
+ 2. Apply commands/design-review.md.
27
+ 3. slack__list_channels(query="design") → find channel ID.
28
+ 4. slack__send_message(
29
+ channel="C012ABC",
30
+ text="*Design review: <frame name>*",
31
+ blocks=<formatted summary>
32
+ )
33
+ ```
34
+
35
+ ## Workflow B: notify on token version bump
36
+
37
+ When tokens change, ping the design + frontend channels.
38
+
39
+ ```
40
+ You: We just bumped tokens/source.json. Notify the team.
41
+ Agent:
42
+ 1. tools/audit/changelog-generate.py — diff vs last tag.
43
+ 2. Compose summary: which tokens changed, impact on components.
44
+ 3. slack__send_message(
45
+ channel="#design-system",
46
+ blocks=[
47
+ { type: "header", text: "šŸŽØ Tokens v1.5.0" },
48
+ { type: "section", text: "Changed --color-primary from #1976D2 to #0D9488..." },
49
+ { type: "actions", elements: [
50
+ { type: "button", text: "View PR", url: "..." }
51
+ ]}
52
+ ]
53
+ )
54
+ ```
55
+
56
+ ## Workflow C: share a palette artifact
57
+
58
+ When generating a palette via `/palette-from-brand`, optionally share the result.
59
+
60
+ ```
61
+ You: Generate a palette for "trustworthy + youthful" and post it to #design.
62
+ Agent:
63
+ 1. Apply skills/color-palette/PLAYBOOK.md.
64
+ 2. python3 tools/preview/render-tokens.py /tmp/palette.md
65
+ [generates palette.preview.html]
66
+ 3. slack__upload_file(
67
+ channels=["#design"],
68
+ file=palette.preview.html,
69
+ title="Trustworthy + Youthful palette",
70
+ initial_comment="Generated by design-ai. Open the HTML to compare light/dark."
71
+ )
72
+ ```
73
+
74
+ ## Workflow D: weekly status post
75
+
76
+ Auto-generate a weekly status post.
77
+
78
+ ```
79
+ [scheduled / on-demand]
80
+ Agent:
81
+ 1. python3 tools/audit/check-coverage.py — current numbers.
82
+ 2. tools/audit/changelog-generate.py — recent commits.
83
+ 3. Compose: components added, coverage %, audit results.
84
+ 4. slack__send_message(
85
+ channel="#design-system",
86
+ text="*Design system weekly: 2026-05-08*",
87
+ blocks=[<formatted update>]
88
+ )
89
+ ```
90
+
91
+ ## Workflow E: ping responders on Critical audit findings
92
+
93
+ When `skills/ux-audit` finds Critical issues, alert the appropriate person.
94
+
95
+ ```
96
+ You: Audit the new signup flow.
97
+ Agent:
98
+ 1. Apply skills/ux-audit/PLAYBOOK.md.
99
+ 2. If Critical findings:
100
+ - slack__find_user(query="design-lead@company.com")
101
+ - slack__send_message(
102
+ channel="@<that user>",
103
+ text="UX audit found 2 Critical issues in signup flow:..."
104
+ )
105
+ ```
106
+
107
+ ## Slack message formatting
108
+
109
+ Slack uses **mrkdwn** (slightly different from regular markdown) plus block kit for richer messages.
110
+
111
+ ### mrkdwn vs markdown
112
+
113
+ | Feature | mrkdwn | regular MD |
114
+ | --- | --- | --- |
115
+ | Bold | `*bold*` | `**bold**` |
116
+ | Italic | `_italic_` | `*italic*` |
117
+ | Strikethrough | `~strike~` | `~~strike~~` |
118
+ | Code | `` `code` `` | `` `code` `` |
119
+ | Code block | ` ``` ` | ` ``` ` |
120
+ | Link | `<url\|text>` | `[text](url)` |
121
+ | Mention | `<@U123>` | — |
122
+ | Channel | `<#C123>` | — |
123
+
124
+ ### Block kit (richer formatting)
125
+
126
+ For multi-section posts, use block kit JSON:
127
+
128
+ ```json
129
+ [
130
+ {
131
+ "type": "header",
132
+ "text": { "type": "plain_text", "text": "šŸŽØ Design review: Signup flow" }
133
+ },
134
+ {
135
+ "type": "section",
136
+ "text": { "type": "mrkdwn", "text": "*2 critical, 5 high, 3 medium*" }
137
+ },
138
+ {
139
+ "type": "divider"
140
+ },
141
+ {
142
+ "type": "section",
143
+ "text": { "type": "mrkdwn", "text": "*Critical*\n• Contrast 3.2:1 on body text\n• Missing focus indicators on form" }
144
+ },
145
+ {
146
+ "type": "actions",
147
+ "elements": [
148
+ { "type": "button", "text": { "type": "plain_text", "text": "View full report" }, "url": "..." }
149
+ ]
150
+ }
151
+ ]
152
+ ```
153
+
154
+ ## Setup
155
+
156
+ ### Authentication
157
+
158
+ ```
159
+ # In agent:
160
+ mcp__plugin_design_slack__authenticate
161
+ ```
162
+
163
+ OAuth → user grants Slack workspace access. Choose scopes:
164
+ - `chat:write` (send messages)
165
+ - `chat:write.public` (post to channels you're not in)
166
+ - `files:write` (upload files)
167
+ - `channels:read` (list channels)
168
+ - `users:read.email` (find users by email)
169
+
170
+ ### Channel selection
171
+
172
+ Common channels for design-ai:
173
+ - `#design` — general design conversation
174
+ - `#design-reviews` — review posts
175
+ - `#design-system` — design system updates, token bumps
176
+ - `#design-debt` — audit findings
177
+
178
+ Confirm channel naming with the team before posting.
179
+
180
+ ## Privacy
181
+
182
+ - Slack auth has access to channels the user can see. Audit per workspace.
183
+ - Don't auto-post sensitive content (Figma URLs of unreleased designs, internal customer data) to public channels.
184
+ - For private design discussions: post to a private design channel + notify via DM.
185
+ - Slack messages are searchable indefinitely — assume public.
186
+
187
+ ## Common pitfalls
188
+
189
+ | Pitfall | Fix |
190
+ | --- | --- |
191
+ | Message rate limit (1 msg/sec/channel) | Throttle. Don't post in tight loop. |
192
+ | Bot can't post to channel | Add the bot to the channel: `/invite @your-bot-name` |
193
+ | User mention not pinging | Use `<@U123>` (the user ID), not `@username` (the display name) |
194
+ | Block kit JSON malformed | Use Slack's Block Kit Builder to validate before sending |
195
+ | Markdown not rendering | Slack uses mrkdwn — check the conversion |
196
+
197
+ ## When Slack MCP is unavailable
198
+
199
+ `design-broadcast` skill falls back to:
200
+ - Outputting the message as plain text the user can copy/paste.
201
+ - Or generating a Slack-shareable link to a Notion/GitHub page (via Notion/GitHub MCPs if available).
202
+
203
+ ## Cross-reference
204
+
205
+ - [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — overview
206
+ - [`skills/design-broadcast/PLAYBOOK.md`](../../skills/design-broadcast/PLAYBOOK.md) — uses Slack + Notion
207
+ - [`docs/integrations/notion-mcp.md`](notion-mcp.md) — companion for capturing decisions
208
+ - Slack [Block Kit Builder](https://app.slack.com/block-kit-builder) — interactive formatter