@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,178 @@
1
+ # GitHub MCP integration
2
+
3
+ Use GitHub MCP to bring design-ai into pull request review workflows. Audit PRs for design system compliance, post review comments, create issues for design debt.
4
+
5
+ ## Available tools (when GitHub MCP connected)
6
+
7
+ After authenticating via `mcp__plugin_engineering_github__authenticate`:
8
+
9
+ | Tool | What it does |
10
+ | --- | --- |
11
+ | `get_pull_request` | Read PR metadata, files changed, diff |
12
+ | `list_pull_requests` | List PRs (open / merged / by author) |
13
+ | `create_pr_comment` | Post a review comment |
14
+ | `create_review` | Post a multi-comment review |
15
+ | `create_issue` | New issue |
16
+ | `list_issues` | Read issues |
17
+ | `get_repo_contents` | Read file from a repo |
18
+ | `update_pr` | Update title/description |
19
+
20
+ ## Workflow A: PR design review
21
+
22
+ The headline use case. Agent reviews a PR for design system compliance.
23
+
24
+ ```
25
+ You: Review PR #123 in our-org/web for design system compliance.
26
+ Agent:
27
+ 1. github__get_pull_request(repo="our-org/web", number=123)
28
+ [returns diff, files changed]
29
+ 2. For each changed file:
30
+ - Read content via github__get_repo_contents
31
+ - Apply skills/design-system-qa/ checks:
32
+ * Raw hex values (instead of token references)?
33
+ * Missing aria-* attributes on new components?
34
+ * Hardcoded spacing values not on the 4-base scale?
35
+ * Missing prefers-reduced-motion handling?
36
+ 3. Compile findings by file with severity.
37
+ 4. github__create_review(repo=..., pr=123, body=summary, comments=[
38
+ {path: "src/Button.tsx", line: 23, body: "Use --color-primary-default, not #7C3AED"},
39
+ ...
40
+ ])
41
+ ```
42
+
43
+ The agent posts inline review comments. Critical issues block merge.
44
+
45
+ See the new [`skills/design-pr-review/PLAYBOOK.md`](../../skills/design-pr-review/PLAYBOOK.md).
46
+
47
+ ## Workflow B: create issues for design debt
48
+
49
+ After running a UX audit / design system audit, file each finding as an issue.
50
+
51
+ ```
52
+ You: Run skills/design-system-qa on our-org/web; create issues for criticals.
53
+ Agent:
54
+ 1. Pull repo state via github__get_repo_contents (or clone locally).
55
+ 2. Apply design-system-qa playbook.
56
+ 3. For each Critical finding:
57
+ github__create_issue(
58
+ repo="our-org/web",
59
+ title="[design-debt] Raw hex values in Button.tsx",
60
+ body=<finding details + cited knowledge file>,
61
+ labels=["design-debt", "design-system"]
62
+ )
63
+ ```
64
+
65
+ Pairs well with Linear MCP for teams using Linear instead of GitHub Issues.
66
+
67
+ ## Workflow C: track design system PR status
68
+
69
+ Generate a status report of design system-related PRs.
70
+
71
+ ```
72
+ You: Show me design system PRs from the last 2 weeks.
73
+ Agent:
74
+ 1. github__list_pull_requests(repo=..., state=all, since=2weeks_ago)
75
+ 2. Filter by labels (design-system, design-debt)
76
+ 3. Categorize: shipped, in review, blocked, abandoned.
77
+ 4. Output a markdown summary.
78
+ ```
79
+
80
+ ## Workflow D: comment on design system token bumps
81
+
82
+ When a PR bumps the design tokens, design-ai checks for breaking changes.
83
+
84
+ ```
85
+ PR opens that modifies tokens/source.json:
86
+ - Changed: --color-primary-default from #1976D2 to #0D9488
87
+
88
+ Agent (via webhook or scheduled):
89
+ 1. github__get_pull_request(...)
90
+ 2. Detect token diff.
91
+ 3. Run impact analysis: how many components consume this token?
92
+ 4. github__create_pr_comment(
93
+ body=`Breaking change: --color-primary-default. Affects 47 components.
94
+ Verify Storybook visual tests pass before merging.`
95
+ )
96
+ ```
97
+
98
+ ## Setup
99
+
100
+ ### Authentication
101
+
102
+ ```
103
+ # In Claude Code or other agent:
104
+ mcp__plugin_engineering_github__authenticate
105
+ ```
106
+
107
+ OAuth flow opens browser; user grants the GitHub App access. Per-workspace one-time.
108
+
109
+ ### Required scopes
110
+
111
+ For full design-ai workflow:
112
+ - `repo` (read code, PRs, issues)
113
+ - `pull_requests:write` (post comments, reviews)
114
+ - `issues:write` (create design debt issues)
115
+
116
+ For read-only workflows (just review): `repo:read` is enough.
117
+
118
+ ### App config
119
+
120
+ GitHub MCP server can be:
121
+ - Anthropic-provided (managed) — simpler.
122
+ - Self-hosted via `@modelcontextprotocol/server-github` — for security-sensitive orgs.
123
+
124
+ ## Common pitfalls
125
+
126
+ | Pitfall | Fix |
127
+ | --- | --- |
128
+ | Auth expires after 1 hour | Re-authenticate. Some MCP servers refresh automatically. |
129
+ | Rate limit (5K req/hour for GitHub API) | Cache PR contents; don't refetch the same PR multiple times. |
130
+ | Large diffs return truncated | Use `get_repo_contents` per-file rather than full diff. |
131
+ | Comments post but aren't visible | Check the user has commenting permission on the repo. |
132
+ | Bot comments spam the PR | Aggregate findings into one review, not per-finding comments. |
133
+
134
+ ## Aggregation strategy
135
+
136
+ Don't post 50 inline comments. Instead:
137
+
138
+ ```
139
+ [Single Review Comment]
140
+ Body:
141
+ ## Design system review: 12 issues
142
+
143
+ ### Critical (3)
144
+ - Button.tsx:23 — Raw hex `#7C3AED` should be `--color-primary-default`
145
+ - Card.tsx:45 — Missing `aria-label` on icon-only button
146
+ - ...
147
+
148
+ ### High (4)
149
+ - ...
150
+
151
+ ### Cited references
152
+ - [knowledge/colors/color-theory.md](https://github.com/your-org/design-ai/...)
153
+ - ...
154
+ ```
155
+
156
+ Plus 2–3 inline comments on the most-critical specific lines (where context matters).
157
+
158
+ This is humane review — actionable summary at top, deep links to specifics.
159
+
160
+ ## Privacy
161
+
162
+ - GitHub MCP has access to whatever the auth user can see.
163
+ - Don't grant org-wide tokens for personal work.
164
+ - Audit installed GitHub Apps quarterly.
165
+ - design-ai never logs the auth token.
166
+
167
+ ## When GitHub MCP is unavailable
168
+
169
+ `design-pr-review` skill falls back to:
170
+ - User pastes the diff manually.
171
+ - Agent outputs the review as markdown for the user to copy into the PR.
172
+
173
+ ## Cross-reference
174
+
175
+ - [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — overview
176
+ - [`skills/design-pr-review/PLAYBOOK.md`](../../skills/design-pr-review/PLAYBOOK.md) — the MCP-aware skill
177
+ - [`docs/integrations/linear-mcp.md`](linear-mcp.md) — Linear alternative for issue tracking
178
+ - [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md) — what gets checked
@@ -0,0 +1,215 @@
1
+ # Linear MCP integration
2
+
3
+ Use Linear MCP to track design system work, audit findings, and design debt as Linear issues. Pairs with `skills/design-system-qa` and `skills/ux-audit` to convert findings into trackable work.
4
+
5
+ ## Available tools (when Linear MCP connected)
6
+
7
+ After authenticating via `mcp__plugin_design_linear__authenticate`:
8
+
9
+ | Tool | What it does |
10
+ | --- | --- |
11
+ | `list_issues` | Read issues (filtered by team / state / labels) |
12
+ | `get_issue` | Single issue detail |
13
+ | `create_issue` | New issue |
14
+ | `update_issue` | Edit existing |
15
+ | `list_projects` | List Linear projects |
16
+ | `list_teams` | List teams |
17
+ | `add_comment` | Comment on an issue |
18
+
19
+ ## Workflow A: convert audit findings to issues
20
+
21
+ After `/design-review` or `skills/design-system-qa`, file each finding as a Linear issue.
22
+
23
+ ```
24
+ You: Run skills/design-system-qa on this codebase; create Linear issues for criticals.
25
+ Agent:
26
+ 1. Apply skills/design-system-qa/PLAYBOOK.md.
27
+ 2. linear__list_teams() → find the design or eng team.
28
+ 3. For each Critical finding:
29
+ linear__create_issue(
30
+ team="DESIGN",
31
+ title="[design-debt] Raw hex values in Button.tsx",
32
+ description=<finding details + cited knowledge file links>,
33
+ labels=["design-debt", "critical"],
34
+ priority=1, // 1=urgent
35
+ project="Design System"
36
+ )
37
+ 4. Output: list of created issue URLs.
38
+ ```
39
+
40
+ ## Workflow B: track design system rollout
41
+
42
+ Use Linear's project + cycle structure to track rollout of a new design system version.
43
+
44
+ ```
45
+ You: Plan the v2.0 design system rollout in Linear.
46
+ Agent:
47
+ 1. linear__create_project(
48
+ name="Design System v2.0",
49
+ description=<scope, goals>
50
+ )
51
+ 2. For each component to migrate, create a sub-issue:
52
+ linear__create_issue(
53
+ team="ENG",
54
+ project=<project_id>,
55
+ title="Migrate Button to v2 tokens",
56
+ description=<migration checklist>,
57
+ labels=["design-system-v2"]
58
+ )
59
+ 3. Output: project URL + issue list.
60
+ ```
61
+
62
+ ## Workflow C: read team's design backlog
63
+
64
+ Before applying `/design-from-brief`, agent can read existing context from Linear.
65
+
66
+ ```
67
+ You: What design issues are open right now?
68
+ Agent:
69
+ 1. linear__list_issues(
70
+ team="DESIGN",
71
+ state="in_progress",
72
+ labels=["design-system"]
73
+ )
74
+ 2. Summarize: <N> open, <breakdown by priority>.
75
+ ```
76
+
77
+ ## Workflow D: link audit reports to existing issues
78
+
79
+ When the same finding has been filed before, comment on the existing issue rather than duplicating.
80
+
81
+ ```
82
+ You: Audit the dashboard; file Linear issues but check for duplicates.
83
+ Agent:
84
+ 1. Apply skills/ux-audit/PLAYBOOK.md.
85
+ 2. For each finding:
86
+ - linear__list_issues(query=<finding title fragment>)
87
+ - If existing issue found:
88
+ linear__add_comment(issue=<existing>, comment="Audit re-confirms this issue: ...")
89
+ - Else:
90
+ linear__create_issue(...)
91
+ ```
92
+
93
+ ## Severity → Linear priority mapping
94
+
95
+ design-ai's severity model translates to Linear priorities:
96
+
97
+ | design-ai severity | Linear priority |
98
+ | --- | --- |
99
+ | 🔴 Critical | 1 (Urgent) |
100
+ | 🟠 High | 2 (High) |
101
+ | 🟡 Medium | 3 (Medium) |
102
+ | 🟢 Low | 4 (Low) |
103
+
104
+ ## Issue formatting
105
+
106
+ Use Linear's markdown for the description:
107
+
108
+ ```markdown
109
+ ## Finding
110
+ Raw hex value `#7C3AED` in `src/components/Button/Button.tsx:23` instead of `--color-primary-default` token.
111
+
112
+ ## Why
113
+ Hardcoded hex values cause:
114
+ - Inability to theme the app
115
+ - Drift from the design system
116
+ - Manual updates required when tokens change
117
+
118
+ ## Cited rule
119
+ [knowledge/PRINCIPLES.md](https://github.com/your-org/design-ai/blob/main/knowledge/PRINCIPLES.md) rule 2:
120
+ > Tokens by role, not by hex.
121
+
122
+ ## Recommended fix
123
+ Replace `#7C3AED` with `var(--color-primary-default)` (CSS) or `tokens.color.primary.default` (JS).
124
+
125
+ ## Detection rule
126
+ Stylelint with `color-no-hex` rule would catch this on PR.
127
+ ```
128
+
129
+ Linear's markdown supports:
130
+ - Headings, paragraphs, lists
131
+ - Code blocks (with language)
132
+ - Inline code
133
+ - Links
134
+ - Mentions (`@username`)
135
+
136
+ ## Setup
137
+
138
+ ### Authentication
139
+
140
+ ```
141
+ # In agent:
142
+ mcp__plugin_design_linear__authenticate
143
+ ```
144
+
145
+ OAuth → user grants Linear workspace access. Per-workspace once.
146
+
147
+ ### Required scopes
148
+
149
+ - `read` (issues, projects, teams)
150
+ - `write` (create / update issues)
151
+ - `admin:project` (only if creating projects)
152
+
153
+ ### Team selection
154
+
155
+ design-ai's issues should go to a designated team:
156
+ - Design team (if dedicated): `DESIGN-`.
157
+ - Eng team if design-and-eng-share: `ENG-`.
158
+ - Specific design-system team if exists: `DS-`.
159
+
160
+ Confirm with team lead. Document in `.cursorrules` or project-level config.
161
+
162
+ ## Workflow integration with design-system-qa
163
+
164
+ `skills/design-system-qa` outputs a structured findings list. Each finding has:
165
+ - Severity
166
+ - Title
167
+ - Location (file/line)
168
+ - Cited knowledge
169
+
170
+ Map this 1:1 to Linear issues:
171
+
172
+ ```python
173
+ # Pseudocode
174
+ for finding in qa_report.findings:
175
+ linear.create_issue({
176
+ team="DESIGN",
177
+ project="Design System",
178
+ title=f"[{finding.severity}] {finding.title}",
179
+ description=format_for_linear(finding),
180
+ priority=severity_to_priority(finding.severity),
181
+ labels=["design-debt", finding.severity],
182
+ })
183
+ ```
184
+
185
+ This is the canonical "audit → tracked work" pipeline.
186
+
187
+ ## Privacy
188
+
189
+ - Linear auth has full workspace access. Audit installed apps quarterly.
190
+ - Don't include customer data in issue descriptions.
191
+ - For sensitive design (security review findings, leaked-credential issues): post privately, not in Design board.
192
+
193
+ ## Common pitfalls
194
+
195
+ | Pitfall | Fix |
196
+ | --- | --- |
197
+ | Issue created in wrong team | Verify team_id before bulk-creating |
198
+ | Duplicates after re-audit | Search-first pattern (Workflow D) |
199
+ | Auth expires | Refresh / re-authenticate |
200
+ | Markdown links don't render | Linear has slightly different markdown — test before bulk-creating |
201
+ | Priority not setting | Linear uses 1=urgent, 4=low; reverse from many systems |
202
+
203
+ ## When Linear MCP is unavailable
204
+
205
+ design-system-qa skill falls back to:
206
+ - Outputting the findings list as a markdown report.
207
+ - User pastes into Linear manually OR uses GitHub MCP for GitHub Issues.
208
+
209
+ ## Cross-reference
210
+
211
+ - [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — overview
212
+ - [`docs/integrations/github-mcp.md`](github-mcp.md) — GitHub Issues alternative
213
+ - [`skills/design-system-qa/PLAYBOOK.md`](../../skills/design-system-qa/PLAYBOOK.md) — generates findings
214
+ - [`skills/ux-audit/PLAYBOOK.md`](../../skills/ux-audit/PLAYBOOK.md) — generates findings
215
+ - [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md)
@@ -0,0 +1,174 @@
1
+ # Notion MCP integration
2
+
3
+ Mirror design-ai's knowledge base to Notion so non-engineering audiences (designers, PMs, executives) can browse without GitHub access. Capture team's design decisions back into the knowledge base.
4
+
5
+ ## Available tools (when Notion MCP connected)
6
+
7
+ | Tool | What it does |
8
+ | --- | --- |
9
+ | `notion-fetch` | Read a Notion page or database |
10
+ | `notion-search` | Find pages by query |
11
+ | `notion-create-pages` | Create new pages |
12
+ | `notion-update-page` | Edit existing |
13
+ | `notion-create-database` | New database (table-of-pages) |
14
+ | `notion-update-data-source` | Modify database schema |
15
+ | `notion-create-comment` | Comment on a page |
16
+ | `notion-get-comments` | Read comments |
17
+ | `notion-get-users` | List workspace users (for permissions) |
18
+ | `notion-get-teams` | List teams |
19
+
20
+ ## Workflow A: mirror knowledge base to Notion
21
+
22
+ Designers may not be in the GitHub repo. Sync design-ai's knowledge to a Notion site they can browse.
23
+
24
+ ```
25
+ You: Sync the knowledge base to Notion under our Design page.
26
+ Agent:
27
+ 1. notion-search(query="Design") → find the parent page.
28
+ 2. For each file in knowledge/:
29
+ - Convert markdown → Notion blocks.
30
+ - notion-create-pages(parent={...}, title=..., body=...)
31
+ 3. Create an index page linking to all sub-pages.
32
+ 4. Output the URL.
33
+ ```
34
+
35
+ Run periodically (weekly) to keep Notion in sync.
36
+
37
+ ### Direction-of-truth
38
+
39
+ Knowledge files in this repo are the **source of truth**. Notion is a mirror.
40
+
41
+ If a designer edits Notion content, that's lost on next sync. Capture design decisions as **separate Notion pages** (in a "Design Decisions" database) — those don't get overwritten and feed back into knowledge as needed.
42
+
43
+ ## Workflow B: capture design decisions
44
+
45
+ Team meeting → decisions → into Notion → into knowledge base.
46
+
47
+ ```
48
+ You: Capture this decision: "We're using teal-600 (#0D9488) as our primary
49
+ because differentiation from Toss/Shinhan blue matters more than safest-blue."
50
+
51
+ Agent:
52
+ 1. notion-create-pages(
53
+ database="Design Decisions",
54
+ title="Primary brand: teal not blue (2026-05-08)",
55
+ body="...",
56
+ properties={status: "decided", date: ..., area: "color"}
57
+ )
58
+ 2. Optionally suggest updating knowledge/colors/* with the rationale.
59
+ ```
60
+
61
+ Pattern: decisions live in Notion (timestamped log); knowledge files reflect the *outcome*.
62
+
63
+ ## Workflow C: read team's brand brief from Notion
64
+
65
+ User has a brand brief in Notion; agent should read it before generating a palette.
66
+
67
+ ```
68
+ You: Read our brand brief from Notion and apply /design-from-brief.
69
+ Agent:
70
+ 1. notion-search(query="brand brief") → page URL.
71
+ 2. notion-fetch(url=...)
72
+ 3. Extract structured brief from the page content.
73
+ 4. Apply commands/design-from-brief.md.
74
+ ```
75
+
76
+ ## Workflow D: design system status report
77
+
78
+ Auto-generate a weekly status report in Notion.
79
+
80
+ ```
81
+ You: Post this week's design system update to Notion.
82
+ Agent:
83
+ 1. python3 tools/audit/check-coverage.py — get current numbers.
84
+ 2. python3 tools/audit/changelog-generate.py — recent changes.
85
+ 3. Compose update: components added, coverage %, open audit issues.
86
+ 4. notion-update-page(url="<weekly status page URL>", content=...)
87
+ ```
88
+
89
+ ## Setup
90
+
91
+ ### Authentication
92
+
93
+ Notion MCP uses Notion's official integration:
94
+ 1. Create an internal integration at notion.so/profile/integrations.
95
+ 2. Grant access to the workspace pages design-ai will modify.
96
+ 3. Configure the agent's MCP server with the integration token.
97
+
98
+ ```jsonc
99
+ // ~/.codex/mcp.json or equivalent
100
+ {
101
+ "mcpServers": {
102
+ "notion": {
103
+ "command": "npx",
104
+ "args": ["@notionhq/mcp-server"],
105
+ "env": {
106
+ "NOTION_TOKEN": "secret_..."
107
+ }
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ For Claude Code: similar; add via `claude mcp add notion ...`.
114
+
115
+ ### Permissions
116
+
117
+ Be careful with write access. Recommended:
118
+ - **Read access** to the entire team's design pages.
119
+ - **Write access** only to the design-ai mirror page hierarchy.
120
+
121
+ This way, design-ai can't accidentally clobber unrelated content.
122
+
123
+ ## Markdown → Notion blocks conversion
124
+
125
+ Notion's API expects structured blocks, not markdown. Conversion rules:
126
+
127
+ | Markdown | Notion block |
128
+ | --- | --- |
129
+ | `# Heading 1` | `heading_1` |
130
+ | `## Heading 2` | `heading_2` |
131
+ | `### Heading 3` | `heading_3` |
132
+ | `paragraph text` | `paragraph` |
133
+ | `- bullet` | `bulleted_list_item` |
134
+ | `1. numbered` | `numbered_list_item` |
135
+ | `[link](url)` | text with link annotation |
136
+ | `**bold**` | text with bold annotation |
137
+ | `` `code` `` | text with code annotation |
138
+ | ` ```block``` ` | `code` block |
139
+ | `<!-- HTML -->` | render as paragraph or strip |
140
+ | `\| table \|` | `table` (Notion's table API is awkward — many tools render as 2-column lists instead) |
141
+
142
+ Libraries that handle this:
143
+ - `notion-to-md` (Notion → markdown — reverse direction)
144
+ - Custom parser for design-ai's specific markdown patterns
145
+
146
+ For simple knowledge-mirror use case: a basic converter handling headings, paragraphs, lists, and code blocks is ~80% of value.
147
+
148
+ ## Common pitfalls
149
+
150
+ | Pitfall | Fix |
151
+ | --- | --- |
152
+ | Notion API rate limit | Cap to 3 req/sec; batch creates |
153
+ | Page not found after create | Notion's API is eventually consistent; wait 200ms before fetching newly-created |
154
+ | Code blocks render as plain text | Set `language` on the code block |
155
+ | Tables don't render | Convert to bullet list or fall back to text |
156
+ | Auth lost | Re-share workspace pages with the integration |
157
+
158
+ ## Privacy
159
+
160
+ - The integration token has access to whatever you grant. Audit shared pages periodically.
161
+ - Don't include secrets in the design-ai content that gets mirrored — Notion is shared.
162
+ - Soft delete (archive) Notion pages, don't hard delete — easier rollback.
163
+
164
+ ## When Notion MCP is unavailable
165
+
166
+ design-ai's `design-broadcast` skill (covers Slack + Notion) detects missing MCP and falls back to:
167
+ - Outputting markdown the user can paste into Notion manually.
168
+ - Generating a shareable URL via the project's GitHub instead.
169
+
170
+ ## Cross-reference
171
+
172
+ - [`docs/MCP-INTEGRATION.md`](../MCP-INTEGRATION.md) — overview
173
+ - [`skills/design-broadcast/PLAYBOOK.md`](../../skills/design-broadcast/PLAYBOOK.md) — uses Notion MCP for sharing
174
+ - [`docs/integrations/slack-mcp.md`](slack-mcp.md) — companion for design review summaries