@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,146 @@
|
|
|
1
|
+
# design-broadcast — playbook
|
|
2
|
+
|
|
3
|
+
Distribute a design-ai artifact (palette, spec, audit report) to the team via Slack and/or Notion. When MCPs are connected, posts directly. Without MCP, generates pasteable formatted content.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- "Share this palette with the design team"
|
|
8
|
+
- "Post the audit findings to #design-system"
|
|
9
|
+
- "Add this spec to our Notion design library"
|
|
10
|
+
- After running other skills — broadcast their output.
|
|
11
|
+
|
|
12
|
+
## Inputs (ask if missing)
|
|
13
|
+
|
|
14
|
+
1. **Artifact**: the file or content to share.
|
|
15
|
+
2. **Channel(s)**: Slack channel name, Notion page/database, or both.
|
|
16
|
+
3. **Audience**: who should be tagged / notified?
|
|
17
|
+
|
|
18
|
+
## Steps
|
|
19
|
+
|
|
20
|
+
### 1. Detect available MCPs
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
slack_available = mcp__plugin_design_slack is connected
|
|
24
|
+
notion_available = mcp__864aac7f-...__notion-* is connected
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If neither: output formatted content the user can paste manually.
|
|
28
|
+
|
|
29
|
+
### 2. Determine artifact type
|
|
30
|
+
|
|
31
|
+
From the file name / content, identify:
|
|
32
|
+
|
|
33
|
+
| Artifact | Pattern |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Palette | `examples/palette-*.md` or content has token tables |
|
|
36
|
+
| Component spec | `examples/component-*.md` or content has anatomy + API sections |
|
|
37
|
+
| UX audit / design review | content has 🔴/🟠/🟡/🟢 severity sections |
|
|
38
|
+
| Design system bootstrap | `examples/dogfood-*.md` or content has foundations sections |
|
|
39
|
+
| Coverage report | `knowledge/COVERAGE.md` |
|
|
40
|
+
| Token diff / changelog | content has CHANGELOG-style format |
|
|
41
|
+
|
|
42
|
+
### 3. Compose audience-appropriate summary
|
|
43
|
+
|
|
44
|
+
Different audiences need different framings:
|
|
45
|
+
|
|
46
|
+
#### For #design Slack (designers)
|
|
47
|
+
|
|
48
|
+
- Visual focus.
|
|
49
|
+
- For palettes: include the preview image + key colors.
|
|
50
|
+
- For specs: link to source, summarize "what this is + key API decisions".
|
|
51
|
+
- For audits: "what we found + top recommendation".
|
|
52
|
+
|
|
53
|
+
#### For #frontend / #engineering Slack (developers)
|
|
54
|
+
|
|
55
|
+
- Code focus.
|
|
56
|
+
- For palettes: include the Tailwind config / CSS vars snippet.
|
|
57
|
+
- For specs: link to component reference + Code Connect manifest.
|
|
58
|
+
- For audits: severity + count + impact estimate.
|
|
59
|
+
|
|
60
|
+
#### For #design-system / #design-leadership
|
|
61
|
+
|
|
62
|
+
- Higher-level focus.
|
|
63
|
+
- Coverage stats, trend over time, what's blocking.
|
|
64
|
+
|
|
65
|
+
### 4. Format for the channel
|
|
66
|
+
|
|
67
|
+
#### Slack format (use Block Kit)
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
[
|
|
71
|
+
{ type: "header", text: { type: "plain_text", text: "🎨 New palette: B2C SaaS — violet" }},
|
|
72
|
+
{ type: "section", text: { type: "mrkdwn", text: "*Generated by design-ai* · Cited 4 knowledge files\n\nLight + dark, WCAG AA validated, Tailwind v4 + shadcn-ui formats." }},
|
|
73
|
+
{ type: "divider" },
|
|
74
|
+
{ type: "section", text: { type: "mrkdwn", text: "*Key tokens:*\n• Primary: `#7C3AED`\n• Accent: `#D97706`\n• Bg: `#FFFFFF`" }},
|
|
75
|
+
{ type: "actions", elements: [
|
|
76
|
+
{ type: "button", text: { type: "plain_text", text: "View full palette" }, url: "..." },
|
|
77
|
+
{ type: "button", text: { type: "plain_text", text: "Open Storybook" }, url: "..." },
|
|
78
|
+
]}
|
|
79
|
+
]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Cite [`docs/integrations/slack-mcp.md`](../../docs/integrations/slack-mcp.md) for Slack formatting rules (mrkdwn vs markdown).
|
|
83
|
+
|
|
84
|
+
#### Notion format
|
|
85
|
+
|
|
86
|
+
For "add to design library" pattern:
|
|
87
|
+
- Create a page in the Notion database.
|
|
88
|
+
- Convert markdown → Notion blocks (headings, lists, code blocks, tables).
|
|
89
|
+
- Add metadata properties: status, area (color/typography/component), date.
|
|
90
|
+
|
|
91
|
+
Cite [`docs/integrations/notion-mcp.md`](../../docs/integrations/notion-mcp.md) for the conversion rules.
|
|
92
|
+
|
|
93
|
+
### 5. Post (with confirmation)
|
|
94
|
+
|
|
95
|
+
Show the user the formatted content **before** posting:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
Agent: I'll post this to #design and create a Notion page in the Design System
|
|
99
|
+
database. Confirm? [yes/no/edit]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
User approves → execute via MCP.
|
|
103
|
+
|
|
104
|
+
### 6. Without MCP — output for manual paste
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
=== Slack message (paste into #design) ===
|
|
108
|
+
[formatted text or copy-pasteable JSON for Block Kit Builder]
|
|
109
|
+
|
|
110
|
+
=== Notion page content (paste into Notion editor) ===
|
|
111
|
+
[markdown that Notion will partially-convert]
|
|
112
|
+
|
|
113
|
+
=== Confirmation that you posted? [user replies] ===
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 7. Confirm + log
|
|
117
|
+
|
|
118
|
+
After posting (if MCP available):
|
|
119
|
+
- Echo the URL of the Slack message and/or Notion page.
|
|
120
|
+
- Optionally: react to the Slack message with 🤖 to mark "posted by agent" (transparency).
|
|
121
|
+
|
|
122
|
+
## Verification phase (run before declaring done)
|
|
123
|
+
|
|
124
|
+
- [ ] Did I detect MCP availability before composing?
|
|
125
|
+
- [ ] Did I tailor the message to the audience (designer vs eng vs leadership)?
|
|
126
|
+
- [ ] For Slack: did I use Block Kit (not plain text) for richer formatting?
|
|
127
|
+
- [ ] For Notion: did I convert markdown to blocks correctly?
|
|
128
|
+
- [ ] Did I show the user the message **before** posting?
|
|
129
|
+
- [ ] Did I include source links (knowledge files, examples) for credibility?
|
|
130
|
+
- [ ] Did I avoid leaking sensitive content (Figma file URLs, internal customer data) to public channels?
|
|
131
|
+
|
|
132
|
+
## Source files this skill reads
|
|
133
|
+
|
|
134
|
+
- [`docs/integrations/slack-mcp.md`](../../docs/integrations/slack-mcp.md) — Slack format rules
|
|
135
|
+
- [`docs/integrations/notion-mcp.md`](../../docs/integrations/notion-mcp.md) — Notion conversion
|
|
136
|
+
- [`docs/MCP-INTEGRATION.md`](../../docs/MCP-INTEGRATION.md) — MCP overview
|
|
137
|
+
- [`knowledge/i18n/korean-product-conventions.md`](../../knowledge/i18n/korean-product-conventions.md) — Korean tone for KR-team channels
|
|
138
|
+
|
|
139
|
+
## Done when
|
|
140
|
+
|
|
141
|
+
- Artifact posted (or formatted output ready for paste).
|
|
142
|
+
- Audience-appropriate summary composed.
|
|
143
|
+
- User explicitly confirmed before posting.
|
|
144
|
+
- URL of posted content output for the user's reference.
|
|
145
|
+
- Sensitive content checked + not leaked.
|
|
146
|
+
- Verification phase passes.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-broadcast
|
|
3
|
+
description: Distribute a design-ai artifact (palette, spec, audit) via Slack and/or Notion MCPs. Composes audience-appropriate summaries, formats with Slack Block Kit / Notion blocks, requires user confirmation before posting. Falls back to formatted output for manual paste when MCPs unavailable.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
See [PLAYBOOK.md](PLAYBOOK.md).
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# design-critique — playbook
|
|
2
|
+
|
|
3
|
+
Senior-designer feedback on a design proposal. Different from `ux-audit`: critique speaks to **craft, hierarchy, and decisions** — not just bugs and a11y.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- "What do you think of this design?"
|
|
8
|
+
- "Critique this mockup before I share with the team."
|
|
9
|
+
- "Is this hero working?"
|
|
10
|
+
|
|
11
|
+
## Inputs (ask if missing)
|
|
12
|
+
|
|
13
|
+
1. **Artifact** — image, Figma link, live page.
|
|
14
|
+
2. **The decision being made** — "I'm trying to pick between layout A and B" vs. "is this ready to ship?".
|
|
15
|
+
3. **Audience** — who sees this?
|
|
16
|
+
4. **Constraints** — brand guidelines, technical limitations, deadline.
|
|
17
|
+
|
|
18
|
+
## How to critique
|
|
19
|
+
|
|
20
|
+
A senior critique has four levels. Always cover all four, in order:
|
|
21
|
+
|
|
22
|
+
### 1. Did this solve the problem?
|
|
23
|
+
|
|
24
|
+
Before any visual feedback, name the problem and ask whether the design solves it. If not, the visual critique doesn't matter yet.
|
|
25
|
+
|
|
26
|
+
> "The goal here is helping new users find the import flow. The hero CTA labeled 'Get started' doesn't communicate that. Without seeing the import path emphasized somewhere on this page, the design doesn't yet meet its goal — even though the visual execution is strong."
|
|
27
|
+
|
|
28
|
+
### 2. Hierarchy — does the eye go where it should?
|
|
29
|
+
|
|
30
|
+
The single most-used senior-designer move is **hierarchy critique**. Walk the artifact in **scanning order**:
|
|
31
|
+
|
|
32
|
+
1. What does the eye land on first? (Should be the primary message or action.)
|
|
33
|
+
2. Second?
|
|
34
|
+
3. Third?
|
|
35
|
+
|
|
36
|
+
If a designer's intended primary is not the actual visual primary, that's the lead with the critique.
|
|
37
|
+
|
|
38
|
+
Drivers of hierarchy:
|
|
39
|
+
- Size (largest wins).
|
|
40
|
+
- Weight (boldest wins).
|
|
41
|
+
- Color contrast (most-contrast wins).
|
|
42
|
+
- Whitespace (most-isolated wins).
|
|
43
|
+
- Position (top-left in LTR, top-right in RTL).
|
|
44
|
+
- Motion (moving wins, but is fatiguing).
|
|
45
|
+
|
|
46
|
+
### 3. Craft — is the execution at the level of the bar?
|
|
47
|
+
|
|
48
|
+
| Aspect | What to check |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| **Spacing** | Is everything on a 4-px grid? Are gaps between unrelated elements visibly larger than gaps between related ones? |
|
|
51
|
+
| **Alignment** | Optical center vs mathematical center for icons, asymmetric shapes. |
|
|
52
|
+
| **Type** | Are the type sizes from a scale? Line heights tuned? No widows/orphans on important headlines? |
|
|
53
|
+
| **Color use** | Is one color dominant, one accent, neutrals doing the rest? Or is it 5 brand colors competing? |
|
|
54
|
+
| **Iconography** | Same stroke weight, same corner radius, same fill style? |
|
|
55
|
+
| **Density** | Right for the audience? Power users prefer dense; new users prefer breathing room. |
|
|
56
|
+
| **Polish** | Hover states designed? Empty states designed? Loading designed? |
|
|
57
|
+
|
|
58
|
+
### 4. Tradeoffs — what was given up?
|
|
59
|
+
|
|
60
|
+
Every design choice gives something up. Name it. This is what separates a critique from a takedown:
|
|
61
|
+
|
|
62
|
+
> "By making the hero illustration full-bleed, you're trading off the ability to communicate the value prop in the same scroll. That's the right call for a brand-led page. If you want this to also drive activation, the prop needs to live in the next scroll within reach of the fold."
|
|
63
|
+
|
|
64
|
+
### 5. The single recommendation
|
|
65
|
+
|
|
66
|
+
End every critique with **one** recommendation. Not three, not five. The most important thing.
|
|
67
|
+
|
|
68
|
+
> "Top recommendation: pull 'Sign up free' out of the secondary nav and make it the hero CTA. Everything else can stay."
|
|
69
|
+
|
|
70
|
+
## Output format
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
# Critique: <artifact>
|
|
74
|
+
|
|
75
|
+
> Decision being made: <one sentence>
|
|
76
|
+
> Audience: <one sentence>
|
|
77
|
+
|
|
78
|
+
## What this design does well
|
|
79
|
+
<2–3 bullets, specific and earned. Not "looks great". "The spacing rhythm in the feature grid is consistent and gives each card breathing room.">
|
|
80
|
+
|
|
81
|
+
## Did this solve the problem?
|
|
82
|
+
<answer the named problem head-on>
|
|
83
|
+
|
|
84
|
+
## Hierarchy walk
|
|
85
|
+
1. <what the eye lands on first>
|
|
86
|
+
2. <second>
|
|
87
|
+
3. <third>
|
|
88
|
+
|
|
89
|
+
<If misaligned with intent, name it.>
|
|
90
|
+
|
|
91
|
+
## Craft notes
|
|
92
|
+
- <observation>
|
|
93
|
+
- <observation>
|
|
94
|
+
|
|
95
|
+
## Tradeoffs accepted
|
|
96
|
+
- <named tradeoff with rationale>
|
|
97
|
+
|
|
98
|
+
## Top recommendation
|
|
99
|
+
<one sentence>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Tone
|
|
103
|
+
|
|
104
|
+
- Specific over vague. "The CTA is hard to find" → "The CTA's blue blends with the link colors above it; consider a primary button style or a hue shift."
|
|
105
|
+
- Critique the decision, not the designer.
|
|
106
|
+
- Praise what works, before what doesn't.
|
|
107
|
+
- One recommendation, not a wishlist.
|
|
108
|
+
- Avoid jargon a non-designer can't follow without context.
|
|
109
|
+
|
|
110
|
+
## Source files this skill reads
|
|
111
|
+
|
|
112
|
+
- [`knowledge/patterns/ux-guidelines.md`](../../knowledge/patterns/ux-guidelines.md)
|
|
113
|
+
- [`knowledge/patterns/styles-catalog.md`](../../knowledge/patterns/styles-catalog.md)
|
|
114
|
+
- [`knowledge/colors/color-theory.md`](../../knowledge/colors/color-theory.md)
|
|
115
|
+
- [`knowledge/typography/type-scale-fundamentals.md`](../../knowledge/typography/type-scale-fundamentals.md)
|
|
116
|
+
- [`knowledge/layout/spacing-and-grid.md`](../../knowledge/layout/spacing-and-grid.md)
|
|
117
|
+
- [`knowledge/patterns/brand-references.md`](../../knowledge/patterns/brand-references.md) — for compare/contrast with peer brands.
|
|
118
|
+
- [`knowledge/patterns/ui-reasoning.md`](../../knowledge/patterns/ui-reasoning.md) — category-level expectations vs the design
|
|
119
|
+
|
|
120
|
+
## Verification phase (run before declaring done)
|
|
121
|
+
|
|
122
|
+
- [ ] Did I open with the named problem (not visual feedback first)?
|
|
123
|
+
- [ ] Does the hierarchy walk identify what the eye lands on 1st / 2nd / 3rd?
|
|
124
|
+
- [ ] Did I praise specific things (not "looks great")?
|
|
125
|
+
- [ ] Are craft observations actionable (specific element + specific change)?
|
|
126
|
+
- [ ] Is the named tradeoff genuine (designer gave up something specific)?
|
|
127
|
+
- [ ] Is there exactly **one** top recommendation in bold at the end?
|
|
128
|
+
- [ ] No jargon a non-designer can't follow?
|
|
129
|
+
- [ ] Did I critique the decision ("the CTA's blue blends"), not the designer ("you should")?
|
|
130
|
+
|
|
131
|
+
## Done when
|
|
132
|
+
|
|
133
|
+
- All five sections delivered: works well, problem fit, hierarchy walk, craft notes, tradeoffs, top recommendation.
|
|
134
|
+
- Each observation is specific (a designer could act on it).
|
|
135
|
+
- The critique is balanced (praise + concerns, not just concerns).
|
|
136
|
+
- One top recommendation, not several.
|
|
137
|
+
- The verification phase checklist passes.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# design-pr-review — playbook
|
|
2
|
+
|
|
3
|
+
Review a GitHub pull request for design system compliance. When GitHub MCP is connected, fetches the PR and posts a structured review. Without MCP: outputs a markdown review for manual paste.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- "Review PR #123 for design system compliance"
|
|
8
|
+
- "Audit this PR before merging"
|
|
9
|
+
- Pre-merge gate as part of CI (run via Codex headlessly)
|
|
10
|
+
|
|
11
|
+
## Inputs (ask if missing)
|
|
12
|
+
|
|
13
|
+
1. **PR identifier**: org/repo + number, OR full URL.
|
|
14
|
+
2. **Severity threshold**: which findings should block merge? (default: Critical only)
|
|
15
|
+
3. **Post comments?**: yes (write back to PR) or no (just output report).
|
|
16
|
+
|
|
17
|
+
## Steps
|
|
18
|
+
|
|
19
|
+
### 1. Detect MCP availability
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
if mcp__plugin_engineering_github is connected:
|
|
23
|
+
proceed with full PR fetch + comment workflow
|
|
24
|
+
else:
|
|
25
|
+
ask user to paste the PR diff; output review as markdown only
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 2. Fetch PR (MCP path)
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
github__get_pull_request(repo="org/repo", number=123)
|
|
32
|
+
→ returns PR metadata, files changed, diff
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
For each changed file: `github__get_repo_contents(repo, path, ref=PR_HEAD)` to get full content (diff alone may not be enough context).
|
|
36
|
+
|
|
37
|
+
### 3. Apply design system QA layers
|
|
38
|
+
|
|
39
|
+
Open [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md) — apply each layer to the PR's changed files:
|
|
40
|
+
|
|
41
|
+
#### Layer 1 — TypeScript
|
|
42
|
+
|
|
43
|
+
Skip in this skill (assume types exist; tsc handles separately).
|
|
44
|
+
|
|
45
|
+
#### Layer 2 — Token drift
|
|
46
|
+
|
|
47
|
+
For each `.tsx` / `.css` / `.scss` file changed:
|
|
48
|
+
- Search for raw hex (`#[0-9A-F]{3,8}`) outside of comments.
|
|
49
|
+
- Search for raw px / rem outside of token references.
|
|
50
|
+
- Flag each occurrence with:
|
|
51
|
+
- Severity: 🟠 High (or 🔴 Critical if it's in a shipped component).
|
|
52
|
+
- Cited rule: [`knowledge/PRINCIPLES.md`](../../knowledge/PRINCIPLES.md) rule 2.
|
|
53
|
+
|
|
54
|
+
#### Layer 3 — Component contract
|
|
55
|
+
|
|
56
|
+
For new component definitions in the PR:
|
|
57
|
+
- Required ARIA attributes per [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md).
|
|
58
|
+
- Disabled state has `aria-disabled`.
|
|
59
|
+
- Loading state has `aria-busy`.
|
|
60
|
+
- Buttons explicitly `type="button"` (not the default submit).
|
|
61
|
+
|
|
62
|
+
#### Layer 4 — A11y
|
|
63
|
+
|
|
64
|
+
Static checks the agent can do:
|
|
65
|
+
- `<img>` without `alt`.
|
|
66
|
+
- `<button>` without text or `aria-label` for icon-only.
|
|
67
|
+
- `<div onClick>` without `role` and tab support.
|
|
68
|
+
- Color used as the only meaning signal.
|
|
69
|
+
|
|
70
|
+
For deeper a11y: defer to runtime axe-core (mention in review).
|
|
71
|
+
|
|
72
|
+
#### Layer 5 — Visual regression
|
|
73
|
+
|
|
74
|
+
Skip (requires CI / Storybook).
|
|
75
|
+
|
|
76
|
+
### 4. Read related design-ai knowledge
|
|
77
|
+
|
|
78
|
+
For each finding type, cite the knowledge file. Common ones:
|
|
79
|
+
|
|
80
|
+
| Finding | Cite |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| Raw hex | `knowledge/PRINCIPLES.md` (rule 2), `knowledge/colors/color-theory.md` |
|
|
83
|
+
| Missing aria | `knowledge/a11y/keyboard-and-focus.md` |
|
|
84
|
+
| Wrong contrast | `knowledge/a11y/contrast.md` |
|
|
85
|
+
| Korean copy missing | `knowledge/i18n/korean-product-conventions.md` |
|
|
86
|
+
| Money color wrong | `knowledge/patterns/money-and-amount.md` |
|
|
87
|
+
|
|
88
|
+
Use deep links so the PR reviewer can click through.
|
|
89
|
+
|
|
90
|
+
### 5. Compose the review
|
|
91
|
+
|
|
92
|
+
Aggregate by severity, not by file:
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
## Design system review — PR #123
|
|
96
|
+
|
|
97
|
+
> Reviewed by design-ai (skills/design-pr-review)
|
|
98
|
+
> Files changed: 12
|
|
99
|
+
> Findings: 2 Critical, 4 High, 3 Medium
|
|
100
|
+
|
|
101
|
+
### 🔴 Critical (2 — must fix)
|
|
102
|
+
|
|
103
|
+
1. **Raw hex `#7C3AED` in `Button.tsx:23`** instead of `--color-primary-default`.
|
|
104
|
+
Why: tokens by role per [PRINCIPLES.md rule 2](https://github.com/your-org/design-ai/blob/main/knowledge/PRINCIPLES.md).
|
|
105
|
+
Fix: replace with `var(--color-primary-default)`.
|
|
106
|
+
|
|
107
|
+
2. **Missing `aria-label` on icon-only button in `Header.tsx:45`**.
|
|
108
|
+
Why: WCAG 2.1 4.1.2 — controls need accessible name.
|
|
109
|
+
Fix: add `aria-label="Open menu"`.
|
|
110
|
+
|
|
111
|
+
### 🟠 High (4 — should fix)
|
|
112
|
+
|
|
113
|
+
...
|
|
114
|
+
|
|
115
|
+
### 🟡 Medium (3 — consider)
|
|
116
|
+
|
|
117
|
+
...
|
|
118
|
+
|
|
119
|
+
### Things that look good
|
|
120
|
+
|
|
121
|
+
- Form fields use `<label>` correctly throughout.
|
|
122
|
+
- Card components consume `--space-md` consistently.
|
|
123
|
+
- Korean fonts loaded via Pretendard.
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 6. Post the review (MCP path)
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
github__create_review(
|
|
130
|
+
repo="org/repo",
|
|
131
|
+
pr=123,
|
|
132
|
+
body=<full review>,
|
|
133
|
+
event="REQUEST_CHANGES" // or "COMMENT" for non-blocking
|
|
134
|
+
comments=[
|
|
135
|
+
{ path: "Button.tsx", line: 23, body: "Use --color-primary-default" },
|
|
136
|
+
...
|
|
137
|
+
]
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Limit inline comments to **2–3 most-critical** specifics. The full review body has the rest.
|
|
142
|
+
|
|
143
|
+
### Without MCP
|
|
144
|
+
|
|
145
|
+
Output the full review as markdown. User copies it into the PR review UI manually.
|
|
146
|
+
|
|
147
|
+
## Verification phase (run before declaring done)
|
|
148
|
+
|
|
149
|
+
- [ ] Did I check all 5 QA layers?
|
|
150
|
+
- [ ] Did I cite knowledge files for every finding?
|
|
151
|
+
- [ ] Did I aggregate by severity (not file-by-file noise)?
|
|
152
|
+
- [ ] Did I include "Things that look good" (constructive)?
|
|
153
|
+
- [ ] Did I keep inline comments ≤ 3?
|
|
154
|
+
- [ ] If posting via MCP: did I confirm "post" with user (don't auto-post critical reviews without ack)?
|
|
155
|
+
|
|
156
|
+
## Source files this skill reads
|
|
157
|
+
|
|
158
|
+
- [`knowledge/patterns/design-system-qa.md`](../../knowledge/patterns/design-system-qa.md) — full QA model
|
|
159
|
+
- [`knowledge/PRINCIPLES.md`](../../knowledge/PRINCIPLES.md) — citation source
|
|
160
|
+
- [`knowledge/a11y/contrast.md`](../../knowledge/a11y/contrast.md)
|
|
161
|
+
- [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md)
|
|
162
|
+
- [`docs/integrations/github-mcp.md`](../../docs/integrations/github-mcp.md) — MCP usage details
|
|
163
|
+
|
|
164
|
+
## Done when
|
|
165
|
+
|
|
166
|
+
- One review posted (or output as markdown).
|
|
167
|
+
- Severity-aggregated, with citations.
|
|
168
|
+
- Inline comments capped at 3 most-critical.
|
|
169
|
+
- "Things that look good" included.
|
|
170
|
+
- User confirmed before posting (when posting via MCP).
|
|
171
|
+
- Verification phase passes.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-pr-review
|
|
3
|
+
description: Review a GitHub pull request for design system compliance. When GitHub MCP is connected, fetches the PR and posts a structured review with citations to design-ai knowledge files. Without MCP, outputs a markdown review for manual paste.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
See [PLAYBOOK.md](PLAYBOOK.md).
|