@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.
- package/.claude-plugin/plugin.json +164 -0
- package/AGENTS.ko.md +126 -0
- package/AGENTS.md +182 -0
- package/CHANGELOG.md +6883 -0
- package/CLAUDE.md +39 -0
- package/LICENSE +21 -0
- package/README.ko.md +245 -0
- package/README.md +277 -0
- package/agents/README.md +14 -0
- package/agents/a11y-reviewer.md +121 -0
- package/agents/component-architect.md +57 -0
- package/agents/design-critic.md +46 -0
- package/agents/token-extractor.md +63 -0
- package/cli/bin/design-ai-mcp.mjs +6 -0
- package/cli/bin/design-ai.mjs +40 -0
- package/cli/commands/audit.mjs +111 -0
- package/cli/commands/check.mjs +226 -0
- package/cli/commands/doctor.mjs +141 -0
- package/cli/commands/examples.mjs +58 -0
- package/cli/commands/help.mjs +271 -0
- package/cli/commands/install.mjs +161 -0
- package/cli/commands/learn.mjs +1871 -0
- package/cli/commands/list.mjs +143 -0
- package/cli/commands/mcp.mjs +27 -0
- package/cli/commands/pack.mjs +211 -0
- package/cli/commands/prompt.mjs +199 -0
- package/cli/commands/route.mjs +247 -0
- package/cli/commands/search.mjs +60 -0
- package/cli/commands/show.mjs +52 -0
- package/cli/commands/site.mjs +558 -0
- package/cli/commands/status.mjs +161 -0
- package/cli/commands/uninstall.mjs +119 -0
- package/cli/commands/update.mjs +184 -0
- package/cli/commands/version.mjs +94 -0
- package/cli/commands/workspace.mjs +176 -0
- package/cli/lib/brief.mjs +52 -0
- package/cli/lib/check.mjs +642 -0
- package/cli/lib/dispatch.mjs +109 -0
- package/cli/lib/doctor.mjs +505 -0
- package/cli/lib/examples.mjs +258 -0
- package/cli/lib/exec.mjs +63 -0
- package/cli/lib/help-flags.mjs +5 -0
- package/cli/lib/learn.mjs +3694 -0
- package/cli/lib/log.mjs +47 -0
- package/cli/lib/mcp-server.mjs +426 -0
- package/cli/lib/output.mjs +101 -0
- package/cli/lib/pack.mjs +599 -0
- package/cli/lib/paths.mjs +63 -0
- package/cli/lib/prompt.mjs +603 -0
- package/cli/lib/route.mjs +740 -0
- package/cli/lib/search.mjs +158 -0
- package/cli/lib/show.mjs +161 -0
- package/cli/lib/signals.mjs +2337 -0
- package/cli/lib/site.mjs +6617 -0
- package/cli/lib/skill-proposals.mjs +2046 -0
- package/cli/lib/suggest.mjs +66 -0
- package/cli/lib/workspace.mjs +1056 -0
- package/commands/README.md +25 -0
- package/commands/component-spec.md +34 -0
- package/commands/conversational.md +44 -0
- package/commands/design-from-brief.md +141 -0
- package/commands/design-review.md +62 -0
- package/commands/document-from-brief.md +47 -0
- package/commands/extract-tokens.md +38 -0
- package/commands/game-ui.md +40 -0
- package/commands/illustration.md +37 -0
- package/commands/iterate.md +167 -0
- package/commands/motion-design.md +54 -0
- package/commands/palette-from-brand.md +50 -0
- package/commands/print.md +49 -0
- package/commands/slide-deck.md +46 -0
- package/commands/spatial.md +47 -0
- package/commands/stability-review.md +74 -0
- package/commands/video.md +42 -0
- package/commands/website-improvement.md +77 -0
- package/docs/AGENT-DEVELOPMENT.md +658 -0
- package/docs/AI-LEARNING.md +429 -0
- package/docs/AIDER-INTEGRATION.md +224 -0
- package/docs/ARCHITECTURE.ko.md +183 -0
- package/docs/ARCHITECTURE.md +105 -0
- package/docs/CODEX-INTEGRATION.md +311 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.ko.md +144 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.md +150 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.ko.md +153 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.md +154 -0
- package/docs/CONTRIBUTING.ko.md +203 -0
- package/docs/CONTRIBUTING.md +242 -0
- package/docs/CURSOR-INTEGRATION.md +220 -0
- package/docs/DISTRIBUTION.ko.md +248 -0
- package/docs/DISTRIBUTION.md +253 -0
- package/docs/DOGFOOD-FINDINGS.md +180 -0
- package/docs/DOGFOOD-V4-FINDINGS.md +139 -0
- package/docs/DOGFOOD-V4-MKDOCS-FINDINGS.md +233 -0
- package/docs/DOGFOOD-V4-NPM-FINDINGS.md +157 -0
- package/docs/DOGFOOD-V4-VSCODE-FINDINGS.md +135 -0
- package/docs/FIGMA-INTEGRATION.md +222 -0
- package/docs/MCP-INTEGRATION.md +243 -0
- package/docs/MIGRATION-v4.md +121 -0
- package/docs/PLUGIN-PACKAGING.md +240 -0
- package/docs/PRODUCT-READINESS.md +66 -0
- package/docs/QUICKSTART.ko.md +178 -0
- package/docs/QUICKSTART.md +179 -0
- package/docs/RELEASE-CHECKLIST.md +292 -0
- package/docs/ROADMAP.md +19495 -0
- package/docs/SESSION-LOG.md +940 -0
- package/docs/TOKEN-SYNC.md +237 -0
- package/docs/USING.ko.md +206 -0
- package/docs/USING.md +218 -0
- package/docs/WEBSITE-IMPROVEMENT.ko.md +75 -0
- package/docs/WEBSITE-IMPROVEMENT.md +89 -0
- package/docs/announcements/README.md +56 -0
- package/docs/announcements/dev-to-korea.md +206 -0
- package/docs/announcements/hashnode-post.ko.md +232 -0
- package/docs/announcements/okky-post.ko.md +158 -0
- package/docs/announcements/press-kit.md +101 -0
- package/docs/announcements/reddit-r-korea.md +196 -0
- package/docs/announcements/show-hn.md +114 -0
- package/docs/announcements/twitter-thread.md +255 -0
- package/docs/external-status.md +34 -0
- package/docs/integrations/aider-walkthrough.ko.md +275 -0
- package/docs/integrations/aider-walkthrough.md +274 -0
- package/docs/integrations/codex-walkthrough.ko.md +297 -0
- package/docs/integrations/codex-walkthrough.md +297 -0
- package/docs/integrations/cursor-walkthrough.ko.md +281 -0
- package/docs/integrations/cursor-walkthrough.md +284 -0
- package/docs/integrations/design-ai-mcp-server.md +169 -0
- package/docs/integrations/figma-mcp.md +149 -0
- package/docs/integrations/github-mcp.md +178 -0
- package/docs/integrations/linear-mcp.md +215 -0
- package/docs/integrations/notion-mcp.md +174 -0
- package/docs/integrations/sdk-walkthrough.ko.md +375 -0
- package/docs/integrations/sdk-walkthrough.md +375 -0
- package/docs/integrations/slack-mcp.md +208 -0
- package/docs/integrations/vscode-walkthrough.ko.md +202 -0
- package/docs/integrations/vscode-walkthrough.md +205 -0
- package/docs/requirements.txt +16 -0
- package/docs/site-overrides/extra.css +83 -0
- package/docs/site-overrides/favicon.svg +4 -0
- package/docs/site-overrides/logo.svg +10 -0
- package/docs/site-overrides/main.html +18 -0
- package/docs/website-console/app.js +2540 -0
- package/docs/website-console/index.html +24 -0
- package/docs/website-console/styles.css +975 -0
- package/examples/README.md +252 -0
- package/examples/cases/dogfood-v4-korean-hr-onboarding.md +356 -0
- package/examples/component-accordion-actions.md +153 -0
- package/examples/component-accordion-details.md +147 -0
- package/examples/component-accordion-summary.md +180 -0
- package/examples/component-accordion.md +229 -0
- package/examples/component-account-card.md +284 -0
- package/examples/component-address-input.md +260 -0
- package/examples/component-affix.md +190 -0
- package/examples/component-alert-dialog.md +210 -0
- package/examples/component-alert-title.md +77 -0
- package/examples/component-alert.md +192 -0
- package/examples/component-amount-input.md +278 -0
- package/examples/component-anchor.md +198 -0
- package/examples/component-app-bar.md +249 -0
- package/examples/component-aspect-ratio.md +156 -0
- package/examples/component-auto-complete.md +199 -0
- package/examples/component-avatar-group.md +170 -0
- package/examples/component-avatar.md +191 -0
- package/examples/component-back-top.md +123 -0
- package/examples/component-backdrop.md +148 -0
- package/examples/component-badge.md +181 -0
- package/examples/component-banner.md +237 -0
- package/examples/component-biometric-gate.md +281 -0
- package/examples/component-blockquote.md +153 -0
- package/examples/component-border-beam.md +207 -0
- package/examples/component-bottom-navigation.md +226 -0
- package/examples/component-box.md +112 -0
- package/examples/component-breadcrumb.md +222 -0
- package/examples/component-button-base.md +190 -0
- package/examples/component-button-group.md +117 -0
- package/examples/component-button.md +213 -0
- package/examples/component-calendar.md +280 -0
- package/examples/component-callout.md +131 -0
- package/examples/component-card-actions.md +101 -0
- package/examples/component-card-content.md +90 -0
- package/examples/component-card-header.md +122 -0
- package/examples/component-card-media.md +79 -0
- package/examples/component-card.md +233 -0
- package/examples/component-carousel.md +266 -0
- package/examples/component-cascader.md +135 -0
- package/examples/component-category-picker.md +271 -0
- package/examples/component-chart.md +237 -0
- package/examples/component-chat-interface.md +399 -0
- package/examples/component-checkbox.md +149 -0
- package/examples/component-click-away-listener.md +87 -0
- package/examples/component-code.md +213 -0
- package/examples/component-collapsible.md +219 -0
- package/examples/component-color-picker.md +110 -0
- package/examples/component-combobox.md +267 -0
- package/examples/component-command.md +299 -0
- package/examples/component-config-provider.md +190 -0
- package/examples/component-context-menu.md +179 -0
- package/examples/component-css-baseline.md +148 -0
- package/examples/component-date-picker.md +249 -0
- package/examples/component-descriptions.md +242 -0
- package/examples/component-dialog-actions.md +111 -0
- package/examples/component-dialog-content-text.md +76 -0
- package/examples/component-dialog-content.md +105 -0
- package/examples/component-dialog-title.md +104 -0
- package/examples/component-dialog.md +176 -0
- package/examples/component-divider.md +182 -0
- package/examples/component-doc-page.md +217 -0
- package/examples/component-drawer.md +257 -0
- package/examples/component-dropdown.md +220 -0
- package/examples/component-email-layout.md +253 -0
- package/examples/component-empty-state.md +269 -0
- package/examples/component-empty.md +172 -0
- package/examples/component-fade.md +87 -0
- package/examples/component-feature-grid.md +201 -0
- package/examples/component-field.md +266 -0
- package/examples/component-filled-input.md +114 -0
- package/examples/component-flex.md +117 -0
- package/examples/component-float-button.md +214 -0
- package/examples/component-form-control-label.md +134 -0
- package/examples/component-form-control.md +113 -0
- package/examples/component-form-controls.md +251 -0
- package/examples/component-form-group.md +86 -0
- package/examples/component-form-helper-text.md +95 -0
- package/examples/component-form-label.md +98 -0
- package/examples/component-form.md +291 -0
- package/examples/component-game-hud.md +362 -0
- package/examples/component-game-menu.md +327 -0
- package/examples/component-grid.md +140 -0
- package/examples/component-grow.md +79 -0
- package/examples/component-hero-block.md +252 -0
- package/examples/component-hover-card.md +211 -0
- package/examples/component-icon-button.md +142 -0
- package/examples/component-icon.md +102 -0
- package/examples/component-illustration.md +280 -0
- package/examples/component-image-list.md +107 -0
- package/examples/component-image.md +282 -0
- package/examples/component-input-adornment.md +101 -0
- package/examples/component-input-base.md +134 -0
- package/examples/component-input-number.md +141 -0
- package/examples/component-input-otp.md +271 -0
- package/examples/component-input.md +213 -0
- package/examples/component-item.md +243 -0
- package/examples/component-kbd.md +197 -0
- package/examples/component-krw-amount.md +219 -0
- package/examples/component-label.md +118 -0
- package/examples/component-layout.md +217 -0
- package/examples/component-link.md +223 -0
- package/examples/component-list-item-avatar.md +72 -0
- package/examples/component-list-item-button.md +139 -0
- package/examples/component-list-item-icon.md +82 -0
- package/examples/component-list-item-text.md +98 -0
- package/examples/component-list-item.md +116 -0
- package/examples/component-list-subheader.md +70 -0
- package/examples/component-list.md +198 -0
- package/examples/component-loading-button.md +125 -0
- package/examples/component-loading-sequence.md +254 -0
- package/examples/component-lottie-player.md +279 -0
- package/examples/component-masonry.md +191 -0
- package/examples/component-mentions.md +189 -0
- package/examples/component-menu-item.md +102 -0
- package/examples/component-menu-list.md +98 -0
- package/examples/component-menu.md +139 -0
- package/examples/component-menubar.md +259 -0
- package/examples/component-message.md +162 -0
- package/examples/component-mobile-stepper.md +155 -0
- package/examples/component-modal.md +220 -0
- package/examples/component-navigation-menu.md +295 -0
- package/examples/component-notification.md +166 -0
- package/examples/component-otp-countdown.md +245 -0
- package/examples/component-outlined-input.md +145 -0
- package/examples/component-page-transition.md +281 -0
- package/examples/component-pagination.md +226 -0
- package/examples/component-paper.md +199 -0
- package/examples/component-pass-auth.md +265 -0
- package/examples/component-payment-brand-button.md +253 -0
- package/examples/component-payment-method-selector.md +272 -0
- package/examples/component-payment-receipt.md +277 -0
- package/examples/component-popconfirm.md +144 -0
- package/examples/component-popover.md +239 -0
- package/examples/component-popper.md +129 -0
- package/examples/component-pricing-cards.md +247 -0
- package/examples/component-progress.md +195 -0
- package/examples/component-qr-code.md +201 -0
- package/examples/component-radio.md +167 -0
- package/examples/component-rate.md +202 -0
- package/examples/component-resizable.md +163 -0
- package/examples/component-result.md +270 -0
- package/examples/component-scroll-area.md +199 -0
- package/examples/component-scroll-reveal.md +320 -0
- package/examples/component-segmented.md +178 -0
- package/examples/component-select.md +258 -0
- package/examples/component-separator.md +177 -0
- package/examples/component-sheet.md +277 -0
- package/examples/component-sidebar.md +257 -0
- package/examples/component-skeleton.md +178 -0
- package/examples/component-slide.md +89 -0
- package/examples/component-slider.md +208 -0
- package/examples/component-snackbar-content.md +92 -0
- package/examples/component-snackbar.md +121 -0
- package/examples/component-sonner.md +165 -0
- package/examples/component-space.md +125 -0
- package/examples/component-spatial-locomotion.md +373 -0
- package/examples/component-spatial-panel.md +330 -0
- package/examples/component-speed-dial-action.md +78 -0
- package/examples/component-speed-dial.md +177 -0
- package/examples/component-spin.md +173 -0
- package/examples/component-spinner.md +204 -0
- package/examples/component-splitter.md +210 -0
- package/examples/component-stack.md +130 -0
- package/examples/component-statistic.md +282 -0
- package/examples/component-step-button.md +157 -0
- package/examples/component-step-connector.md +157 -0
- package/examples/component-step-content.md +121 -0
- package/examples/component-step-icon.md +115 -0
- package/examples/component-step-label.md +101 -0
- package/examples/component-step.md +84 -0
- package/examples/component-steps.md +264 -0
- package/examples/component-stock-chart.md +251 -0
- package/examples/component-swipeable-drawer.md +149 -0
- package/examples/component-switch.md +99 -0
- package/examples/component-tab-scroll-button.md +180 -0
- package/examples/component-tab.md +120 -0
- package/examples/component-table-body.md +82 -0
- package/examples/component-table-cell.md +118 -0
- package/examples/component-table-container.md +75 -0
- package/examples/component-table-footer.md +72 -0
- package/examples/component-table-head.md +78 -0
- package/examples/component-table-pagination.md +137 -0
- package/examples/component-table-row.md +113 -0
- package/examples/component-table-sort-label.md +109 -0
- package/examples/component-table.md +202 -0
- package/examples/component-tabs.md +184 -0
- package/examples/component-tag-badge.md +309 -0
- package/examples/component-tag.md +102 -0
- package/examples/component-testimonial-carousel.md +218 -0
- package/examples/component-textarea-autosize.md +114 -0
- package/examples/component-textarea.md +173 -0
- package/examples/component-time-picker.md +205 -0
- package/examples/component-timeline.md +170 -0
- package/examples/component-toast.md +224 -0
- package/examples/component-toggle-button.md +129 -0
- package/examples/component-toggle.md +220 -0
- package/examples/component-toolbar.md +104 -0
- package/examples/component-tooltip.md +178 -0
- package/examples/component-tour.md +176 -0
- package/examples/component-transaction-list-item.md +243 -0
- package/examples/component-transfer.md +156 -0
- package/examples/component-tree-select.md +202 -0
- package/examples/component-tree.md +297 -0
- package/examples/component-typography.md +215 -0
- package/examples/component-upload.md +295 -0
- package/examples/component-video-hero.md +409 -0
- package/examples/component-video-player.md +340 -0
- package/examples/component-voice-input.md +408 -0
- package/examples/component-watermark.md +217 -0
- package/examples/component-zoom.md +92 -0
- package/examples/doc-explanation-example.md +196 -0
- package/examples/doc-how-to-example.md +205 -0
- package/examples/doc-tutorial-example.md +162 -0
- package/examples/dogfood-korean-fintech-system.md +433 -0
- package/examples/email-transactional-example.md +259 -0
- package/examples/palette-saas-violet.md +235 -0
- package/examples/print-business-card-spec.md +205 -0
- package/examples/print-packaging-spec.md +285 -0
- package/examples/report-example.md +228 -0
- package/examples/slide-deck-example.md +237 -0
- package/examples/website-improvement-report.md +128 -0
- package/examples/website-improvement-workspace.json +126 -0
- package/install.sh +189 -0
- package/knowledge/COVERAGE.md +740 -0
- package/knowledge/PRINCIPLES.md +108 -0
- package/knowledge/a11y/contrast.md +70 -0
- package/knowledge/a11y/keyboard-and-focus.md +108 -0
- package/knowledge/colors/color-theory.md +90 -0
- package/knowledge/colors/mui-palette-structure.md +105 -0
- package/knowledge/colors/palettes-by-product-type.md +876 -0
- package/knowledge/components/INDEX.md +231 -0
- package/knowledge/components/index.json +1470 -0
- package/knowledge/components/shadcn-registry.md +159 -0
- package/knowledge/conversational/ai-chat-interfaces.md +323 -0
- package/knowledge/conversational/chatbot-design.md +312 -0
- package/knowledge/conversational/conversational-ui-fundamentals.md +299 -0
- package/knowledge/conversational/korean-voice-conventions.md +281 -0
- package/knowledge/conversational/voice-ui-patterns.md +297 -0
- package/knowledge/design-tokens/ant-design.md +124 -0
- package/knowledge/design-tokens/material-3.md +235 -0
- package/knowledge/design-tokens/polaris-and-carbon.md +231 -0
- package/knowledge/design-tokens/tailwind-v4.md +284 -0
- package/knowledge/game-ui/game-accessibility.md +317 -0
- package/knowledge/game-ui/game-ui-fundamentals.md +281 -0
- package/knowledge/game-ui/hud-design.md +324 -0
- package/knowledge/game-ui/korean-gaming-conventions.md +312 -0
- package/knowledge/game-ui/menu-systems.md +388 -0
- package/knowledge/i18n/korean-app-store-visual.md +223 -0
- package/knowledge/i18n/korean-document-style.md +301 -0
- package/knowledge/i18n/korean-payments.md +211 -0
- package/knowledge/i18n/korean-product-conventions.md +96 -0
- package/knowledge/i18n/korean-publishing.md +139 -0
- package/knowledge/i18n/korean-typography.md +123 -0
- package/knowledge/icons/curated-sets.md +225 -0
- package/knowledge/illustration/hero-illustrations.md +234 -0
- package/knowledge/illustration/illustration-systems.md +221 -0
- package/knowledge/illustration/mascot-design.md +208 -0
- package/knowledge/illustration/spot-illustrations.md +246 -0
- package/knowledge/illustration/svg-optimization.md +308 -0
- package/knowledge/layout/spacing-and-grid.md +119 -0
- package/knowledge/motion/app-loading-sequences.md +277 -0
- package/knowledge/motion/choreography-depth.md +297 -0
- package/knowledge/motion/marketing-motion.md +223 -0
- package/knowledge/motion/micro-interactions.md +266 -0
- package/knowledge/motion/motion-tools.md +281 -0
- package/knowledge/motion/principles.md +126 -0
- package/knowledge/patterns/auth-flow-design.md +316 -0
- package/knowledge/patterns/b2b-onboarding-flows.md +182 -0
- package/knowledge/patterns/brand-identity.md +238 -0
- package/knowledge/patterns/brand-references.md +97 -0
- package/knowledge/patterns/chart-color-encoding.md +269 -0
- package/knowledge/patterns/chart-types.md +344 -0
- package/knowledge/patterns/dashboard-composition.md +299 -0
- package/knowledge/patterns/design-system-qa.md +356 -0
- package/knowledge/patterns/document-typography.md +248 -0
- package/knowledge/patterns/email-design.md +338 -0
- package/knowledge/patterns/empty-states.md +263 -0
- package/knowledge/patterns/error-states.md +318 -0
- package/knowledge/patterns/form-design.md +237 -0
- package/knowledge/patterns/information-architecture.md +341 -0
- package/knowledge/patterns/landing-hero-design.md +283 -0
- package/knowledge/patterns/landing-page-patterns.md +681 -0
- package/knowledge/patterns/list-and-feed.md +371 -0
- package/knowledge/patterns/mobile-navigation.md +278 -0
- package/knowledge/patterns/money-and-amount.md +301 -0
- package/knowledge/patterns/onboarding.md +300 -0
- package/knowledge/patterns/pricing-page-design.md +261 -0
- package/knowledge/patterns/realtime-data.md +280 -0
- package/knowledge/patterns/report-design.md +330 -0
- package/knowledge/patterns/search-ux.md +373 -0
- package/knowledge/patterns/settings-page.md +325 -0
- package/knowledge/patterns/slide-deck-design.md +316 -0
- package/knowledge/patterns/styles-catalog.md +2599 -0
- package/knowledge/patterns/technical-writing.md +306 -0
- package/knowledge/patterns/ui-reasoning.md +1853 -0
- package/knowledge/patterns/ux-guidelines.md +1454 -0
- package/knowledge/platforms/react-native.md +395 -0
- package/knowledge/print/brochures-and-flyers.md +276 -0
- package/knowledge/print/korean-print-conventions.md +284 -0
- package/knowledge/print/packaging.md +321 -0
- package/knowledge/print/print-fundamentals.md +238 -0
- package/knowledge/print/signage-and-posters.md +235 -0
- package/knowledge/print/stationery.md +262 -0
- package/knowledge/spatial/ar-patterns.md +253 -0
- package/knowledge/spatial/comfort-and-accessibility.md +245 -0
- package/knowledge/spatial/spatial-design-fundamentals.md +346 -0
- package/knowledge/spatial/spatial-ui-elements.md +343 -0
- package/knowledge/spatial/vr-patterns.md +302 -0
- package/knowledge/typography/font-pairings.md +332 -0
- package/knowledge/typography/mui-type-scale.md +57 -0
- package/knowledge/typography/type-scale-fundamentals.md +105 -0
- package/knowledge/video/in-product-video.md +277 -0
- package/knowledge/video/korean-video-conventions.md +247 -0
- package/knowledge/video/marketing-video.md +258 -0
- package/knowledge/video/social-and-short-form.md +257 -0
- package/knowledge/video/video-fundamentals.md +296 -0
- package/package.json +106 -0
- package/skills/README.md +39 -0
- package/skills/color-palette/PLAYBOOK.md +175 -0
- package/skills/color-palette/SKILL.md +6 -0
- package/skills/color-palette/TEMPLATE.md +103 -0
- package/skills/component-spec-writer/PLAYBOOK.md +169 -0
- package/skills/component-spec-writer/SKILL.md +6 -0
- package/skills/component-spec-writer/TEMPLATE.md +115 -0
- package/skills/conversational-ui-designer/PLAYBOOK.md +231 -0
- package/skills/conversational-ui-designer/SKILL.md +6 -0
- package/skills/design-broadcast/PLAYBOOK.md +146 -0
- package/skills/design-broadcast/SKILL.md +6 -0
- package/skills/design-critique/PLAYBOOK.md +137 -0
- package/skills/design-critique/SKILL.md +6 -0
- package/skills/design-pr-review/PLAYBOOK.md +171 -0
- package/skills/design-pr-review/SKILL.md +6 -0
- package/skills/design-system-builder/PLAYBOOK.md +218 -0
- package/skills/design-system-builder/SKILL.md +6 -0
- package/skills/design-system-qa/PLAYBOOK.md +163 -0
- package/skills/design-system-qa/SKILL.md +6 -0
- package/skills/document-author/PLAYBOOK.md +167 -0
- package/skills/document-author/SKILL.md +6 -0
- package/skills/figma-token-sync/PLAYBOOK.md +149 -0
- package/skills/figma-token-sync/SKILL.md +6 -0
- package/skills/game-ui-designer/PLAYBOOK.md +209 -0
- package/skills/game-ui-designer/SKILL.md +6 -0
- package/skills/handoff-spec/PLAYBOOK.md +170 -0
- package/skills/handoff-spec/SKILL.md +6 -0
- package/skills/illustration-designer/PLAYBOOK.md +166 -0
- package/skills/illustration-designer/SKILL.md +6 -0
- package/skills/motion-designer/PLAYBOOK.md +223 -0
- package/skills/motion-designer/SKILL.md +6 -0
- package/skills/print-designer/PLAYBOOK.md +209 -0
- package/skills/print-designer/SKILL.md +6 -0
- package/skills/slide-deck-author/PLAYBOOK.md +198 -0
- package/skills/slide-deck-author/SKILL.md +6 -0
- package/skills/spatial-designer/PLAYBOOK.md +238 -0
- package/skills/spatial-designer/SKILL.md +6 -0
- package/skills/ux-audit/PLAYBOOK.md +142 -0
- package/skills/ux-audit/SKILL.md +6 -0
- package/skills/video-designer/PLAYBOOK.md +240 -0
- package/skills/video-designer/SKILL.md +6 -0
- package/skills/website-improvement/PLAYBOOK.md +118 -0
- package/skills/website-improvement/SKILL.md +6 -0
- package/skills/website-improvement/TEMPLATE.md +103 -0
- package/tools/audit/changelog-generate.py +176 -0
- package/tools/audit/check-coverage.py +483 -0
- package/tools/audit/doctor_assertions.py +256 -0
- package/tools/audit/example-qa.py +108 -0
- package/tools/audit/frontmatter-check.py +199 -0
- package/tools/audit/integration-check.py +95 -0
- package/tools/audit/korean-copy-check.py +161 -0
- package/tools/audit/link-check.py +146 -0
- package/tools/audit/local-ci.py +558 -0
- package/tools/audit/package-contents.py +723 -0
- package/tools/audit/package-smoke.py +22443 -0
- package/tools/audit/raw-hex-check.py +252 -0
- package/tools/audit/registry-smoke.py +8188 -0
- package/tools/audit/release-metadata.py +9832 -0
- package/tools/audit/run-all.py +351 -0
- package/tools/audit/smoke_assertions.py +12742 -0
- package/tools/audit/stability-review.py +332 -0
- package/tools/audit/stale-check.py +156 -0
- package/tools/migrations/add-version-frontmatter.py +132 -0
- package/tools/migrations/bump-last-updated.py +131 -0
- package/tools/migrations/promote-stability.py +172 -0
- package/tools/preview/README.md +58 -0
- package/tools/preview/render-tokens.py +454 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Korean voice and conversational conventions
|
|
4
|
+
applies_to: [korean, voice, chatbot, conversational, kr-market]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Korean voice and conversational conventions
|
|
11
|
+
|
|
12
|
+
Korean voice and chat UIs have specific market patterns, regulatory requirements, and language conventions that differ from Western defaults.
|
|
13
|
+
|
|
14
|
+
Read [`conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) first.
|
|
15
|
+
|
|
16
|
+
## Korean voice assistant landscape
|
|
17
|
+
|
|
18
|
+
| Product | By | Strength |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| **Bixby** | Samsung | Default on Galaxy phones; deep Korean language support; Bixby Capsules for 3rd-party integration |
|
|
21
|
+
| **Clova / 클로바** | Naver | Smart speakers (Friends, Wave, Slate); HyperCLOVA-powered |
|
|
22
|
+
| **NUGU** | SK Telecom | Smart speakers (NUGU Mini, Candle); SKT services integration |
|
|
23
|
+
| **GiGA Genie / 기가지니** | KT | Smart speakers; KT services |
|
|
24
|
+
| **Kakao i** | Kakao | Smart speaker (Kakao Mini); Kakao services (Talk, Map, T) |
|
|
25
|
+
| **HyperCLOVA X** | Naver | Korean-first LLM; conversational AI |
|
|
26
|
+
| **Apple Siri** | Apple | iOS; Korean support adequate |
|
|
27
|
+
| **Google Assistant** | Google | Android; Korean strong |
|
|
28
|
+
| **Amazon Alexa** | Amazon | Limited Korean market |
|
|
29
|
+
|
|
30
|
+
For B2C apps targeting Korean users: prioritize **Bixby** (Samsung's market share in KR is large), **Clova** (Naver ecosystem reach), and **Google Assistant** (Android global).
|
|
31
|
+
|
|
32
|
+
## Honorific level (존댓말)
|
|
33
|
+
|
|
34
|
+
The most important Korean conversational design choice:
|
|
35
|
+
|
|
36
|
+
| Level | Suffix | Use |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| **합쇼체** | ~ㅂ니다 / ~습니다 | Formal; banking, government, premium B2B |
|
|
39
|
+
| **해요체** | ~해요 / ~예요 | Friendly polite; consumer apps, KakaoTalk channel bots |
|
|
40
|
+
| **해체** | ~해 / ~야 | Casual; rare in commercial UI; kid / friend characters |
|
|
41
|
+
|
|
42
|
+
### Default for product type
|
|
43
|
+
|
|
44
|
+
| Product | Default |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| Banking app voice | 합쇼체 |
|
|
47
|
+
| Fintech consumer (Toss, KakaoBank) | 해요체 |
|
|
48
|
+
| E-commerce chatbot | 해요체 |
|
|
49
|
+
| Customer support (formal company) | 합쇼체 |
|
|
50
|
+
| Customer support (casual brand) | 해요체 |
|
|
51
|
+
| Kids' content | 해요체 (slightly softer) |
|
|
52
|
+
| Government / civic | 합쇼체 |
|
|
53
|
+
| Smart speaker (Bixby, NUGU) | 해요체 |
|
|
54
|
+
| Voice navigation (T-map, Naver Map) | 해요체 |
|
|
55
|
+
|
|
56
|
+
### Don't mix levels
|
|
57
|
+
|
|
58
|
+
Switching between 해요체 and 합쇼체 in one bot's responses sounds inconsistent / sloppy. Pick one and apply throughout.
|
|
59
|
+
|
|
60
|
+
Exception: agent-handoff transitions where company voice (합쇼체) replaces bot voice (해요체) is acceptable as a deliberate handoff signal.
|
|
61
|
+
|
|
62
|
+
### Mixed in long-form content
|
|
63
|
+
|
|
64
|
+
For longer responses (FAQ answers, terms), 합쇼체 sometimes fits even when surrounding chat is 해요체:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
User: 환불은 어떻게 받나요?
|
|
68
|
+
|
|
69
|
+
Bot: (해요체 conversational layer)
|
|
70
|
+
환불 절차를 안내해 드릴게요!
|
|
71
|
+
|
|
72
|
+
(합쇼체 formal section, often quoted/styled differently)
|
|
73
|
+
"주문일로부터 7일 이내에 반품 신청을 하셔야 합니다.
|
|
74
|
+
반품 신청 후 7일 이내에 배송이 회수되며..."
|
|
75
|
+
|
|
76
|
+
(다시 해요체)
|
|
77
|
+
더 궁금한 점이 있으면 알려주세요!
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Greeting patterns
|
|
81
|
+
|
|
82
|
+
| Time of day | Greeting |
|
|
83
|
+
| --- | --- |
|
|
84
|
+
| Anytime | 안녕하세요! |
|
|
85
|
+
| Morning | 좋은 아침이에요! |
|
|
86
|
+
| Late evening | 늦은 시간 죄송해요 (acknowledge after-hours) |
|
|
87
|
+
|
|
88
|
+
For chatbot greeting:
|
|
89
|
+
- "안녕하세요! [브랜드] 챗봇이에요. 무엇을 도와드릴까요?"
|
|
90
|
+
- "어떤 도움이 필요하세요?"
|
|
91
|
+
- "[브랜드]에 오신 것을 환영해요!"
|
|
92
|
+
|
|
93
|
+
For voice assistant: short, no preamble — "네, 듣고 있어요" or just chime.
|
|
94
|
+
|
|
95
|
+
## Confirmation phrases
|
|
96
|
+
|
|
97
|
+
| Action | Korean |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| Affirmation | "네", "확인했어요", "알겠어요" |
|
|
100
|
+
| Confirmation request | "...하시겠어요?" / "...할까요?" |
|
|
101
|
+
| Reassurance | "잠시만 기다려 주세요" / "확인 중이에요" |
|
|
102
|
+
| Apology | "죄송해요" / "죄송합니다" / "다시 말씀해 주시겠어요?" |
|
|
103
|
+
| Thanks | "감사해요" / "감사합니다" |
|
|
104
|
+
|
|
105
|
+
### Apology when bot doesn't understand
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
"죄송해요, 잘 못 알아들었어요. 다시 말씀해 주시겠어요?"
|
|
109
|
+
"제가 잘 이해하지 못했어요. 다른 방식으로 말씀해 주시겠어요?"
|
|
110
|
+
"음, 잘 모르겠어요. 도움이 필요하시면 [메뉴/연락처] 확인해 주세요."
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Code-switching (mixed Korean + English)
|
|
114
|
+
|
|
115
|
+
Korean speakers often code-switch:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
"맥북 프로 16인치 가격 알려줘" ← English brand + Korean
|
|
119
|
+
"Schedule a meeting with 김철수" ← Korean name in English request
|
|
120
|
+
"오늘 저녁에 LA에 도착해" ← English city in Korean
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Bot must:
|
|
124
|
+
- Handle mixed-language input.
|
|
125
|
+
- Preserve proper nouns in source language.
|
|
126
|
+
- Choose response language (default: match user's primary).
|
|
127
|
+
|
|
128
|
+
LLM-based bots (HyperCLOVA, GPT-4, Claude) handle this natively. Older intent-based bots struggle.
|
|
129
|
+
|
|
130
|
+
## Korean-specific speech patterns
|
|
131
|
+
|
|
132
|
+
### 반말 (informal) detection
|
|
133
|
+
|
|
134
|
+
If user uses 반말 ("말해줘"), the bot must NOT respond in matching 반말 — looks rude. Stay in 해요체 / 합쇼체 always.
|
|
135
|
+
|
|
136
|
+
If brand voice is intentionally casual (Toss-style "money character" voice), 해요체 is the friendly endpoint.
|
|
137
|
+
|
|
138
|
+
### Honorifics for the user
|
|
139
|
+
|
|
140
|
+
Bot should use 님 to address the user:
|
|
141
|
+
- "고객님 안녕하세요"
|
|
142
|
+
- "[Username]님, 주문이 도착했어요!"
|
|
143
|
+
- 회원님 / 사용자님 / 고객님 (varies by brand)
|
|
144
|
+
|
|
145
|
+
### Not addressing the user
|
|
146
|
+
- "주문이 도착했어요" (good — passive)
|
|
147
|
+
- "당신의 주문이 도착했어요" (bad — 당신 is impersonal / formal-distant)
|
|
148
|
+
|
|
149
|
+
당신 is rarely used in Korean commercial UI. Avoid.
|
|
150
|
+
|
|
151
|
+
## Voice and TTS in Korean
|
|
152
|
+
|
|
153
|
+
### Voice characteristics
|
|
154
|
+
|
|
155
|
+
Most Korean assistants default to:
|
|
156
|
+
- **Female**, gentle.
|
|
157
|
+
- 20s-30s perceived age.
|
|
158
|
+
- Clear enunciation.
|
|
159
|
+
- 해요체 register.
|
|
160
|
+
|
|
161
|
+
Reasons:
|
|
162
|
+
- Cultural expectation (legacy from Japanese / Korean GPS / station announcements).
|
|
163
|
+
- Perceived warmth / approachability.
|
|
164
|
+
- Test results (most users prefer female voice for assistants in studies).
|
|
165
|
+
|
|
166
|
+
Modern apps offer choice: male voices, neutral voices, celebrity voices (premium).
|
|
167
|
+
|
|
168
|
+
### TTS quality
|
|
169
|
+
|
|
170
|
+
| Service | Korean TTS quality |
|
|
171
|
+
| --- | --- |
|
|
172
|
+
| **Naver Clova Voice** | Strong; many voice options |
|
|
173
|
+
| **Samsung Bixby TTS** | Strong; Galaxy default |
|
|
174
|
+
| **Google Cloud TTS** | Good; multiple Korean voices |
|
|
175
|
+
| **ElevenLabs** | Improving; voice cloning for Korean |
|
|
176
|
+
| **Apple Siri TTS** | Adequate; iOS only |
|
|
177
|
+
| **AWS Polly** | Adequate |
|
|
178
|
+
| **Typecast** | Korean-native; AI voice for content creation |
|
|
179
|
+
|
|
180
|
+
For brand voice: use Clova or Bixby for Korean-first; ElevenLabs for cloning.
|
|
181
|
+
|
|
182
|
+
### Pronunciation challenges
|
|
183
|
+
|
|
184
|
+
Hangul → speech challenges:
|
|
185
|
+
- **Number reading**: 1,000 = "천" or "1천" — context-dependent.
|
|
186
|
+
- **Date format**: "5월 8일" not "5/8".
|
|
187
|
+
- **Time**: "3시" not "3:00".
|
|
188
|
+
- **Currency**: "5,000원" → "오천 원" (read), not "5,000 won".
|
|
189
|
+
- **English brand names**: "Coca-Cola" → "코카콜라" or "코카-콜라" depending.
|
|
190
|
+
- **Acronyms**: read letter-by-letter or as Korean (e.g., NASA → "나사").
|
|
191
|
+
|
|
192
|
+
Modern Korean TTS handles most of this; test edge cases.
|
|
193
|
+
|
|
194
|
+
## STT (speech-to-text) Korean
|
|
195
|
+
|
|
196
|
+
Quality:
|
|
197
|
+
- **Naver Clova Speech** — strong for Korean.
|
|
198
|
+
- **Bixby STT** — strong; Galaxy ecosystem.
|
|
199
|
+
- **Google Cloud Speech** — strong; supports code-switching.
|
|
200
|
+
- **OpenAI Whisper** — open-source; excellent Korean.
|
|
201
|
+
- **Apple speech recognition** — adequate.
|
|
202
|
+
|
|
203
|
+
Issues:
|
|
204
|
+
- **Dialect** (Busan, Jeju) — quality varies; Whisper handles best.
|
|
205
|
+
- **Noise** — Korean characters are dense; mishears more common in noisy environments.
|
|
206
|
+
- **Code-switching** — depends on STT model.
|
|
207
|
+
- **Numbers in speech** — context-dependent ("이천이십사 년" = 2024).
|
|
208
|
+
|
|
209
|
+
## Korean regulatory
|
|
210
|
+
|
|
211
|
+
### Personal Information Protection Act (개인정보보호법)
|
|
212
|
+
|
|
213
|
+
For voice / chat that collects personal data:
|
|
214
|
+
- **Consent required** for collection.
|
|
215
|
+
- **Disclosure** of what's collected, why, how long stored, with whom shared.
|
|
216
|
+
- **Right to delete** voice recordings + chat history.
|
|
217
|
+
- **Encrypted storage** for sensitive data.
|
|
218
|
+
|
|
219
|
+
Voice assistants must disclose recording in privacy policy. Some require explicit "always listening" opt-in.
|
|
220
|
+
|
|
221
|
+
### Information network Act (정보통신망법)
|
|
222
|
+
|
|
223
|
+
For chatbot interactions:
|
|
224
|
+
- **Same rules as email marketing** if chatbot proactively pushes offers.
|
|
225
|
+
- **광고 disclosure** if chatbot promotes paid content.
|
|
226
|
+
|
|
227
|
+
### Financial product chatbot (자본시장법 / 금융소비자보호법)
|
|
228
|
+
|
|
229
|
+
If bot discusses investments / financial products:
|
|
230
|
+
- **Risk disclosure** required.
|
|
231
|
+
- **Advice qualifications** — bot can't give personalized investment advice without licensing.
|
|
232
|
+
- **Consumer protection** disclosures.
|
|
233
|
+
|
|
234
|
+
Korean fintech bots typically include extensive disclaimer text.
|
|
235
|
+
|
|
236
|
+
## KakaoTalk channel chatbot specifics
|
|
237
|
+
|
|
238
|
+
KakaoTalk is dominant in Korea; many businesses run chatbots there:
|
|
239
|
+
|
|
240
|
+
- Use Kakao i Open Builder OR Kakao Channel admin tools.
|
|
241
|
+
- 답변 시간 (response time hours) displayed.
|
|
242
|
+
- Persistent menu (always-visible bottom bar) with categories.
|
|
243
|
+
- Auto-greeting on first message.
|
|
244
|
+
- Can hand off to human within KakaoTalk.
|
|
245
|
+
|
|
246
|
+
Design:
|
|
247
|
+
- Stick to KakaoTalk message types (text, image, card, list).
|
|
248
|
+
- Don't replicate native UI in card format — looks broken.
|
|
249
|
+
- Test on KakaoTalk mobile app primarily (most users there).
|
|
250
|
+
|
|
251
|
+
## Common Korean chatbot / voice mistakes
|
|
252
|
+
|
|
253
|
+
- **Mixed honorific levels** — 해요 + 합쇼 in same conversation.
|
|
254
|
+
- **Wrong register for brand** — bank using 해체 / casual register.
|
|
255
|
+
- **Direct translation from English** — sounds unnatural.
|
|
256
|
+
- **당신 used as "you"** — too formal-distant.
|
|
257
|
+
- **No 님 attached to user** — feels rude.
|
|
258
|
+
- **English brand names not localized** — "Apple Pay" vs "애플 페이" inconsistency.
|
|
259
|
+
- **TTS mispronouncing user names** — verify common names.
|
|
260
|
+
- **Long preamble** — Korean voice users want directness.
|
|
261
|
+
|
|
262
|
+
## Don't
|
|
263
|
+
|
|
264
|
+
- Don't mix 해요체 and 합쇼체 within one bot's voice. Pick one.
|
|
265
|
+
- Don't translate Western chatbot scripts word-for-word. Adapt to Korean phrasing.
|
|
266
|
+
- Don't use 당신 as default "you". Use 고객님 / 회원님 / username + 님.
|
|
267
|
+
- Don't ignore code-switching. Korean users mix English freely.
|
|
268
|
+
- Don't ship voice in Korean without testing TTS pronunciation on brand / product names.
|
|
269
|
+
- Don't omit 개인정보보호법 disclosures for data-collecting voice / chat.
|
|
270
|
+
- Don't use 반말 in commercial UI even if user uses it. Stay polite.
|
|
271
|
+
- Don't make Bixby Capsule integration an afterthought for Samsung-priority audience.
|
|
272
|
+
|
|
273
|
+
## Cross-reference
|
|
274
|
+
|
|
275
|
+
- [`knowledge/conversational/conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) — fundamentals
|
|
276
|
+
- [`knowledge/conversational/voice-ui-patterns.md`](voice-ui-patterns.md) — voice
|
|
277
|
+
- [`knowledge/conversational/chatbot-design.md`](chatbot-design.md) — chatbot
|
|
278
|
+
- [`knowledge/conversational/ai-chat-interfaces.md`](ai-chat-interfaces.md) — AI chat
|
|
279
|
+
- [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md) — honorific level
|
|
280
|
+
- [`knowledge/i18n/korean-typography.md`](../i18n/korean-typography.md) — Hangul typography
|
|
281
|
+
- [`knowledge/patterns/email-design.md`](../patterns/email-design.md) — KR ad disclosure
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Voice UI patterns (smart speakers, in-app voice, IVR)
|
|
4
|
+
applies_to: [voice-ui, smart-speaker, ivr, voice-assistant]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Voice UI patterns
|
|
11
|
+
|
|
12
|
+
Voice user interfaces (VUIs) — smart speakers (Echo, Nest, NUGU), phone assistants (Siri, Google Assistant, Bixby, Clova), in-app voice features, IVR (interactive voice response phone systems), in-car voice control.
|
|
13
|
+
|
|
14
|
+
Read [`conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) first.
|
|
15
|
+
|
|
16
|
+
## Voice-only vs voice + visual
|
|
17
|
+
|
|
18
|
+
| Modality | Constraints |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| **Voice-only** (smart speaker, in-car) | No visual; no list of options; rely on memory |
|
|
21
|
+
| **Voice + visual** (phone assistant) | Voice input, visual response; richer feedback |
|
|
22
|
+
| **Voice + ambient screen** (Echo Show) | Hybrid; visual supports voice |
|
|
23
|
+
|
|
24
|
+
Pick the lowest common denominator. If your skill must work on Echo (audio only), don't design assuming visual.
|
|
25
|
+
|
|
26
|
+
## Five voice UI patterns
|
|
27
|
+
|
|
28
|
+
### 1. Wake word activation
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
User: "Hey Siri, set a timer for 5 minutes."
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Wake words: "Hey Siri", "OK Google", "Alexa", "Hey Bixby", "Hi Clova", "Hey NUGU".
|
|
35
|
+
|
|
36
|
+
Design:
|
|
37
|
+
- **Auditory feedback** when wake word detected (chime, light pulse).
|
|
38
|
+
- **Visual feedback** for visual-capable devices (animation, listening indicator).
|
|
39
|
+
- **Timeout** — wake state lasts 6-10s; if no speech, returns to idle.
|
|
40
|
+
- **False positive handling** — if wake fires accidentally, user can say "nevermind" or just stay silent.
|
|
41
|
+
|
|
42
|
+
### 2. Tap-to-talk
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
[User taps mic icon]
|
|
46
|
+
[Holds while speaking]
|
|
47
|
+
[Releases when done]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Or push-and-release (continuous listen until silence).
|
|
51
|
+
|
|
52
|
+
Design:
|
|
53
|
+
- **Visual press feedback** during listening.
|
|
54
|
+
- **Visualization** of audio level (waveform or pulse).
|
|
55
|
+
- **Cancel** option (slide off button or back press).
|
|
56
|
+
- **Auto-end** on silence (1-2 seconds of quiet).
|
|
57
|
+
|
|
58
|
+
### 3. Conversational follow-up
|
|
59
|
+
|
|
60
|
+
After response, briefly remain listening for follow-up:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
User: "What's the weather?"
|
|
64
|
+
System: "62°F, sunny."
|
|
65
|
+
[brief pause; mic stays open]
|
|
66
|
+
User: "What about tomorrow?"
|
|
67
|
+
System: "Tomorrow: 58°F, cloudy."
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Reduces "Hey Siri" repetition. Risk: false-trigger from background noise.
|
|
71
|
+
|
|
72
|
+
### 4. Multi-turn dialogue
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
User: "Book a flight to Seoul."
|
|
76
|
+
System: "Sure. What dates?"
|
|
77
|
+
User: "Next Friday, returning Sunday."
|
|
78
|
+
System: "Departing from where?"
|
|
79
|
+
User: "San Francisco."
|
|
80
|
+
System: "Found 12 flights. Cheapest is..."
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
System tracks slot-filling progress; asks only what's missing.
|
|
84
|
+
|
|
85
|
+
For complex tasks (flight booking, meal planning): multi-turn is necessary. Keep turns short; confirm at end.
|
|
86
|
+
|
|
87
|
+
### 5. Voice search → visual results
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
User: "Find me Korean restaurants nearby."
|
|
91
|
+
[voice → text → search query]
|
|
92
|
+
[visual results displayed]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Voice as input modality only; results are visual. Common in mobile apps (search by voice, browse results).
|
|
96
|
+
|
|
97
|
+
## Smart speaker UX (audio-only)
|
|
98
|
+
|
|
99
|
+
For Echo, Nest, etc.:
|
|
100
|
+
|
|
101
|
+
### Information density
|
|
102
|
+
|
|
103
|
+
You can convey ~15-30 words before user attention drifts. Be concise:
|
|
104
|
+
|
|
105
|
+
✗ "I found 5 Korean restaurants nearby. The first is Han Yang at 123 Main Street, with a 4.5-star rating, $$$ price, open until 10pm. The second is Bibim, located at 456..."
|
|
106
|
+
|
|
107
|
+
✓ "I found 5 Korean spots. Top result: Han Yang, 4.5 stars, half a mile away. Want details on it?"
|
|
108
|
+
|
|
109
|
+
### Lists
|
|
110
|
+
|
|
111
|
+
| Length | Pattern |
|
|
112
|
+
| --- | --- |
|
|
113
|
+
| 1 result | "I found one: X." |
|
|
114
|
+
| 2-3 results | Read all briefly: "I found three. First: X. Second: Y. Third: Z." |
|
|
115
|
+
| 4-7 results | Read 2-3, ask: "Want to hear more?" |
|
|
116
|
+
| 8+ results | Summarize: "I found 12. Want me to read them?" |
|
|
117
|
+
|
|
118
|
+
Don't read 12-item lists by default.
|
|
119
|
+
|
|
120
|
+
### Audio cues
|
|
121
|
+
|
|
122
|
+
- **Earcon** (short tone) for wake / acknowledgment.
|
|
123
|
+
- **Different chime** for error vs success.
|
|
124
|
+
- **Voice timbre** consistent across all responses.
|
|
125
|
+
|
|
126
|
+
### Proactive notifications
|
|
127
|
+
|
|
128
|
+
Smart speakers can announce:
|
|
129
|
+
- Reminders ("Your package arrived").
|
|
130
|
+
- Notifications ("Email from John").
|
|
131
|
+
|
|
132
|
+
Risks:
|
|
133
|
+
- Noisy household: announcements during conversation = rude.
|
|
134
|
+
- Privacy: "Email from John about your medical results" announced loudly.
|
|
135
|
+
|
|
136
|
+
Design:
|
|
137
|
+
- **Quiet hours** setting.
|
|
138
|
+
- **Notification style** option (silent vs chime vs full announcement).
|
|
139
|
+
- **Privacy filter** — sensitive content not announced.
|
|
140
|
+
|
|
141
|
+
## Phone assistant UX (voice + visual)
|
|
142
|
+
|
|
143
|
+
Siri, Google Assistant, Bixby on phones:
|
|
144
|
+
|
|
145
|
+
### Visual response anatomy
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
┌─────────────────────────┐
|
|
149
|
+
│ [User: "What's the │
|
|
150
|
+
│ weather in Seoul?"] │ ← transcribed user input
|
|
151
|
+
├─────────────────────────┤
|
|
152
|
+
│ │
|
|
153
|
+
│ [Sunny icon] │
|
|
154
|
+
│ Seoul: 12°C │ ← visual response
|
|
155
|
+
│ Sunny │
|
|
156
|
+
│ H: 15°C L: 5°C │
|
|
157
|
+
│ │
|
|
158
|
+
│ [More details ↓] │
|
|
159
|
+
└─────────────────────────┘
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Voice spoken simultaneously: "Sunny, 12 degrees in Seoul."
|
|
163
|
+
|
|
164
|
+
### Action buttons
|
|
165
|
+
|
|
166
|
+
Voice can suggest actions; visual provides buttons:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
"I found a cafe nearby. Want directions?"
|
|
170
|
+
[Get directions] [Call] [Save for later]
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
User can voice-respond ("Yes") or tap.
|
|
174
|
+
|
|
175
|
+
## In-car voice UX
|
|
176
|
+
|
|
177
|
+
Voice in cars (Apple CarPlay, Android Auto, native):
|
|
178
|
+
|
|
179
|
+
### Constraints
|
|
180
|
+
|
|
181
|
+
- **Eyes on road**: minimal visual demand.
|
|
182
|
+
- **Hands on wheel**: voice or steering-wheel button.
|
|
183
|
+
- **Noisy environment**: STT robustness + clear TTS.
|
|
184
|
+
- **Distraction limits**: regulated in some jurisdictions.
|
|
185
|
+
|
|
186
|
+
### Patterns
|
|
187
|
+
|
|
188
|
+
- **Steering wheel button** activation (push-to-talk, no wake word).
|
|
189
|
+
- **Audio-only response by default**; visual for confirmation.
|
|
190
|
+
- **Single voice command per task**: "Call Mom" not "Open contacts and find Mom".
|
|
191
|
+
|
|
192
|
+
## IVR (Interactive Voice Response — phone systems)
|
|
193
|
+
|
|
194
|
+
"For sales, press 1. For support, press 2."
|
|
195
|
+
|
|
196
|
+
Largely deprecated for chatbots / live agents in 2024+, but still common.
|
|
197
|
+
|
|
198
|
+
### Best practices
|
|
199
|
+
|
|
200
|
+
- **Skip option** to a human at any time ("Press 0 for an operator").
|
|
201
|
+
- **Avoid deep menus** (max 3-4 levels).
|
|
202
|
+
- **Repeat option** at end of menu.
|
|
203
|
+
- **Caller ID-based** routing where possible (don't ask for account number you already know).
|
|
204
|
+
|
|
205
|
+
For Korean banking IVR: typically Korean voice menus, multi-tier, often with separate path for VIP customers.
|
|
206
|
+
|
|
207
|
+
## Korean voice assistants
|
|
208
|
+
|
|
209
|
+
| Assistant | By | Notes |
|
|
210
|
+
| --- | --- | --- |
|
|
211
|
+
| **Bixby** | Samsung | Default on Galaxy phones; Korean strong |
|
|
212
|
+
| **Clova / 클로바** | Naver | Smart speakers (Friends, Wave); Korean services |
|
|
213
|
+
| **NUGU** | SKT | Smart speakers (NUGU Mini, Candle); SKT services |
|
|
214
|
+
| **GiGA Genie / 기가지니** | KT | Smart speaker; KT services |
|
|
215
|
+
| **Kakao i** | Kakao | Smart speaker (Kakao Mini); Kakao services |
|
|
216
|
+
| **Siri / Google Assistant / Alexa** | International | Korean support of varying quality |
|
|
217
|
+
|
|
218
|
+
Korean assistants integrate with Korean services (Naver search, Kakao Talk, KT Olleh, SKT services). Western assistants integrate with global services (Apple, Google, Amazon).
|
|
219
|
+
|
|
220
|
+
For Korean B2C apps: voice features should consider Bixby Capsule integration if Samsung-priority audience.
|
|
221
|
+
|
|
222
|
+
## Voice + accessibility
|
|
223
|
+
|
|
224
|
+
Voice UIs help motor / vision accessibility but exclude others:
|
|
225
|
+
|
|
226
|
+
| Disability | Voice UI helpful? |
|
|
227
|
+
| --- | --- |
|
|
228
|
+
| Motor (typing hard) | Yes — voice replaces keyboard |
|
|
229
|
+
| Vision (can't see screen) | Yes — voice replaces visual |
|
|
230
|
+
| Deaf / hard-of-hearing | No — must offer text alt |
|
|
231
|
+
| Speech (can't speak) | No — must offer text alt |
|
|
232
|
+
| Cognitive (slow processing) | Variable — depends on pacing options |
|
|
233
|
+
|
|
234
|
+
Always offer text alternative input AND visual output. Voice can be primary but never exclusive.
|
|
235
|
+
|
|
236
|
+
## TTS voice selection
|
|
237
|
+
|
|
238
|
+
For your assistant's voice:
|
|
239
|
+
|
|
240
|
+
| Choice | Use |
|
|
241
|
+
| --- | --- |
|
|
242
|
+
| **Single voice** | Most consistent; users build relationship |
|
|
243
|
+
| **Voice options** (male / female / neutral) | More inclusive; users pick |
|
|
244
|
+
| **Voice cloning** (custom brand voice) | Distinctive but expensive + ethics |
|
|
245
|
+
| **Multilingual same-voice** | Consistent across locales |
|
|
246
|
+
|
|
247
|
+
For Korean assistants: typically single-voice default; Korean female warm tone common (Bixby default).
|
|
248
|
+
|
|
249
|
+
## SSML for prosody control
|
|
250
|
+
|
|
251
|
+
Speech Synthesis Markup Language adjusts TTS:
|
|
252
|
+
|
|
253
|
+
```xml
|
|
254
|
+
<speak>
|
|
255
|
+
Hello! <break time="500ms"/> Today is
|
|
256
|
+
<emphasis level="strong">Tuesday</emphasis>.
|
|
257
|
+
The temperature is <say-as interpret-as="cardinal">72</say-as> degrees.
|
|
258
|
+
</speak>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Useful for:
|
|
262
|
+
- Pauses / breaks.
|
|
263
|
+
- Emphasis on key words.
|
|
264
|
+
- Numbers vs digits ("1.0" → "one point zero" vs "one dot zero").
|
|
265
|
+
- Dates: "2024-05-08" → "May 8, 2024" or "5월 8일".
|
|
266
|
+
|
|
267
|
+
Korean SSML same syntax; supports Korean prosody marks.
|
|
268
|
+
|
|
269
|
+
## Voice UI common mistakes
|
|
270
|
+
|
|
271
|
+
- **Too verbose responses** — users abandon.
|
|
272
|
+
- **Lists too long** — voice can't show 12 results.
|
|
273
|
+
- **No fallback** when STT fails repeatedly.
|
|
274
|
+
- **Wake word false positives** disrupting other audio.
|
|
275
|
+
- **Privacy violations** announcing sensitive content.
|
|
276
|
+
- **Inconsistent persona** (one response formal, next casual).
|
|
277
|
+
- **Ignoring code-switching** (mixed Korean / English) for Korean users.
|
|
278
|
+
|
|
279
|
+
## Don't
|
|
280
|
+
|
|
281
|
+
- Don't make voice the only way to do things. Always offer touch / text alt.
|
|
282
|
+
- Don't read 10-item lists by default. Summarize and offer to read.
|
|
283
|
+
- Don't ignore false positives — wake words are noisy.
|
|
284
|
+
- Don't drone on. Concise wins.
|
|
285
|
+
- Don't leak privacy via voice ("Email from doctor about test results").
|
|
286
|
+
- Don't break the "Hey Siri" ↔ "follow-up" expectation. Be consistent.
|
|
287
|
+
- Don't ship one voice for all locales. Localize per-language.
|
|
288
|
+
- Don't use only audio for critical actions (confirm with visual + voice when device permits).
|
|
289
|
+
|
|
290
|
+
## Cross-reference
|
|
291
|
+
|
|
292
|
+
- [`knowledge/conversational/conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) — fundamentals
|
|
293
|
+
- [`knowledge/conversational/chatbot-design.md`](chatbot-design.md) — text chat
|
|
294
|
+
- [`knowledge/conversational/ai-chat-interfaces.md`](ai-chat-interfaces.md) — LLM chat
|
|
295
|
+
- [`knowledge/conversational/korean-voice-conventions.md`](korean-voice-conventions.md) — KR
|
|
296
|
+
- [`knowledge/a11y/keyboard-and-focus.md`](../a11y/keyboard-and-focus.md) — alt access
|
|
297
|
+
- [`examples/component-voice-input.md`](../../examples/component-voice-input.md) — voice input spec
|