@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,277 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: In-product video (onboarding, help, explainers)
4
+ applies_to: [video, in-product, onboarding, help]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # In-product video
11
+
12
+ Video inside the product itself: onboarding tutorials, help videos, feature explainers, embedded demos. Different rules from marketing video — these viewers already chose your product; they want help, not seduction.
13
+
14
+ Read [`video-fundamentals.md`](video-fundamentals.md) first.
15
+
16
+ ## Three categories
17
+
18
+ ### 1. Onboarding video (first-run)
19
+
20
+ Shown to new users during signup or first session.
21
+
22
+ | Spec | Target |
23
+ | --- | --- |
24
+ | Length | 30-90 seconds |
25
+ | Format | 16:9 desktop / 9:16 mobile |
26
+ | Click | Skippable; optional |
27
+ | Audio | Optional (often muted with captions) |
28
+ | Goal | Get user to first value moment |
29
+
30
+ Structure:
31
+ ```
32
+ 0:00-0:05 Welcome (warm; 2-3 word headline)
33
+ 0:05-0:30 What this product does (1-2 sentences max in caption)
34
+ 0:30-0:60 How to do the first thing (specific action)
35
+ 0:60-0:90 What's next (CTA: try it)
36
+ ```
37
+
38
+ Don't over-explain. Onboarding video is supplemental; the actual product walkthrough does the teaching.
39
+
40
+ ### 2. Help video (in-context)
41
+
42
+ Shown when user is stuck or asks for help. Embedded in help articles, settings pages, error states.
43
+
44
+ | Spec | Target |
45
+ | --- | --- |
46
+ | Length | 30-120 seconds (focused on one task) |
47
+ | Format | 16:9 mostly; 9:16 for mobile-only flows |
48
+ | Click | Always playable; controls visible |
49
+ | Audio | Voiceover preferred; captions mandatory |
50
+ | Goal | User completes the task they're stuck on |
51
+
52
+ Structure:
53
+ ```
54
+ 0:00-0:05 What this video shows
55
+ 0:05-end Task steps in order, each with brief voiceover
56
+ 0:end "Try it now" or close
57
+ ```
58
+
59
+ Pace: brisk for power users; deliberate for beginners. Can produce 2 versions.
60
+
61
+ ### 3. Feature explainer / changelog video
62
+
63
+ Promotes a new feature or update. Lives in product changelog, release notes, in-app announcements.
64
+
65
+ | Spec | Target |
66
+ | --- | --- |
67
+ | Length | 15-60 seconds |
68
+ | Format | 16:9 |
69
+ | Click | Click-to-play; auto-play loop variant for hero |
70
+ | Audio | Optional |
71
+ | Goal | User understands new capability + tries it |
72
+
73
+ Structure:
74
+ ```
75
+ 0:00-0:05 What's new (feature name + benefit)
76
+ 0:05-0:30 How it works (short demo)
77
+ 0:30-end CTA (try it, learn more)
78
+ ```
79
+
80
+ ## Production approach
81
+
82
+ ### Screen recording vs filmed
83
+
84
+ Most in-product video is **screen-recorded** (capturing actual UI):
85
+ - **Tools**: Loom, ScreenFlow, OBS, Riverside, CleanShot X.
86
+ - **Pros**: cheap, fast, accurate.
87
+ - **Cons**: Less polished; cursor / UI quirks visible.
88
+
89
+ Some is **filmed** (actor + product on phone / laptop):
90
+ - **Tools**: full production setup.
91
+ - **Pros**: more emotional, brand-feeling.
92
+ - **Cons**: expensive, dates fast (UI changes → reshoot).
93
+
94
+ **Hybrid**: filmed cutaways + screen-recorded core. Best of both.
95
+
96
+ ### Screen recording tips
97
+
98
+ - **Resolution**: record at 2× display resolution; deliver at 1×.
99
+ - **Cursor**: highlight (yellow circle, color trail) — visible at small sizes.
100
+ - **Click feedback**: animate cursor click (Loom does this automatically).
101
+ - **Zoom on detail**: zoom into the relevant UI region; don't show whole screen at small video size.
102
+ - **Hide irrelevant UI**: minimize taskbar, hide dock, clean desktop.
103
+ - **Realistic data**: use representative names, not "Test User #1".
104
+ - **Korean data**: use Korean names / addresses for KR audiences (don't show "John Doe" in a Korean app).
105
+
106
+ ### Voiceover for in-product video
107
+
108
+ - **Korean primary** for KR audience.
109
+ - **Pace**: slightly slower than marketing — viewers are following along.
110
+ - **Tone**: helpful, neutral; not salesy.
111
+ - **Female / male voice**: pick one and consistent across the product video library.
112
+
113
+ For AI voice: ElevenLabs / 클로바보이스 produce decent Korean output. Always review for pronunciation of brand / product names.
114
+
115
+ ### No-voice variant
116
+
117
+ Some in-product video has no voice — just visual + on-screen text.
118
+
119
+ | Pros | Cons |
120
+ | --- | --- |
121
+ | Faster production (no recording) | Limited information density |
122
+ | Localizable easily (text only) | Can feel sterile |
123
+ | Plays in muted contexts | Requires clear visual direction |
124
+
125
+ For multi-region products: text-only might be better than recording 5 language voiceovers.
126
+
127
+ ## Embedded video player UX
128
+
129
+ When video is embedded in product UI:
130
+
131
+ ```
132
+ ┌──────────────────────────────────────┐
133
+ │ [Video thumbnail or first frame] │
134
+ │ │
135
+ │ ▶ Play │
136
+ │ │
137
+ │ Duration: 0:45 [CC] [Speed] │
138
+ └──────────────────────────────────────┘
139
+ ```
140
+
141
+ Controls users expect:
142
+ - **Play / pause**.
143
+ - **Progress bar** (seekable).
144
+ - **Volume** (or muted-by-default toggle).
145
+ - **Captions toggle** (default ON for product video).
146
+ - **Speed control** (1x, 1.25x, 1.5x, 2x — power users skim).
147
+ - **Fullscreen**.
148
+ - **Close / dismiss** (if modal-embedded).
149
+
150
+ For minimal UX: at least play/pause + caption toggle.
151
+
152
+ See [`examples/component-video-player.md`](../../examples/component-video-player.md) for spec.
153
+
154
+ ## Lazy-loading video in-product
155
+
156
+ In-product videos shouldn't slow down the app:
157
+
158
+ ```tsx
159
+ // Show poster only; load video on click or on visibility
160
+ <HelpVideoEmbed
161
+ poster="/help-videos/onboarding-poster.jpg"
162
+ src="/help-videos/onboarding.mp4"
163
+ loadOn="click" // or "visible" via IntersectionObserver
164
+ />
165
+ ```
166
+
167
+ For modal-embedded videos: lazy-load when modal opens, not when product mounts.
168
+
169
+ ## Captions for in-product video
170
+
171
+ **Captions mandatory** for any in-product video with speech. Reasons:
172
+
173
+ - Accessibility (deaf / hard-of-hearing users).
174
+ - Sound-off viewing (open offices, public, late night).
175
+ - Non-native speakers (Korean → English content).
176
+ - Indexing (caption text searchable).
177
+
178
+ Default: captions ON for product video. User can toggle off if preferred (remember preference).
179
+
180
+ ## Variable speed for power users
181
+
182
+ Allow 1x, 1.25x, 1.5x, 2x. Power users skim help videos at 1.5-2x. Don't force them to wait.
183
+
184
+ ## Localization
185
+
186
+ For multi-region products:
187
+
188
+ - **English original** + Korean / Japanese / etc. caption tracks.
189
+ - OR **separate videos per language** (different voiceover, captions).
190
+ - OR **no-voice + localized text overlay** (cheapest scaling).
191
+
192
+ Choose based on:
193
+ - Audience size per region.
194
+ - Voice / brand consistency requirements.
195
+ - Budget.
196
+
197
+ ## Korean in-product video
198
+
199
+ - **자막 ON by default**.
200
+ - **Korean voiceover** for KR audience.
201
+ - **Reach pace**: slightly slower than marketing video.
202
+ - **Brand voice**: 해요체 (~해요) for friendly products; 합쇼체 for B2B / financial.
203
+ - **Korean data in screen recordings** (Korean names, KRW currency).
204
+
205
+ For Korean fintech in-product video: 해요체, female voice (Toss-style), captioned, brand-color CTA at end.
206
+
207
+ ## Updating videos when product changes
208
+
209
+ In-product videos date fast. UI changes → video shows old UI → confused user.
210
+
211
+ Strategies:
212
+ - **Stylized animation** (After Effects mockup) instead of screen recording — doesn't date with UI changes.
213
+ - **Periodic refresh schedule** (every 6 months: review + reshoot).
214
+ - **Versioned URLs** so old videos can be archived without breaking links.
215
+ - **Track which UI flows are video-documented** so you know what to update.
216
+
217
+ For SaaS with rapid UI iteration: animation-based explainer videos > screen recordings.
218
+
219
+ ## Performance considerations
220
+
221
+ - **Compress aggressively** — in-product video doesn't need 4K.
222
+ - **Provide poster** — first paint shows poster, video loads behind.
223
+ - **HLS / adaptive bitrate** for longer videos (5+ minutes) — players adjust quality based on connection.
224
+ - **CDN delivery** — Cloudflare, Fastly, AWS CloudFront, or platform native (YouTube embed for some cases).
225
+
226
+ ## Accessibility
227
+
228
+ - **Captions**: required.
229
+ - **Transcripts**: post the full transcript for help articles (text-searchable, screen-reader-friendly).
230
+ - **Audio descriptions**: for video where critical info is visual-only.
231
+ - **Don't auto-play with sound**: users with sensitive ears, in shared spaces, abandon.
232
+ - **Keyboard controls**: spacebar to play/pause; M to mute; arrows to seek.
233
+ - **Pause control**: for any auto-play.
234
+
235
+ ## Common in-product video mistakes
236
+
237
+ - **Too long** — users skip.
238
+ - **Outdated UI** in screen recording — confused users.
239
+ - **No captions** — accessibility fail + 80% miss the message.
240
+ - **Auto-play with sound** — disorienting; abandoned.
241
+ - **Video where text would do** — reading is faster for many tasks.
242
+ - **Salesy tone** — these are existing users, not prospects.
243
+ - **Generic stock footage** — feels off-brand for a help video.
244
+
245
+ ## When NOT to use video
246
+
247
+ | Situation | Better alternative |
248
+ | --- | --- |
249
+ | Linear text task ("how to delete") | Text + screenshot |
250
+ | Search / scan-friendly content | Text article (skimmable) |
251
+ | Multi-step process where users go at their own pace | Annotated screenshots |
252
+ | Reference (looked up later) | Text + animated GIF |
253
+ | Common error explanation | Inline help in UI |
254
+
255
+ Use video when:
256
+ - Spatial / motion is hard to describe in text (drag-and-drop, gesture).
257
+ - Emotional moment (welcome, celebration).
258
+ - Walkthrough where seeing > reading.
259
+
260
+ ## Don't
261
+
262
+ - Don't ship a 5-minute onboarding video. Cut to 60 seconds.
263
+ - Don't skip captions. Mandatory.
264
+ - Don't auto-play with sound.
265
+ - Don't show outdated UI in screen recording. Update when product updates.
266
+ - Don't use video for everything. Text + screenshots are often better.
267
+ - Don't put video in time-critical flows (checkout, payment) — slows users.
268
+ - Don't lock features behind "watch the video first" — let users skip.
269
+
270
+ ## Cross-reference
271
+
272
+ - [`knowledge/video/video-fundamentals.md`](video-fundamentals.md) — encoding, captions
273
+ - [`knowledge/video/marketing-video.md`](marketing-video.md) — marketing-side
274
+ - [`knowledge/video/social-and-short-form.md`](social-and-short-form.md) — short-form
275
+ - [`knowledge/video/korean-video-conventions.md`](korean-video-conventions.md) — KR
276
+ - [`knowledge/patterns/technical-writing.md`](../patterns/technical-writing.md) — when text is better
277
+ - [`examples/component-video-player.md`](../../examples/component-video-player.md) — player component
@@ -0,0 +1,247 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Korean video conventions (KR market, broadcast standards, ad disclosure)
4
+ applies_to: [video, korean, kr-market, broadcast, advertising]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Korean video conventions
11
+
12
+ Korean video has specific market conventions, regulatory requirements (broadcast standards 방송통신심의위원회, ad disclosure 표시광고법), and platform usage patterns that differ from Western markets.
13
+
14
+ This file covers what's specific to Korean video. Read [`video-fundamentals.md`](video-fundamentals.md) first.
15
+
16
+ ## Korean platforms
17
+
18
+ | Platform | Use | Notes |
19
+ | --- | --- | --- |
20
+ | **YouTube / YouTube Shorts** | Dominant for video | Korea's #1 video platform |
21
+ | **Naver TV / Naver Now** | News, entertainment | Korea-only |
22
+ | **Kakao TV** | Entertainment, drama | Kakao ecosystem |
23
+ | **Instagram (Reels + Stories)** | Lifestyle, beauty, fashion | Strong Korean usage |
24
+ | **TikTok** | Growing; Gen Z + Millennial | Strong but YouTube Shorts competing |
25
+ | **Wavve, TVING, Coupang Play, Disney+ KR** | OTT subscription | Premium content |
26
+ | **Twitch / AfreecaTV / SOOP** | Live streaming | AfreecaTV / SOOP is Korean-native; Twitch left KR market 2024 |
27
+ | **NaverCafe / Daum Cafe** | Community video | Niche communities |
28
+
29
+ For B2C marketing video: prioritize **YouTube + Instagram Reels + KakaoTalk channel + Naver TV**.
30
+ For B2B: LinkedIn + YouTube.
31
+
32
+ ## Korean subtitle conventions (자막)
33
+
34
+ Korean video almost always has burned-in subtitles (open captions) for:
35
+ - Sound-off viewing.
36
+ - Accessibility.
37
+ - Style — visual energy.
38
+
39
+ ### Subtitle styling
40
+
41
+ | Element | KR convention |
42
+ | --- | --- |
43
+ | **Position** | Bottom 15-20% of frame; sometimes centered for emphasis |
44
+ | **Font** | NanumSquare / Pretendard / SB 어그로체 / 검은고딕 (bold, condensed) |
45
+ | **Color** | White text + thick black outline OR brand color |
46
+ | **Highlight** | Key word in yellow / brand color |
47
+ | **Animation** | Word-by-word reveal common in entertainment |
48
+ | **Size** | 4-6% of video height |
49
+ | **Background** | Often no background (just outline); sometimes semi-opaque box |
50
+
51
+ ### Subtitle vs caption
52
+
53
+ - **자막** = open caption (always visible, burned in).
54
+ - **폐쇄자막 (CC)** = closed caption (toggleable via player).
55
+
56
+ Korean broadcast law (방송통신심의위원회) requires 폐쇄자막 on broadcast TV for accessibility.
57
+ Online video commonly uses 자막 (burned in) for visual impact.
58
+
59
+ ### Common Korean subtitle quirks
60
+
61
+ - **Onomatopoeia visible** — "찰칵" "두근두근" overlaid as text effect (entertainment style).
62
+ - **Reaction text** — narrator-style reactions "헐!" "대박!" superimposed.
63
+ - **Brand-aligned styling** — fintech / luxury uses minimal subtitles; entertainment uses dramatic.
64
+
65
+ ## Voiceover conventions
66
+
67
+ ### Voice style
68
+
69
+ For Korean voiceover:
70
+
71
+ | Style | Use |
72
+ | --- | --- |
73
+ | **Female, gentle, warm** | Toss-style fintech, beauty, wellness |
74
+ | **Female, professional** | B2B, news, education |
75
+ | **Male, low, authoritative** | Premium products, banking, automotive |
76
+ | **Male, friendly** | Casual consumer, food |
77
+ | **Mascot voice (cute / playful)** | Kid products, entertainment |
78
+
79
+ Default for fintech B2C: gentle female voiceover with 해요체 (~해요).
80
+
81
+ ### Honorific level
82
+
83
+ | Level | Use |
84
+ | --- | --- |
85
+ | **합쇼체 (~합니다)** | Formal; banking, B2B, news |
86
+ | **해요체 (~해요)** | Friendly; consumer brands, lifestyle |
87
+ | **해체 (~해)** | Casual; entertainment, peer-to-peer (rare in marketing) |
88
+
89
+ Korean B2C marketing 2024+ trends toward 해요체. Toss / Kakao / Naver use 해요체. Banks (KB, 신한) typically use 합쇼체 in formal communications.
90
+
91
+ ### AI voiceover for Korean
92
+
93
+ Available tools (2024+):
94
+ - **클로바보이스 (Naver Clova)** — strong Korean voices.
95
+ - **ElevenLabs** — multi-lingual including Korean (improving).
96
+ - **Typecast** — Korean-native AI voice.
97
+
98
+ AI voice is increasingly common for product videos / changelogs / short-form. Always review for:
99
+ - Pronunciation of brand names + product names.
100
+ - Pacing of brand-critical lines.
101
+ - Naturalness (should not sound robotic).
102
+
103
+ For high-stakes brand video: use human voiceover.
104
+
105
+ ## Korean video advertising regulations
106
+
107
+ ### 표시광고법 (Display Advertising Law)
108
+
109
+ Korean ad disclosure rules:
110
+
111
+ - **PR 표시 (sponsored content)** — paid content must be disclosed: `#광고`, `#PR`, `#유료광고` clearly visible.
112
+ - **Brand ambassador / collaboration** — disclosure required when influencer is paid.
113
+ - **Health / medical claims** — pre-approved language only.
114
+ - **Financial product ads** — risk disclosure required.
115
+
116
+ For YouTube videos with brand sponsorship:
117
+ - Tag video as "Includes paid promotion" (YouTube's built-in setting).
118
+ - Disclose verbally / on screen at start: "이 영상은 [브랜드]로부터 광고비를 받아 제작됐습니다".
119
+
120
+ For Instagram / TikTok sponsored posts:
121
+ - `#광고`, `#유료광고`, `#PR` in caption (not hidden in #16th hashtag).
122
+
123
+ Failure to disclose can result in 공정거래위원회 (KFTC) fines.
124
+
125
+ ### 방송통신심의위원회 (Broadcast review)
126
+
127
+ For broadcast / cable TV (less relevant for online-only video, but applicable for cross-platform):
128
+
129
+ - Profanity, violence, sexual content reviewed.
130
+ - Children's programming: stricter ad rules.
131
+ - Health / cosmetic / medical claims: pre-approved language.
132
+ - Tobacco / alcohol restrictions on TV ads (vary by time slot).
133
+
134
+ ### KFDA / 식품의약품안전처 for product videos
135
+
136
+ Health / beauty / supplement videos:
137
+ - Claims must align with KFDA-approved language for the product type.
138
+ - "치료" (treats), "효과" (efficacy) carefully regulated.
139
+ - Before-after photos / videos: regulated for cosmetics + medical.
140
+
141
+ ## Korean video pacing
142
+
143
+ Korean entertainment / commercial video tends toward **faster pacing** than Western:
144
+
145
+ - Cuts every 1.5-3 seconds (Western: 2-5 seconds).
146
+ - More text overlays per second.
147
+ - More reaction shots / inserts.
148
+ - Music + sound effects more prominent.
149
+
150
+ For B2C: lean Korean-paced (faster). For B2B / formal: Western-paced is fine.
151
+
152
+ ## Korean color and style conventions
153
+
154
+ | Genre | Color grade |
155
+ | --- | --- |
156
+ | **K-drama / cinematic** | Soft, warm, often slightly desaturated; signature "K-drama look" |
157
+ | **K-pop MV** | High saturation, bold colors |
158
+ | **Beauty / lifestyle** | Bright, soft, slightly pink/peach |
159
+ | **Fintech / B2B** | Brand-color anchored; clean grade |
160
+ | **Food / cooking** | Saturated; warm; food-pop |
161
+
162
+ For Korean fintech video: keep close to brand palette; avoid heavy filters.
163
+
164
+ ## Korean live streaming
165
+
166
+ ### AfreecaTV / SOOP
167
+
168
+ Korean-native live streaming platform. BJ (Broadcasting Jockey) culture, donations (별풍선), gaming + chat-heavy.
169
+
170
+ For brand campaigns: collaboration with established BJs reaches engaged audiences.
171
+
172
+ ### Twitch — left Korea
173
+
174
+ Twitch shut down Korean operations in 2024. Korean streamers migrated to Chzzk (Naver) and SOOP.
175
+
176
+ ### Live streaming format
177
+
178
+ - **16:9 OR 9:16** depending on platform.
179
+ - **1080p 30/60fps**.
180
+ - **Adaptive bitrate** (HLS) for diverse viewers.
181
+ - **Chat overlay** integral to Korean streaming culture.
182
+ - **Donation / Super Chat** notifications visible during stream.
183
+
184
+ ## Korean video content trends (2024+)
185
+
186
+ - **숏폼 (short-form) dominance** — Reels + Shorts everywhere.
187
+ - **AI-generated content** — AI voiceover, AI thumbnails, AI editing increasingly common.
188
+ - **Vertical-first production** — even traditional creators shooting vertical primary.
189
+ - **자막 + 음성** — both subtitle and voiceover (sound-on viewers + sound-off).
190
+ - **하이라이트 편집** — long live streams cut into short highlight clips for VOD.
191
+ - **Branded content** — direct brand integration (not just product placement).
192
+
193
+ ## Production budget reference (Korean, 2024-2025)
194
+
195
+ | Job | KRW |
196
+ | --- | --- |
197
+ | Phone shoot + Capcut edit (DIY) | 0-300,000 |
198
+ | Indie videographer (1 day shoot + 2 day edit) | 1,500,000-3,500,000 |
199
+ | Production agency (full B2B brand film) | 10,000,000-50,000,000 |
200
+ | TVCM-quality 30s spot | 50,000,000-200,000,000+ |
201
+ | YouTube / Reels short-form (per video, agency) | 1,000,000-5,000,000 |
202
+ | K-pop MV-quality video | 100,000,000-500,000,000+ |
203
+
204
+ Rates vary widely; get 2-3 quotes. Korean creative production agencies cluster in 강남 / 합정 / 성수 districts.
205
+
206
+ ## Korean platform algorithm notes
207
+
208
+ | Platform | Algorithm signals |
209
+ | --- | --- |
210
+ | **YouTube** | Watch time, click-through rate, session start, language preferences |
211
+ | **YouTube Shorts** | View-through rate, swipe-away rate, replays |
212
+ | **Instagram Reels** | Engagement velocity, completion rate, shares |
213
+ | **TikTok** | View-through, share, comment quality |
214
+ | **Naver TV** | Naver search integration, Naver login engagement |
215
+ | **Kakao TV** | KakaoTalk share velocity |
216
+
217
+ For Korean reach: YouTube Shorts + Instagram Reels combined cover most B2C audience.
218
+
219
+ ## Distribution strategy for Korean B2C video
220
+
221
+ 1. **Master long-form** — produce 60-90s brand video.
222
+ 2. **Cut for platforms** — 9:16 vertical for Reels/Shorts/TikTok; 1:1 for IG feed; 16:9 for YouTube.
223
+ 3. **Localize** — Korean primary; English subtitles for export potential.
224
+ 4. **Stagger release** — YouTube first (long-form), then Reels/Shorts within 3-7 days.
225
+ 5. **Boost paid** — IG paid promotion for branded campaigns; YouTube ads for awareness.
226
+ 6. **Track + iterate** — weekly review of view-through, engagement; double down on what works.
227
+
228
+ ## Don't
229
+
230
+ - Don't skip ad disclosure on sponsored content. KFTC fines are real.
231
+ - Don't use unlicensed K-pop tracks. Strikes + legal exposure.
232
+ - Don't translate Western video voiceover word-for-word. Adapt to KR phrasing.
233
+ - Don't use only English subtitles for KR audience. Korean subtitles primary.
234
+ - Don't shoot landscape for 9:16 distribution. Shoot vertical or 4K with safe-zone planning.
235
+ - Don't ignore the algorithm signals — KR YouTube / Reels reward different things than US.
236
+ - Don't use 합쇼체 for casual brands or 해요체 for premium banks. Match register to brand.
237
+ - Don't auto-translate Korean voiceover to English — get a native Korean speaker review.
238
+
239
+ ## Cross-reference
240
+
241
+ - [`knowledge/video/video-fundamentals.md`](video-fundamentals.md) — encoding, captions
242
+ - [`knowledge/video/marketing-video.md`](marketing-video.md) — marketing video strategy
243
+ - [`knowledge/video/social-and-short-form.md`](social-and-short-form.md) — Reels / Shorts / TikTok
244
+ - [`knowledge/video/in-product-video.md`](in-product-video.md) — onboarding / help
245
+ - [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md) — honorific level
246
+ - [`knowledge/i18n/korean-typography.md`](../i18n/korean-typography.md) — Hangul typography (subtitle fonts)
247
+ - [`knowledge/patterns/email-design.md`](../patterns/email-design.md) — KR ad disclosure rules