@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,103 @@
1
+ # Palette: <name>
2
+
3
+ > Seed: `<input>` · Mood: `<adjective list>` · Target: `<framework>`
4
+
5
+ ## Why this palette
6
+
7
+ <2–4 sentences. What problem this solves, what brand position it claims, what tradeoffs were accepted.>
8
+
9
+ ## Tokens
10
+
11
+ ### Brand ramps
12
+
13
+ | Step | Primary | Accent | Neutral |
14
+ | --- | --- | --- | --- |
15
+ | 50 | `#...` | `#...` | `#...` |
16
+ | 100 | `#...` | `#...` | `#...` |
17
+ | ...
18
+ | 950 | `#...` | `#...` | `#...` |
19
+
20
+ ### Semantic aliases — light
21
+
22
+ | Token | Value | Notes |
23
+ | --- | --- | --- |
24
+ | `--color-primary-default` | `#...` | hits 4.5:1 on white |
25
+ | `--color-primary-hover` | `#...` | |
26
+ | `--color-primary-active` | `#...` | |
27
+ | `--color-primary-subtle` | `#...` | background |
28
+ | `--color-on-primary` | `#...` | text/icon on primary |
29
+ | `--color-bg-default` | `#...` | |
30
+ | `--color-bg-elevated` | `#...` | |
31
+ | `--color-text-primary` | `#...` | |
32
+ | `--color-text-secondary` | `#...` | |
33
+ | `--color-text-disabled` | `#...` | |
34
+ | `--color-border-default` | `#...` | |
35
+ | `--color-success` | `#...` | |
36
+ | `--color-warning` | `#...` | |
37
+ | `--color-error` | `#...` | |
38
+ | `--color-info` | `#...` | |
39
+
40
+ ### Semantic aliases — dark
41
+
42
+ <same shape, recomputed values>
43
+
44
+ ## Contrast matrix
45
+
46
+ | Pair | Ratio | AA | AAA |
47
+ | --- | --- | --- | --- |
48
+ | text-primary on bg-default | 13.8:1 | ✓ | ✓ |
49
+ | primary-default on white | 4.6:1 | ✓ | — |
50
+ | primary-default on bg-default | 4.5:1 | ✓ | — |
51
+ | text-secondary on bg-default | 7.1:1 | ✓ | ✓ |
52
+ | border-default on bg-default | 3.0:1 | ✓ (UI) | — |
53
+ | ...
54
+
55
+ ## Output: Tailwind v4
56
+
57
+ ```css
58
+ @theme {
59
+ --color-primary-50: #...;
60
+ --color-primary-100: #...;
61
+ /* ... */
62
+ }
63
+ ```
64
+
65
+ ## Output: shadcn-ui (CSS vars)
66
+
67
+ ```css
68
+ :root {
69
+ --primary: #...;
70
+ --primary-foreground: #...;
71
+ /* ... */
72
+ }
73
+
74
+ .dark {
75
+ /* ... */
76
+ }
77
+ ```
78
+
79
+ ## Output: Style Dictionary (JSON)
80
+
81
+ ```json
82
+ {
83
+ "color": {
84
+ "primary": {
85
+ "50": { "value": "#..." },
86
+ "100": { "value": "#..." }
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## Use guidance
93
+
94
+ - Reach for **primary** for: <list>
95
+ - Reach for **accent** for: <list>
96
+ - Reach for **neutral** for: <list>
97
+ - **Don't**: <list common misuses>
98
+
99
+ ## Cited sources
100
+
101
+ - [knowledge/colors/color-theory.md](../../knowledge/colors/color-theory.md)
102
+ - [knowledge/colors/palettes-by-product-type.md](../../knowledge/colors/palettes-by-product-type.md)
103
+ - [knowledge/a11y/contrast.md](../../knowledge/a11y/contrast.md)
@@ -0,0 +1,169 @@
1
+ # component-spec-writer — playbook
2
+
3
+ Produce a developer-ready spec sheet for a single UI component. Output is a markdown document that a frontend engineer can implement against without asking follow-up questions.
4
+
5
+ ## When to use
6
+
7
+ - "Spec a `Banner` component for me."
8
+ - "We're adding a `MultiSelect`. Document the API."
9
+ - "Help me design the anatomy of a `CommandPalette`."
10
+
11
+ ## Inputs (ask if missing)
12
+
13
+ 1. **Component name** (canonical, kebab-case).
14
+ 2. **Goal** — what user need it serves.
15
+ 3. **Target framework** — `react`, `vue`, `svelte`, framework-agnostic. Default: react.
16
+ 4. **Style system** — `tailwind`, `css vars`, `mui theme`, `antd token`. Default: css vars.
17
+ 5. **Existing components in the system?** — to check naming consistency.
18
+
19
+ ## Steps
20
+
21
+ ### 1. Find references
22
+
23
+ Open [`knowledge/components/INDEX.md`](../../knowledge/components/INDEX.md). For the canonical name, locate the row. Open the source files for **all three** libraries that have it. Read enough to understand:
24
+
25
+ - Required vs optional props.
26
+ - Variants (size, color, type).
27
+ - States (default, hover, active, focus, disabled, loading, error).
28
+ - Composition (does it have sub-components like `Card.Header`, `Card.Body`?).
29
+ - Edge cases the libraries handle (empty state, overflow, RTL, long text).
30
+
31
+ If the component is **not** in the index, find the closest analogous component (e.g., `MultiSelect` ≈ shadcn `Select` + custom multi-mode).
32
+
33
+ ### 2. Choose the canonical API
34
+
35
+ Compare APIs across the three references. Pick the cleanest. Bias rules:
36
+
37
+ - Boolean flags > enum strings when there are ≤ 2 options. (`disabled` not `state="disabled"`.)
38
+ - Enum strings > booleans when there are 3+ options. (`size="sm" | "md" | "lg"` not `small={bool}, medium={bool}`.)
39
+ - Composition > prop overload for layout-rich components. (`<Card><Card.Header /></Card>` not `<Card title={...} />`.)
40
+ - One callback per event type. (`onChange(value)` not `onChange(event)` for form fields where event is rarely needed.)
41
+
42
+ ### 3. Define anatomy
43
+
44
+ Diagram the component's parts in markdown. Name each part:
45
+
46
+ ```
47
+ Card
48
+ ├── Card.Header
49
+ │ ├── Card.Title
50
+ │ └── Card.Actions
51
+ ├── Card.Body
52
+ └── Card.Footer
53
+ ```
54
+
55
+ Each part needs:
56
+ - A purpose sentence.
57
+ - Whether it's required.
58
+ - Default content if omitted.
59
+
60
+ ### 4. Define states
61
+
62
+ For every interactive component, enumerate:
63
+
64
+ | State | Trigger | Visual change |
65
+ | --- | --- | --- |
66
+ | Default | resting | base styles |
67
+ | Hover | mouse over | slight bg shift, cursor change |
68
+ | Focus-visible | keyboard tab | 2px focus ring (cite [keyboard-and-focus.md](../../knowledge/a11y/keyboard-and-focus.md)) |
69
+ | Active | press | deeper bg shift |
70
+ | Disabled | `disabled` prop | reduced opacity, no events, `aria-disabled="true"` |
71
+ | Loading | `loading` prop | spinner replaces or overlays content |
72
+ | Error | `error` prop or invalid value | red border + error text |
73
+ | Read-only | `readOnly` prop | no border emphasis, no edit affordance |
74
+
75
+ Not every state applies to every component. Mark N/A.
76
+
77
+ ### 5. Define variants
78
+
79
+ | Variant axis | Values | When to use |
80
+ | --- | --- | --- |
81
+ | `size` | `sm` / `md` / `lg` | sm in dense forms, md default, lg in marketing |
82
+ | `color` | `primary` / `secondary` / `danger` / `ghost` | one CTA per surface uses primary |
83
+ | `shape` | (component-specific) | |
84
+
85
+ ### 6. Accessibility requirements
86
+
87
+ For each component, list:
88
+
89
+ - Semantic element (e.g., `<button>` not `<div role="button">`).
90
+ - ARIA attributes (`aria-label`, `aria-expanded`, `aria-haspopup`, `aria-controls`).
91
+ - Keyboard interactions (cite [keyboard-and-focus.md](../../knowledge/a11y/keyboard-and-focus.md) for the canonical pattern).
92
+ - Screen reader announcement on state change.
93
+ - Touch target size (≥ 44×44 for primary actions).
94
+
95
+ ### 7. Tokens consumed
96
+
97
+ List every design token the component reads:
98
+
99
+ ```
100
+ --color-primary-default
101
+ --color-primary-hover
102
+ --color-on-primary
103
+ --space-md
104
+ --radius-md
105
+ --transition-default
106
+ ```
107
+
108
+ If a token does not exist in the system, **flag it** — don't silently invent.
109
+
110
+ ### 8. Edge cases
111
+
112
+ - Empty state (no data, no value).
113
+ - Overflow (text too long, list too tall).
114
+ - Long content (truncate vs wrap).
115
+ - RTL behavior.
116
+ - Reduced motion (`prefers-reduced-motion`).
117
+ - High contrast mode.
118
+ - Print.
119
+
120
+ ### 9. Output
121
+
122
+ Use [TEMPLATE.md](TEMPLATE.md). Verify:
123
+
124
+ - Every prop has a type, default, and one-line description.
125
+ - Every state has a visual rule.
126
+ - Every keyboard interaction is listed.
127
+ - Code example covers the most common usage.
128
+ - Don't section addresses 2–3 misuses.
129
+
130
+ ## Source files this skill reads
131
+
132
+ - [`knowledge/components/INDEX.md`](../../knowledge/components/INDEX.md)
133
+ - [`knowledge/components/shadcn-registry.md`](../../knowledge/components/shadcn-registry.md)
134
+ - [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md)
135
+ - [`knowledge/a11y/contrast.md`](../../knowledge/a11y/contrast.md)
136
+ - [`knowledge/motion/principles.md`](../../knowledge/motion/principles.md) — for animation specs
137
+ - [`knowledge/i18n/korean-typography.md`](../../knowledge/i18n/korean-typography.md) — when Korean IME is relevant
138
+ - [`knowledge/platforms/react-native.md`](../../knowledge/platforms/react-native.md) — when target is RN
139
+ - Source files in `refs/` (cite the exact paths).
140
+ - Existing worked specs in [`examples/README.md`](../../examples/README.md) — reference for shape and depth.
141
+
142
+ ## Verification phase (run before declaring done)
143
+
144
+ - [ ] Did I cite at least 2 of the 3 reference libraries (Ant / MUI / shadcn)?
145
+ - [ ] Are API choices explained ("API choices made" section) — not just listed?
146
+ - [ ] Do all states (default/hover/focus/active/disabled/loading/error) have visual rules?
147
+ - [ ] Is every keyboard interaction listed for the WAI-ARIA pattern this component implements?
148
+ - [ ] Are the required ARIA attributes spelled out (not just "use ARIA")?
149
+ - [ ] Is there a touch-target size note (≥ 44pt mobile / ≥ 24px web AA)?
150
+ - [ ] Does the spec address reduced-motion handling?
151
+ - [ ] Are at least 3 edge cases covered (empty, long content, RTL, etc.)?
152
+ - [ ] Does the "Don't" section have at least 2 specific misuses?
153
+ - [ ] If RN-targeted: are tokens as numbers and is `Pressable` used (not `<button>`)?
154
+ - [ ] If Korean-relevant input: is IME composition handling addressed?
155
+
156
+ ## Done when
157
+
158
+ - One markdown file, < 600 lines.
159
+ - Anatomy diagram + parts table.
160
+ - API table (props, types, defaults, descriptions).
161
+ - States table.
162
+ - Variants table.
163
+ - Tokens consumed list.
164
+ - Keyboard interactions.
165
+ - ARIA requirements.
166
+ - Code example.
167
+ - Edge cases section.
168
+ - "Don't" section.
169
+ - The verification phase checklist passes.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: component-spec-writer
3
+ description: Produce a developer-ready spec sheet for a UI component — API, anatomy, states, variants, tokens, ARIA, keyboard, and edge cases — by comparing implementations across Ant Design, MUI, and shadcn-ui.
4
+ ---
5
+
6
+ See [PLAYBOOK.md](PLAYBOOK.md).
@@ -0,0 +1,115 @@
1
+ # `<Component>` — spec
2
+
3
+ > Status: <draft / accepted / shipped> · Owner: <name> · Last updated: <date>
4
+
5
+ ## Purpose
6
+
7
+ <2 sentences. The user need this serves and the canonical context.>
8
+
9
+ ## Anatomy
10
+
11
+ ```
12
+ <Component>
13
+ ├── <Part1>
14
+ ├── <Part2>
15
+ └── <Part3>
16
+ ```
17
+
18
+ | Part | Purpose | Required | Default if omitted |
19
+ | --- | --- | --- | --- |
20
+ | `<Part1>` | ... | yes | — |
21
+
22
+ ## API
23
+
24
+ | Prop | Type | Default | Description |
25
+ | --- | --- | --- | --- |
26
+ | `value` | `string` | — | Controlled value. |
27
+ | `onChange` | `(value: string) => void` | — | Fires on change. |
28
+ | `size` | `"sm" \| "md" \| "lg"` | `"md"` | |
29
+ | `disabled` | `boolean` | `false` | |
30
+
31
+ ## States
32
+
33
+ | State | Trigger | Visual |
34
+ | --- | --- | --- |
35
+ | Default | resting | base |
36
+ | Hover | mouse-over | bg lighten 4% |
37
+ | Focus-visible | keyboard tab | 2px ring `--color-focus-ring`, offset 2px |
38
+ | Active | press | bg darken 6% |
39
+ | Disabled | `disabled` | opacity 0.5, no pointer-events |
40
+ | Loading | `loading` | content swapped for spinner |
41
+
42
+ ## Variants
43
+
44
+ ### Size
45
+ | Size | Height | Font | Padding |
46
+ | --- | --- | --- | --- |
47
+ | `sm` | 28px | 13px | 8px 12px |
48
+ | `md` | 32px | 14px | 8px 16px |
49
+ | `lg` | 40px | 16px | 12px 20px |
50
+
51
+ ### Color (or "intent")
52
+ | Value | Use | Background | Text |
53
+ | --- | --- | --- | --- |
54
+ | `primary` | primary CTA | `--color-primary-default` | `--color-on-primary` |
55
+ | `secondary` | non-primary action | `--color-bg-elevated` | `--color-text-primary` |
56
+ | `ghost` | low-emphasis action | transparent | `--color-text-primary` |
57
+ | `danger` | destructive | `--color-error` | `white` |
58
+
59
+ ## Tokens consumed
60
+
61
+ ```
62
+ --color-primary-default
63
+ --color-primary-hover
64
+ --color-on-primary
65
+ --space-md
66
+ --radius-md
67
+ --transition-default
68
+ --color-focus-ring
69
+ ```
70
+
71
+ ## Accessibility
72
+
73
+ - **Semantic element**: `<button type="button">`. Never `<div onClick>`.
74
+ - **ARIA**:
75
+ - `aria-label` if no visible text.
76
+ - `aria-disabled="true"` when `disabled` (in addition to native `disabled`).
77
+ - `aria-busy="true"` when `loading`.
78
+ - **Keyboard**: `Enter` and `Space` activate. `Tab` reaches.
79
+ - **Touch**: minimum 44×44 hit area on mobile (use padding to extend if visual size is smaller).
80
+ - **Focus**: 2px ring with 3:1 contrast against both element and adjacent background.
81
+
82
+ ## Code example
83
+
84
+ ```tsx
85
+ <Button
86
+ size="md"
87
+ intent="primary"
88
+ onClick={handleSubmit}
89
+ disabled={isPending}
90
+ loading={isPending}
91
+ >
92
+ Save changes
93
+ </Button>
94
+ ```
95
+
96
+ ## Edge cases
97
+
98
+ - **Long text**: truncates with `…` if exceeds container; full text in `title` attribute.
99
+ - **Empty state**: `<Component>` with no children renders nothing (does not crash, does not reserve space).
100
+ - **RTL**: icon swap, padding mirror.
101
+ - **Reduced motion**: omit fade transitions, keep instant state changes.
102
+ - **Print**: hidden by default (`@media print { display: none; }`) unless explicitly requested.
103
+
104
+ ## Don't
105
+
106
+ - Don't pass icons as `children` AND as `icon` prop.
107
+ - Don't use `intent="primary"` for more than one button per surface.
108
+ - Don't use `loading` and `disabled` simultaneously — pick one.
109
+
110
+ ## References
111
+
112
+ - Ant Design: <link to refs/ant-design/components/...>
113
+ - MUI: <link to refs/mui/...>
114
+ - shadcn-ui: <link to refs/shadcn-ui/...>
115
+ - Knowledge: [a11y/keyboard-and-focus.md](../../knowledge/a11y/keyboard-and-focus.md), [components/INDEX.md](../../knowledge/components/INDEX.md)
@@ -0,0 +1,231 @@
1
+ # conversational-ui-designer — playbook
2
+
3
+ Design and spec a conversational UI — voice assistant, chatbot, AI chat (LLM-based), or live-agent chat. Output is a markdown spec covering modality, intent model, persona, error handling, accessibility, and Korean conventions where applicable.
4
+
5
+ ## When to use
6
+
7
+ - "Design a chatbot for our customer support."
8
+ - "Spec a voice search feature for our app."
9
+ - "Plan AI chat onboarding for our product."
10
+ - "Build a Bixby Capsule for our service."
11
+ - "Design KakaoTalk Channel chatbot."
12
+
13
+ ## Inputs (ask if missing)
14
+
15
+ 1. **Type** — voice assistant / chatbot / AI chat / live agent / hybrid.
16
+ 2. **Modality** — voice-only / voice + visual / text-only / multimodal.
17
+ 3. **Use case** — customer support / FAQ deflection / lead capture / transactional / AI help.
18
+ 4. **Audience** — Korean / international / mixed.
19
+ 5. **Brand voice** — formal (합쇼체) / friendly (해요체) / casual.
20
+ 6. **Backend** — rule-based / intent-based (Dialogflow / Rasa) / LLM (GPT / Claude / HyperCLOVA) / hybrid.
21
+ 7. **Platform** — own app / KakaoTalk channel / Bixby Capsule / Slack / web embed.
22
+ 8. **Existing brand** — voice + persona constraints.
23
+
24
+ ## Steps
25
+
26
+ ### 1. Pick the type
27
+
28
+ | Type | Read |
29
+ | --- | --- |
30
+ | Voice assistant / smart speaker / IVR | [`voice-ui-patterns.md`](../../knowledge/conversational/voice-ui-patterns.md) |
31
+ | Chatbot (rule / intent / hybrid) | [`chatbot-design.md`](../../knowledge/conversational/chatbot-design.md) |
32
+ | AI chat (LLM) | [`ai-chat-interfaces.md`](../../knowledge/conversational/ai-chat-interfaces.md) |
33
+ | Korean market | [`korean-voice-conventions.md`](../../knowledge/conversational/korean-voice-conventions.md) |
34
+
35
+ Always read [`conversational-ui-fundamentals.md`](../../knowledge/conversational/conversational-ui-fundamentals.md).
36
+
37
+ ### 2. Spec the modality
38
+
39
+ | Modality | Affordance |
40
+ | --- | --- |
41
+ | Voice-only | Wake word OR push-to-talk; auditory feedback |
42
+ | Voice + visual | Voice in, visual out; tap-to-talk |
43
+ | Text-only | Persistent input; suggested chips |
44
+ | Multimodal AI | Text + image + voice; streaming |
45
+
46
+ Make modality explicit. Affects everything downstream.
47
+
48
+ ### 3. Define persona
49
+
50
+ | Dimension | Decide |
51
+ | --- | --- |
52
+ | Honorific level (KR) | 합쇼체 / 해요체 |
53
+ | Formality | Formal / friendly / casual |
54
+ | Verbosity | Terse / discursive |
55
+ | Warmth | Professional / warm |
56
+ | Emoji use | Never / rare / frequent |
57
+ | Address user | 고객님 / 회원님 / [name]님 |
58
+ | Bot self-identity | "저는 [봇 이름]" / "[브랜드] 봇" |
59
+
60
+ For Korean B2C fintech: 해요체, friendly, terse-warm, 고객님, no emoji.
61
+ For Korean B2B: 합쇼체, formal, professional, 회원님.
62
+
63
+ ### 4. Spec turn-taking model
64
+
65
+ For voice / IVR:
66
+ - Wake word OR tap-to-talk activation.
67
+ - End-of-utterance detection (silence timeout).
68
+ - Multi-turn dialogue with slot-filling.
69
+ - Confirmation for destructive actions.
70
+
71
+ For chat:
72
+ - Persistent input.
73
+ - Send on Enter / button.
74
+ - Bot responds with typing indicator → message.
75
+ - Suggested chips reduce typing.
76
+
77
+ For AI chat:
78
+ - Streaming response (token-by-token).
79
+ - Stop / regenerate / continue.
80
+ - Markdown render.
81
+ - Long context handling.
82
+
83
+ ### 5. Plan intent / NLU
84
+
85
+ For rule-based:
86
+ - Decision tree of buttons.
87
+
88
+ For intent-based:
89
+ - Top intents (5-30 typically).
90
+ - Slot definitions per intent.
91
+ - Training utterances per intent (10-50 each).
92
+ - Fallback intent.
93
+
94
+ For LLM-based:
95
+ - System prompt defining persona + constraints.
96
+ - Tool definitions (if function calling).
97
+ - Context window management.
98
+ - Hallucination mitigations (citations, confidence).
99
+
100
+ For hybrid: buttons + intent + LLM fallback + human handoff.
101
+
102
+ ### 6. Plan error recovery
103
+
104
+ For each failure type:
105
+ - Misheard / no speech → retry prompt.
106
+ - Misclassified intent → "Did you mean X?" with options.
107
+ - No matching intent → fallback to LLM OR human handoff.
108
+ - Backend error → graceful retry / alternate path.
109
+ - Repeated failures (2-3) → human handoff.
110
+
111
+ ### 7. Plan multi-turn flows
112
+
113
+ For complex tasks (booking, troubleshooting):
114
+ - Slot-filling order.
115
+ - Confirmation step.
116
+ - Cancel / restart at any point.
117
+ - Save partial progress.
118
+
119
+ Sketch as a flow diagram.
120
+
121
+ ### 8. Plan handoff to human (if applicable)
122
+
123
+ - Always-available "human" request.
124
+ - Context transfer (agent sees prior conversation).
125
+ - Wait time displayed.
126
+ - Off-hours behavior.
127
+ - Escalation triggers (failed N times, sensitive topic, user request).
128
+
129
+ ### 9. Korean compliance (if applicable)
130
+
131
+ - **개인정보보호법** — voice recording / chat history consent + retention.
132
+ - **정보통신망법** — proactive marketing messages disclosed.
133
+ - **자본시장법 / 금융소비자보호법** — financial product disclaimers.
134
+ - **KakaoTalk Channel** rules (if deployed there).
135
+ - 자막 / TTS in Korean — verify pronunciation of brand / product names.
136
+
137
+ ### 10. Plan accessibility
138
+
139
+ - Voice + text alt always available.
140
+ - Visual feedback for listening / processing.
141
+ - Transcript visible (deaf users).
142
+ - Reduced-motion handling.
143
+ - Adjustable TTS speed.
144
+ - High contrast / large text support.
145
+ - Keyboard navigation.
146
+
147
+ ### 11. Output
148
+
149
+ ```markdown
150
+ # Conversational UI spec: <surface>
151
+
152
+ > Type: <voice / chatbot / AI chat / live agent>
153
+ > Modality: <voice-only / voice+visual / text-only / multimodal>
154
+ > Use case: <support / FAQ / transactional / AI help>
155
+ > Audience: <KR / international>
156
+ > Backend: <rule / intent / LLM / hybrid>
157
+ > Platform: <own app / KakaoTalk / Bixby / web>
158
+
159
+ ## Persona
160
+ <honorific level, formality, warmth, emoji, user addressing>
161
+
162
+ ## Modality + affordances
163
+ <wake word / tap-to-talk / persistent input>
164
+
165
+ ## Top intents (or LLM system prompt summary)
166
+ <5-30 intents with sample utterances>
167
+
168
+ ## Conversation flows
169
+ <key multi-turn flows: support, transaction, AI ask>
170
+
171
+ ## Error recovery
172
+ <for each failure: retry / fallback / handoff>
173
+
174
+ ## Human handoff
175
+ <trigger criteria, transition UX>
176
+
177
+ ## Korean compliance (if applicable)
178
+ <개인정보보호법, 정보통신망법, 자본시장법>
179
+
180
+ ## Accessibility
181
+ <text alt, transcript visible, reduced motion, keyboard>
182
+
183
+ ## UI components needed
184
+ <reference component-chat-interface, component-voice-input, etc>
185
+
186
+ ## Don't
187
+ <2-3 specific misuses>
188
+ ```
189
+
190
+ ## Source files this skill reads
191
+
192
+ - [`knowledge/conversational/conversational-ui-fundamentals.md`](../../knowledge/conversational/conversational-ui-fundamentals.md)
193
+ - [`knowledge/conversational/voice-ui-patterns.md`](../../knowledge/conversational/voice-ui-patterns.md)
194
+ - [`knowledge/conversational/chatbot-design.md`](../../knowledge/conversational/chatbot-design.md)
195
+ - [`knowledge/conversational/ai-chat-interfaces.md`](../../knowledge/conversational/ai-chat-interfaces.md)
196
+ - [`knowledge/conversational/korean-voice-conventions.md`](../../knowledge/conversational/korean-voice-conventions.md)
197
+ - [`knowledge/i18n/korean-document-style.md`](../../knowledge/i18n/korean-document-style.md) — honorific level
198
+ - [`knowledge/i18n/korean-typography.md`](../../knowledge/i18n/korean-typography.md) — IME, fonts
199
+ - [`knowledge/patterns/email-design.md`](../../knowledge/patterns/email-design.md) — KR ad disclosure
200
+ - [`examples/component-chat-interface.md`](../../examples/component-chat-interface.md)
201
+ - [`examples/component-voice-input.md`](../../examples/component-voice-input.md)
202
+
203
+ ## Verification phase (run before declaring done)
204
+
205
+ - [ ] Is the type (voice / chatbot / AI / live) explicit?
206
+ - [ ] Is the modality (voice / text / multi) explicit?
207
+ - [ ] Is the persona defined (honorific level, formality, warmth, emoji)?
208
+ - [ ] Is turn-taking model explicit (wake word / tap / persistent / streaming)?
209
+ - [ ] Are top intents OR LLM system prompt summary documented?
210
+ - [ ] Are key conversation flows mapped?
211
+ - [ ] Is error recovery specified for each failure type?
212
+ - [ ] Is human handoff path defined?
213
+ - [ ] If Korean: are 개인정보보호법 / 정보통신망법 / 자본시장법 addressed?
214
+ - [ ] If Korean: is honorific level + 고객님 / 회원님 / [name]님 specified?
215
+ - [ ] Is accessibility addressed (text alt, transcript, reduced motion)?
216
+ - [ ] Are required UI components listed?
217
+ - [ ] Does "Don't" catch 2-3 specific misuses?
218
+
219
+ ## Done when
220
+
221
+ - One markdown spec, < 500 lines.
222
+ - Type + modality + use case + audience explicit.
223
+ - Persona defined.
224
+ - Turn-taking model specified.
225
+ - Top intents / system prompt documented.
226
+ - Conversation flows mapped.
227
+ - Error recovery + human handoff defined.
228
+ - Korean compliance addressed if applicable.
229
+ - Accessibility addressed.
230
+ - "Don't" section.
231
+ - Verification passes.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: conversational-ui-designer
3
+ description: Design and spec conversational UI — voice assistants, chatbots, AI chat (LLM), live agent. Picks modality, intent model, persona, honorific level (해요체 / 합쇼체), error handling, accessibility, Korean conventions (Bixby / Clova / KakaoTalk channel).
4
+ ---
5
+
6
+ See [PLAYBOOK.md](PLAYBOOK.md).