@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,146 @@
1
+ # design-broadcast — playbook
2
+
3
+ Distribute a design-ai artifact (palette, spec, audit report) to the team via Slack and/or Notion. When MCPs are connected, posts directly. Without MCP, generates pasteable formatted content.
4
+
5
+ ## When to use
6
+
7
+ - "Share this palette with the design team"
8
+ - "Post the audit findings to #design-system"
9
+ - "Add this spec to our Notion design library"
10
+ - After running other skills — broadcast their output.
11
+
12
+ ## Inputs (ask if missing)
13
+
14
+ 1. **Artifact**: the file or content to share.
15
+ 2. **Channel(s)**: Slack channel name, Notion page/database, or both.
16
+ 3. **Audience**: who should be tagged / notified?
17
+
18
+ ## Steps
19
+
20
+ ### 1. Detect available MCPs
21
+
22
+ ```
23
+ slack_available = mcp__plugin_design_slack is connected
24
+ notion_available = mcp__864aac7f-...__notion-* is connected
25
+ ```
26
+
27
+ If neither: output formatted content the user can paste manually.
28
+
29
+ ### 2. Determine artifact type
30
+
31
+ From the file name / content, identify:
32
+
33
+ | Artifact | Pattern |
34
+ | --- | --- |
35
+ | Palette | `examples/palette-*.md` or content has token tables |
36
+ | Component spec | `examples/component-*.md` or content has anatomy + API sections |
37
+ | UX audit / design review | content has 🔴/🟠/🟡/🟢 severity sections |
38
+ | Design system bootstrap | `examples/dogfood-*.md` or content has foundations sections |
39
+ | Coverage report | `knowledge/COVERAGE.md` |
40
+ | Token diff / changelog | content has CHANGELOG-style format |
41
+
42
+ ### 3. Compose audience-appropriate summary
43
+
44
+ Different audiences need different framings:
45
+
46
+ #### For #design Slack (designers)
47
+
48
+ - Visual focus.
49
+ - For palettes: include the preview image + key colors.
50
+ - For specs: link to source, summarize "what this is + key API decisions".
51
+ - For audits: "what we found + top recommendation".
52
+
53
+ #### For #frontend / #engineering Slack (developers)
54
+
55
+ - Code focus.
56
+ - For palettes: include the Tailwind config / CSS vars snippet.
57
+ - For specs: link to component reference + Code Connect manifest.
58
+ - For audits: severity + count + impact estimate.
59
+
60
+ #### For #design-system / #design-leadership
61
+
62
+ - Higher-level focus.
63
+ - Coverage stats, trend over time, what's blocking.
64
+
65
+ ### 4. Format for the channel
66
+
67
+ #### Slack format (use Block Kit)
68
+
69
+ ```
70
+ [
71
+ { type: "header", text: { type: "plain_text", text: "🎨 New palette: B2C SaaS — violet" }},
72
+ { type: "section", text: { type: "mrkdwn", text: "*Generated by design-ai* · Cited 4 knowledge files\n\nLight + dark, WCAG AA validated, Tailwind v4 + shadcn-ui formats." }},
73
+ { type: "divider" },
74
+ { type: "section", text: { type: "mrkdwn", text: "*Key tokens:*\n• Primary: `#7C3AED`\n• Accent: `#D97706`\n• Bg: `#FFFFFF`" }},
75
+ { type: "actions", elements: [
76
+ { type: "button", text: { type: "plain_text", text: "View full palette" }, url: "..." },
77
+ { type: "button", text: { type: "plain_text", text: "Open Storybook" }, url: "..." },
78
+ ]}
79
+ ]
80
+ ```
81
+
82
+ Cite [`docs/integrations/slack-mcp.md`](../../docs/integrations/slack-mcp.md) for Slack formatting rules (mrkdwn vs markdown).
83
+
84
+ #### Notion format
85
+
86
+ For "add to design library" pattern:
87
+ - Create a page in the Notion database.
88
+ - Convert markdown → Notion blocks (headings, lists, code blocks, tables).
89
+ - Add metadata properties: status, area (color/typography/component), date.
90
+
91
+ Cite [`docs/integrations/notion-mcp.md`](../../docs/integrations/notion-mcp.md) for the conversion rules.
92
+
93
+ ### 5. Post (with confirmation)
94
+
95
+ Show the user the formatted content **before** posting:
96
+
97
+ ```
98
+ Agent: I'll post this to #design and create a Notion page in the Design System
99
+ database. Confirm? [yes/no/edit]
100
+ ```
101
+
102
+ User approves → execute via MCP.
103
+
104
+ ### 6. Without MCP — output for manual paste
105
+
106
+ ```
107
+ === Slack message (paste into #design) ===
108
+ [formatted text or copy-pasteable JSON for Block Kit Builder]
109
+
110
+ === Notion page content (paste into Notion editor) ===
111
+ [markdown that Notion will partially-convert]
112
+
113
+ === Confirmation that you posted? [user replies] ===
114
+ ```
115
+
116
+ ### 7. Confirm + log
117
+
118
+ After posting (if MCP available):
119
+ - Echo the URL of the Slack message and/or Notion page.
120
+ - Optionally: react to the Slack message with 🤖 to mark "posted by agent" (transparency).
121
+
122
+ ## Verification phase (run before declaring done)
123
+
124
+ - [ ] Did I detect MCP availability before composing?
125
+ - [ ] Did I tailor the message to the audience (designer vs eng vs leadership)?
126
+ - [ ] For Slack: did I use Block Kit (not plain text) for richer formatting?
127
+ - [ ] For Notion: did I convert markdown to blocks correctly?
128
+ - [ ] Did I show the user the message **before** posting?
129
+ - [ ] Did I include source links (knowledge files, examples) for credibility?
130
+ - [ ] Did I avoid leaking sensitive content (Figma file URLs, internal customer data) to public channels?
131
+
132
+ ## Source files this skill reads
133
+
134
+ - [`docs/integrations/slack-mcp.md`](../../docs/integrations/slack-mcp.md) — Slack format rules
135
+ - [`docs/integrations/notion-mcp.md`](../../docs/integrations/notion-mcp.md) — Notion conversion
136
+ - [`docs/MCP-INTEGRATION.md`](../../docs/MCP-INTEGRATION.md) — MCP overview
137
+ - [`knowledge/i18n/korean-product-conventions.md`](../../knowledge/i18n/korean-product-conventions.md) — Korean tone for KR-team channels
138
+
139
+ ## Done when
140
+
141
+ - Artifact posted (or formatted output ready for paste).
142
+ - Audience-appropriate summary composed.
143
+ - User explicitly confirmed before posting.
144
+ - URL of posted content output for the user's reference.
145
+ - Sensitive content checked + not leaked.
146
+ - Verification phase passes.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: design-broadcast
3
+ description: Distribute a design-ai artifact (palette, spec, audit) via Slack and/or Notion MCPs. Composes audience-appropriate summaries, formats with Slack Block Kit / Notion blocks, requires user confirmation before posting. Falls back to formatted output for manual paste when MCPs unavailable.
4
+ ---
5
+
6
+ See [PLAYBOOK.md](PLAYBOOK.md).
@@ -0,0 +1,137 @@
1
+ # design-critique — playbook
2
+
3
+ Senior-designer feedback on a design proposal. Different from `ux-audit`: critique speaks to **craft, hierarchy, and decisions** — not just bugs and a11y.
4
+
5
+ ## When to use
6
+
7
+ - "What do you think of this design?"
8
+ - "Critique this mockup before I share with the team."
9
+ - "Is this hero working?"
10
+
11
+ ## Inputs (ask if missing)
12
+
13
+ 1. **Artifact** — image, Figma link, live page.
14
+ 2. **The decision being made** — "I'm trying to pick between layout A and B" vs. "is this ready to ship?".
15
+ 3. **Audience** — who sees this?
16
+ 4. **Constraints** — brand guidelines, technical limitations, deadline.
17
+
18
+ ## How to critique
19
+
20
+ A senior critique has four levels. Always cover all four, in order:
21
+
22
+ ### 1. Did this solve the problem?
23
+
24
+ Before any visual feedback, name the problem and ask whether the design solves it. If not, the visual critique doesn't matter yet.
25
+
26
+ > "The goal here is helping new users find the import flow. The hero CTA labeled 'Get started' doesn't communicate that. Without seeing the import path emphasized somewhere on this page, the design doesn't yet meet its goal — even though the visual execution is strong."
27
+
28
+ ### 2. Hierarchy — does the eye go where it should?
29
+
30
+ The single most-used senior-designer move is **hierarchy critique**. Walk the artifact in **scanning order**:
31
+
32
+ 1. What does the eye land on first? (Should be the primary message or action.)
33
+ 2. Second?
34
+ 3. Third?
35
+
36
+ If a designer's intended primary is not the actual visual primary, that's the lead with the critique.
37
+
38
+ Drivers of hierarchy:
39
+ - Size (largest wins).
40
+ - Weight (boldest wins).
41
+ - Color contrast (most-contrast wins).
42
+ - Whitespace (most-isolated wins).
43
+ - Position (top-left in LTR, top-right in RTL).
44
+ - Motion (moving wins, but is fatiguing).
45
+
46
+ ### 3. Craft — is the execution at the level of the bar?
47
+
48
+ | Aspect | What to check |
49
+ | --- | --- |
50
+ | **Spacing** | Is everything on a 4-px grid? Are gaps between unrelated elements visibly larger than gaps between related ones? |
51
+ | **Alignment** | Optical center vs mathematical center for icons, asymmetric shapes. |
52
+ | **Type** | Are the type sizes from a scale? Line heights tuned? No widows/orphans on important headlines? |
53
+ | **Color use** | Is one color dominant, one accent, neutrals doing the rest? Or is it 5 brand colors competing? |
54
+ | **Iconography** | Same stroke weight, same corner radius, same fill style? |
55
+ | **Density** | Right for the audience? Power users prefer dense; new users prefer breathing room. |
56
+ | **Polish** | Hover states designed? Empty states designed? Loading designed? |
57
+
58
+ ### 4. Tradeoffs — what was given up?
59
+
60
+ Every design choice gives something up. Name it. This is what separates a critique from a takedown:
61
+
62
+ > "By making the hero illustration full-bleed, you're trading off the ability to communicate the value prop in the same scroll. That's the right call for a brand-led page. If you want this to also drive activation, the prop needs to live in the next scroll within reach of the fold."
63
+
64
+ ### 5. The single recommendation
65
+
66
+ End every critique with **one** recommendation. Not three, not five. The most important thing.
67
+
68
+ > "Top recommendation: pull 'Sign up free' out of the secondary nav and make it the hero CTA. Everything else can stay."
69
+
70
+ ## Output format
71
+
72
+ ```markdown
73
+ # Critique: <artifact>
74
+
75
+ > Decision being made: <one sentence>
76
+ > Audience: <one sentence>
77
+
78
+ ## What this design does well
79
+ <2–3 bullets, specific and earned. Not "looks great". "The spacing rhythm in the feature grid is consistent and gives each card breathing room.">
80
+
81
+ ## Did this solve the problem?
82
+ <answer the named problem head-on>
83
+
84
+ ## Hierarchy walk
85
+ 1. <what the eye lands on first>
86
+ 2. <second>
87
+ 3. <third>
88
+
89
+ <If misaligned with intent, name it.>
90
+
91
+ ## Craft notes
92
+ - <observation>
93
+ - <observation>
94
+
95
+ ## Tradeoffs accepted
96
+ - <named tradeoff with rationale>
97
+
98
+ ## Top recommendation
99
+ <one sentence>
100
+ ```
101
+
102
+ ## Tone
103
+
104
+ - Specific over vague. "The CTA is hard to find" → "The CTA's blue blends with the link colors above it; consider a primary button style or a hue shift."
105
+ - Critique the decision, not the designer.
106
+ - Praise what works, before what doesn't.
107
+ - One recommendation, not a wishlist.
108
+ - Avoid jargon a non-designer can't follow without context.
109
+
110
+ ## Source files this skill reads
111
+
112
+ - [`knowledge/patterns/ux-guidelines.md`](../../knowledge/patterns/ux-guidelines.md)
113
+ - [`knowledge/patterns/styles-catalog.md`](../../knowledge/patterns/styles-catalog.md)
114
+ - [`knowledge/colors/color-theory.md`](../../knowledge/colors/color-theory.md)
115
+ - [`knowledge/typography/type-scale-fundamentals.md`](../../knowledge/typography/type-scale-fundamentals.md)
116
+ - [`knowledge/layout/spacing-and-grid.md`](../../knowledge/layout/spacing-and-grid.md)
117
+ - [`knowledge/patterns/brand-references.md`](../../knowledge/patterns/brand-references.md) — for compare/contrast with peer brands.
118
+ - [`knowledge/patterns/ui-reasoning.md`](../../knowledge/patterns/ui-reasoning.md) — category-level expectations vs the design
119
+
120
+ ## Verification phase (run before declaring done)
121
+
122
+ - [ ] Did I open with the named problem (not visual feedback first)?
123
+ - [ ] Does the hierarchy walk identify what the eye lands on 1st / 2nd / 3rd?
124
+ - [ ] Did I praise specific things (not "looks great")?
125
+ - [ ] Are craft observations actionable (specific element + specific change)?
126
+ - [ ] Is the named tradeoff genuine (designer gave up something specific)?
127
+ - [ ] Is there exactly **one** top recommendation in bold at the end?
128
+ - [ ] No jargon a non-designer can't follow?
129
+ - [ ] Did I critique the decision ("the CTA's blue blends"), not the designer ("you should")?
130
+
131
+ ## Done when
132
+
133
+ - All five sections delivered: works well, problem fit, hierarchy walk, craft notes, tradeoffs, top recommendation.
134
+ - Each observation is specific (a designer could act on it).
135
+ - The critique is balanced (praise + concerns, not just concerns).
136
+ - One top recommendation, not several.
137
+ - The verification phase checklist passes.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: design-critique
3
+ description: Senior-designer feedback on a design proposal — covers problem fit, hierarchy, craft, tradeoffs, and lands on a single top recommendation.
4
+ ---
5
+
6
+ See [PLAYBOOK.md](PLAYBOOK.md).
@@ -0,0 +1,171 @@
1
+ # design-pr-review — playbook
2
+
3
+ Review a GitHub pull request for design system compliance. When GitHub MCP is connected, fetches the PR and posts a structured review. Without MCP: outputs a markdown review for manual paste.
4
+
5
+ ## When to use
6
+
7
+ - "Review PR #123 for design system compliance"
8
+ - "Audit this PR before merging"
9
+ - Pre-merge gate as part of CI (run via Codex headlessly)
10
+
11
+ ## Inputs (ask if missing)
12
+
13
+ 1. **PR identifier**: org/repo + number, OR full URL.
14
+ 2. **Severity threshold**: which findings should block merge? (default: Critical only)
15
+ 3. **Post comments?**: yes (write back to PR) or no (just output report).
16
+
17
+ ## Steps
18
+
19
+ ### 1. Detect MCP availability
20
+
21
+ ```
22
+ if mcp__plugin_engineering_github is connected:
23
+ proceed with full PR fetch + comment workflow
24
+ else:
25
+ ask user to paste the PR diff; output review as markdown only
26
+ ```
27
+
28
+ ### 2. Fetch PR (MCP path)
29
+
30
+ ```
31
+ github__get_pull_request(repo="org/repo", number=123)
32
+ → returns PR metadata, files changed, diff
33
+ ```
34
+
35
+ For each changed file: `github__get_repo_contents(repo, path, ref=PR_HEAD)` to get full content (diff alone may not be enough context).
36
+
37
+ ### 3. Apply design system QA layers
38
+
39
+ Open [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md) — apply each layer to the PR's changed files:
40
+
41
+ #### Layer 1 — TypeScript
42
+
43
+ Skip in this skill (assume types exist; tsc handles separately).
44
+
45
+ #### Layer 2 — Token drift
46
+
47
+ For each `.tsx` / `.css` / `.scss` file changed:
48
+ - Search for raw hex (`#[0-9A-F]{3,8}`) outside of comments.
49
+ - Search for raw px / rem outside of token references.
50
+ - Flag each occurrence with:
51
+ - Severity: 🟠 High (or 🔴 Critical if it's in a shipped component).
52
+ - Cited rule: [`knowledge/PRINCIPLES.md`](../../knowledge/PRINCIPLES.md) rule 2.
53
+
54
+ #### Layer 3 — Component contract
55
+
56
+ For new component definitions in the PR:
57
+ - Required ARIA attributes per [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md).
58
+ - Disabled state has `aria-disabled`.
59
+ - Loading state has `aria-busy`.
60
+ - Buttons explicitly `type="button"` (not the default submit).
61
+
62
+ #### Layer 4 — A11y
63
+
64
+ Static checks the agent can do:
65
+ - `<img>` without `alt`.
66
+ - `<button>` without text or `aria-label` for icon-only.
67
+ - `<div onClick>` without `role` and tab support.
68
+ - Color used as the only meaning signal.
69
+
70
+ For deeper a11y: defer to runtime axe-core (mention in review).
71
+
72
+ #### Layer 5 — Visual regression
73
+
74
+ Skip (requires CI / Storybook).
75
+
76
+ ### 4. Read related design-ai knowledge
77
+
78
+ For each finding type, cite the knowledge file. Common ones:
79
+
80
+ | Finding | Cite |
81
+ | --- | --- |
82
+ | Raw hex | `knowledge/PRINCIPLES.md` (rule 2), `knowledge/colors/color-theory.md` |
83
+ | Missing aria | `knowledge/a11y/keyboard-and-focus.md` |
84
+ | Wrong contrast | `knowledge/a11y/contrast.md` |
85
+ | Korean copy missing | `knowledge/i18n/korean-product-conventions.md` |
86
+ | Money color wrong | `knowledge/patterns/money-and-amount.md` |
87
+
88
+ Use deep links so the PR reviewer can click through.
89
+
90
+ ### 5. Compose the review
91
+
92
+ Aggregate by severity, not by file:
93
+
94
+ ```markdown
95
+ ## Design system review — PR #123
96
+
97
+ > Reviewed by design-ai (skills/design-pr-review)
98
+ > Files changed: 12
99
+ > Findings: 2 Critical, 4 High, 3 Medium
100
+
101
+ ### 🔴 Critical (2 — must fix)
102
+
103
+ 1. **Raw hex `#7C3AED` in `Button.tsx:23`** instead of `--color-primary-default`.
104
+ Why: tokens by role per [PRINCIPLES.md rule 2](https://github.com/your-org/design-ai/blob/main/knowledge/PRINCIPLES.md).
105
+ Fix: replace with `var(--color-primary-default)`.
106
+
107
+ 2. **Missing `aria-label` on icon-only button in `Header.tsx:45`**.
108
+ Why: WCAG 2.1 4.1.2 — controls need accessible name.
109
+ Fix: add `aria-label="Open menu"`.
110
+
111
+ ### 🟠 High (4 — should fix)
112
+
113
+ ...
114
+
115
+ ### 🟡 Medium (3 — consider)
116
+
117
+ ...
118
+
119
+ ### Things that look good
120
+
121
+ - Form fields use `<label>` correctly throughout.
122
+ - Card components consume `--space-md` consistently.
123
+ - Korean fonts loaded via Pretendard.
124
+ ```
125
+
126
+ ### 6. Post the review (MCP path)
127
+
128
+ ```
129
+ github__create_review(
130
+ repo="org/repo",
131
+ pr=123,
132
+ body=<full review>,
133
+ event="REQUEST_CHANGES" // or "COMMENT" for non-blocking
134
+ comments=[
135
+ { path: "Button.tsx", line: 23, body: "Use --color-primary-default" },
136
+ ...
137
+ ]
138
+ )
139
+ ```
140
+
141
+ Limit inline comments to **2–3 most-critical** specifics. The full review body has the rest.
142
+
143
+ ### Without MCP
144
+
145
+ Output the full review as markdown. User copies it into the PR review UI manually.
146
+
147
+ ## Verification phase (run before declaring done)
148
+
149
+ - [ ] Did I check all 5 QA layers?
150
+ - [ ] Did I cite knowledge files for every finding?
151
+ - [ ] Did I aggregate by severity (not file-by-file noise)?
152
+ - [ ] Did I include "Things that look good" (constructive)?
153
+ - [ ] Did I keep inline comments ≤ 3?
154
+ - [ ] If posting via MCP: did I confirm "post" with user (don't auto-post critical reviews without ack)?
155
+
156
+ ## Source files this skill reads
157
+
158
+ - [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md) — full QA model
159
+ - [`knowledge/PRINCIPLES.md`](../../knowledge/PRINCIPLES.md) — citation source
160
+ - [`knowledge/a11y/contrast.md`](../../knowledge/a11y/contrast.md)
161
+ - [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md)
162
+ - [`docs/integrations/github-mcp.md`](../../docs/integrations/github-mcp.md) — MCP usage details
163
+
164
+ ## Done when
165
+
166
+ - One review posted (or output as markdown).
167
+ - Severity-aggregated, with citations.
168
+ - Inline comments capped at 3 most-critical.
169
+ - "Things that look good" included.
170
+ - User confirmed before posting (when posting via MCP).
171
+ - Verification phase passes.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: design-pr-review
3
+ description: Review a GitHub pull request for design system compliance. When GitHub MCP is connected, fetches the PR and posts a structured review with citations to design-ai knowledge files. Without MCP, outputs a markdown review for manual paste.
4
+ ---
5
+
6
+ See [PLAYBOOK.md](PLAYBOOK.md).