@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,237 @@
|
|
|
1
|
+
# Worked example: slide deck (talk archetype)
|
|
2
|
+
|
|
3
|
+
> Generated by `skills/slide-deck-author`. Demonstrates the canonical talk-deck outline — message-led titles, one visual per slide, speaker notes.
|
|
4
|
+
|
|
5
|
+
## Meta
|
|
6
|
+
|
|
7
|
+
- **Type**: talk deck
|
|
8
|
+
- **Topic**: "Why design tokens matter — and how to ship them"
|
|
9
|
+
- **Length**: 20-min conference talk + 5-min Q&A
|
|
10
|
+
- **Audience**: senior designers + frontend engineers (~200 attendees, FEKR-style conference)
|
|
11
|
+
- **Brand**: design-ai
|
|
12
|
+
- **Locale**: Korean (Hangul slides, English code, presented in Korean)
|
|
13
|
+
|
|
14
|
+
## Slide outline
|
|
15
|
+
|
|
16
|
+
### 1. Title slide
|
|
17
|
+
- **Visual**: design-ai logo + Korean tagline
|
|
18
|
+
- **Body text**:
|
|
19
|
+
```
|
|
20
|
+
디자인 토큰
|
|
21
|
+
설계부터 출시까지
|
|
22
|
+
|
|
23
|
+
김민지 · design-ai 메인테이너
|
|
24
|
+
FEKR 2026 · 2026.05.15
|
|
25
|
+
```
|
|
26
|
+
- **Speaker notes**:
|
|
27
|
+
> "안녕하세요, 김민지입니다. design-ai 프로젝트의 메인테이너이고, 오늘은 디자인 토큰을 어떻게 설계하고 출시까지 가져가는지 이야기하겠습니다."
|
|
28
|
+
|
|
29
|
+
### 2. Hook — the problem
|
|
30
|
+
- **Title**: 디자이너와 개발자가 다른 색을 본다
|
|
31
|
+
- **Visual**: side-by-side image
|
|
32
|
+
- Left: Figma swatch panel showing `#7C3AED`
|
|
33
|
+
- Right: VS Code showing `#8B5CF6` hardcoded in CSS
|
|
34
|
+
- Bold red border around both — they should match, they don't
|
|
35
|
+
- **Body text**: none — image speaks
|
|
36
|
+
- **Speaker notes**:
|
|
37
|
+
> "이 슬라이드를 보세요. 왼쪽은 Figma의 컬러 변수, 오른쪽은 실제 코드의 hex 값. 두 값이 다릅니다. 1년 전에 다른 디자이너가 hex를 직접 입력했고, 아무도 모르게 어긋났어요. 이게 디자인 토큰이 없는 팀에서 매주 일어나는 일입니다."
|
|
38
|
+
|
|
39
|
+
### 3. The cost — quantified
|
|
40
|
+
- **Title**: 매주 4시간이 토큰 정렬에 사라진다
|
|
41
|
+
- **Visual**: bar chart showing rework hours per week
|
|
42
|
+
- Before tokens: 4.2 hours
|
|
43
|
+
- After tokens: 0.7 hours
|
|
44
|
+
- Highlight the gap with arrow + "−83%"
|
|
45
|
+
- **Body text**: small caption — "Source: 2025 internal study, n=12 teams"
|
|
46
|
+
- **Speaker notes**:
|
|
47
|
+
> "정량적으로 측정해 봤어요. 토큰 시스템이 없는 팀은 일주일에 평균 4시간을 디자인-개발 정렬에 씁니다. 토큰 도입 후엔 1시간 미만으로 줄었어요. 83% 절약. 12개 팀 표본입니다."
|
|
48
|
+
|
|
49
|
+
### 4. Section divider
|
|
50
|
+
- **Visual**: minimal — just text on solid teal background
|
|
51
|
+
- **Body text**:
|
|
52
|
+
```
|
|
53
|
+
Part 1
|
|
54
|
+
토큰이란 무엇인가
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 5. What a token is
|
|
58
|
+
- **Title**: 토큰은 의미와 값을 분리한다
|
|
59
|
+
- **Visual**: diagram
|
|
60
|
+
```
|
|
61
|
+
hex value #7C3AED
|
|
62
|
+
↓
|
|
63
|
+
primitive token color.brand.primary.600
|
|
64
|
+
↓
|
|
65
|
+
semantic alias color.primary.default
|
|
66
|
+
↓
|
|
67
|
+
component button.primary.bg
|
|
68
|
+
```
|
|
69
|
+
- **Body text**: "각 층은 다음 층에 의해 참조됩니다"
|
|
70
|
+
- **Speaker notes**:
|
|
71
|
+
> "토큰의 핵심 개념은 layering입니다. 가장 아래는 hex 값, 그 위에 primitive 토큰 이름, 그 위에 의미 별칭, 그 위에 컴포넌트별 토큰. 각 층은 위 층의 참조를 받지, 직접 hex를 가지진 않아요. 이게 시스템성의 출발입니다."
|
|
72
|
+
|
|
73
|
+
### 6. Three-tier architecture
|
|
74
|
+
- **Title**: 세 개의 층을 분리하라
|
|
75
|
+
- **Visual**: 3 stacked colored boxes labeled
|
|
76
|
+
- tier 1: primitive (color.brand.primary.{50..950})
|
|
77
|
+
- tier 2: semantic (color.semantic.primary)
|
|
78
|
+
- tier 3: component (button.primary.bg)
|
|
79
|
+
- **Body text**: "Tier 1은 거의 안 바뀝니다. Tier 2와 3는 자주 바뀝니다."
|
|
80
|
+
- **Speaker notes**:
|
|
81
|
+
> "Layered architecture를 한 번 더 강조할게요. Tier 1은 hue/value pairs. 한 번 정하면 거의 안 바뀝니다. Tier 2는 의미, Tier 3는 컴포넌트별. 다크모드를 도입할 때, brand color를 바꿀 때 — 어디만 바꾸면 되는지 명확합니다."
|
|
82
|
+
|
|
83
|
+
### 7. Section divider
|
|
84
|
+
- **Body text**:
|
|
85
|
+
```
|
|
86
|
+
Part 2
|
|
87
|
+
설계: OKLCH로 만드는 perceptually uniform 팔레트
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 8. OKLCH vs HSL
|
|
91
|
+
- **Title**: HSL은 거짓말한다 — OKLCH가 답
|
|
92
|
+
- **Visual**:
|
|
93
|
+
- Two color ramps side-by-side
|
|
94
|
+
- HSL ramp showing yellow at L=50% appearing brighter than blue at L=50%
|
|
95
|
+
- OKLCH ramp showing all hues at L=0.5 reading equally bright
|
|
96
|
+
- Label "HSL: visual brightness varies" / "OKLCH: visual brightness uniform"
|
|
97
|
+
- **Speaker notes**:
|
|
98
|
+
> "HSL은 1978년에 정의된 모델인데, 인간의 시각과 안 맞아요. 같은 lightness 50%인데, 노랑은 밝아 보이고, 파랑은 어두워 보입니다. OKLCH는 perceptually uniform — 같은 L 값이면 시각적으로도 같은 밝기. Tailwind v4가 OKLCH로 옮긴 이유입니다."
|
|
99
|
+
|
|
100
|
+
### 9. WCAG validation — non-negotiable
|
|
101
|
+
- **Title**: 모든 색은 WCAG 4.5:1을 통과해야 한다
|
|
102
|
+
- **Visual**: contrast matrix table
|
|
103
|
+
- Rows: text-primary, primary-default, error, success
|
|
104
|
+
- Columns: bg-default (white), bg-elevated, bg-subtle
|
|
105
|
+
- Cells: ratio (e.g., 18.7:1) + ✓/✗
|
|
106
|
+
- **Body text**: "✓ = AA body text · 빨간 ✗는 절대 ship 안 됨"
|
|
107
|
+
- **Speaker notes**:
|
|
108
|
+
> "토큰 만들 때 contrast matrix를 먼저 그립니다. 본문 텍스트는 4.5:1, UI는 3:1 — WCAG AA 기준입니다. design-ai가 만드는 팔레트는 모든 cell이 통과해야 하고, ✗가 하나라도 있으면 ship 안 합니다."
|
|
109
|
+
|
|
110
|
+
### 10. Section divider
|
|
111
|
+
- **Body text**:
|
|
112
|
+
```
|
|
113
|
+
Part 3
|
|
114
|
+
출시: Style Dictionary로 멀티 플랫폼
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 11. Style Dictionary architecture
|
|
118
|
+
- **Title**: 한 source.json에서 모든 플랫폼 출력
|
|
119
|
+
- **Visual**:
|
|
120
|
+
```
|
|
121
|
+
tokens/source.json
|
|
122
|
+
↓
|
|
123
|
+
Style Dictionary
|
|
124
|
+
↓ ↓ ↓ ↓ ↓
|
|
125
|
+
CSS / Tailwind / Swift / XML / Style Dictionary
|
|
126
|
+
```
|
|
127
|
+
- **Body text**: "단일 source. CI에서 자동 생성."
|
|
128
|
+
- **Speaker notes**:
|
|
129
|
+
> "Source는 하나, output은 여러 개입니다. Style Dictionary가 platform별로 변환해 줍니다. CSS, Tailwind config, iOS Swift, Android XML — 같은 토큰. CI에 build를 걸어 두면 source만 commit하면 모든 플랫폼이 자동 갱신됩니다."
|
|
130
|
+
|
|
131
|
+
### 12. Drift detection
|
|
132
|
+
- **Title**: Drift는 자동으로 잡는다
|
|
133
|
+
- **Visual**: GitHub Actions YAML snippet (small but readable)
|
|
134
|
+
- **Body text**: "Stylelint + Figma sync diff + visual regression. PR마다 실행."
|
|
135
|
+
- **Speaker notes**:
|
|
136
|
+
> "토큰 시스템 만들고 끝이 아니라, drift를 잡는 자동화가 중요합니다. PR마다 stylelint로 raw hex를 거부하고, Figma 토큰과 코드 토큰을 비교하고, visual regression으로 컴포넌트 외관 변화를 잡습니다. 빌드 한 번 통과하면 디자인 시스템 컴플라이언스도 통과한 거예요."
|
|
137
|
+
|
|
138
|
+
### 13. Section divider
|
|
139
|
+
- **Body text**:
|
|
140
|
+
```
|
|
141
|
+
Part 4
|
|
142
|
+
한국 시장 특화
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 14. Korean stock convention
|
|
146
|
+
- **Title**: 한국에서는 빨강이 상승, 파랑이 하락
|
|
147
|
+
- **Visual**: stock chart with red candles for gains, blue for losses
|
|
148
|
+
- **Body text**: "Western 컨벤션과 반대 — 토큰 이름까지 분리해야 합니다"
|
|
149
|
+
- **Speaker notes**:
|
|
150
|
+
> "한국 시장 특화의 한 예. Stock app은 빨강이 상승, 파랑이 하락이에요. Western 앱은 반대. 같은 'positive trend'라도 한국은 red가 맞습니다. 토큰 이름은 `color-money-positive` 같은 의미 기반으로 두고, 값을 한국에서만 빨강으로 mapping하는 layer를 추가합니다."
|
|
151
|
+
|
|
152
|
+
### 15. Korean fintech custom components
|
|
153
|
+
- **Title**: 토큰만으로 부족 — 한국 특화 컴포넌트도 필요
|
|
154
|
+
- **Visual**: 4-up grid showing
|
|
155
|
+
- AmountInput (KRW formatter)
|
|
156
|
+
- AddressInput (Daum Postcode)
|
|
157
|
+
- PaymentMethodSelector (KakaoPay/NaverPay/Toss)
|
|
158
|
+
- BiometricGate (Face ID)
|
|
159
|
+
- **Body text**: "design-ai에 모든 spec 포함"
|
|
160
|
+
- **Speaker notes**:
|
|
161
|
+
> "토큰은 시스템의 베이스. 그 위에 한국 시장 특화 컴포넌트가 필요합니다. AmountInput, AddressInput, PaymentMethodSelector, BiometricGate — 한국 fintech의 가장 많이 쓰는 4 종이고, design-ai 안에 모두 spec 있습니다."
|
|
162
|
+
|
|
163
|
+
### 16. Conclusion — what to do tomorrow
|
|
164
|
+
- **Title**: 내일 시작할 수 있는 3가지
|
|
165
|
+
- **Visual**: 3 numbered cards
|
|
166
|
+
```
|
|
167
|
+
1. tokens/source.json 만들기 — Tier 1만이라도
|
|
168
|
+
2. Stylelint color-no-hex 룰 추가
|
|
169
|
+
3. design-ai의 /design-from-brief 시도
|
|
170
|
+
```
|
|
171
|
+
- **Body text**: "각 단계 1시간 이내"
|
|
172
|
+
- **Speaker notes**:
|
|
173
|
+
> "정리하겠습니다. 내일 출근해서 할 수 있는 세 가지. 토큰 source 파일 하나 만들기, stylelint 룰 추가, design-ai의 design-from-brief 한 번 돌려보기. 각 1시간 이내, 누적 효과는 큽니다. 고맙습니다."
|
|
174
|
+
|
|
175
|
+
### 17. Q&A / closing
|
|
176
|
+
- **Visual**: design-ai logo + GitHub URL + 김민지 SNS handle
|
|
177
|
+
- **Body text**: "github.com/your-org/design-ai"
|
|
178
|
+
- **Speaker notes**:
|
|
179
|
+
> "질문 받겠습니다."
|
|
180
|
+
|
|
181
|
+
## Total: 17 slides for 20-min talk
|
|
182
|
+
|
|
183
|
+
Average ~70 seconds per slide. Tight pace, but talk decks should be tight.
|
|
184
|
+
|
|
185
|
+
## Keyboard and focus notes
|
|
186
|
+
|
|
187
|
+
- Presenters can advance with keyboard arrows, Space, or a clicker; every embedded demo link keeps a visible focus state.
|
|
188
|
+
- If exported to an interactive web deck, tab order follows slide order first, then links inside the active slide; hidden slides are removed from focus order.
|
|
189
|
+
- Screen reader users get slide number, title, and speaker-note availability through `aria-label` / `aria-describedby` on the active slide container.
|
|
190
|
+
- Responsive checks cover the projector viewport, laptop presenter view, and mobile PDF preview.
|
|
191
|
+
- Speaker notes are not keyboard-focusable during audience presentation, so they do not interrupt the talk flow.
|
|
192
|
+
|
|
193
|
+
## Render-ready (reveal.js / Slidev format)
|
|
194
|
+
|
|
195
|
+
Optional output if user wants the actual deck file:
|
|
196
|
+
|
|
197
|
+
```markdown
|
|
198
|
+
---
|
|
199
|
+
theme: default
|
|
200
|
+
title: 디자인 토큰
|
|
201
|
+
author: 김민지
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
# 디자인 토큰
|
|
205
|
+
설계부터 출시까지
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
# 디자이너와 개발자가 다른 색을 본다
|
|
210
|
+
|
|
211
|
+
[image: side-by-side-mismatch.png]
|
|
212
|
+
|
|
213
|
+
<!-- speaker:
|
|
214
|
+
이 슬라이드를 보세요...
|
|
215
|
+
-->
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
(Continues for all slides.)
|
|
219
|
+
|
|
220
|
+
## Why this is a good talk-deck example
|
|
221
|
+
|
|
222
|
+
- **17 slides for 20 min** — tight pace, message-led.
|
|
223
|
+
- **Every title is a message**, not a topic ("디자이너와 개발자가 다른 색을 본다", not "문제").
|
|
224
|
+
- **One visual per slide** — chart, diagram, image, code snippet.
|
|
225
|
+
- **Speaker notes for every slide** — what the speaker says, not what's on the slide.
|
|
226
|
+
- **Section dividers** at part boundaries — gives audience cognitive break.
|
|
227
|
+
- **Korean voice** consistent (~합니다 tone for conference talk — formal but conversational).
|
|
228
|
+
- **Conclusion lands on action** — "내일 시작할 수 있는 3가지" not abstract takeaway.
|
|
229
|
+
|
|
230
|
+
Cite [`knowledge/patterns/slide-deck-design.md`](../knowledge/patterns/slide-deck-design.md) for talk-deck rules.
|
|
231
|
+
|
|
232
|
+
## Cross-reference
|
|
233
|
+
|
|
234
|
+
- [`skills/slide-deck-author/PLAYBOOK.md`](../skills/slide-deck-author/PLAYBOOK.md)
|
|
235
|
+
- [`commands/slide-deck.md`](../commands/slide-deck.md)
|
|
236
|
+
- [`knowledge/patterns/slide-deck-design.md`](../knowledge/patterns/slide-deck-design.md)
|
|
237
|
+
- [`knowledge/i18n/korean-document-style.md`](../knowledge/i18n/korean-document-style.md) — Korean speaker voice
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Website Improvement Plan: Korean SaaS Marketing Site
|
|
2
|
+
|
|
3
|
+
> Live URL: `https://example.com`
|
|
4
|
+
> Target repo: `https://github.com/acme/korean-saas-site`
|
|
5
|
+
> Viewports: desktop / tablet / mobile
|
|
6
|
+
> Status: planning
|
|
7
|
+
|
|
8
|
+
## Site Profile
|
|
9
|
+
|
|
10
|
+
- Name: Korean SaaS Marketing Site
|
|
11
|
+
- Live URL: `https://example.com`
|
|
12
|
+
- Repo URL: `https://github.com/acme/korean-saas-site`
|
|
13
|
+
- Local path: `/Users/team/dev/korean-saas-site`
|
|
14
|
+
- Figma URL: `https://figma.com/file/example`
|
|
15
|
+
- Deploy provider: Vercel
|
|
16
|
+
- Sentry project: `acme/korean-saas-web`
|
|
17
|
+
- CMS: Sanity
|
|
18
|
+
- Database: none
|
|
19
|
+
- Priority pages: `/`, `/pricing`, `/signup`, `/docs`
|
|
20
|
+
- Primary user flows: visitor compares pricing and starts signup; existing customer finds proof before contacting sales
|
|
21
|
+
- Brand/design notes: restrained B2B SaaS tone, Pretendard typography, dense Korean product UI, indigo accent for action/focus only
|
|
22
|
+
|
|
23
|
+
## Audit Summary
|
|
24
|
+
|
|
25
|
+
| Category | Status | Key findings |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| Visual Design | in-progress | Hero CTA hierarchy is weak; primary and secondary actions compete. |
|
|
28
|
+
| UX Flow | not-started | Pricing-to-signup path needs Browser verification before implementation. |
|
|
29
|
+
| Responsive QA | not-started | Desktop, tablet, and mobile viewports need explicit QA because long Korean labels may wrap. |
|
|
30
|
+
| Accessibility | not-started | Mobile menu focus state, keyboard path, ARIA state, and screen-reader announcement behavior are not documented. |
|
|
31
|
+
| Performance | not-started | Run Lighthouse in the target repo or preview deploy before claiming Core Web Vitals. |
|
|
32
|
+
| SEO | not-started | Check title, description, canonical, OG metadata, sitemap, and heading order. |
|
|
33
|
+
| Technical Quality | not-started | Inspect component reuse before changing layout or adding styles. |
|
|
34
|
+
| Runtime Issues | not-started | Browser/Chrome DevTools should confirm console, network, hydration, and broken assets. |
|
|
35
|
+
| Content Quality | in-progress | Pricing page does not explain plan fit in the first viewport. |
|
|
36
|
+
|
|
37
|
+
## MCP Readiness
|
|
38
|
+
|
|
39
|
+
| MCP | Status | Reason |
|
|
40
|
+
| --- | --- | --- |
|
|
41
|
+
| GitHub | required | Target repo intake and PR review need repository context. |
|
|
42
|
+
| Figma | optional | Useful for checking design-token intent, but manual screenshot review can work. |
|
|
43
|
+
| Browser/Playwright | required | Responsive and runtime verification need real page interaction. |
|
|
44
|
+
| Chrome DevTools | optional | Needed for deeper console, network, and performance debugging. |
|
|
45
|
+
| Deploy | required | Vercel preview verifies real runtime output before handoff. |
|
|
46
|
+
| Sentry | optional | Useful for production errors, but not required for first planning pass. |
|
|
47
|
+
| Database | unused | Public marketing pages do not depend on direct database inspection. |
|
|
48
|
+
| CMS | optional | Sanity content may affect copy and information architecture. |
|
|
49
|
+
| Collaboration | optional | Use Notion/Slack/Linear only after findings are accepted. |
|
|
50
|
+
| Research | optional | Competitor research can improve messaging but is separate from implementation. |
|
|
51
|
+
|
|
52
|
+
## Refactor Plan
|
|
53
|
+
|
|
54
|
+
### [P1] Clarify homepage CTA hierarchy
|
|
55
|
+
|
|
56
|
+
- Category: Visual Design
|
|
57
|
+
- Problem: Primary and secondary actions compete in the hero, weakening the first visitor decision.
|
|
58
|
+
- Evidence: Visual Design finding from the console audit.
|
|
59
|
+
- Impact: high
|
|
60
|
+
- Effort: medium
|
|
61
|
+
- Pages: `/`
|
|
62
|
+
- Recommended MCP: Browser/Playwright, Figma
|
|
63
|
+
- Codex prompt: Inspect the target homepage implementation, reuse existing layout and token patterns, and revise the hero CTA hierarchy so the primary signup action is visually dominant while the secondary action remains available.
|
|
64
|
+
- Verification: run target repo lint/build; verify desktop/tablet/mobile hero layout; confirm keyboard focus and 4.5:1 body text contrast per `knowledge/a11y/contrast.md`.
|
|
65
|
+
- Risks: copy and conversion changes may require stakeholder approval.
|
|
66
|
+
|
|
67
|
+
### [P0] Document and verify mobile menu focus behavior
|
|
68
|
+
|
|
69
|
+
- Category: Accessibility
|
|
70
|
+
- Problem: The mobile menu focus path is not documented, so keyboard users may lose navigation context.
|
|
71
|
+
- Evidence: Accessibility finding from the console audit.
|
|
72
|
+
- Impact: high
|
|
73
|
+
- Effort: medium
|
|
74
|
+
- Pages: `/`, `/pricing`, `/signup`
|
|
75
|
+
- Recommended MCP: Browser/Playwright, Chrome DevTools
|
|
76
|
+
- Codex prompt: Inspect the mobile navigation component in the target repo. Preserve existing state management and styling conventions while adding or fixing keyboard reachability, visible focus, Escape/close behavior, and screen-reader labels.
|
|
77
|
+
- Verification: tab through the menu, confirm visible focus, confirm screen-reader labels, verify mobile and desktop breakpoints, and run target repo checks. Follow `knowledge/a11y/keyboard-and-focus.md`.
|
|
78
|
+
- Risks: the navigation may be shared across marketing and authenticated surfaces.
|
|
79
|
+
|
|
80
|
+
## Prompt Pack
|
|
81
|
+
|
|
82
|
+
### Codex repo intake
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
Work in the target website repo, not in design-ai. Inspect routing, layout primitives, styling/tokens, state management, target pages, and verification scripts before editing. Return the smallest safe implementation plan for the homepage CTA and mobile menu focus work.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Codex implementation
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
Implement the selected task in the target repo. Reuse existing components, design tokens, state patterns, and verification commands. Do not add dependencies unless the current codebase clearly requires them. Verify desktop/tablet/mobile behavior, keyboard focus, screen-reader labels, and target repo lint/build.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Claude design review
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Review the live site or screenshots as a senior product designer. Focus on hierarchy, layout rhythm, type, color, spacing, CTA clarity, accessibility, and Korean SaaS copy. Provide one best path with evidence.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Handoff Report Draft
|
|
101
|
+
|
|
102
|
+
### Executed Work
|
|
103
|
+
|
|
104
|
+
- Not run yet; implementation happens in the target website repo.
|
|
105
|
+
|
|
106
|
+
### Verification Results
|
|
107
|
+
|
|
108
|
+
- Not run yet; expected checks are target repo lint/build, Browser responsive QA, focus QA, and Vercel preview verification.
|
|
109
|
+
|
|
110
|
+
### Remaining Risks
|
|
111
|
+
|
|
112
|
+
- Figma is optional, so design-token intent may need manual confirmation.
|
|
113
|
+
- Sanity content may require CMS access before copy fixes can ship.
|
|
114
|
+
- Performance and runtime findings are marked as unverified until Browser/Chrome DevTools or deployment checks run.
|
|
115
|
+
|
|
116
|
+
### Next Actions
|
|
117
|
+
|
|
118
|
+
- Run the generated Codex repo intake prompt inside the target website repo.
|
|
119
|
+
- Apply the P0 accessibility task before lower-priority visual polish.
|
|
120
|
+
- Use `design-ai check output.md --route website-improvement --strict` on the final handoff artifact.
|
|
121
|
+
|
|
122
|
+
## Accessibility, Responsive, And Grounding Notes
|
|
123
|
+
|
|
124
|
+
- Accessibility: keyboard/focus behavior and screen-reader labels must be verified against `knowledge/a11y/keyboard-and-focus.md`.
|
|
125
|
+
- Contrast: body text and CTA foreground/background pairs must be checked for at least 4.5:1 body text contrast per `knowledge/a11y/contrast.md`.
|
|
126
|
+
- Responsive: desktop, tablet, and mobile viewports must be checked because Korean labels can wrap differently from English copy.
|
|
127
|
+
- Source grounding: this plan uses `knowledge/PRINCIPLES.md`, `knowledge/patterns/ux-guidelines.md`, and `knowledge/patterns/report-design.md`.
|
|
128
|
+
- Avoid: do not run automatic crawling, external MCP writes, target repo mutation from design-ai, embeddings, fine-tuning, or backend sync in this MVP.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"updatedAt": "2026-05-30T00:00:00.000Z",
|
|
4
|
+
"siteProfile": {
|
|
5
|
+
"id": "sample-korean-saas",
|
|
6
|
+
"name": "Korean SaaS marketing site",
|
|
7
|
+
"liveUrl": "https://example.com",
|
|
8
|
+
"repoUrl": "https://github.com/acme/korean-saas-site",
|
|
9
|
+
"localPath": "/Users/you/dev/korean-saas-site",
|
|
10
|
+
"figmaUrl": "https://figma.com/file/example",
|
|
11
|
+
"brandNotes": "Quiet B2B SaaS tone, Pretendard typography, dense but readable Korean product copy, indigo accent only for action and focus.",
|
|
12
|
+
"deployProvider": "vercel",
|
|
13
|
+
"sentryProject": "acme/korean-saas-web",
|
|
14
|
+
"cms": "sanity",
|
|
15
|
+
"database": "none",
|
|
16
|
+
"pages": [
|
|
17
|
+
"/",
|
|
18
|
+
"/pricing",
|
|
19
|
+
"/signup",
|
|
20
|
+
"/docs"
|
|
21
|
+
],
|
|
22
|
+
"userFlows": [
|
|
23
|
+
"Visitor compares pricing and starts signup",
|
|
24
|
+
"Existing customer finds feature proof before contacting sales"
|
|
25
|
+
],
|
|
26
|
+
"viewports": [
|
|
27
|
+
"desktop",
|
|
28
|
+
"tablet",
|
|
29
|
+
"mobile"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"auditChecklist": {
|
|
33
|
+
"visual-design": {
|
|
34
|
+
"status": "in-progress",
|
|
35
|
+
"notes": "Hero hierarchy and CTA contrast need review before company pilot.",
|
|
36
|
+
"findings": [
|
|
37
|
+
"Primary CTA competes with secondary link on the homepage"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"ux-flow": {
|
|
41
|
+
"status": "todo",
|
|
42
|
+
"notes": "Map visitor path from landing page to pricing and signup.",
|
|
43
|
+
"findings": []
|
|
44
|
+
},
|
|
45
|
+
"responsive": {
|
|
46
|
+
"status": "todo",
|
|
47
|
+
"notes": "Check 1440, 1024, 390, and 360 width layouts.",
|
|
48
|
+
"findings": []
|
|
49
|
+
},
|
|
50
|
+
"accessibility": {
|
|
51
|
+
"status": "todo",
|
|
52
|
+
"notes": "Keyboard and focus audit required for nav, pricing toggle, and forms.",
|
|
53
|
+
"findings": [
|
|
54
|
+
"Focus state is not yet documented for the mobile menu"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"performance": {
|
|
58
|
+
"status": "todo",
|
|
59
|
+
"notes": "Run Lighthouse after visual pass.",
|
|
60
|
+
"findings": []
|
|
61
|
+
},
|
|
62
|
+
"seo": {
|
|
63
|
+
"status": "todo",
|
|
64
|
+
"notes": "Inspect title, description, heading order, canonical, OG.",
|
|
65
|
+
"findings": []
|
|
66
|
+
},
|
|
67
|
+
"technical-quality": {
|
|
68
|
+
"status": "todo",
|
|
69
|
+
"notes": "Confirm component reuse before editing target repo.",
|
|
70
|
+
"findings": []
|
|
71
|
+
},
|
|
72
|
+
"runtime-issues": {
|
|
73
|
+
"status": "todo",
|
|
74
|
+
"notes": "Open console/network once preview deploy is available.",
|
|
75
|
+
"findings": []
|
|
76
|
+
},
|
|
77
|
+
"content-quality": {
|
|
78
|
+
"status": "in-progress",
|
|
79
|
+
"notes": "Copy should lead with proof and reduce generic SaaS phrasing.",
|
|
80
|
+
"findings": [
|
|
81
|
+
"Pricing page does not explain plan fit in the first viewport"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"mcpReadiness": {
|
|
86
|
+
"github": "required",
|
|
87
|
+
"figma": "optional",
|
|
88
|
+
"browser": "required",
|
|
89
|
+
"chromeDevtools": "optional",
|
|
90
|
+
"deploy": "required",
|
|
91
|
+
"sentry": "optional",
|
|
92
|
+
"database": "unused",
|
|
93
|
+
"cms": "optional",
|
|
94
|
+
"collaboration": "optional",
|
|
95
|
+
"research": "optional"
|
|
96
|
+
},
|
|
97
|
+
"refactorTasks": [
|
|
98
|
+
{
|
|
99
|
+
"id": "task-homepage-cta",
|
|
100
|
+
"title": "Clarify homepage CTA hierarchy",
|
|
101
|
+
"category": "visual-design",
|
|
102
|
+
"problem": "Primary and secondary actions compete in the hero, which weakens the visitor's first decision.",
|
|
103
|
+
"evidence": "Sample finding: Primary CTA competes with secondary link on the homepage.",
|
|
104
|
+
"impact": "high",
|
|
105
|
+
"effort": "medium",
|
|
106
|
+
"priority": "p1",
|
|
107
|
+
"pages": [
|
|
108
|
+
"/"
|
|
109
|
+
],
|
|
110
|
+
"recommendedMcp": [
|
|
111
|
+
"browser",
|
|
112
|
+
"figma"
|
|
113
|
+
],
|
|
114
|
+
"codexPrompt": "Inspect the target homepage implementation, preserve existing design system patterns, and revise the hero CTA hierarchy so the primary signup action is visually dominant while the secondary action remains available.",
|
|
115
|
+
"verification": [
|
|
116
|
+
"Run target repo lint/build",
|
|
117
|
+
"Verify desktop/tablet/mobile hero layout",
|
|
118
|
+
"Confirm focus indicators and text contrast"
|
|
119
|
+
],
|
|
120
|
+
"risks": [
|
|
121
|
+
"Could change conversion copy without stakeholder approval"
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"reportNotes": "MVP audit is a planning console. Run the generated prompts inside the target website repo before marking implementation complete."
|
|
126
|
+
}
|
package/install.sh
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# install.sh — install design-ai globally for Claude Code via symlinks
|
|
3
|
+
# Idempotent: safe to re-run; updates symlinks to current path.
|
|
4
|
+
#
|
|
5
|
+
# Usage:
|
|
6
|
+
# ./install.sh # install
|
|
7
|
+
# ./install.sh --uninstall # remove symlinks
|
|
8
|
+
# ./install.sh --status # show what's installed
|
|
9
|
+
#
|
|
10
|
+
# After install, all 20 skills, 17 commands, and 4 agents are available
|
|
11
|
+
# in any Claude Code session, prefixed with "design-".
|
|
12
|
+
|
|
13
|
+
set -euo pipefail
|
|
14
|
+
|
|
15
|
+
DESIGN_AI_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
|
+
CLAUDE_HOME="${CLAUDE_HOME:-$HOME/.claude}"
|
|
17
|
+
PREFIX="${DESIGN_AI_PREFIX:-design-}"
|
|
18
|
+
|
|
19
|
+
SKILLS_DIR="$CLAUDE_HOME/skills"
|
|
20
|
+
AGENTS_DIR="$CLAUDE_HOME/agents"
|
|
21
|
+
COMMANDS_DIR="$CLAUDE_HOME/commands"
|
|
22
|
+
|
|
23
|
+
# Colors
|
|
24
|
+
if [ -n "${NO_COLOR:-}" ] || [ ! -t 1 ]; then
|
|
25
|
+
GREEN=''
|
|
26
|
+
YELLOW=''
|
|
27
|
+
RED=''
|
|
28
|
+
BLUE=''
|
|
29
|
+
NC=''
|
|
30
|
+
else
|
|
31
|
+
GREEN='\033[0;32m'
|
|
32
|
+
YELLOW='\033[1;33m'
|
|
33
|
+
RED='\033[0;31m'
|
|
34
|
+
BLUE='\033[0;34m'
|
|
35
|
+
NC='\033[0m'
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
log_info() { printf "${BLUE}ℹ${NC} %s\n" "$1"; }
|
|
39
|
+
log_success() { printf "${GREEN}✓${NC} %s\n" "$1"; }
|
|
40
|
+
log_warn() { printf "${YELLOW}⚠${NC} %s\n" "$1"; }
|
|
41
|
+
log_error() { printf "${RED}✗${NC} %s\n" "$1"; }
|
|
42
|
+
|
|
43
|
+
print_header() {
|
|
44
|
+
printf "\n${BLUE}╔══════════════════════════════════════════════════════════════╗${NC}\n"
|
|
45
|
+
printf "${BLUE}║${NC} design-ai installer ${BLUE}║${NC}\n"
|
|
46
|
+
printf "${BLUE}║${NC} Senior product designer for Claude Code ${BLUE}║${NC}\n"
|
|
47
|
+
printf "${BLUE}╚══════════════════════════════════════════════════════════════╝${NC}\n\n"
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
ensure_dirs() {
|
|
51
|
+
mkdir -p "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
install_skills() {
|
|
55
|
+
local count=0
|
|
56
|
+
for skill_dir in "$DESIGN_AI_ROOT"/skills/*/; do
|
|
57
|
+
[ -d "$skill_dir" ] || continue
|
|
58
|
+
local name; name=$(basename "$skill_dir")
|
|
59
|
+
local target="$SKILLS_DIR/${PREFIX}${name}"
|
|
60
|
+
|
|
61
|
+
# Remove stale symlink / dir
|
|
62
|
+
[ -L "$target" ] && rm "$target"
|
|
63
|
+
|
|
64
|
+
if [ -e "$target" ] && [ ! -L "$target" ]; then
|
|
65
|
+
log_warn "Skipping ${PREFIX}${name}: a non-symlink already exists at $target"
|
|
66
|
+
continue
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
ln -sf "$skill_dir" "$target"
|
|
70
|
+
count=$((count + 1))
|
|
71
|
+
done
|
|
72
|
+
log_success "Installed $count skills (prefix: ${PREFIX})"
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
install_agents() {
|
|
76
|
+
local count=0
|
|
77
|
+
for agent_file in "$DESIGN_AI_ROOT"/agents/*.md; do
|
|
78
|
+
[ -f "$agent_file" ] || continue
|
|
79
|
+
local base; base=$(basename "$agent_file")
|
|
80
|
+
[ "$base" = "README.md" ] && continue
|
|
81
|
+
|
|
82
|
+
local target="$AGENTS_DIR/${PREFIX}${base}"
|
|
83
|
+
[ -L "$target" ] && rm "$target"
|
|
84
|
+
|
|
85
|
+
if [ -e "$target" ] && [ ! -L "$target" ]; then
|
|
86
|
+
log_warn "Skipping ${PREFIX}${base}: a non-symlink already exists at $target"
|
|
87
|
+
continue
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
ln -sf "$agent_file" "$target"
|
|
91
|
+
count=$((count + 1))
|
|
92
|
+
done
|
|
93
|
+
log_success "Installed $count agents (prefix: ${PREFIX})"
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
install_commands() {
|
|
97
|
+
local count=0
|
|
98
|
+
for cmd_file in "$DESIGN_AI_ROOT"/commands/*.md; do
|
|
99
|
+
[ -f "$cmd_file" ] || continue
|
|
100
|
+
local base; base=$(basename "$cmd_file")
|
|
101
|
+
[ "$base" = "README.md" ] && continue
|
|
102
|
+
|
|
103
|
+
local target="$COMMANDS_DIR/${PREFIX}${base}"
|
|
104
|
+
[ -L "$target" ] && rm "$target"
|
|
105
|
+
|
|
106
|
+
if [ -e "$target" ] && [ ! -L "$target" ]; then
|
|
107
|
+
log_warn "Skipping ${PREFIX}${base}: a non-symlink already exists at $target"
|
|
108
|
+
continue
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
ln -sf "$cmd_file" "$target"
|
|
112
|
+
count=$((count + 1))
|
|
113
|
+
done
|
|
114
|
+
log_success "Installed $count slash commands (prefix: /${PREFIX})"
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
uninstall() {
|
|
118
|
+
print_header
|
|
119
|
+
log_info "Uninstalling design-ai from $CLAUDE_HOME"
|
|
120
|
+
local count=0
|
|
121
|
+
|
|
122
|
+
for dir in "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"; do
|
|
123
|
+
[ -d "$dir" ] || continue
|
|
124
|
+
while IFS= read -r -d '' link; do
|
|
125
|
+
local target_path
|
|
126
|
+
target_path=$(readlink "$link" 2>/dev/null || true)
|
|
127
|
+
if [[ "$target_path" == "$DESIGN_AI_ROOT"* ]]; then
|
|
128
|
+
rm "$link"
|
|
129
|
+
count=$((count + 1))
|
|
130
|
+
fi
|
|
131
|
+
done < <(find "$dir" -maxdepth 1 -type l -print0)
|
|
132
|
+
done
|
|
133
|
+
|
|
134
|
+
log_success "Removed $count design-ai symlinks"
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
status() {
|
|
138
|
+
print_header
|
|
139
|
+
log_info "design-ai source: $DESIGN_AI_ROOT"
|
|
140
|
+
log_info "Claude Code home: $CLAUDE_HOME"
|
|
141
|
+
log_info "Symlink prefix: ${PREFIX}"
|
|
142
|
+
echo
|
|
143
|
+
|
|
144
|
+
for dir in "$SKILLS_DIR" "$AGENTS_DIR" "$COMMANDS_DIR"; do
|
|
145
|
+
[ -d "$dir" ] || { log_warn "$dir does not exist"; continue; }
|
|
146
|
+
local kind; kind=$(basename "$dir")
|
|
147
|
+
local count=0
|
|
148
|
+
while IFS= read -r -d '' link; do
|
|
149
|
+
local target_path
|
|
150
|
+
target_path=$(readlink "$link" 2>/dev/null || true)
|
|
151
|
+
if [[ "$target_path" == "$DESIGN_AI_ROOT"* ]]; then
|
|
152
|
+
count=$((count + 1))
|
|
153
|
+
fi
|
|
154
|
+
done < <(find "$dir" -maxdepth 1 -type l -print0)
|
|
155
|
+
log_success "$kind: $count installed"
|
|
156
|
+
done
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
main() {
|
|
160
|
+
case "${1:-install}" in
|
|
161
|
+
--uninstall|uninstall)
|
|
162
|
+
uninstall
|
|
163
|
+
;;
|
|
164
|
+
--status|status)
|
|
165
|
+
status
|
|
166
|
+
;;
|
|
167
|
+
--help|-h|help)
|
|
168
|
+
sed -n '2,12p' "$0" | sed 's/^# \?//'
|
|
169
|
+
;;
|
|
170
|
+
install|*)
|
|
171
|
+
print_header
|
|
172
|
+
log_info "Installing from: $DESIGN_AI_ROOT"
|
|
173
|
+
log_info "Target: $CLAUDE_HOME"
|
|
174
|
+
log_info "Symlink prefix: ${PREFIX}"
|
|
175
|
+
echo
|
|
176
|
+
ensure_dirs
|
|
177
|
+
install_skills
|
|
178
|
+
install_agents
|
|
179
|
+
install_commands
|
|
180
|
+
echo
|
|
181
|
+
log_success "Done. Restart Claude Code (or open a new session) to pick up changes."
|
|
182
|
+
log_info "Try: ${PREFIX}component-spec, ${PREFIX}motion-design, ${PREFIX}spatial"
|
|
183
|
+
log_info "Override prefix: DESIGN_AI_PREFIX=mydesign- ./install.sh"
|
|
184
|
+
log_info "Override target: CLAUDE_HOME=/some/dir ./install.sh"
|
|
185
|
+
;;
|
|
186
|
+
esac
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
main "$@"
|