@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,306 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Technical writing — voice, structure, common pitfalls
|
|
4
|
+
applies_to: [docs, technical-writing, api-docs, guides]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Technical writing
|
|
11
|
+
|
|
12
|
+
The non-design half of documentation: how to write the words. Same readers will judge your docs primarily by readability, not visuals.
|
|
13
|
+
|
|
14
|
+
## The four virtues
|
|
15
|
+
|
|
16
|
+
| Virtue | Means |
|
|
17
|
+
| --- | --- |
|
|
18
|
+
| **Clarity** | One reading is enough. No ambiguity. |
|
|
19
|
+
| **Concision** | Every word earns its place. Trim relentlessly. |
|
|
20
|
+
| **Completeness** | Cover all the user needs to know — no surprises. |
|
|
21
|
+
| **Correctness** | Code samples actually work. Numbers are right. |
|
|
22
|
+
|
|
23
|
+
Hierarchy: clarity > concision > completeness > correctness. The first three are writing; the fourth is QA.
|
|
24
|
+
|
|
25
|
+
## Voice
|
|
26
|
+
|
|
27
|
+
### Active over passive
|
|
28
|
+
|
|
29
|
+
| Active | Passive |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| The handler returns a Promise. | A Promise is returned by the handler. |
|
|
32
|
+
| Set the API key in `.env`. | The API key should be set in `.env`. |
|
|
33
|
+
|
|
34
|
+
Active is shorter, clearer, and identifies the actor. Passive obscures who/what.
|
|
35
|
+
|
|
36
|
+
Exception: when the actor is unknown or irrelevant ("The function is called when the page loads.").
|
|
37
|
+
|
|
38
|
+
### Second person ("you") over third
|
|
39
|
+
|
|
40
|
+
| Second person | Third / first |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| You configure the route. | One configures the route. / We configure the route. |
|
|
43
|
+
| You'll see an error. | The user will see an error. |
|
|
44
|
+
|
|
45
|
+
Direct address is friendlier. Avoid "we" except in tutorial contexts ("Let's build it.").
|
|
46
|
+
|
|
47
|
+
### Imperative for instructions
|
|
48
|
+
|
|
49
|
+
| Imperative | Wordy |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| Save the file. | You should save the file. |
|
|
52
|
+
| Run `npm install`. | The next thing to do is to run `npm install`. |
|
|
53
|
+
|
|
54
|
+
Strip the throat-clearing.
|
|
55
|
+
|
|
56
|
+
## Sentence-level rules
|
|
57
|
+
|
|
58
|
+
| Rule | Example |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| **Short sentences** (15–20 words ideal, 25 max) | A 50-word sentence usually has at least three sentences hidden inside it. |
|
|
61
|
+
| **One idea per sentence** | Don't pack multiple thoughts into commas-and-clauses. |
|
|
62
|
+
| **No throat-clearing** | "It is important to note that…" → cut. |
|
|
63
|
+
| **Concrete over abstract** | "Faster page loads" not "improved performance characteristics". |
|
|
64
|
+
| **Verb-strong** | "X validates Y" not "X performs validation on Y". |
|
|
65
|
+
|
|
66
|
+
### Trimmable phrases
|
|
67
|
+
|
|
68
|
+
These add no information; cut on first edit:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
in order to → to
|
|
72
|
+
make use of → use
|
|
73
|
+
due to the fact that → because
|
|
74
|
+
in the event that → if
|
|
75
|
+
at this point in time → now
|
|
76
|
+
the question as to whether → whether
|
|
77
|
+
prior to → before
|
|
78
|
+
subsequent to → after
|
|
79
|
+
take action / take steps → act
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Headings
|
|
83
|
+
|
|
84
|
+
Headings are scan-bait. Make them work.
|
|
85
|
+
|
|
86
|
+
### Be specific
|
|
87
|
+
|
|
88
|
+
| Vague | Specific |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| Background | Why we use Postgres |
|
|
91
|
+
| Configuration | Configure your API key |
|
|
92
|
+
| Considerations | Tradeoffs of caching |
|
|
93
|
+
|
|
94
|
+
### Match the reader's question
|
|
95
|
+
|
|
96
|
+
For tutorials/how-tos: heading = the user's question.
|
|
97
|
+
|
|
98
|
+
| Reader's mental question | Heading |
|
|
99
|
+
| --- | --- |
|
|
100
|
+
| "How do I deploy this?" | How to deploy |
|
|
101
|
+
| "What's a token?" | What is a design token? |
|
|
102
|
+
| "When should I use this?" | When to use color-palette |
|
|
103
|
+
|
|
104
|
+
### No clickbait
|
|
105
|
+
|
|
106
|
+
Documentation isn't blog. "10 things you didn't know about X" is wrong.
|
|
107
|
+
|
|
108
|
+
## Lists
|
|
109
|
+
|
|
110
|
+
Use bulleted/numbered lists for:
|
|
111
|
+
- Sequential steps (numbered).
|
|
112
|
+
- Parallel options (bulleted).
|
|
113
|
+
- More than 3 items inline that breaks reading flow.
|
|
114
|
+
|
|
115
|
+
Don't use lists for:
|
|
116
|
+
- Two items (write as a sentence: "Option A and option B").
|
|
117
|
+
- Prose disguised as bullets (the items are full paragraphs — they should be paragraphs).
|
|
118
|
+
|
|
119
|
+
### List parallelism
|
|
120
|
+
|
|
121
|
+
All items in a list start with the same part of speech:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
✓ Bulleted (verb-led):
|
|
125
|
+
- Validate the input
|
|
126
|
+
- Save to database
|
|
127
|
+
- Return the response
|
|
128
|
+
|
|
129
|
+
✗ Mixed:
|
|
130
|
+
- Validate the input
|
|
131
|
+
- The data goes to the database
|
|
132
|
+
- Returns the response
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Code samples
|
|
136
|
+
|
|
137
|
+
Code samples in docs need their own discipline.
|
|
138
|
+
|
|
139
|
+
### Rules
|
|
140
|
+
|
|
141
|
+
- **They must run.** Test every code sample. Stale samples are worse than none.
|
|
142
|
+
- **Include imports.** Don't show `myFunction()` and assume reader knows where it's from.
|
|
143
|
+
- **Show context, not full files.** Strip noise. Show what matters.
|
|
144
|
+
- **Comment surprising lines** inline, not in surrounding prose.
|
|
145
|
+
- **Use the simplest example that demonstrates the point.** Don't show 50 lines when 5 will do.
|
|
146
|
+
|
|
147
|
+
### Bad code sample (too much)
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
// Configure the entire app
|
|
151
|
+
import { App } from "@my/framework";
|
|
152
|
+
import { ConfigProvider } from "@my/config";
|
|
153
|
+
import { Theme } from "@my/theme";
|
|
154
|
+
// ... 20 more imports
|
|
155
|
+
|
|
156
|
+
const app = new App({
|
|
157
|
+
// ...50 lines of unrelated config
|
|
158
|
+
authToken: process.env.AUTH_TOKEN,
|
|
159
|
+
// ...50 more lines
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Good code sample (focused)
|
|
164
|
+
|
|
165
|
+
```ts
|
|
166
|
+
import { App } from "@my/framework";
|
|
167
|
+
|
|
168
|
+
const app = new App({
|
|
169
|
+
authToken: process.env.AUTH_TOKEN, // see "Auth setup" below
|
|
170
|
+
});
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
The principle: code samples illustrate; they don't replace.
|
|
174
|
+
|
|
175
|
+
## Voice for different doc types
|
|
176
|
+
|
|
177
|
+
Per [`knowledge/patterns/information-architecture.md`](information-architecture.md):
|
|
178
|
+
|
|
179
|
+
| Type | Voice |
|
|
180
|
+
| --- | --- |
|
|
181
|
+
| **Tutorial** | Friendly, encouraging, hand-holding. "Let's", "you'll", "great job". |
|
|
182
|
+
| **How-to** | Direct, imperative, no fluff. "Run", "set", "verify". |
|
|
183
|
+
| **Reference** | Neutral, terse, exhaustive. "Returns…", "Throws if…". |
|
|
184
|
+
| **Explanation** | Discursive but rigorous. "We chose X because Y, accepting tradeoff Z". |
|
|
185
|
+
|
|
186
|
+
A reference page that reads like a tutorial is wrong. So is the reverse.
|
|
187
|
+
|
|
188
|
+
## "Don't" sections
|
|
189
|
+
|
|
190
|
+
A "Don't" section in any doc is high-leverage. Lists 2–3 misuses with reasoning.
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
## Don't
|
|
194
|
+
|
|
195
|
+
- Don't use this for X — use Y instead. (X has a different semantic.)
|
|
196
|
+
- Don't combine X with Y — leads to ambiguity in result.
|
|
197
|
+
- Don't omit the Z step — silently fails on edge cases.
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
The reader saves a debug session for every "don't" they read.
|
|
201
|
+
|
|
202
|
+
## Acronyms and jargon
|
|
203
|
+
|
|
204
|
+
| Rule | Example |
|
|
205
|
+
| --- | --- |
|
|
206
|
+
| Spell out on first use | "JSON Web Token (JWT)" |
|
|
207
|
+
| Then use acronym | "...the JWT contains..." |
|
|
208
|
+
| Define jargon if not universal | "(in this app, *namespace* means a Kubernetes namespace, not a JS namespace)" |
|
|
209
|
+
| Don't define what every reader knows | "JSON (JavaScript Object Notation)" — overkill for technical docs |
|
|
210
|
+
|
|
211
|
+
For Korean docs: Anglo acronyms are usually NOT translated. "API", "URL", "OAuth", "PDF" stay English.
|
|
212
|
+
|
|
213
|
+
## Numbers and units
|
|
214
|
+
|
|
215
|
+
| Rule | Example |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| Spell out one through nine; numerals 10+ | "three components", "47 errors" |
|
|
218
|
+
| Always numeral with units | "5 ms" (not "five milliseconds") |
|
|
219
|
+
| Always numeral in code/CLI/config | `--port 3000` |
|
|
220
|
+
| Korean: numerals always | "거래 5건", not "다섯 건" |
|
|
221
|
+
|
|
222
|
+
Use SI / standard units. Don't invent abbreviations.
|
|
223
|
+
|
|
224
|
+
## Errors and edge cases
|
|
225
|
+
|
|
226
|
+
When documenting error states, include:
|
|
227
|
+
- **What error**: the exact message or HTTP status.
|
|
228
|
+
- **What it means**: plain language.
|
|
229
|
+
- **What caused it**: most likely root cause.
|
|
230
|
+
- **How to fix**: actionable step.
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
Error: "Token expired"
|
|
234
|
+
Status: 401 Unauthorized
|
|
235
|
+
|
|
236
|
+
What it means: your authentication token is past its valid period.
|
|
237
|
+
Cause: tokens expire every 24 hours by default.
|
|
238
|
+
Fix: refresh the token via /auth/refresh, OR re-authenticate.
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Examples placement
|
|
242
|
+
|
|
243
|
+
Each major concept should have an example:
|
|
244
|
+
- **At the top** — quick "this is what you do" snippet, before the deep explanation.
|
|
245
|
+
- **Inline** — small examples woven into prose.
|
|
246
|
+
- **At the end** — a complete, runnable example pulling it all together.
|
|
247
|
+
|
|
248
|
+
A doc with no examples is a doc users skim and bounce from.
|
|
249
|
+
|
|
250
|
+
## Korean technical writing conventions
|
|
251
|
+
|
|
252
|
+
Per [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md):
|
|
253
|
+
|
|
254
|
+
- 존댓말 (`~합니다` / `~입니다`) for technical docs.
|
|
255
|
+
- 반말 (`~해요`) for friendly tutorials in consumer products.
|
|
256
|
+
- Code identifiers stay English (`API`, `function name`, etc.).
|
|
257
|
+
- Korean explanation, English code: standard pattern.
|
|
258
|
+
- Punctuation: Korean ones (。、) for purely Korean prose; Latin (.,) when mixed with code/identifiers.
|
|
259
|
+
|
|
260
|
+
Common patterns:
|
|
261
|
+
- "이 함수는 ... 반환합니다." (This function returns ...)
|
|
262
|
+
- "다음과 같이 사용하세요:" (Use as follows:)
|
|
263
|
+
- "주의: ..." (Note: ...)
|
|
264
|
+
|
|
265
|
+
## Common technical writing mistakes
|
|
266
|
+
|
|
267
|
+
- **Throat-clearing intros**: "In this section, we will discuss…"
|
|
268
|
+
- **Future tense for behavior**: "The function will return…" → "returns"
|
|
269
|
+
- **Hedging**: "may possibly return" → "returns" (or document "returns null when…")
|
|
270
|
+
- **Author voice intrudes**: "I think this is the best approach."
|
|
271
|
+
- **Vague pronouns**: "It does this" — unclear what "it" refers to.
|
|
272
|
+
- **Inconsistent terminology**: "user" / "customer" / "account" mixed without clear distinction.
|
|
273
|
+
- **Repeating information** in multiple sections without cross-linking.
|
|
274
|
+
- **No examples** for abstract concepts.
|
|
275
|
+
- **Stale examples** (out-of-date code that no longer runs).
|
|
276
|
+
- **Marketing language in technical docs**: "revolutionary new way to…" — strip it.
|
|
277
|
+
|
|
278
|
+
## Editing pass — do this every time
|
|
279
|
+
|
|
280
|
+
After drafting, edit in two passes:
|
|
281
|
+
|
|
282
|
+
### Pass 1 — content
|
|
283
|
+
|
|
284
|
+
- Is each paragraph necessary?
|
|
285
|
+
- Is the structure clear (intro → body → next-step)?
|
|
286
|
+
- Is each example correct + minimal?
|
|
287
|
+
- Is the voice right for the doc type?
|
|
288
|
+
|
|
289
|
+
### Pass 2 — line by line
|
|
290
|
+
|
|
291
|
+
- Cut throat-clearing.
|
|
292
|
+
- Cut redundant words.
|
|
293
|
+
- Replace passive with active.
|
|
294
|
+
- Replace abstract with concrete.
|
|
295
|
+
- Trim sentences > 25 words.
|
|
296
|
+
- Verify code samples run.
|
|
297
|
+
|
|
298
|
+
A doc that's been edited twice reads 30% shorter than the first draft. That's the win.
|
|
299
|
+
|
|
300
|
+
## Cross-reference
|
|
301
|
+
|
|
302
|
+
- [`knowledge/patterns/document-typography.md`](document-typography.md) — visual styling
|
|
303
|
+
- [`knowledge/patterns/information-architecture.md`](information-architecture.md) — structure
|
|
304
|
+
- [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md) — Korean conventions
|
|
305
|
+
- [The Documentation System](https://documentation.divio.com/) — Diátaxis origin
|
|
306
|
+
- [Google Developer Documentation Style Guide](https://developers.google.com/style)
|