@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,262 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Stationery (business cards, letterhead, envelopes)
4
+ applies_to: [print, stationery, business-card, brand]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Stationery
11
+
12
+ Business cards, letterhead, envelopes — the most-touched physical brand surface. Read [`print-fundamentals.md`](print-fundamentals.md) first for CMYK / bleed / paper.
13
+
14
+ ## Business cards
15
+
16
+ The smallest, most-touched, most-defining piece of brand stationery. People judge a brand from a card in 5 seconds.
17
+
18
+ ### Sizes
19
+
20
+ | Region | Size (mm) | Notes |
21
+ | --- | --- | --- |
22
+ | Korean 명함 | **90 × 50** | Standard. Slightly larger than international. |
23
+ | International | 85 × 55 | Most Western markets |
24
+ | US | 88.9 × 50.8 (3.5" × 2") | Slight variant |
25
+ | Japan | 91 × 55 | Slightly different again |
26
+ | Square | 65 × 65 | Boutique / creative |
27
+ | Mini | 70 × 28 | Designer / unconventional |
28
+
29
+ If your brand is Korean primary: **use 90 × 50mm**. Western cards in Korean wallets stick out (literal physical inconvenience).
30
+
31
+ ### Anatomy
32
+
33
+ ```
34
+ ┌──────────────────────────────────┐
35
+ │ │
36
+ │ [Logo] │
37
+ │ │
38
+ │ Name 이름 (large) │
39
+ │ Title 직책 (medium) │
40
+ │ │
41
+ │ Company 회사 (small) │
42
+ │ ─────────── │
43
+ │ Phone 전화 │
44
+ │ Email 이메일 │
45
+ │ Address 주소 │
46
+ │ │
47
+ └──────────────────────────────────┘
48
+ ```
49
+
50
+ Front: identity (logo, name, title).
51
+ Back: contact info OR pure brand (just the logo big).
52
+
53
+ ### Information hierarchy
54
+
55
+ Critical: **name + title + one contact method**. Everything else is secondary.
56
+
57
+ A card with too much info is a card people don't read:
58
+ - ✗ Phone, mobile, fax, email, web, two addresses, social handles, QR code
59
+ - ✓ Name, title, mobile, email
60
+
61
+ For Korean B2B: company name + position + mobile + email is the minimum. 회사 주소 if office-based.
62
+
63
+ ### Bilingual cards (Korean + English)
64
+
65
+ Korean B2B cards are often bilingual:
66
+
67
+ ```
68
+ Front (Korean): Back (English):
69
+ ───────────── ─────────────
70
+ 김철수 Cheolsu Kim
71
+ 대표 / 디자이너 CEO / Designer
72
+
73
+ 회사명 Company name
74
+ 010-1234-5678 010-1234-5678
75
+ chulsu@company.com chulsu@company.com
76
+ 서울 강남구 ... Seoul, Gangnam-gu, ...
77
+ ```
78
+
79
+ Or both languages on the same side (compact):
80
+
81
+ ```
82
+ 김철수 / Cheolsu Kim
83
+ 대표 / CEO
84
+
85
+ 010-1234-5678 | chulsu@company.com
86
+ ```
87
+
88
+ For Korean → international audiences: bilingual is expected.
89
+ For Korean-only domestic: Korean only is fine, more space for hierarchy.
90
+ For international primary: English only OK.
91
+
92
+ ### Typography on business cards
93
+
94
+ - **Name**: 10-14pt (small enough to fit, large enough to read).
95
+ - **Title**: 8-10pt.
96
+ - **Contact**: 7-9pt.
97
+
98
+ Don't go below 6pt. Don't go above 16pt for name (looks shouty).
99
+
100
+ For Korean: Pretendard, Spoqa Han Sans Neo, AppleSDGothicNeo, NanumSquare are common. Pretendard is the default modern choice.
101
+
102
+ For mixed Korean + English: pick a font that has both (Pretendard, Noto Sans CJK KR work well).
103
+
104
+ ### Paper
105
+
106
+ Korean business card defaults:
107
+ - **250-300gsm matte coated** — most common, mid-tier quality.
108
+ - **300-350gsm uncoated** — environmental / artisanal feel.
109
+ - **350-400gsm + soft-touch lamination** — premium, soft tactile.
110
+ - **350gsm + foil stamp logo** — luxury, brand-critical.
111
+
112
+ Avoid:
113
+ - Thin 200gsm or below — feels cheap, bends in wallet.
114
+ - Glossy / shiny finish for B2B — reads as low-end mass-market.
115
+
116
+ ### Finishes (premium)
117
+
118
+ | Finish | Effect | Cost premium |
119
+ | --- | --- | --- |
120
+ | **Spot UV on logo** (matte stock + glossy logo only) | Tactile contrast | +15-30% |
121
+ | **Foil stamp** (gold / silver / copper / holographic) | Metallic shine | +30-100% |
122
+ | **Letterpress / 활판** | Antique-feel impression | +50-100% |
123
+ | **Emboss / 양각** (raised) | 3D logo | +30-60% |
124
+ | **Edge color** (painted edges) | Slim color line on edge | +20-40% |
125
+ | **Die-cut shape** (rounded corners, custom shape) | Differentiated silhouette | +20-50% |
126
+ | **Soft-touch lamination** | Velvety feel | +20-40% |
127
+
128
+ Korean premium business cards often use 1-2 of these. Going above 2 reads as overdone.
129
+
130
+ ### Common card mistakes
131
+
132
+ - **Type too small** to read at arm's length.
133
+ - **Margins too tight** — text bleeds to the edge, looks cramped.
134
+ - **Trim cut crops critical info** — content not in safe area.
135
+ - **QR codes too small** to scan reliably (minimum 1cm × 1cm).
136
+ - **CMYK conversion too late** — bright RGB color → dull on press.
137
+ - **Contrast too low** — pale gray text on white doesn't read.
138
+ - **Two-sided design ignoring orientation** — front portrait, back landscape, doesn't flip naturally.
139
+
140
+ ## Letterhead
141
+
142
+ The branded letter format. Less common in 2024+ (most letters are PDF / email), but still required for:
143
+ - Legal correspondence.
144
+ - Formal business letters.
145
+ - Invoices on company letterhead.
146
+ - Certificates / awards.
147
+
148
+ ### Anatomy
149
+
150
+ ```
151
+ ┌─────────────────────────────────┐
152
+ │ [Logo top-left] [Date right] │ ← header
153
+ │ │
154
+ │ Recipient name │
155
+ │ Recipient address │
156
+ │ │
157
+ │ Re: Subject │
158
+ │ │
159
+ │ Dear ___, │
160
+ │ │
161
+ │ [Letter body — 1.5 line spacing]│
162
+ │ ... │
163
+ │ │
164
+ │ Sincerely, │
165
+ │ [Signature space] │
166
+ │ Sender name │
167
+ │ │
168
+ │ ───────────────────────── │ ← footer
169
+ │ Company name | Address │
170
+ │ Phone | Email | Website │
171
+ └─────────────────────────────────┘
172
+ ```
173
+
174
+ ### Margins
175
+
176
+ | Margin | Top | Bottom | Left | Right |
177
+ | --- | --- | --- | --- | --- |
178
+ | Korean | 25-30mm | 25-30mm | 25-30mm | 25-30mm |
179
+ | Western | 1" / 25mm | 1" | 1.25" | 1" |
180
+
181
+ Equal margins look balanced. The recipient address is usually 2-3 lines below the header.
182
+
183
+ ### Typography
184
+
185
+ - **Body**: 11-12pt, 1.5 line spacing.
186
+ - **Korean**: Pretendard / Spoqa Han Sans Neo at 11pt is comfortable.
187
+ - **English**: Garamond, Times, Georgia, Inter at 11pt.
188
+
189
+ Single column. Margins control line length (45-75 char per line ideal).
190
+
191
+ ### Color
192
+
193
+ - Letterhead is usually 1-color or 2-color (black + brand color).
194
+ - 4-color CMYK letterhead is unusual — most letters print on personal printers (color = expensive).
195
+ - Logo can be brand color; body text always black (best printer compatibility).
196
+
197
+ ## Envelopes
198
+
199
+ | Korean envelope | Size (mm) | Use |
200
+ | --- | --- | --- |
201
+ | **DL** | 220 × 110 | Business letters, fits A4 folded in thirds |
202
+ | **C5** | 229 × 162 | Half A4 |
203
+ | **C4** | 324 × 229 | Full A4 unfolded (legal documents) |
204
+ | **A6 / 카드 봉투** | 110 × 155 | Greeting cards, invitations |
205
+
206
+ ### Layout
207
+
208
+ ```
209
+ ┌────────────────────────────────────┐
210
+ │ [Logo] │ ← top-left, small
211
+ │ │
212
+ │ │
213
+ │ Recipient name │ ← center or right
214
+ │ Address line 1 │
215
+ │ Address line 2 │
216
+ │ City, Postcode │
217
+ │ │
218
+ │ Sender info ───── │ ← bottom-left, small
219
+ │ Sender name │
220
+ │ Address │
221
+ └────────────────────────────────────┘
222
+ ```
223
+
224
+ For Korean post: postcode (우편번호) goes in a designated box; the format depends on KEPCO standards.
225
+
226
+ For modern envelopes: window envelopes (with cut-out window showing address from the inserted letter) are more efficient — the same letter address shows through. Match the window position to the letter's address block.
227
+
228
+ ## Stationery as a system
229
+
230
+ Stationery should feel like a coordinated set:
231
+ - **Same logo** across all pieces.
232
+ - **Same brand colors** (CMYK + Pantone matching).
233
+ - **Same paper** (or coordinated paper system: 350gsm card + 100gsm letterhead in same color).
234
+ - **Same typography**.
235
+ - **Same hierarchy** (logo always top-left, address always bottom).
236
+
237
+ Don't have a fancy gold-foil business card and a Word-template letterhead. Inconsistent = unprofessional.
238
+
239
+ ## Production tips
240
+
241
+ - **Order business cards in 100s minimum** — single-card price is high.
242
+ - **Order letterhead in 250-500 minimum** — printers' minimum.
243
+ - **Order envelopes in 500 minimum** — usually MOQ.
244
+ - **Reorder triggers**: business cards every 6-12 months (text changes), letterhead every 12-24 months.
245
+ - **Test before bulk run**: order 1-10 sample cards first ($20-50), proof color + finish, then scale.
246
+
247
+ ## Don't
248
+
249
+ - Don't put 5 contact methods on a business card. Pick 1-2 critical.
250
+ - Don't use multiple fonts in stationery — pick 1-2 max.
251
+ - Don't print Korean cards in international 85×55 size — odd in wallets.
252
+ - Don't ship cards with low contrast. Card readers (people in dim restaurants) need legible text.
253
+ - Don't change the layout halfway through a stationery order ("just change my card; letterhead stays old").
254
+ - Don't print stationery before brand identity is locked. Reprints = full cost.
255
+
256
+ ## Cross-reference
257
+
258
+ - [`knowledge/print/print-fundamentals.md`](print-fundamentals.md) — CMYK, bleed, DPI
259
+ - [`knowledge/print/korean-print-conventions.md`](korean-print-conventions.md) — KR specifics
260
+ - [`knowledge/patterns/brand-identity.md`](../patterns/brand-identity.md) — logo + brand
261
+ - [`knowledge/typography/font-pairings.md`](../typography/font-pairings.md) — Pretendard + English pairings
262
+ - [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md) — Korean honorific level on formal letters
@@ -0,0 +1,253 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: AR patterns (mobile AR, headset MR, world-anchored UI)
4
+ applies_to: [ar, mixed-reality, augmented-reality, arkit, arcore, hololens]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # AR patterns
11
+
12
+ Augmented Reality and Mixed Reality. The user's real environment is enhanced with virtual content. Mobile AR (ARKit on iOS, ARCore on Android), headset MR (Vision Pro passthrough, Quest passthrough, HoloLens).
13
+
14
+ Read [`spatial-design-fundamentals.md`](spatial-design-fundamentals.md) first.
15
+
16
+ ## AR vs VR — design differences
17
+
18
+ | | VR | AR |
19
+ | --- | --- | --- |
20
+ | Background | Fully virtual | Real environment |
21
+ | Lighting | Controlled | Variable (sun, lamps, dim) |
22
+ | Surfaces | Designed | User's room (random) |
23
+ | Movement | Locomotion-aware | Real walking |
24
+ | Privacy | Closed | Public (shared cameras) |
25
+ | Battery | Tethered or VR-class | Mobile / headset shared |
26
+
27
+ AR designs **survive variable conditions**. White text on an off-white wall? Unreadable. Plan for any background.
28
+
29
+ ## Three AR contexts
30
+
31
+ ### 1. Mobile handheld AR
32
+
33
+ iPhone / Android holding the device up:
34
+ - **Phone screen as window** to AR world.
35
+ - **One hand for device, one for interaction**.
36
+ - **Limited session length** (arm fatigue at 30s+).
37
+ - **Looking at phone, not real world** (different from VR / headset).
38
+
39
+ Examples: Pokemon GO, Snap filters, IKEA Place, Google Lens AR translate.
40
+
41
+ Design:
42
+ - Treat as a moving viewport.
43
+ - Critical UI on screen (not in world).
44
+ - Short interaction sessions.
45
+ - Small visual angles (limited screen).
46
+
47
+ ### 2. AR glasses / headset (HoloLens, Vision Pro passthrough, Magic Leap)
48
+
49
+ Wearable; hands free:
50
+ - **Both hands free**.
51
+ - **Full FOV** (varies by device).
52
+ - **Real environment visible** through display.
53
+ - **Long sessions possible**.
54
+
55
+ Examples: HoloLens medical training, Vision Pro productivity (passthrough mode), industrial AR.
56
+
57
+ Design:
58
+ - World-anchored UI works.
59
+ - Hand interactions natural.
60
+ - Real-world context informs UI.
61
+
62
+ ### 3. World-anchored AR (object recognition / mapping)
63
+
64
+ Virtual content anchored to real things:
65
+ - **Marker-based** (QR code, image triggers content).
66
+ - **Plane-detection** (place virtual furniture on detected floor).
67
+ - **Object recognition** (recognize a product, show overlay).
68
+ - **Persistent anchors** (content stays where user placed it across sessions).
69
+
70
+ Examples: IKEA Place (place furniture), Hyundai AR car configurator, museum AR exhibits.
71
+
72
+ ## Visibility against real backgrounds
73
+
74
+ The hardest AR design problem.
75
+
76
+ ### Strategies
77
+
78
+ | Strategy | When |
79
+ | --- | --- |
80
+ | **Solid background panel** | Default — opaque or semi-opaque rectangle behind UI |
81
+ | **Drop shadow / outline** | Floating text / icons; visible on most backgrounds |
82
+ | **High-contrast colors** | Bright UI, dark text — forces visibility |
83
+ | **Animated highlight** | Pulsing brings attention even on busy backgrounds |
84
+ | **Semi-transparent backdrop** | Blur the real world behind UI panel |
85
+
86
+ For mobile AR (iPhone): use semi-opaque dark panels; readable on any background.
87
+
88
+ For headset MR (HoloLens, Vision Pro): plan for variable lighting; user can't dim their room.
89
+
90
+ ## Spatial mapping and surface detection
91
+
92
+ ARKit / ARCore detect:
93
+ - **Horizontal planes** (floors, tables).
94
+ - **Vertical planes** (walls).
95
+ - **Mesh** (Vision Pro, HoloLens — full room mesh).
96
+
97
+ UI rules:
98
+ - **Place furniture on horizontal planes**, anchored to floor.
99
+ - **Hang artwork on vertical planes**, anchored to walls.
100
+ - **Snap to surfaces** for natural feel.
101
+ - **Show detection state** to user ("Move phone to detect surfaces", indicator showing detected plane).
102
+
103
+ ## Anchoring strategies
104
+
105
+ ### World-locked
106
+
107
+ Content stays where placed in the world. User moves around it.
108
+
109
+ - **Stable anchor** required (some surfaces drift over time).
110
+ - **Re-localization** when user returns to same space (cloud anchors).
111
+
112
+ ### Image-locked
113
+
114
+ Content tied to a recognized image / marker:
115
+ - **Print marker** triggers content (museum signs, posters).
116
+ - **QR code** for entry point.
117
+ - **Object recognition** — Coca-Cola can recognized → branded experience plays.
118
+
119
+ ### Body-locked / wrist
120
+
121
+ UI on body parts (Vision Pro Home View on wrist).
122
+
123
+ ### Screen-locked (mobile AR)
124
+
125
+ UI overlaid on phone screen, not in 3D world. For:
126
+ - App controls (close, share).
127
+ - Persistent indicators.
128
+ - Status info.
129
+
130
+ Don't put everything in world — some 2D UI on the phone screen is better.
131
+
132
+ ## Onboarding AR
133
+
134
+ First-run experience:
135
+
136
+ ```
137
+ Step 1: "Hold phone up and move slowly"
138
+ → User scans environment
139
+ → System detects surfaces
140
+ → Visual feedback: dots / mesh on detected planes
141
+
142
+ Step 2: "Tap to place"
143
+ → Reticle appears on detected surface
144
+ → User taps; content appears
145
+
146
+ Step 3: "Walk around to see"
147
+ → User moves; content stays anchored
148
+ ```
149
+
150
+ Rules:
151
+ - **Visual instructions** at each step (animated).
152
+ - **No long text walls** — show, don't tell.
153
+ - **Skip option** for repeat users.
154
+ - **Restart** if AR session fails (lost tracking).
155
+
156
+ ## Common AR interactions
157
+
158
+ | Interaction | How |
159
+ | --- | --- |
160
+ | **Place object** | Tap-on-screen at detected surface |
161
+ | **Move object** | Drag (mobile) / pinch + move (headset) |
162
+ | **Rotate** | Two-finger twist (mobile) / hand gesture (headset) |
163
+ | **Scale** | Pinch (mobile) / two-hand spread (headset) |
164
+ | **Activate** | Tap (mobile) / pinch (headset) |
165
+ | **Delete** | Drag off-screen / dedicated button |
166
+
167
+ Provide visual feedback for each interaction.
168
+
169
+ ## Permission and privacy
170
+
171
+ AR requires camera access. Permission flow:
172
+
173
+ ```
174
+ "To use AR, [App] needs camera access"
175
+ [Allow] [Don't allow]
176
+ ```
177
+
178
+ Once granted: explain what happens with camera data:
179
+ - Local processing only? Or cloud?
180
+ - Storage? Sharing?
181
+ - Right to delete?
182
+
183
+ For privacy-sensitive AR (face filters, body capture):
184
+ - Local processing whenever possible.
185
+ - Disclose if cloud upload.
186
+ - Comply with regional privacy laws (GDPR, 개인정보보호법).
187
+
188
+ ## Tracking failure handling
189
+
190
+ AR tracking can lose:
191
+ - **Low light** — can't see features.
192
+ - **Featureless surfaces** — blank wall.
193
+ - **Rapid motion** — blur.
194
+ - **Reflective surfaces** — glass, mirrors.
195
+
196
+ UX:
197
+ - **Visible tracking quality indicator**.
198
+ - **Recovery prompt**: "Move slowly... point camera at textured surface".
199
+ - **Pause AR** when tracking lost; resume when recovered.
200
+ - **Fallback to 2D mode** if persistent failure.
201
+
202
+ ## Korean AR market
203
+
204
+ Limited but growing:
205
+ - **Naver Z (Zepeto)** — virtual avatars + AR features.
206
+ - **Snapchat / Instagram filters** — large user base.
207
+ - **Pokemon GO** — sustained popularity.
208
+ - **Retail AR** — Shinsegae, Hyundai car configurators.
209
+ - **Tourism / museum AR** — government-sponsored.
210
+
211
+ For Korean AR product:
212
+ - Korean voice / text overlays.
213
+ - Mobile-first (iPhone + Galaxy primary).
214
+ - Camera permission UX in Korean (개인정보보호법 compliance).
215
+
216
+ ## Mobile AR performance
217
+
218
+ Mobile constraints:
219
+ - **Battery drain** — heavy CPU + GPU + camera.
220
+ - **Heat** — phone gets hot fast.
221
+ - **Limited session length** — 5-15 minutes typical before user puts phone down.
222
+
223
+ Optimize:
224
+ - **Reduce polygon count** — mobile-friendly models.
225
+ - **Bake lighting** instead of real-time.
226
+ - **Lower resolution** for distant objects.
227
+ - **Pause when idle** — turn off camera processing during dialog.
228
+
229
+ ## Headset MR performance
230
+
231
+ Vision Pro / HoloLens / Quest 3 passthrough:
232
+ - **Passthrough rendering cost** — real-time camera feed processing.
233
+ - **Hand tracking compute** — separate from rendering.
234
+ - **Higher polygon budget** than mobile but still finite.
235
+
236
+ ## Don't
237
+
238
+ - Don't ignore variable lighting. Test in dark, bright, mixed.
239
+ - Don't put critical UI invisible against common backgrounds (white text on white wall).
240
+ - Don't ignore tracking loss. Always show recovery path.
241
+ - Don't make sessions too long. Mobile AR is 5-15 min comfort limit.
242
+ - Don't request camera without explaining why.
243
+ - Don't ship persistent anchors without re-localization fallback.
244
+ - Don't ignore privacy. Camera data is sensitive.
245
+ - Don't assume horizontal floor exists — some users in standing-only spaces.
246
+
247
+ ## Cross-reference
248
+
249
+ - [`knowledge/spatial/spatial-design-fundamentals.md`](spatial-design-fundamentals.md) — fundamentals
250
+ - [`knowledge/spatial/vr-patterns.md`](vr-patterns.md) — VR
251
+ - [`knowledge/spatial/spatial-ui-elements.md`](spatial-ui-elements.md) — panels, controls
252
+ - [`knowledge/spatial/comfort-and-accessibility.md`](comfort-and-accessibility.md) — comfort + a11y
253
+ - [`knowledge/i18n/korean-payments.md`](../i18n/korean-payments.md) — KR privacy law