@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,237 @@
1
+ # Worked example: slide deck (talk archetype)
2
+
3
+ > Generated by `skills/slide-deck-author`. Demonstrates the canonical talk-deck outline — message-led titles, one visual per slide, speaker notes.
4
+
5
+ ## Meta
6
+
7
+ - **Type**: talk deck
8
+ - **Topic**: "Why design tokens matter — and how to ship them"
9
+ - **Length**: 20-min conference talk + 5-min Q&A
10
+ - **Audience**: senior designers + frontend engineers (~200 attendees, FEKR-style conference)
11
+ - **Brand**: design-ai
12
+ - **Locale**: Korean (Hangul slides, English code, presented in Korean)
13
+
14
+ ## Slide outline
15
+
16
+ ### 1. Title slide
17
+ - **Visual**: design-ai logo + Korean tagline
18
+ - **Body text**:
19
+ ```
20
+ 디자인 토큰
21
+ 설계부터 출시까지
22
+
23
+ 김민지 · design-ai 메인테이너
24
+ FEKR 2026 · 2026.05.15
25
+ ```
26
+ - **Speaker notes**:
27
+ > "안녕하세요, 김민지입니다. design-ai 프로젝트의 메인테이너이고, 오늘은 디자인 토큰을 어떻게 설계하고 출시까지 가져가는지 이야기하겠습니다."
28
+
29
+ ### 2. Hook — the problem
30
+ - **Title**: 디자이너와 개발자가 다른 색을 본다
31
+ - **Visual**: side-by-side image
32
+ - Left: Figma swatch panel showing `#7C3AED`
33
+ - Right: VS Code showing `#8B5CF6` hardcoded in CSS
34
+ - Bold red border around both — they should match, they don't
35
+ - **Body text**: none — image speaks
36
+ - **Speaker notes**:
37
+ > "이 슬라이드를 보세요. 왼쪽은 Figma의 컬러 변수, 오른쪽은 실제 코드의 hex 값. 두 값이 다릅니다. 1년 전에 다른 디자이너가 hex를 직접 입력했고, 아무도 모르게 어긋났어요. 이게 디자인 토큰이 없는 팀에서 매주 일어나는 일입니다."
38
+
39
+ ### 3. The cost — quantified
40
+ - **Title**: 매주 4시간이 토큰 정렬에 사라진다
41
+ - **Visual**: bar chart showing rework hours per week
42
+ - Before tokens: 4.2 hours
43
+ - After tokens: 0.7 hours
44
+ - Highlight the gap with arrow + "−83%"
45
+ - **Body text**: small caption — "Source: 2025 internal study, n=12 teams"
46
+ - **Speaker notes**:
47
+ > "정량적으로 측정해 봤어요. 토큰 시스템이 없는 팀은 일주일에 평균 4시간을 디자인-개발 정렬에 씁니다. 토큰 도입 후엔 1시간 미만으로 줄었어요. 83% 절약. 12개 팀 표본입니다."
48
+
49
+ ### 4. Section divider
50
+ - **Visual**: minimal — just text on solid teal background
51
+ - **Body text**:
52
+ ```
53
+ Part 1
54
+ 토큰이란 무엇인가
55
+ ```
56
+
57
+ ### 5. What a token is
58
+ - **Title**: 토큰은 의미와 값을 분리한다
59
+ - **Visual**: diagram
60
+ ```
61
+ hex value #7C3AED
62
+
63
+ primitive token color.brand.primary.600
64
+
65
+ semantic alias color.primary.default
66
+
67
+ component button.primary.bg
68
+ ```
69
+ - **Body text**: "각 층은 다음 층에 의해 참조됩니다"
70
+ - **Speaker notes**:
71
+ > "토큰의 핵심 개념은 layering입니다. 가장 아래는 hex 값, 그 위에 primitive 토큰 이름, 그 위에 의미 별칭, 그 위에 컴포넌트별 토큰. 각 층은 위 층의 참조를 받지, 직접 hex를 가지진 않아요. 이게 시스템성의 출발입니다."
72
+
73
+ ### 6. Three-tier architecture
74
+ - **Title**: 세 개의 층을 분리하라
75
+ - **Visual**: 3 stacked colored boxes labeled
76
+ - tier 1: primitive (color.brand.primary.{50..950})
77
+ - tier 2: semantic (color.semantic.primary)
78
+ - tier 3: component (button.primary.bg)
79
+ - **Body text**: "Tier 1은 거의 안 바뀝니다. Tier 2와 3는 자주 바뀝니다."
80
+ - **Speaker notes**:
81
+ > "Layered architecture를 한 번 더 강조할게요. Tier 1은 hue/value pairs. 한 번 정하면 거의 안 바뀝니다. Tier 2는 의미, Tier 3는 컴포넌트별. 다크모드를 도입할 때, brand color를 바꿀 때 — 어디만 바꾸면 되는지 명확합니다."
82
+
83
+ ### 7. Section divider
84
+ - **Body text**:
85
+ ```
86
+ Part 2
87
+ 설계: OKLCH로 만드는 perceptually uniform 팔레트
88
+ ```
89
+
90
+ ### 8. OKLCH vs HSL
91
+ - **Title**: HSL은 거짓말한다 — OKLCH가 답
92
+ - **Visual**:
93
+ - Two color ramps side-by-side
94
+ - HSL ramp showing yellow at L=50% appearing brighter than blue at L=50%
95
+ - OKLCH ramp showing all hues at L=0.5 reading equally bright
96
+ - Label "HSL: visual brightness varies" / "OKLCH: visual brightness uniform"
97
+ - **Speaker notes**:
98
+ > "HSL은 1978년에 정의된 모델인데, 인간의 시각과 안 맞아요. 같은 lightness 50%인데, 노랑은 밝아 보이고, 파랑은 어두워 보입니다. OKLCH는 perceptually uniform — 같은 L 값이면 시각적으로도 같은 밝기. Tailwind v4가 OKLCH로 옮긴 이유입니다."
99
+
100
+ ### 9. WCAG validation — non-negotiable
101
+ - **Title**: 모든 색은 WCAG 4.5:1을 통과해야 한다
102
+ - **Visual**: contrast matrix table
103
+ - Rows: text-primary, primary-default, error, success
104
+ - Columns: bg-default (white), bg-elevated, bg-subtle
105
+ - Cells: ratio (e.g., 18.7:1) + ✓/✗
106
+ - **Body text**: "✓ = AA body text · 빨간 ✗는 절대 ship 안 됨"
107
+ - **Speaker notes**:
108
+ > "토큰 만들 때 contrast matrix를 먼저 그립니다. 본문 텍스트는 4.5:1, UI는 3:1 — WCAG AA 기준입니다. design-ai가 만드는 팔레트는 모든 cell이 통과해야 하고, ✗가 하나라도 있으면 ship 안 합니다."
109
+
110
+ ### 10. Section divider
111
+ - **Body text**:
112
+ ```
113
+ Part 3
114
+ 출시: Style Dictionary로 멀티 플랫폼
115
+ ```
116
+
117
+ ### 11. Style Dictionary architecture
118
+ - **Title**: 한 source.json에서 모든 플랫폼 출력
119
+ - **Visual**:
120
+ ```
121
+ tokens/source.json
122
+
123
+ Style Dictionary
124
+ ↓ ↓ ↓ ↓ ↓
125
+ CSS / Tailwind / Swift / XML / Style Dictionary
126
+ ```
127
+ - **Body text**: "단일 source. CI에서 자동 생성."
128
+ - **Speaker notes**:
129
+ > "Source는 하나, output은 여러 개입니다. Style Dictionary가 platform별로 변환해 줍니다. CSS, Tailwind config, iOS Swift, Android XML — 같은 토큰. CI에 build를 걸어 두면 source만 commit하면 모든 플랫폼이 자동 갱신됩니다."
130
+
131
+ ### 12. Drift detection
132
+ - **Title**: Drift는 자동으로 잡는다
133
+ - **Visual**: GitHub Actions YAML snippet (small but readable)
134
+ - **Body text**: "Stylelint + Figma sync diff + visual regression. PR마다 실행."
135
+ - **Speaker notes**:
136
+ > "토큰 시스템 만들고 끝이 아니라, drift를 잡는 자동화가 중요합니다. PR마다 stylelint로 raw hex를 거부하고, Figma 토큰과 코드 토큰을 비교하고, visual regression으로 컴포넌트 외관 변화를 잡습니다. 빌드 한 번 통과하면 디자인 시스템 컴플라이언스도 통과한 거예요."
137
+
138
+ ### 13. Section divider
139
+ - **Body text**:
140
+ ```
141
+ Part 4
142
+ 한국 시장 특화
143
+ ```
144
+
145
+ ### 14. Korean stock convention
146
+ - **Title**: 한국에서는 빨강이 상승, 파랑이 하락
147
+ - **Visual**: stock chart with red candles for gains, blue for losses
148
+ - **Body text**: "Western 컨벤션과 반대 — 토큰 이름까지 분리해야 합니다"
149
+ - **Speaker notes**:
150
+ > "한국 시장 특화의 한 예. Stock app은 빨강이 상승, 파랑이 하락이에요. Western 앱은 반대. 같은 'positive trend'라도 한국은 red가 맞습니다. 토큰 이름은 `color-money-positive` 같은 의미 기반으로 두고, 값을 한국에서만 빨강으로 mapping하는 layer를 추가합니다."
151
+
152
+ ### 15. Korean fintech custom components
153
+ - **Title**: 토큰만으로 부족 — 한국 특화 컴포넌트도 필요
154
+ - **Visual**: 4-up grid showing
155
+ - AmountInput (KRW formatter)
156
+ - AddressInput (Daum Postcode)
157
+ - PaymentMethodSelector (KakaoPay/NaverPay/Toss)
158
+ - BiometricGate (Face ID)
159
+ - **Body text**: "design-ai에 모든 spec 포함"
160
+ - **Speaker notes**:
161
+ > "토큰은 시스템의 베이스. 그 위에 한국 시장 특화 컴포넌트가 필요합니다. AmountInput, AddressInput, PaymentMethodSelector, BiometricGate — 한국 fintech의 가장 많이 쓰는 4 종이고, design-ai 안에 모두 spec 있습니다."
162
+
163
+ ### 16. Conclusion — what to do tomorrow
164
+ - **Title**: 내일 시작할 수 있는 3가지
165
+ - **Visual**: 3 numbered cards
166
+ ```
167
+ 1. tokens/source.json 만들기 — Tier 1만이라도
168
+ 2. Stylelint color-no-hex 룰 추가
169
+ 3. design-ai의 /design-from-brief 시도
170
+ ```
171
+ - **Body text**: "각 단계 1시간 이내"
172
+ - **Speaker notes**:
173
+ > "정리하겠습니다. 내일 출근해서 할 수 있는 세 가지. 토큰 source 파일 하나 만들기, stylelint 룰 추가, design-ai의 design-from-brief 한 번 돌려보기. 각 1시간 이내, 누적 효과는 큽니다. 고맙습니다."
174
+
175
+ ### 17. Q&A / closing
176
+ - **Visual**: design-ai logo + GitHub URL + 김민지 SNS handle
177
+ - **Body text**: "github.com/your-org/design-ai"
178
+ - **Speaker notes**:
179
+ > "질문 받겠습니다."
180
+
181
+ ## Total: 17 slides for 20-min talk
182
+
183
+ Average ~70 seconds per slide. Tight pace, but talk decks should be tight.
184
+
185
+ ## Keyboard and focus notes
186
+
187
+ - Presenters can advance with keyboard arrows, Space, or a clicker; every embedded demo link keeps a visible focus state.
188
+ - If exported to an interactive web deck, tab order follows slide order first, then links inside the active slide; hidden slides are removed from focus order.
189
+ - Screen reader users get slide number, title, and speaker-note availability through `aria-label` / `aria-describedby` on the active slide container.
190
+ - Responsive checks cover the projector viewport, laptop presenter view, and mobile PDF preview.
191
+ - Speaker notes are not keyboard-focusable during audience presentation, so they do not interrupt the talk flow.
192
+
193
+ ## Render-ready (reveal.js / Slidev format)
194
+
195
+ Optional output if user wants the actual deck file:
196
+
197
+ ```markdown
198
+ ---
199
+ theme: default
200
+ title: 디자인 토큰
201
+ author: 김민지
202
+ ---
203
+
204
+ # 디자인 토큰
205
+ 설계부터 출시까지
206
+
207
+ ---
208
+
209
+ # 디자이너와 개발자가 다른 색을 본다
210
+
211
+ [image: side-by-side-mismatch.png]
212
+
213
+ <!-- speaker:
214
+ 이 슬라이드를 보세요...
215
+ -->
216
+ ```
217
+
218
+ (Continues for all slides.)
219
+
220
+ ## Why this is a good talk-deck example
221
+
222
+ - **17 slides for 20 min** — tight pace, message-led.
223
+ - **Every title is a message**, not a topic ("디자이너와 개발자가 다른 색을 본다", not "문제").
224
+ - **One visual per slide** — chart, diagram, image, code snippet.
225
+ - **Speaker notes for every slide** — what the speaker says, not what's on the slide.
226
+ - **Section dividers** at part boundaries — gives audience cognitive break.
227
+ - **Korean voice** consistent (~합니다 tone for conference talk — formal but conversational).
228
+ - **Conclusion lands on action** — "내일 시작할 수 있는 3가지" not abstract takeaway.
229
+
230
+ Cite [`knowledge/patterns/slide-deck-design.md`](../knowledge/patterns/slide-deck-design.md) for talk-deck rules.
231
+
232
+ ## Cross-reference
233
+
234
+ - [`skills/slide-deck-author/PLAYBOOK.md`](../skills/slide-deck-author/PLAYBOOK.md)
235
+ - [`commands/slide-deck.md`](../commands/slide-deck.md)
236
+ - [`knowledge/patterns/slide-deck-design.md`](../knowledge/patterns/slide-deck-design.md)
237
+ - [`knowledge/i18n/korean-document-style.md`](../knowledge/i18n/korean-document-style.md) — Korean speaker voice
@@ -0,0 +1,128 @@
1
+ # Website Improvement Plan: Korean SaaS Marketing Site
2
+
3
+ > Live URL: `https://example.com`
4
+ > Target repo: `https://github.com/acme/korean-saas-site`
5
+ > Viewports: desktop / tablet / mobile
6
+ > Status: planning
7
+
8
+ ## Site Profile
9
+
10
+ - Name: Korean SaaS Marketing Site
11
+ - Live URL: `https://example.com`
12
+ - Repo URL: `https://github.com/acme/korean-saas-site`
13
+ - Local path: `/Users/team/dev/korean-saas-site`
14
+ - Figma URL: `https://figma.com/file/example`
15
+ - Deploy provider: Vercel
16
+ - Sentry project: `acme/korean-saas-web`
17
+ - CMS: Sanity
18
+ - Database: none
19
+ - Priority pages: `/`, `/pricing`, `/signup`, `/docs`
20
+ - Primary user flows: visitor compares pricing and starts signup; existing customer finds proof before contacting sales
21
+ - Brand/design notes: restrained B2B SaaS tone, Pretendard typography, dense Korean product UI, indigo accent for action/focus only
22
+
23
+ ## Audit Summary
24
+
25
+ | Category | Status | Key findings |
26
+ | --- | --- | --- |
27
+ | Visual Design | in-progress | Hero CTA hierarchy is weak; primary and secondary actions compete. |
28
+ | UX Flow | not-started | Pricing-to-signup path needs Browser verification before implementation. |
29
+ | Responsive QA | not-started | Desktop, tablet, and mobile viewports need explicit QA because long Korean labels may wrap. |
30
+ | Accessibility | not-started | Mobile menu focus state, keyboard path, ARIA state, and screen-reader announcement behavior are not documented. |
31
+ | Performance | not-started | Run Lighthouse in the target repo or preview deploy before claiming Core Web Vitals. |
32
+ | SEO | not-started | Check title, description, canonical, OG metadata, sitemap, and heading order. |
33
+ | Technical Quality | not-started | Inspect component reuse before changing layout or adding styles. |
34
+ | Runtime Issues | not-started | Browser/Chrome DevTools should confirm console, network, hydration, and broken assets. |
35
+ | Content Quality | in-progress | Pricing page does not explain plan fit in the first viewport. |
36
+
37
+ ## MCP Readiness
38
+
39
+ | MCP | Status | Reason |
40
+ | --- | --- | --- |
41
+ | GitHub | required | Target repo intake and PR review need repository context. |
42
+ | Figma | optional | Useful for checking design-token intent, but manual screenshot review can work. |
43
+ | Browser/Playwright | required | Responsive and runtime verification need real page interaction. |
44
+ | Chrome DevTools | optional | Needed for deeper console, network, and performance debugging. |
45
+ | Deploy | required | Vercel preview verifies real runtime output before handoff. |
46
+ | Sentry | optional | Useful for production errors, but not required for first planning pass. |
47
+ | Database | unused | Public marketing pages do not depend on direct database inspection. |
48
+ | CMS | optional | Sanity content may affect copy and information architecture. |
49
+ | Collaboration | optional | Use Notion/Slack/Linear only after findings are accepted. |
50
+ | Research | optional | Competitor research can improve messaging but is separate from implementation. |
51
+
52
+ ## Refactor Plan
53
+
54
+ ### [P1] Clarify homepage CTA hierarchy
55
+
56
+ - Category: Visual Design
57
+ - Problem: Primary and secondary actions compete in the hero, weakening the first visitor decision.
58
+ - Evidence: Visual Design finding from the console audit.
59
+ - Impact: high
60
+ - Effort: medium
61
+ - Pages: `/`
62
+ - Recommended MCP: Browser/Playwright, Figma
63
+ - Codex prompt: Inspect the target homepage implementation, reuse existing layout and token patterns, and revise the hero CTA hierarchy so the primary signup action is visually dominant while the secondary action remains available.
64
+ - Verification: run target repo lint/build; verify desktop/tablet/mobile hero layout; confirm keyboard focus and 4.5:1 body text contrast per `knowledge/a11y/contrast.md`.
65
+ - Risks: copy and conversion changes may require stakeholder approval.
66
+
67
+ ### [P0] Document and verify mobile menu focus behavior
68
+
69
+ - Category: Accessibility
70
+ - Problem: The mobile menu focus path is not documented, so keyboard users may lose navigation context.
71
+ - Evidence: Accessibility finding from the console audit.
72
+ - Impact: high
73
+ - Effort: medium
74
+ - Pages: `/`, `/pricing`, `/signup`
75
+ - Recommended MCP: Browser/Playwright, Chrome DevTools
76
+ - Codex prompt: Inspect the mobile navigation component in the target repo. Preserve existing state management and styling conventions while adding or fixing keyboard reachability, visible focus, Escape/close behavior, and screen-reader labels.
77
+ - Verification: tab through the menu, confirm visible focus, confirm screen-reader labels, verify mobile and desktop breakpoints, and run target repo checks. Follow `knowledge/a11y/keyboard-and-focus.md`.
78
+ - Risks: the navigation may be shared across marketing and authenticated surfaces.
79
+
80
+ ## Prompt Pack
81
+
82
+ ### Codex repo intake
83
+
84
+ ```text
85
+ Work in the target website repo, not in design-ai. Inspect routing, layout primitives, styling/tokens, state management, target pages, and verification scripts before editing. Return the smallest safe implementation plan for the homepage CTA and mobile menu focus work.
86
+ ```
87
+
88
+ ### Codex implementation
89
+
90
+ ```text
91
+ Implement the selected task in the target repo. Reuse existing components, design tokens, state patterns, and verification commands. Do not add dependencies unless the current codebase clearly requires them. Verify desktop/tablet/mobile behavior, keyboard focus, screen-reader labels, and target repo lint/build.
92
+ ```
93
+
94
+ ### Claude design review
95
+
96
+ ```text
97
+ Review the live site or screenshots as a senior product designer. Focus on hierarchy, layout rhythm, type, color, spacing, CTA clarity, accessibility, and Korean SaaS copy. Provide one best path with evidence.
98
+ ```
99
+
100
+ ## Handoff Report Draft
101
+
102
+ ### Executed Work
103
+
104
+ - Not run yet; implementation happens in the target website repo.
105
+
106
+ ### Verification Results
107
+
108
+ - Not run yet; expected checks are target repo lint/build, Browser responsive QA, focus QA, and Vercel preview verification.
109
+
110
+ ### Remaining Risks
111
+
112
+ - Figma is optional, so design-token intent may need manual confirmation.
113
+ - Sanity content may require CMS access before copy fixes can ship.
114
+ - Performance and runtime findings are marked as unverified until Browser/Chrome DevTools or deployment checks run.
115
+
116
+ ### Next Actions
117
+
118
+ - Run the generated Codex repo intake prompt inside the target website repo.
119
+ - Apply the P0 accessibility task before lower-priority visual polish.
120
+ - Use `design-ai check output.md --route website-improvement --strict` on the final handoff artifact.
121
+
122
+ ## Accessibility, Responsive, And Grounding Notes
123
+
124
+ - Accessibility: keyboard/focus behavior and screen-reader labels must be verified against `knowledge/a11y/keyboard-and-focus.md`.
125
+ - Contrast: body text and CTA foreground/background pairs must be checked for at least 4.5:1 body text contrast per `knowledge/a11y/contrast.md`.
126
+ - Responsive: desktop, tablet, and mobile viewports must be checked because Korean labels can wrap differently from English copy.
127
+ - Source grounding: this plan uses `knowledge/PRINCIPLES.md`, `knowledge/patterns/ux-guidelines.md`, and `knowledge/patterns/report-design.md`.
128
+ - Avoid: do not run automatic crawling, external MCP writes, target repo mutation from design-ai, embeddings, fine-tuning, or backend sync in this MVP.
@@ -0,0 +1,126 @@
1
+ {
2
+ "version": 1,
3
+ "updatedAt": "2026-05-30T00:00:00.000Z",
4
+ "siteProfile": {
5
+ "id": "sample-korean-saas",
6
+ "name": "Korean SaaS marketing site",
7
+ "liveUrl": "https://example.com",
8
+ "repoUrl": "https://github.com/acme/korean-saas-site",
9
+ "localPath": "/Users/you/dev/korean-saas-site",
10
+ "figmaUrl": "https://figma.com/file/example",
11
+ "brandNotes": "Quiet B2B SaaS tone, Pretendard typography, dense but readable Korean product copy, indigo accent only for action and focus.",
12
+ "deployProvider": "vercel",
13
+ "sentryProject": "acme/korean-saas-web",
14
+ "cms": "sanity",
15
+ "database": "none",
16
+ "pages": [
17
+ "/",
18
+ "/pricing",
19
+ "/signup",
20
+ "/docs"
21
+ ],
22
+ "userFlows": [
23
+ "Visitor compares pricing and starts signup",
24
+ "Existing customer finds feature proof before contacting sales"
25
+ ],
26
+ "viewports": [
27
+ "desktop",
28
+ "tablet",
29
+ "mobile"
30
+ ]
31
+ },
32
+ "auditChecklist": {
33
+ "visual-design": {
34
+ "status": "in-progress",
35
+ "notes": "Hero hierarchy and CTA contrast need review before company pilot.",
36
+ "findings": [
37
+ "Primary CTA competes with secondary link on the homepage"
38
+ ]
39
+ },
40
+ "ux-flow": {
41
+ "status": "todo",
42
+ "notes": "Map visitor path from landing page to pricing and signup.",
43
+ "findings": []
44
+ },
45
+ "responsive": {
46
+ "status": "todo",
47
+ "notes": "Check 1440, 1024, 390, and 360 width layouts.",
48
+ "findings": []
49
+ },
50
+ "accessibility": {
51
+ "status": "todo",
52
+ "notes": "Keyboard and focus audit required for nav, pricing toggle, and forms.",
53
+ "findings": [
54
+ "Focus state is not yet documented for the mobile menu"
55
+ ]
56
+ },
57
+ "performance": {
58
+ "status": "todo",
59
+ "notes": "Run Lighthouse after visual pass.",
60
+ "findings": []
61
+ },
62
+ "seo": {
63
+ "status": "todo",
64
+ "notes": "Inspect title, description, heading order, canonical, OG.",
65
+ "findings": []
66
+ },
67
+ "technical-quality": {
68
+ "status": "todo",
69
+ "notes": "Confirm component reuse before editing target repo.",
70
+ "findings": []
71
+ },
72
+ "runtime-issues": {
73
+ "status": "todo",
74
+ "notes": "Open console/network once preview deploy is available.",
75
+ "findings": []
76
+ },
77
+ "content-quality": {
78
+ "status": "in-progress",
79
+ "notes": "Copy should lead with proof and reduce generic SaaS phrasing.",
80
+ "findings": [
81
+ "Pricing page does not explain plan fit in the first viewport"
82
+ ]
83
+ }
84
+ },
85
+ "mcpReadiness": {
86
+ "github": "required",
87
+ "figma": "optional",
88
+ "browser": "required",
89
+ "chromeDevtools": "optional",
90
+ "deploy": "required",
91
+ "sentry": "optional",
92
+ "database": "unused",
93
+ "cms": "optional",
94
+ "collaboration": "optional",
95
+ "research": "optional"
96
+ },
97
+ "refactorTasks": [
98
+ {
99
+ "id": "task-homepage-cta",
100
+ "title": "Clarify homepage CTA hierarchy",
101
+ "category": "visual-design",
102
+ "problem": "Primary and secondary actions compete in the hero, which weakens the visitor's first decision.",
103
+ "evidence": "Sample finding: Primary CTA competes with secondary link on the homepage.",
104
+ "impact": "high",
105
+ "effort": "medium",
106
+ "priority": "p1",
107
+ "pages": [
108
+ "/"
109
+ ],
110
+ "recommendedMcp": [
111
+ "browser",
112
+ "figma"
113
+ ],
114
+ "codexPrompt": "Inspect the target homepage implementation, preserve existing design system patterns, and revise the hero CTA hierarchy so the primary signup action is visually dominant while the secondary action remains available.",
115
+ "verification": [
116
+ "Run target repo lint/build",
117
+ "Verify desktop/tablet/mobile hero layout",
118
+ "Confirm focus indicators and text contrast"
119
+ ],
120
+ "risks": [
121
+ "Could change conversion copy without stakeholder approval"
122
+ ]
123
+ }
124
+ ],
125
+ "reportNotes": "MVP audit is a planning console. Run the generated prompts inside the target website repo before marking implementation complete."
126
+ }
package/install.sh ADDED
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env bash
2
+ # install.sh — install design-ai globally for Claude Code via symlinks
3
+ # Idempotent: safe to re-run; updates symlinks to current path.
4
+ #
5
+ # Usage:
6
+ # ./install.sh # install
7
+ # ./install.sh --uninstall # remove symlinks
8
+ # ./install.sh --status # show what's installed
9
+ #
10
+ # After install, all 20 skills, 17 commands, and 4 agents are available
11
+ # in any Claude Code session, prefixed with "design-".
12
+
13
+ set -euo pipefail
14
+
15
+ DESIGN_AI_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
+ CLAUDE_HOME="${CLAUDE_HOME:-$HOME/.claude}"
17
+ PREFIX="${DESIGN_AI_PREFIX:-design-}"
18
+
19
+ SKILLS_DIR="$CLAUDE_HOME/skills"
20
+ AGENTS_DIR="$CLAUDE_HOME/agents"
21
+ COMMANDS_DIR="$CLAUDE_HOME/commands"
22
+
23
+ # Colors
24
+ if [ -n "${NO_COLOR:-}" ] || [ ! -t 1 ]; then
25
+ GREEN=''
26
+ YELLOW=''
27
+ RED=''
28
+ BLUE=''
29
+ NC=''
30
+ else
31
+ GREEN='\033[0;32m'
32
+ YELLOW='\033[1;33m'
33
+ RED='\033[0;31m'
34
+ BLUE='\033[0;34m'
35
+ NC='\033[0m'
36
+ fi
37
+
38
+ log_info() { printf "${BLUE}ℹ${NC} %s\n" "$1"; }
39
+ log_success() { printf "${GREEN}✓${NC} %s\n" "$1"; }
40
+ log_warn() { printf "${YELLOW}⚠${NC} %s\n" "$1"; }
41
+ log_error() { printf "${RED}✗${NC} %s\n" "$1"; }
42
+
43
+ print_header() {
44
+ printf "\n${BLUE}╔══════════════════════════════════════════════════════════════╗${NC}\n"
45
+ printf "${BLUE}║${NC} design-ai installer ${BLUE}║${NC}\n"
46
+ printf "${BLUE}║${NC} Senior product designer for Claude Code ${BLUE}║${NC}\n"
47
+ printf "${BLUE}╚══════════════════════════════════════════════════════════════╝${NC}\n\n"
48
+ }
49
+
50
+ ensure_dirs() {
51
+ mkdir -p "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"
52
+ }
53
+
54
+ install_skills() {
55
+ local count=0
56
+ for skill_dir in "$DESIGN_AI_ROOT"/skills/*/; do
57
+ [ -d "$skill_dir" ] || continue
58
+ local name; name=$(basename "$skill_dir")
59
+ local target="$SKILLS_DIR/${PREFIX}${name}"
60
+
61
+ # Remove stale symlink / dir
62
+ [ -L "$target" ] && rm "$target"
63
+
64
+ if [ -e "$target" ] && [ ! -L "$target" ]; then
65
+ log_warn "Skipping ${PREFIX}${name}: a non-symlink already exists at $target"
66
+ continue
67
+ fi
68
+
69
+ ln -sf "$skill_dir" "$target"
70
+ count=$((count + 1))
71
+ done
72
+ log_success "Installed $count skills (prefix: ${PREFIX})"
73
+ }
74
+
75
+ install_agents() {
76
+ local count=0
77
+ for agent_file in "$DESIGN_AI_ROOT"/agents/*.md; do
78
+ [ -f "$agent_file" ] || continue
79
+ local base; base=$(basename "$agent_file")
80
+ [ "$base" = "README.md" ] && continue
81
+
82
+ local target="$AGENTS_DIR/${PREFIX}${base}"
83
+ [ -L "$target" ] && rm "$target"
84
+
85
+ if [ -e "$target" ] && [ ! -L "$target" ]; then
86
+ log_warn "Skipping ${PREFIX}${base}: a non-symlink already exists at $target"
87
+ continue
88
+ fi
89
+
90
+ ln -sf "$agent_file" "$target"
91
+ count=$((count + 1))
92
+ done
93
+ log_success "Installed $count agents (prefix: ${PREFIX})"
94
+ }
95
+
96
+ install_commands() {
97
+ local count=0
98
+ for cmd_file in "$DESIGN_AI_ROOT"/commands/*.md; do
99
+ [ -f "$cmd_file" ] || continue
100
+ local base; base=$(basename "$cmd_file")
101
+ [ "$base" = "README.md" ] && continue
102
+
103
+ local target="$COMMANDS_DIR/${PREFIX}${base}"
104
+ [ -L "$target" ] && rm "$target"
105
+
106
+ if [ -e "$target" ] && [ ! -L "$target" ]; then
107
+ log_warn "Skipping ${PREFIX}${base}: a non-symlink already exists at $target"
108
+ continue
109
+ fi
110
+
111
+ ln -sf "$cmd_file" "$target"
112
+ count=$((count + 1))
113
+ done
114
+ log_success "Installed $count slash commands (prefix: /${PREFIX})"
115
+ }
116
+
117
+ uninstall() {
118
+ print_header
119
+ log_info "Uninstalling design-ai from $CLAUDE_HOME"
120
+ local count=0
121
+
122
+ for dir in "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"; do
123
+ [ -d "$dir" ] || continue
124
+ while IFS= read -r -d '' link; do
125
+ local target_path
126
+ target_path=$(readlink "$link" 2>/dev/null || true)
127
+ if [[ "$target_path" == "$DESIGN_AI_ROOT"* ]]; then
128
+ rm "$link"
129
+ count=$((count + 1))
130
+ fi
131
+ done < <(find "$dir" -maxdepth 1 -type l -print0)
132
+ done
133
+
134
+ log_success "Removed $count design-ai symlinks"
135
+ }
136
+
137
+ status() {
138
+ print_header
139
+ log_info "design-ai source: $DESIGN_AI_ROOT"
140
+ log_info "Claude Code home: $CLAUDE_HOME"
141
+ log_info "Symlink prefix: ${PREFIX}"
142
+ echo
143
+
144
+ for dir in "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"; do
145
+ [ -d "$dir" ] || { log_warn "$dir does not exist"; continue; }
146
+ local kind; kind=$(basename "$dir")
147
+ local count=0
148
+ while IFS= read -r -d '' link; do
149
+ local target_path
150
+ target_path=$(readlink "$link" 2>/dev/null || true)
151
+ if [[ "$target_path" == "$DESIGN_AI_ROOT"* ]]; then
152
+ count=$((count + 1))
153
+ fi
154
+ done < <(find "$dir" -maxdepth 1 -type l -print0)
155
+ log_success "$kind: $count installed"
156
+ done
157
+ }
158
+
159
+ main() {
160
+ case "${1:-install}" in
161
+ --uninstall|uninstall)
162
+ uninstall
163
+ ;;
164
+ --status|status)
165
+ status
166
+ ;;
167
+ --help|-h|help)
168
+ sed -n '2,12p' "$0" | sed 's/^# \?//'
169
+ ;;
170
+ install|*)
171
+ print_header
172
+ log_info "Installing from: $DESIGN_AI_ROOT"
173
+ log_info "Target: $CLAUDE_HOME"
174
+ log_info "Symlink prefix: ${PREFIX}"
175
+ echo
176
+ ensure_dirs
177
+ install_skills
178
+ install_agents
179
+ install_commands
180
+ echo
181
+ log_success "Done. Restart Claude Code (or open a new session) to pick up changes."
182
+ log_info "Try: ${PREFIX}component-spec, ${PREFIX}motion-design, ${PREFIX}spatial"
183
+ log_info "Override prefix: DESIGN_AI_PREFIX=mydesign- ./install.sh"
184
+ log_info "Override target: CLAUDE_HOME=/some/dir ./install.sh"
185
+ ;;
186
+ esac
187
+ }
188
+
189
+ main "$@"