@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,203 @@
|
|
|
1
|
+
# 기여 가이드
|
|
2
|
+
|
|
3
|
+
design-ai 프로젝트에 기여하는 방법이에요. 코드 / 지식 파일 / 스킬 / 번역 어떤 형태로든 환영해요.
|
|
4
|
+
|
|
5
|
+
## 새 소스 레포 추가하기
|
|
6
|
+
|
|
7
|
+
1. `refs/`에 sparse clone으로 추가:
|
|
8
|
+
```bash
|
|
9
|
+
git clone --depth 1 --filter=blob:none --sparse https://github.com/<org>/<repo>.git refs/<name>
|
|
10
|
+
git -C refs/<name> sparse-checkout init --cone
|
|
11
|
+
git -C refs/<name> sparse-checkout set <필요한 디렉토리만>
|
|
12
|
+
```
|
|
13
|
+
2. `README.md`의 표에 추가하세요.
|
|
14
|
+
3. `tools/extractors/<source>.py`에 추출기를 작성하거나 갱신하세요.
|
|
15
|
+
4. `./tools/extractors/run-all.sh` 실행.
|
|
16
|
+
5. `knowledge/`의 생성 결과가 새 소스를 인용하는지 확인하세요.
|
|
17
|
+
|
|
18
|
+
## 새 스킬 추가하기
|
|
19
|
+
|
|
20
|
+
1. `skills/<skill-name>/` 디렉토리 생성.
|
|
21
|
+
2. `PLAYBOOK.md` 작성 — 단계별 프로세스.
|
|
22
|
+
3. `SKILL.md` 작성 — 같은 내용에 frontmatter 추가:
|
|
23
|
+
```markdown
|
|
24
|
+
---
|
|
25
|
+
name: <skill-name>
|
|
26
|
+
description: <한 문장 — 트리거 조건>
|
|
27
|
+
---
|
|
28
|
+
```
|
|
29
|
+
4. 스킬이 구조화된 산출물을 만든다면 `TEMPLATE.md` 작성.
|
|
30
|
+
5. `skills/<skill-name>/examples/`에 워크드 예제 추가.
|
|
31
|
+
6. `skills/README.md` 인덱스 갱신.
|
|
32
|
+
7. **검증 단계 (verification phase)** 필수 — PLAYBOOK 끝에 결과물 체크리스트 작성.
|
|
33
|
+
|
|
34
|
+
## 새 에이전트 페르소나 추가하기
|
|
35
|
+
|
|
36
|
+
1. `agents/<persona>.md` 생성, frontmatter 포함:
|
|
37
|
+
```markdown
|
|
38
|
+
---
|
|
39
|
+
name: <persona>
|
|
40
|
+
description: <언제 호출할지>
|
|
41
|
+
tools: [Read, Grep, Glob]
|
|
42
|
+
---
|
|
43
|
+
```
|
|
44
|
+
2. 본문: 페르소나 설명, 범위, 출력 형식.
|
|
45
|
+
3. `agents/README.md` 인덱스 갱신.
|
|
46
|
+
|
|
47
|
+
## 슬래시 커맨드 추가하기
|
|
48
|
+
|
|
49
|
+
1. `commands/<name>.md` 생성, frontmatter 포함:
|
|
50
|
+
```markdown
|
|
51
|
+
---
|
|
52
|
+
description: </name이 하는 일>
|
|
53
|
+
---
|
|
54
|
+
```
|
|
55
|
+
2. 본문: 커맨드가 확장될 프롬프트 템플릿.
|
|
56
|
+
3. `commands/README.md` 인덱스 갱신.
|
|
57
|
+
|
|
58
|
+
## 지식 파일 편집하기
|
|
59
|
+
|
|
60
|
+
- **생성된 파일**: 추출기를 편집하고 재실행하세요. 출력을 손으로 직접 편집하면 안 돼요.
|
|
61
|
+
- **핸드라이팅 파일**: 본문 상단에 반드시 `<!-- hand-written -->`을 포함해야 해요.
|
|
62
|
+
- **혼합 파일**: 허용 안 됨. 생성 + 핸드라이팅 두 개로 분리하고 상호 링크하세요.
|
|
63
|
+
|
|
64
|
+
### 버전 메타데이터 (v3.11+)
|
|
65
|
+
|
|
66
|
+
모든 지식 파일에는 버전 정보가 포함돼야 해요:
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
---
|
|
70
|
+
title: <제목>
|
|
71
|
+
applies_to: [<태그>]
|
|
72
|
+
version: 1.0.0
|
|
73
|
+
last_updated: 2026-05
|
|
74
|
+
stability: stable
|
|
75
|
+
---
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- `version`: semver 형식 (`1.0.0`, `1.2.3-beta`).
|
|
79
|
+
- `last_updated`: `YYYY-MM` 또는 `YYYY-MM-DD`. 내용을 수정할 때마다 갱신.
|
|
80
|
+
- `stability`: `stable` / `beta` / `experimental` / `deprecated` 중 하나.
|
|
81
|
+
|
|
82
|
+
새 파일은 보통 `version: 1.0.0`, `stability: stable`로 시작해요. 활발히 변경 중인 내용이면 `stability: experimental`로 표시하세요.
|
|
83
|
+
|
|
84
|
+
## 인용 규칙
|
|
85
|
+
|
|
86
|
+
지식 파일이 업스트림 소스를 참조할 때:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
---
|
|
90
|
+
source: refs/ant-design/components/button/Button.tsx
|
|
91
|
+
extracted_at: 2026-05-07
|
|
92
|
+
---
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
여러 소스를 합치는 파일은 리스트로:
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
sources:
|
|
99
|
+
- refs/ant-design/components/button/Button.tsx
|
|
100
|
+
- refs/mui/packages/mui-material/src/Button/Button.js
|
|
101
|
+
- refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/button.tsx
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 스타일
|
|
105
|
+
|
|
106
|
+
- **마크다운 우선** — 산문보다 구조화된 마크다운.
|
|
107
|
+
- **비교는 표로** — 어떤 비교든 표 형식이 더 읽기 쉬워요.
|
|
108
|
+
- **코드 블록에 언어 태그** (`json`, `tsx`, `css`, `bash`).
|
|
109
|
+
- **로컬 파일 링크는 상대 경로**.
|
|
110
|
+
- **업스트림 링크는 GitHub canonical URL** (로컬 `refs/`는 wiped될 수 있어서 깨질 수 있어요).
|
|
111
|
+
|
|
112
|
+
## 한국어 콘텐츠 기여
|
|
113
|
+
|
|
114
|
+
한국어 번역 / 콘텐츠 추가도 환영해요.
|
|
115
|
+
|
|
116
|
+
### 톤 가이드
|
|
117
|
+
|
|
118
|
+
- **어댑터 / 사용자 대상**: 해요체 (친근, 일상). README.ko.md, USING.ko.md, integration walkthroughs 등.
|
|
119
|
+
- **법적 / 규정 / 공식**: 합쇼체 (정중, 격식). 약관, 정책, 공시 관련.
|
|
120
|
+
- **기술 / 코드 옆**: 중립적 — 명령형 또는 설명형. ARCHITECTURE.ko.md, 추출기 주석 등.
|
|
121
|
+
|
|
122
|
+
### 번역 원칙
|
|
123
|
+
|
|
124
|
+
- **직역 거부**. 자연스러운 한국어 우선.
|
|
125
|
+
- **영어 기술 용어**는 그대로 두는 게 자연스러우면 그대로 (예: "API", "frontmatter", "schema").
|
|
126
|
+
- **한국 브랜드 / 컨벤션**은 한국어 유지 (Toss, KakaoPay, 카카오톡, 네이버, Pretendard).
|
|
127
|
+
- **코드 블록 / 명령어**는 보통 영문 그대로.
|
|
128
|
+
- **검증**: `tools/audit/korean-copy-check.py`로 영어 UI 문구가 한국어 파일에 섞여 있지 않은지 확인.
|
|
129
|
+
|
|
130
|
+
### 한국어 파일 명명 규칙
|
|
131
|
+
|
|
132
|
+
- 영문 원본이 `FILE.md`면 한국어는 `FILE.ko.md`.
|
|
133
|
+
- 한국어 전용 지식 파일 (예: `korean-payments.md`)은 영문 파일명에 한국 컨벤션 내용을 한국어로 (혼용 OK).
|
|
134
|
+
|
|
135
|
+
## 감사 (Audits)
|
|
136
|
+
|
|
137
|
+
PR을 올리기 전에 8개 감사를 모두 통과해야 해요. 보통은 통합 명령을 먼저 실행하세요:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
npm run audit:strict
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
개별 감사는 다음 8개예요:
|
|
144
|
+
|
|
145
|
+
| # | 스크립트 | 목적 |
|
|
146
|
+
| --- | --- | --- |
|
|
147
|
+
| 1 | `frontmatter-check.py` | YAML frontmatter 유효성 + 버전 필드 형식 |
|
|
148
|
+
| 2 | `link-check.py` | 내부 링크 해석 |
|
|
149
|
+
| 3 | `korean-copy-check.py` | 한국어 voice / register / typography |
|
|
150
|
+
| 4 | `raw-hex-check.py` | 예제 파일의 raw hex 색상 위생 |
|
|
151
|
+
| 5 | `integration-check.py` | 통합 워크스루 완전성 |
|
|
152
|
+
| 6 | `stale-check.py` | 지식 신선도 (`last_updated` 임계값) |
|
|
153
|
+
| 7 | `check-coverage.py` | 컴포넌트 / 스킬 / 예제 커버리지 리포트 |
|
|
154
|
+
| 8 | `example-qa.py` | 라우트별 대표 worked example 품질 |
|
|
155
|
+
|
|
156
|
+
CI가 PR마다 자동으로 실행해요. 로컬에서 미리 돌리면 시간 절약돼요.
|
|
157
|
+
|
|
158
|
+
## Cross-source API reconciliation
|
|
159
|
+
|
|
160
|
+
Ant Design / MUI / shadcn-ui가 업데이트되면 component spec의 API가 업스트림과 어긋날 수 있어요. 먼저 짧은 summary로 위험도를 보고, 필요할 때만 전체 report를 열어보세요:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 빠른 분기 리뷰 요약
|
|
164
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source --summary-only
|
|
165
|
+
|
|
166
|
+
# 전체 conflict report
|
|
167
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source > /tmp/conflicts.md
|
|
168
|
+
|
|
169
|
+
# 단일 컴포넌트 reconciliation proposal
|
|
170
|
+
python3 tools/extractors/component_spec_reconcile.py --name button
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
우선순위는 `CRITICAL` / `HIGH`부터예요. `LOW`는 대부분 library-specific prop이라 바로 수정 대상은 아니고, 실제 design-system API에 필요한지 판단하면 돼요.
|
|
174
|
+
|
|
175
|
+
## 커밋 메시지
|
|
176
|
+
|
|
177
|
+
[Conventional Commits](https://www.conventionalcommits.org/) 형식을 따라요:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
<type>: <description>
|
|
181
|
+
|
|
182
|
+
<optional body>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
타입: `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, `perf`, `ci`.
|
|
186
|
+
|
|
187
|
+
## PR 워크플로
|
|
188
|
+
|
|
189
|
+
1. 새 브랜치 생성 (`feat/<feature-name>` 또는 `fix/<issue>`).
|
|
190
|
+
2. 변경사항 작성 + 8개 감사 통과 확인.
|
|
191
|
+
3. 커밋 (Conventional Commits).
|
|
192
|
+
4. PR 생성 — 변경 요약 + 테스트 플랜 포함.
|
|
193
|
+
5. CI 통과 확인.
|
|
194
|
+
6. 리뷰 요청.
|
|
195
|
+
|
|
196
|
+
자세한 PR 형식은 영문 [`CONTRIBUTING.md`](CONTRIBUTING.md)와 [`AGENTS.md`](../AGENTS.md)를 참고하세요.
|
|
197
|
+
|
|
198
|
+
## 참고 문서
|
|
199
|
+
|
|
200
|
+
- [`AGENTS.ko.md`](../AGENTS.ko.md) — 에이전트 진입점
|
|
201
|
+
- [`docs/ARCHITECTURE.ko.md`](ARCHITECTURE.ko.md) — 시스템 구조
|
|
202
|
+
- [`docs/USING.ko.md`](USING.ko.md) — 사용자 가이드
|
|
203
|
+
- [`docs/RELEASE-CHECKLIST.md`](RELEASE-CHECKLIST.md) — 릴리스 의식
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
## Adding a new source repo
|
|
4
|
+
|
|
5
|
+
1. Add to `refs/` via sparse clone:
|
|
6
|
+
```bash
|
|
7
|
+
git clone --depth 1 --filter=blob:none --sparse https://github.com/<org>/<repo>.git refs/<name>
|
|
8
|
+
git -C refs/<name> sparse-checkout init --cone
|
|
9
|
+
git -C refs/<name> sparse-checkout set <only the dirs you need>
|
|
10
|
+
```
|
|
11
|
+
2. Add it to the table in `README.md`.
|
|
12
|
+
3. Write or update an extractor in `tools/extractors/<source>.py`.
|
|
13
|
+
4. Run `./tools/extractors/run-all.sh`.
|
|
14
|
+
5. Verify generated files in `knowledge/` cite the new source.
|
|
15
|
+
|
|
16
|
+
## Adding a new skill
|
|
17
|
+
|
|
18
|
+
1. Create `skills/<skill-name>/`.
|
|
19
|
+
2. Author `PLAYBOOK.md` with the step-by-step process.
|
|
20
|
+
3. Author `SKILL.md` — same content, with frontmatter:
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
name: <skill-name>
|
|
24
|
+
description: <one sentence — the trigger condition>
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
4. Author `TEMPLATE.md` if the skill produces a structured artifact.
|
|
28
|
+
5. Add a worked example in `skills/<skill-name>/examples/`.
|
|
29
|
+
6. Update `skills/README.md` index.
|
|
30
|
+
|
|
31
|
+
## Adding a new agent persona
|
|
32
|
+
|
|
33
|
+
1. Create `agents/<persona>.md` with frontmatter:
|
|
34
|
+
```markdown
|
|
35
|
+
---
|
|
36
|
+
name: <persona>
|
|
37
|
+
description: <when to spawn>
|
|
38
|
+
tools: [Read, Grep, Glob]
|
|
39
|
+
---
|
|
40
|
+
```
|
|
41
|
+
2. Body: persona description, scope, output format.
|
|
42
|
+
3. Update `agents/README.md` index.
|
|
43
|
+
|
|
44
|
+
## Adding a slash command
|
|
45
|
+
|
|
46
|
+
1. Create `commands/<name>.md` with frontmatter:
|
|
47
|
+
```markdown
|
|
48
|
+
---
|
|
49
|
+
description: <what /name does>
|
|
50
|
+
---
|
|
51
|
+
```
|
|
52
|
+
2. Body: the prompt template the command expands to.
|
|
53
|
+
3. Update `commands/README.md` index.
|
|
54
|
+
|
|
55
|
+
## Editing knowledge files
|
|
56
|
+
|
|
57
|
+
- Generated files: edit the extractor, re-run, do not edit output by hand.
|
|
58
|
+
- Hand-written files: must include `<!-- hand-written -->` at the top of the body.
|
|
59
|
+
- Mixed files: not allowed. Split into one generated + one hand-written file with cross-links.
|
|
60
|
+
|
|
61
|
+
## Citation rules
|
|
62
|
+
|
|
63
|
+
When a knowledge file references upstream source:
|
|
64
|
+
```markdown
|
|
65
|
+
---
|
|
66
|
+
source: refs/ant-design/components/button/Button.tsx
|
|
67
|
+
extracted_at: 2026-05-07
|
|
68
|
+
---
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Multi-source files use a list:
|
|
72
|
+
```yaml
|
|
73
|
+
sources:
|
|
74
|
+
- refs/ant-design/components/button/Button.tsx
|
|
75
|
+
- refs/mui/packages/mui-material/src/Button/Button.js
|
|
76
|
+
- refs/shadcn-ui/apps/v4/registry/new-york-v4/ui/button.tsx
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Quarterly stability review
|
|
80
|
+
|
|
81
|
+
Operationalized in v4.6. Run quarterly (March / June / September / December — or per-major) to keep knowledge fresh and stability levels honest.
|
|
82
|
+
|
|
83
|
+
### Step 1 — Generate the report
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python3 tools/audit/stability-review.py --output docs/STABILITY-REVIEW.md
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
This produces a markdown report with sections:
|
|
90
|
+
- **Summary table** — counts by stability level, oldest file per level.
|
|
91
|
+
- **experimental → stable promotion candidates** — files that held up ≥ 6 months.
|
|
92
|
+
- **beta → stable promotion candidates** — files that held up ≥ 3 months.
|
|
93
|
+
- **Stable files due for re-review** — `last_updated ≥ 12 months ago`.
|
|
94
|
+
- **Deprecated files** — confirm removal plan.
|
|
95
|
+
- **Files without `stability`** — add the metadata.
|
|
96
|
+
|
|
97
|
+
### Step 2 — Walk the report
|
|
98
|
+
|
|
99
|
+
For each section, decide per file:
|
|
100
|
+
- Still accurate? → Bump `last_updated`.
|
|
101
|
+
- Needs revision? → Edit + bump.
|
|
102
|
+
- Obsolete? → Mark `stability: deprecated` and add a deprecation note.
|
|
103
|
+
- Promotion candidate confirmed? → Promote.
|
|
104
|
+
|
|
105
|
+
### Step 3 — Apply changes via the bulk tools
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Bulk bump last_updated for files that are still accurate
|
|
109
|
+
python3 tools/migrations/bump-last-updated.py knowledge/a11y/contrast.md knowledge/a11y/keyboard-and-focus.md
|
|
110
|
+
|
|
111
|
+
# Promote experimental → stable (verifies current level matches --from)
|
|
112
|
+
python3 tools/migrations/promote-stability.py --from experimental --to stable knowledge/foo.md knowledge/bar.md
|
|
113
|
+
|
|
114
|
+
# Demote stable → deprecated when superseded (rare)
|
|
115
|
+
python3 tools/migrations/promote-stability.py --from stable --to deprecated knowledge/old-pattern.md
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Both tools support `--dry-run` and write atomically (temp + rename).
|
|
119
|
+
|
|
120
|
+
### Step 4 — Document outcome
|
|
121
|
+
|
|
122
|
+
Add a section to the next minor release in `CHANGELOG.md`:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
### Stability review (Q3 2026)
|
|
126
|
+
- Promoted to stable: knowledge/foo.md, knowledge/bar.md
|
|
127
|
+
- Demoted to deprecated: knowledge/old-pattern.md
|
|
128
|
+
- Reviewed + bumped: 12 files
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Step 5 — Commit + close
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
git add knowledge/ docs/STABILITY-REVIEW.md CHANGELOG.md
|
|
135
|
+
git commit -m "chore: quarterly stability review (Q3 2026)"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The `STABILITY-REVIEW.md` file is per-quarter — keep the latest one in `docs/` so contributors can see the most-recent decision history.
|
|
139
|
+
|
|
140
|
+
### Slash command
|
|
141
|
+
|
|
142
|
+
In Claude Code:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
/stability-review
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Runs the report-generation step + summarizes the candidates inline.
|
|
149
|
+
|
|
150
|
+
## Cross-source API reconciliation (when adopting upstream changes)
|
|
151
|
+
|
|
152
|
+
When upstream design systems (Ant / MUI / shadcn) ship new versions, our component specs may drift from the canonical APIs. Two tools surface and resolve the drift.
|
|
153
|
+
|
|
154
|
+
### 1. Detect drift — `component_spec_conflict_check.py`
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# All multi-source canonicals (33 components currently)
|
|
158
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source
|
|
159
|
+
|
|
160
|
+
# Fast quarterly-review summary
|
|
161
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source --summary-only
|
|
162
|
+
|
|
163
|
+
# Single component
|
|
164
|
+
python3 tools/extractors/component_spec_conflict_check.py --name button
|
|
165
|
+
|
|
166
|
+
# CI gating: exit 1 on HIGH/CRITICAL
|
|
167
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source --strict
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Severity:
|
|
171
|
+
- `CRITICAL` — same prop, incompatible types (e.g., `boolean` vs `unknown`)
|
|
172
|
+
- `HIGH` — deprecation drift across sources
|
|
173
|
+
- `MEDIUM` — type/default refinements
|
|
174
|
+
- `LOW` — prop only in one source
|
|
175
|
+
|
|
176
|
+
### 2. Propose unified API — `component_spec_reconcile.py`
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Generate reconciliation proposal
|
|
180
|
+
python3 tools/extractors/component_spec_reconcile.py --name button
|
|
181
|
+
|
|
182
|
+
# Bulk review session
|
|
183
|
+
python3 tools/extractors/component_spec_reconcile.py --multi-source
|
|
184
|
+
|
|
185
|
+
# JSON for tooling
|
|
186
|
+
python3 tools/extractors/component_spec_reconcile.py --name button --json
|
|
187
|
+
|
|
188
|
+
# Preview HIGH-confidence row updates without writing
|
|
189
|
+
python3 tools/extractors/component_spec_reconcile.py --name button --apply-high --dry-run
|
|
190
|
+
|
|
191
|
+
# Apply HIGH-confidence row updates for one component
|
|
192
|
+
python3 tools/extractors/component_spec_reconcile.py --name button --apply-high
|
|
193
|
+
|
|
194
|
+
# Bulk preview; add --force only after reviewing the dry-run output
|
|
195
|
+
python3 tools/extractors/component_spec_reconcile.py --multi-source --apply-high --dry-run
|
|
196
|
+
python3 tools/extractors/component_spec_reconcile.py --multi-source --apply-high --force
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Output groups proposals by confidence:
|
|
200
|
+
- **HIGH** — all sources agree; safe to auto-adopt.
|
|
201
|
+
- **MEDIUM** — review before adopt (e.g., library-specific prop, compatible refinement).
|
|
202
|
+
- **MANUAL** — incompatible types or no majority on default; human design call required.
|
|
203
|
+
|
|
204
|
+
`--apply-high` is deliberately narrow: it updates only existing rows in the spec's API table, preserving descriptions and narrative sections. It does not add missing props, does not apply MEDIUM/MANUAL proposals, and requires `--force` for multi-source writes.
|
|
205
|
+
|
|
206
|
+
For each prop, the proposal includes:
|
|
207
|
+
- Recommended type (most-specific compatible across sources).
|
|
208
|
+
- Recommended default (majority value).
|
|
209
|
+
- Recommended deprecation status (lean toward deprecated if any source deprecates).
|
|
210
|
+
- Migration note (when adoption requires care — deprecation timeline, library-specific exceptions).
|
|
211
|
+
|
|
212
|
+
### Workflow — quarterly upstream review
|
|
213
|
+
|
|
214
|
+
1. Pull latest `refs/`:
|
|
215
|
+
```bash
|
|
216
|
+
bash tools/clone-refs.sh
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
2. Detect drift:
|
|
220
|
+
```bash
|
|
221
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source --summary-only
|
|
222
|
+
python3 tools/extractors/component_spec_conflict_check.py --multi-source > /tmp/conflicts.md
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
3. For each component with HIGH/CRITICAL conflicts, generate proposal:
|
|
226
|
+
```bash
|
|
227
|
+
python3 tools/extractors/component_spec_reconcile.py --name <component>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
4. Review the MANUAL-confidence items first — they need design calls.
|
|
231
|
+
|
|
232
|
+
5. Apply safe HIGH-confidence rows with `--apply-high --dry-run`, then `--apply-high` for the reviewed component. Apply MEDIUM/MANUAL rows by hand: update API table, add migration notes, bump `last_updated`.
|
|
233
|
+
|
|
234
|
+
6. Document the upstream-review pass in CHANGELOG.
|
|
235
|
+
|
|
236
|
+
## Style
|
|
237
|
+
|
|
238
|
+
- Markdown over prose.
|
|
239
|
+
- Tables for any comparison.
|
|
240
|
+
- Code blocks tagged with language (`json`, `tsx`, `css`).
|
|
241
|
+
- Links to local files use relative paths.
|
|
242
|
+
- Links to upstream use the GitHub canonical URL, not local `refs/` (so docs survive if `refs/` is wiped).
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Cursor integration
|
|
2
|
+
|
|
3
|
+
How to use design-ai with **Cursor IDE** (AI-native editor with Claude/GPT models).
|
|
4
|
+
|
|
5
|
+
> **Looking for a worked example?** See [`docs/integrations/cursor-walkthrough.md`](integrations/cursor-walkthrough.md) — concrete sessions for spec'ing components, auditing existing code, iterating on Figma screenshots, generating tokens, and using `Cmd+K` inline edits.
|
|
6
|
+
|
|
7
|
+
## Quickstart
|
|
8
|
+
|
|
9
|
+
Two paths:
|
|
10
|
+
|
|
11
|
+
### A. Project-level rules (recommended)
|
|
12
|
+
|
|
13
|
+
Create `.cursorrules` in your **consuming project's** root (not in design-ai itself):
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
You are a senior product designer with 20+ years of experience.
|
|
17
|
+
|
|
18
|
+
For any design task:
|
|
19
|
+
1. Read the rules at /path/to/design-ai/AGENTS.md
|
|
20
|
+
2. Prime yourself with /path/to/design-ai/knowledge/PRINCIPLES.md
|
|
21
|
+
3. For specific tasks:
|
|
22
|
+
- Color palette: /path/to/design-ai/skills/color-palette/PLAYBOOK.md
|
|
23
|
+
- Component spec: /path/to/design-ai/skills/component-spec-writer/PLAYBOOK.md
|
|
24
|
+
- UX audit: /path/to/design-ai/skills/ux-audit/PLAYBOOK.md
|
|
25
|
+
- Design system: /path/to/design-ai/skills/design-system-builder/PLAYBOOK.md
|
|
26
|
+
- QA audit: /path/to/design-ai/skills/design-system-qa/PLAYBOOK.md
|
|
27
|
+
4. Cite knowledge files for every claim. Mark unsourced claims as "(judgment, not sourced)."
|
|
28
|
+
5. For colors, always include a contrast matrix.
|
|
29
|
+
6. For Korean content, apply rules in /path/to/design-ai/knowledge/i18n/.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Cursor auto-loads `.cursorrules` at chat start.
|
|
33
|
+
|
|
34
|
+
### B. Workspace context
|
|
35
|
+
|
|
36
|
+
Add design-ai as a workspace folder:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
File → Add Folder to Workspace → /path/to/design-ai
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Then reference design-ai files via `@` in Cursor:
|
|
43
|
+
- `@AGENTS.md`
|
|
44
|
+
- `@skills/color-palette/PLAYBOOK.md`
|
|
45
|
+
- `@knowledge/i18n/korean-typography.md`
|
|
46
|
+
|
|
47
|
+
Cursor's `@`-mention loads the file inline as context.
|
|
48
|
+
|
|
49
|
+
## Cursor-specific patterns
|
|
50
|
+
|
|
51
|
+
### Use `@docs` to feed knowledge
|
|
52
|
+
|
|
53
|
+
In Cursor, `@docs` lets you index external documentation. For design-ai:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Settings → Features → Docs → Add new doc
|
|
57
|
+
URL: https://github.com/your-org/design-ai
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
After indexing, `@design-ai` in chat searches across the entire knowledge base. Useful for finding "how do I handle Korean IME composition?" without knowing which file.
|
|
61
|
+
|
|
62
|
+
### Composer for multi-step tasks
|
|
63
|
+
|
|
64
|
+
Cursor's Composer is similar to Claude Code's Plan mode. For complex tasks:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Cmd+I → "Apply skills/design-system-builder/PLAYBOOK.md to a Korean fintech mobile app brief: [paragraph]"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Composer breaks it into steps and applies them sequentially.
|
|
71
|
+
|
|
72
|
+
### Inline edits with knowledge
|
|
73
|
+
|
|
74
|
+
When editing code (e.g., a component file), include design-ai knowledge:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Cmd+K → "Refactor this component per examples/component-button.md spec"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Cursor reads the spec and applies it to the open file.
|
|
81
|
+
|
|
82
|
+
## Configuration
|
|
83
|
+
|
|
84
|
+
### `.cursorrules` template
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
# Design-AI integration for [Project Name]
|
|
88
|
+
|
|
89
|
+
## Role
|
|
90
|
+
|
|
91
|
+
You are a senior product designer (20+ years) helping with this project's
|
|
92
|
+
UI/UX. The design-ai knowledge base at /path/to/design-ai is your
|
|
93
|
+
authoritative reference.
|
|
94
|
+
|
|
95
|
+
## Rules
|
|
96
|
+
|
|
97
|
+
1. **Always cite**: every design claim must reference a file in design-ai's
|
|
98
|
+
`knowledge/` directory. Mark unsourced claims as "(judgment, not sourced)."
|
|
99
|
+
|
|
100
|
+
2. **Prime first**: at the start of any design task, read
|
|
101
|
+
/path/to/design-ai/knowledge/PRINCIPLES.md.
|
|
102
|
+
|
|
103
|
+
3. **Skill-first**: before producing artifacts, open the relevant
|
|
104
|
+
/path/to/design-ai/skills/<skill>/PLAYBOOK.md and follow it.
|
|
105
|
+
|
|
106
|
+
4. **Color outputs require a contrast matrix.** Body text 4.5:1, UI 3:1.
|
|
107
|
+
Cite knowledge/a11y/contrast.md.
|
|
108
|
+
|
|
109
|
+
5. **Korean content**: apply knowledge/i18n/korean-typography.md (line-height
|
|
110
|
+
+10%, weight 600 for emphasis), korean-product-conventions.md (form
|
|
111
|
+
patterns), and korean-payments.md (if fintech).
|
|
112
|
+
|
|
113
|
+
6. **Component specs**: cite all 3 references (Ant/MUI/shadcn-ui from
|
|
114
|
+
refs/) and explain API choices in an "API choices made" section.
|
|
115
|
+
|
|
116
|
+
7. **Verification phase**: at the end of each artifact, run the verification
|
|
117
|
+
checklist from the relevant skill PLAYBOOK.
|
|
118
|
+
|
|
119
|
+
## Project context
|
|
120
|
+
|
|
121
|
+
- Stack: <your stack>
|
|
122
|
+
- Design system: <pointer to your tokens / Storybook>
|
|
123
|
+
- Locale: <ko / en / etc.>
|
|
124
|
+
- Density: <comfortable / compact>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Per-task `.cursor/` overrides
|
|
128
|
+
|
|
129
|
+
For task-specific rules, create files in `.cursor/`:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
.cursor/
|
|
133
|
+
├── rules-color-tasks.md # rules specific to palette work
|
|
134
|
+
├── rules-component-specs.md # rules for component spec authoring
|
|
135
|
+
└── rules-korean-only.md # Korean-specific rules
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Reference in chat: "Apply rules from `.cursor/rules-korean-only.md` to this task."
|
|
139
|
+
|
|
140
|
+
(Cursor's per-task rule loading is evolving; check the current version's docs.)
|
|
141
|
+
|
|
142
|
+
## Cursor vs Claude Code vs Codex CLI
|
|
143
|
+
|
|
144
|
+
| Scenario | Best tool |
|
|
145
|
+
| --- | --- |
|
|
146
|
+
| Quick edits to existing code with design context | Cursor (inline `Cmd+K`) |
|
|
147
|
+
| Long-running design system bootstrap | Claude Code (TodoWrite tracking) |
|
|
148
|
+
| Headless CI integration | Codex CLI |
|
|
149
|
+
| Working in an editor while iterating on design tokens | Cursor (composer + `@docs`) |
|
|
150
|
+
| Multi-agent parallel reviews | Claude Code (sub-agent spawning) |
|
|
151
|
+
| Reviewing a Figma file via MCP | Either Cursor or Claude Code (MCP support varies) |
|
|
152
|
+
|
|
153
|
+
For this project: **Cursor is excellent for "I'm coding the components"** workflow. Claude Code/Codex are better for "I'm authoring the design system docs."
|
|
154
|
+
|
|
155
|
+
## Token budget management
|
|
156
|
+
|
|
157
|
+
Cursor's chat context is limited per turn. Don't dump all of design-ai. Per task:
|
|
158
|
+
|
|
159
|
+
| Task | Files to `@` |
|
|
160
|
+
| --- | --- |
|
|
161
|
+
| Generate palette | `@AGENTS.md` `@knowledge/PRINCIPLES.md` `@skills/color-palette/PLAYBOOK.md` `@knowledge/colors/color-theory.md` |
|
|
162
|
+
| Spec a Button | `@AGENTS.md` `@skills/component-spec-writer/PLAYBOOK.md` `@knowledge/components/INDEX.md` `@examples/component-button.md` (as quality reference) |
|
|
163
|
+
| Audit a screen | `@AGENTS.md` `@skills/ux-audit/PLAYBOOK.md` `@knowledge/patterns/ux-guidelines.md` `@knowledge/a11y/contrast.md` |
|
|
164
|
+
|
|
165
|
+
Cursor's `@`-mention is more granular than Claude Code's auto-loading — use it.
|
|
166
|
+
|
|
167
|
+
## Cursor's MCP support
|
|
168
|
+
|
|
169
|
+
Cursor supports MCP servers as of mid-2025. Same configuration as Codex:
|
|
170
|
+
|
|
171
|
+
```jsonc
|
|
172
|
+
// ~/.cursor/mcp.json
|
|
173
|
+
{
|
|
174
|
+
"mcpServers": {
|
|
175
|
+
"figma": {
|
|
176
|
+
"command": "node",
|
|
177
|
+
"args": ["/path/to/figma-mcp-server"],
|
|
178
|
+
"env": {
|
|
179
|
+
"FIGMA_API_KEY": "your-key"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
After setup, Cursor can read Figma files via the MCP tools (`figma.get_metadata`, `figma.get_variables`, etc.). See [`docs/FIGMA-INTEGRATION.md`](FIGMA-INTEGRATION.md).
|
|
187
|
+
|
|
188
|
+
## Common Cursor pitfalls
|
|
189
|
+
|
|
190
|
+
| Pitfall | Fix |
|
|
191
|
+
| --- | --- |
|
|
192
|
+
| Cursor invents component APIs without checking refs/ | Add to `.cursorrules`: "Never invent APIs; always check refs/ant-design, refs/mui, refs/shadcn-ui." |
|
|
193
|
+
| Cursor's chat doesn't preserve PRINCIPLES across turns | Re-prime with `@knowledge/PRINCIPLES.md` per significant task. |
|
|
194
|
+
| Cursor outputs colors without contrast verification | Add explicit rule: "All color outputs include WCAG contrast values for text/UI pairs." |
|
|
195
|
+
| Cursor ignores Korean locale unless prompted | Specify in `.cursorrules`: "Default locale is Korean unless user states otherwise." |
|
|
196
|
+
|
|
197
|
+
## Worked example
|
|
198
|
+
|
|
199
|
+
**User in Cursor**:
|
|
200
|
+
```
|
|
201
|
+
@AGENTS.md @knowledge/PRINCIPLES.md @skills/color-palette/PLAYBOOK.md
|
|
202
|
+
Generate a teal-primary palette for a Korean B2C 가계부 app. Light + dark.
|
|
203
|
+
Output for Tailwind v4 + shadcn-ui CSS vars.
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Cursor**:
|
|
207
|
+
1. Reads the three referenced files.
|
|
208
|
+
2. Applies color-palette playbook.
|
|
209
|
+
3. Generates ramp from teal seed (per mood→hue mapping).
|
|
210
|
+
4. Validates contrast.
|
|
211
|
+
5. Outputs in requested formats.
|
|
212
|
+
6. Self-verifies via the playbook's verification phase.
|
|
213
|
+
|
|
214
|
+
## Cross-reference
|
|
215
|
+
|
|
216
|
+
- [`docs/USING.md`](USING.md) — multi-agent setup overview
|
|
217
|
+
- [`docs/CODEX-INTEGRATION.md`](CODEX-INTEGRATION.md) — Codex CLI deep-dive (similar patterns)
|
|
218
|
+
- [`docs/AIDER-INTEGRATION.md`](AIDER-INTEGRATION.md) — Aider configuration
|
|
219
|
+
- [`docs/FIGMA-INTEGRATION.md`](FIGMA-INTEGRATION.md) — Figma MCP setup
|
|
220
|
+
- [`AGENTS.md`](../AGENTS.md) — universal agent instructions
|