@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,159 @@
1
+ ---
2
+ title: shadcn-ui registry catalog
3
+ source: refs/shadcn-ui/apps/v4/registry/new-york-v4/
4
+ upstream: https://github.com/shadcn-ui/ui/tree/main/apps/v4/registry/new-york-v4
5
+ extracted_at: 2026-05-19
6
+ applies_to: [react, tailwindcss, radix-ui]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # shadcn-ui registry catalog (new-york-v4)
13
+
14
+ shadcn-ui is **not** an installable package — it's a registry of source files you copy into your project. The "new-york-v4" style is the modern default. Each entry below is a component you can `npx shadcn add <name>`.
15
+
16
+ ## UI primitives (57)
17
+
18
+ | | | | |
19
+ | --- | --- | --- | --- |
20
+ | `_registry` | `accordion` | `alert-dialog` | `alert` |
21
+ | `aspect-ratio` | `avatar` | `badge` | `breadcrumb` |
22
+ | `button-group` | `button` | `calendar` | `card` |
23
+ | `carousel` | `chart` | `checkbox` | `collapsible` |
24
+ | `combobox` | `command` | `context-menu` | `dialog` |
25
+ | `direction` | `drawer` | `dropdown-menu` | `empty` |
26
+ | `field` | `form` | `hover-card` | `input-group` |
27
+ | `input-otp` | `input` | `item` | `kbd` |
28
+ | `label` | `menubar` | `native-select` | `navigation-menu` |
29
+ | `pagination` | `popover` | `progress` | `radio-group` |
30
+ | `resizable` | `scroll-area` | `select` | `separator` |
31
+ | `sheet` | `sidebar` | `skeleton` | `slider` |
32
+ | `sonner` | `spinner` | `switch` | `table` |
33
+ | `tabs` | `textarea` | `toggle-group` | `toggle` |
34
+ | `tooltip` | | | |
35
+
36
+ ## Blocks (28)
37
+
38
+ | | | | |
39
+ | --- | --- | --- | --- |
40
+ | `_registry` | `dashboard-01` | `login-01` | `login-02` |
41
+ | `login-03` | `login-04` | `login-05` | `sidebar-01` |
42
+ | `sidebar-02` | `sidebar-03` | `sidebar-04` | `sidebar-05` |
43
+ | `sidebar-06` | `sidebar-07` | `sidebar-08` | `sidebar-09` |
44
+ | `sidebar-10` | `sidebar-11` | `sidebar-12` | `sidebar-13` |
45
+ | `sidebar-14` | `sidebar-15` | `sidebar-16` | `signup-01` |
46
+ | `signup-02` | `signup-03` | `signup-04` | `signup-05` |
47
+
48
+ ## Charts (70)
49
+
50
+ | | | | |
51
+ | --- | --- | --- | --- |
52
+ | `chart-area-axes` | `chart-area-default` | `chart-area-gradient` | `chart-area-icons` |
53
+ | `chart-area-interactive` | `chart-area-legend` | `chart-area-linear` | `chart-area-stacked-expand` |
54
+ | `chart-area-stacked` | `chart-area-step` | `chart-bar-active` | `chart-bar-default` |
55
+ | `chart-bar-horizontal` | `chart-bar-interactive` | `chart-bar-label-custom` | `chart-bar-label` |
56
+ | `chart-bar-mixed` | `chart-bar-multiple` | `chart-bar-negative` | `chart-bar-stacked` |
57
+ | `chart-line-default` | `chart-line-dots-colors` | `chart-line-dots-custom` | `chart-line-dots` |
58
+ | `chart-line-interactive` | `chart-line-label-custom` | `chart-line-label` | `chart-line-linear` |
59
+ | `chart-line-multiple` | `chart-line-step` | `chart-pie-donut-active` | `chart-pie-donut-text` |
60
+ | `chart-pie-donut` | `chart-pie-interactive` | `chart-pie-label-custom` | `chart-pie-label-list` |
61
+ | `chart-pie-label` | `chart-pie-legend` | `chart-pie-separator-none` | `chart-pie-simple` |
62
+ | `chart-pie-stacked` | `chart-radar-default` | `chart-radar-dots` | `chart-radar-grid-circle-fill` |
63
+ | `chart-radar-grid-circle-no-lines` | `chart-radar-grid-circle` | `chart-radar-grid-custom` | `chart-radar-grid-fill` |
64
+ | `chart-radar-grid-none` | `chart-radar-icons` | `chart-radar-label-custom` | `chart-radar-legend` |
65
+ | `chart-radar-lines-only` | `chart-radar-multiple` | `chart-radar-radius` | `chart-radial-grid` |
66
+ | `chart-radial-label` | `chart-radial-shape` | `chart-radial-simple` | `chart-radial-stacked` |
67
+ | `chart-radial-text` | `chart-tooltip-advanced` | `chart-tooltip-default` | `chart-tooltip-formatter` |
68
+ | `chart-tooltip-icons` | `chart-tooltip-indicator-line` | `chart-tooltip-indicator-none` | `chart-tooltip-label-custom` |
69
+ | `chart-tooltip-label-formatter` | `chart-tooltip-label-none` | | |
70
+
71
+ ## Hooks (2)
72
+
73
+ | | | | |
74
+ | --- | --- | --- | --- |
75
+ | `_registry` | `use-mobile` | | |
76
+
77
+ ## Examples (230)
78
+
79
+ | | | | |
80
+ | --- | --- | --- | --- |
81
+ | `accordion-demo` | `alert-demo` | `alert-destructive` | `alert-dialog-demo` |
82
+ | `aspect-ratio-demo` | `avatar-demo` | `badge-demo` | `badge-destructive` |
83
+ | `badge-outline` | `badge-secondary` | `breadcrumb-demo` | `breadcrumb-dropdown` |
84
+ | `breadcrumb-ellipsis` | `breadcrumb-link` | `breadcrumb-responsive` | `breadcrumb-separator` |
85
+ | `button-as-child` | `button-default` | `button-demo` | `button-destructive` |
86
+ | `button-ghost` | `button-group-demo` | `button-group-dropdown` | `button-group-input-group` |
87
+ | `button-group-input` | `button-group-nested` | `button-group-orientation` | `button-group-popover` |
88
+ | `button-group-select` | `button-group-separator` | `button-group-size` | `button-group-split` |
89
+ | `button-icon` | `button-link` | `button-loading` | `button-outline` |
90
+ | `button-rounded` | `button-secondary` | `button-size` | `button-with-icon` |
91
+ | `calendar-demo` | `calendar-hijri` | `card-demo` | `card-with-form` |
92
+ | `carousel-api` | `carousel-demo` | `carousel-orientation` | `carousel-plugin` |
93
+ | `carousel-size` | `carousel-spacing` | `chart-bar-demo-axis` | `chart-bar-demo-grid` |
94
+ | `chart-bar-demo-legend` | `chart-bar-demo-tooltip` | `chart-bar-demo` | `chart-tooltip-demo` |
95
+ | `checkbox-demo` | `checkbox-disabled` | `checkbox-with-text` | `collapsible-demo` |
96
+ | `combobox-demo` | `combobox-dropdown-menu` | `combobox-popover` | `combobox-responsive` |
97
+ | `command-demo` | `command-dialog` | `context-menu-demo` | `data-table-demo` |
98
+ | `date-picker-demo` | `date-picker-with-presets` | `date-picker-with-range` | `dialog-close-button` |
99
+ | `dialog-demo` | `drawer-demo` | `drawer-dialog` | `dropdown-menu-checkboxes` |
100
+ | `dropdown-menu-demo` | `dropdown-menu-dialog` | `dropdown-menu-radio-group` | `empty-avatar-group` |
101
+ | `empty-avatar` | `empty-background` | `empty-demo` | `empty-icon` |
102
+ | `empty-input-group` | `empty-outline` | `field-checkbox` | `field-choice-card` |
103
+ | `field-demo` | `field-fieldset` | `field-group` | `field-input` |
104
+ | `field-radio` | `field-responsive` | `field-select` | `field-slider` |
105
+ | `field-switch` | `field-textarea` | `form-next-complex` | `form-next-demo` |
106
+ | `form-rhf-array` | `form-rhf-checkbox` | `form-rhf-complex` | `form-rhf-demo` |
107
+ | `form-rhf-input` | `form-rhf-password` | `form-rhf-radiogroup` | `form-rhf-select` |
108
+ | `form-rhf-switch` | `form-rhf-textarea` | `form-tanstack-array` | `form-tanstack-checkbox` |
109
+ | `form-tanstack-complex` | `form-tanstack-demo` | `form-tanstack-input` | `form-tanstack-radiogroup` |
110
+ | `form-tanstack-select` | `form-tanstack-switch` | `form-tanstack-textarea` | `hover-card-demo` |
111
+ | `input-demo` | `input-disabled` | `input-file` | `input-group-button-group` |
112
+ | `input-group-button` | `input-group-custom` | `input-group-demo` | `input-group-dropdown` |
113
+ | `input-group-icon` | `input-group-label` | `input-group-spinner` | `input-group-text` |
114
+ | `input-group-textarea` | `input-group-tooltip` | `input-otp-controlled` | `input-otp-demo` |
115
+ | `input-otp-pattern` | `input-otp-separator` | `input-with-button` | `input-with-label` |
116
+ | `input-with-text` | `item-avatar` | `item-demo` | `item-dropdown` |
117
+ | `item-group` | `item-header` | `item-icon` | `item-image` |
118
+ | `item-link` | `item-size` | `item-variant` | `kbd-button` |
119
+ | `kbd-demo` | `kbd-group` | `kbd-input-group` | `kbd-tooltip` |
120
+ | `label-demo` | `menubar-demo` | `mode-toggle` | `native-select-demo` |
121
+ | `native-select-disabled` | `native-select-groups` | `native-select-invalid` | `navigation-menu-demo` |
122
+ | `pagination-demo` | `popover-demo` | `progress-demo` | `radio-group-demo` |
123
+ | `resizable-demo-with-handle` | `resizable-demo` | `resizable-handle` | `resizable-vertical` |
124
+ | `scroll-area-demo` | `scroll-area-horizontal-demo` | `select-demo` | `select-scrollable` |
125
+ | `separator-demo` | `sheet-demo` | `sheet-side` | `skeleton-card` |
126
+ | `skeleton-demo` | `slider-demo` | `sonner-demo` | `sonner-types` |
127
+ | `spinner-badge` | `spinner-basic` | `spinner-button` | `spinner-color` |
128
+ | `spinner-custom` | `spinner-demo` | `spinner-empty` | `spinner-input-group` |
129
+ | `spinner-item` | `spinner-size` | `switch-demo` | `table-demo` |
130
+ | `tabs-demo` | `textarea-demo` | `textarea-disabled` | `textarea-with-button` |
131
+ | `textarea-with-label` | `textarea-with-text` | `toggle-demo` | `toggle-disabled` |
132
+ | `toggle-group-demo` | `toggle-group-disabled` | `toggle-group-lg` | `toggle-group-outline` |
133
+ | `toggle-group-single` | `toggle-group-sm` | `toggle-group-spacing` | `toggle-lg` |
134
+ | `toggle-outline` | `toggle-sm` | `toggle-with-text` | `tooltip-demo` |
135
+ | `typography-blockquote` | `typography-demo` | `typography-h1` | `typography-h2` |
136
+ | `typography-h3` | `typography-h4` | `typography-inline-code` | `typography-large` |
137
+ | `typography-lead` | `typography-list` | `typography-muted` | `typography-p` |
138
+ | `typography-small` | `typography-table` | | |
139
+
140
+ ## How to use
141
+
142
+ ```bash
143
+ npx shadcn@latest add button card dialog
144
+ ```
145
+
146
+ Components land in `components/ui/`. Edit them — they are yours, not a dependency.
147
+
148
+ ## When to pick shadcn over MUI/Ant
149
+
150
+ - You want Tailwind, not CSS-in-JS.
151
+ - You want to **own** the component code.
152
+ - You're using Radix primitives or Headless UI elsewhere.
153
+ - You want minimal bundle (no theme runtime).
154
+
155
+ ## When NOT to pick shadcn
156
+
157
+ - You need RTL out of the box (less polished than MUI/Ant).
158
+ - You need form/data-table primitives that are deeply pre-wired (use Ant Design Form/Table).
159
+ - You ship to non-React frameworks.
@@ -0,0 +1,323 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: AI chat interfaces (ChatGPT, Claude, LLM-based UX)
4
+ applies_to: [ai-chat, llm, chatgpt, conversational]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # AI chat interfaces
11
+
12
+ LLM-based chat (ChatGPT, Claude, Gemini, Perplexity, character.ai) has its own emerging UX conventions. Different from rule-based chatbots: more capable, more open-ended, but with novel UX challenges around hallucinations, latency, context length, and trust.
13
+
14
+ Read [`conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) and [`chatbot-design.md`](chatbot-design.md) first.
15
+
16
+ ## What's different about AI chat
17
+
18
+ vs traditional chatbot:
19
+ - **Free-form input** — users type anything, model interprets.
20
+ - **Long-form output** — paragraphs, code, lists, not just one-line replies.
21
+ - **Streamed responses** — token-by-token, not waiting for completion.
22
+ - **Multi-turn context** — system holds prior messages within session.
23
+ - **Multimodal** — image upload, file analysis, voice (varies by model).
24
+ - **Hallucinations** — model can be confidently wrong.
25
+ - **Cost per token** — long conversations expensive.
26
+
27
+ These shape the UI.
28
+
29
+ ## Anatomy of an AI chat UI
30
+
31
+ ```
32
+ ┌──────────────────────────────────────────┐
33
+ │ [Brand] Chat [⚙ ⏷] │ ← header (model selector)
34
+ ├──────────────────────────────────────────┤
35
+ │ [Sidebar] │ Today │
36
+ │ │ ───── │
37
+ │ + New chat │ │
38
+ │ │ User: How do I fix...? │
39
+ │ Today │ │
40
+ │ • Chat 1 │ Assistant: To fix this... │
41
+ │ • Chat 2 │ [code block] │
42
+ │ │ [continue][regenerate][copy]│
43
+ │ Yesterday │ │
44
+ │ • Chat 3 │ ───── input ───── │
45
+ │ │ [Type a message...] [▶] │
46
+ │ │ [Attach] [Voice] [Search] │
47
+ └──────────────────────────────────────────┘
48
+ ```
49
+
50
+ ## Input affordances
51
+
52
+ ### Multi-line input
53
+
54
+ Most AI chat allows multi-line input (Shift+Enter for newline; Enter to send):
55
+
56
+ ```
57
+ [Long multi-line text area, expanding as user types]
58
+ [Send button]
59
+ ```
60
+
61
+ For complex queries, code paste, full-document review.
62
+
63
+ ### Attachments
64
+
65
+ - **Image upload** (Claude, GPT-4o): drag-drop or button.
66
+ - **File upload** (PDFs, docs, code): paid tiers; drag-drop.
67
+ - **Multiple files** in one message.
68
+ - **Visible attachments** above input field as chips before send.
69
+
70
+ ### Slash commands / mentions
71
+
72
+ Some AI tools have:
73
+ - **Slash commands** — `/help`, `/reset`, `/model gpt-4`.
74
+ - **Mentions** — `@persona` or `@tool` to invoke specific AI / tool.
75
+ - **Sample prompts** — pre-written suggestion chips.
76
+
77
+ For developer tools (Cursor, Claude Code): slash commands are core.
78
+
79
+ ### Voice input
80
+
81
+ Increasingly common (ChatGPT voice mode, Claude voice on mobile):
82
+ - Tap-to-talk.
83
+ - Real-time transcription preview.
84
+ - Voice + text hybrid.
85
+
86
+ ## Output rendering
87
+
88
+ AI responses are richer than chatbot replies:
89
+
90
+ | Element | Render |
91
+ | --- | --- |
92
+ | **Markdown** | Bold, italic, lists, headings rendered |
93
+ | **Code blocks** | Syntax-highlighted; with copy button |
94
+ | **Inline code** | Monospace |
95
+ | **Math (LaTeX)** | Rendered with KaTeX / MathJax |
96
+ | **Tables** | Proper HTML tables |
97
+ | **Links** | Clickable, sometimes with preview |
98
+ | **Mermaid diagrams** | Rendered if requested |
99
+ | **Images** | Inline if generated / referenced |
100
+
101
+ Don't show raw markdown — render it.
102
+
103
+ For Korean: same markdown rendering; Korean text in code blocks works (Pretendard / Monaspace Argon supports Korean monospace if needed).
104
+
105
+ ## Streaming responses
106
+
107
+ The single most important UX difference:
108
+
109
+ ```
110
+ [blank screen — bad]
111
+
112
+ [• word ] ← starts at 200ms
113
+ [• word word ]
114
+ [• word word word ] ← user reads while it streams
115
+ [...]
116
+ ```
117
+
118
+ Implementation:
119
+ - **Server-Sent Events (SSE)** stream tokens.
120
+ - **Render incrementally** — append to message bubble.
121
+ - **Cursor / blinking** indicator at end of streaming text.
122
+ - **Stop button** — let user halt mid-stream.
123
+
124
+ Streaming makes 30-second responses feel acceptable. Without streaming, 30s feels broken.
125
+
126
+ ## Stop / regenerate / continue
127
+
128
+ Standard controls below an AI response:
129
+
130
+ | Action | Use |
131
+ | --- | --- |
132
+ | **Stop generating** | While streaming; halt response |
133
+ | **Regenerate** | New response to same prompt |
134
+ | **Continue** | Long response truncated; ask for more |
135
+ | **Copy** | Copy entire response or code block |
136
+ | **Edit** (user message) | Edit user's prior message; regenerates everything after |
137
+ | **Branch** | Save current path; explore alternative |
138
+ | **Share** | Share conversation link |
139
+
140
+ Place inline below each AI response, not in a hidden menu.
141
+
142
+ ## Context length and truncation
143
+
144
+ Models have context limits (8k, 32k, 128k, 200k+ tokens). Long conversations exceed:
145
+
146
+ - **Sliding window** — drop oldest messages when over limit.
147
+ - **Summarization** — auto-summarize old messages, keep recent.
148
+ - **Visible indicator** — "context near limit" warning.
149
+ - **Manual reset** — "New chat" button always visible.
150
+
151
+ For long conversations: file uploads or "memory" features offload context.
152
+
153
+ ## Hallucination handling
154
+
155
+ LLMs confidently produce wrong answers. UX mitigations:
156
+
157
+ - **Source citations** — show which docs / web results informed the answer.
158
+ - **Confidence indicators** — vague when unsure.
159
+ - **Disclaimers** — "AI can make mistakes. Verify important info."
160
+ - **Verifiable claims** — direct quotes / page references.
161
+ - **User feedback** — thumbs up/down to improve.
162
+
163
+ For factual products (search, research): always provide citations.
164
+ For creative products (writing, ideation): less critical.
165
+
166
+ ## Trust and disclosure
167
+
168
+ Be transparent:
169
+ - **AI-generated label** — small but visible.
170
+ - **Model version** — "Powered by GPT-4o" / "Claude 3.5 Sonnet".
171
+ - **Data usage policy** — does prompt training happen? Disclose.
172
+ - **Conversation storage** — retained / deletable.
173
+
174
+ ## Chat history sidebar
175
+
176
+ Sidebar shows past conversations:
177
+
178
+ ```
179
+ [+ New chat]
180
+
181
+ Today
182
+ • Working on the design system
183
+ • Help with React component
184
+ • ...
185
+
186
+ Yesterday
187
+ • Korean language practice
188
+ • ...
189
+
190
+ Last week
191
+ • ...
192
+ ```
193
+
194
+ Features:
195
+ - **Search** through history.
196
+ - **Rename** conversations.
197
+ - **Delete** individual or all.
198
+ - **Export** conversation.
199
+ - **Pinned / favorites** at top.
200
+
201
+ ## Multi-modal output
202
+
203
+ Some AI models output more than text:
204
+
205
+ | Output | Render |
206
+ | --- | --- |
207
+ | **Generated image** (DALL-E, Imagen) | Inline image with download |
208
+ | **Generated audio** (TTS, music) | Audio player |
209
+ | **Generated code execution** (Code Interpreter, Artifacts) | Sandboxed runtime, output rendering |
210
+ | **Generated documents** (Claude Artifacts) | Side-pane preview |
211
+
212
+ For Claude / GPT artifacts (live HTML / React preview): split-pane interface, code on left, preview on right.
213
+
214
+ ## Suggestions / next steps
215
+
216
+ After a response, suggest follow-ups:
217
+
218
+ ```
219
+ [AI response about React performance]
220
+
221
+ Ask follow-up:
222
+ [Show me an example with hooks] [What about Vue?] [Profile this code]
223
+ ```
224
+
225
+ Reduces typing for common follow-ups.
226
+
227
+ ## Voice mode UX
228
+
229
+ ChatGPT / Claude voice modes:
230
+
231
+ | Element | Behavior |
232
+ | --- | --- |
233
+ | Activation | Mic icon or wake word (varies) |
234
+ | Visual | Animated orb / wave during listening / speaking |
235
+ | Interruption | User can interrupt AI mid-speech |
236
+ | Transcript | Optional visible text |
237
+ | Modes | "push to talk" or "open conversation" |
238
+
239
+ Voice mode latency target: < 1 second to first audio for natural feel. Hard to achieve with full LLM round-trip + TTS.
240
+
241
+ ## Mobile vs desktop
242
+
243
+ | Surface | Differences |
244
+ | --- | --- |
245
+ | Mobile | Vertical stack; full-screen chat; voice prominent |
246
+ | Desktop | Sidebar + main; multi-column; keyboard shortcuts |
247
+ | Tablet | Either; usually closer to desktop |
248
+
249
+ For developer tools (Cursor, Claude Code): heavy keyboard shortcuts, side-by-side code + chat, multi-window.
250
+
251
+ ## Memory / personalization
252
+
253
+ Modern AI tools have "memory":
254
+ - **Persistent memory** — model remembers facts across sessions.
255
+ - **Custom instructions** — user-defined preferences applied to all chats.
256
+ - **Project / Workspace** — scoped memory + files for related work.
257
+
258
+ UX:
259
+ - **Memory indicator** — visible when memory used / created.
260
+ - **Edit / delete memory** — user can manage.
261
+ - **Per-project scope** — separate from general memory.
262
+
263
+ ## Keyboard shortcuts (desktop)
264
+
265
+ | Shortcut | Action |
266
+ | --- | --- |
267
+ | Cmd/Ctrl + Enter | Send |
268
+ | Shift + Enter | Newline |
269
+ | Cmd/Ctrl + K | New chat |
270
+ | Cmd/Ctrl + L | Focus input |
271
+ | Cmd/Ctrl + Shift + O | New chat |
272
+ | Cmd/Ctrl + / | Show shortcuts |
273
+ | Esc | Close current modal / cancel generation |
274
+ | Up arrow | Edit last message |
275
+
276
+ For developer tools: more shortcuts (Vim-style, multi-cursor).
277
+
278
+ ## Korean AI chat
279
+
280
+ Korean LLM products (2024+):
281
+ - **HyperCLOVA X** (Naver) — Korean-strong LLM.
282
+ - **Bixby Text Call** (Samsung) — AI text generation in messaging.
283
+ - **A.X / Kakao i** (Kakao) — Korean assistant.
284
+ - **GPT / Claude / Gemini** Korean support — adequate to strong.
285
+
286
+ For Korean AI chat UI:
287
+ - Korean primary; English code / technical content OK.
288
+ - 해요체 default tone (friendly).
289
+ - Pretendard / NanumSquare / Apple SD Gothic Neo for body.
290
+ - Korean code-block content rendered correctly (Pretendard JetBrains Mono / Monaspace Argon).
291
+
292
+ ## Common AI chat mistakes
293
+
294
+ - **No streaming** — feels broken at 5+ second responses.
295
+ - **Hidden controls** — regenerate / stop in submenu.
296
+ - **Truncated responses without "continue"** — frustrating.
297
+ - **No copy button** — users can't copy code / responses.
298
+ - **Markdown not rendered** — raw asterisks / brackets visible.
299
+ - **No history search** — users can't find past chat.
300
+ - **No disclaimer** — users trust AI as authoritative.
301
+ - **No way to start fresh** — context grows indefinitely.
302
+ - **No model identification** — users don't know what they're using.
303
+
304
+ ## Don't
305
+
306
+ - Don't ship without streaming.
307
+ - Don't hide stop / regenerate / copy.
308
+ - Don't render raw markdown.
309
+ - Don't pretend the AI is infallible. Disclose.
310
+ - Don't truncate without "continue" affordance.
311
+ - Don't lose chat history without warning.
312
+ - Don't make context-management opaque. Show when limits hit.
313
+ - Don't ship without keyboard shortcuts on desktop.
314
+
315
+ ## Cross-reference
316
+
317
+ - [`knowledge/conversational/conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) — fundamentals
318
+ - [`knowledge/conversational/voice-ui-patterns.md`](voice-ui-patterns.md) — voice
319
+ - [`knowledge/conversational/chatbot-design.md`](chatbot-design.md) — traditional bots
320
+ - [`knowledge/conversational/korean-voice-conventions.md`](korean-voice-conventions.md) — KR
321
+ - [`examples/component-chat-interface.md`](../../examples/component-chat-interface.md) — chat UI spec
322
+ - [`examples/component-voice-input.md`](../../examples/component-voice-input.md) — voice input
323
+ - [`knowledge/patterns/technical-writing.md`](../patterns/technical-writing.md) — markdown rendering