@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,240 @@
|
|
|
1
|
+
# video-designer — playbook
|
|
2
|
+
|
|
3
|
+
Design and spec video for marketing, social, or in-product use. Output is a production-ready video spec a producer / videographer / editor can deliver against.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- "Design the hero video for our landing page."
|
|
8
|
+
- "Spec a 60-second product demo."
|
|
9
|
+
- "Plan a YouTube Shorts campaign."
|
|
10
|
+
- "What captions / formats do we need?"
|
|
11
|
+
- "Spec the onboarding video for our app."
|
|
12
|
+
|
|
13
|
+
## Inputs (ask if missing)
|
|
14
|
+
|
|
15
|
+
1. **Surface** — landing-page hero / brand film / product demo / onboarding / help video / short-form social / ad spot.
|
|
16
|
+
2. **Platform** — YouTube / Reels / Shorts / TikTok / website / in-app / OOH.
|
|
17
|
+
3. **Length** — desired duration.
|
|
18
|
+
4. **Audience** — Korean / international / mixed; B2C / B2B; age range.
|
|
19
|
+
5. **Brand voice** — Toss-style / playful / formal / cinematic.
|
|
20
|
+
6. **Production budget** — DIY / indie / production-company / TVCM-tier.
|
|
21
|
+
7. **Audio strategy** — voiceover / music-only / silent autoplay.
|
|
22
|
+
8. **Existing assets** — existing footage, brand video, music library.
|
|
23
|
+
|
|
24
|
+
## Steps
|
|
25
|
+
|
|
26
|
+
### 1. Classify the video
|
|
27
|
+
|
|
28
|
+
| Type | Read |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| Hero loop, brand film, demo, ad | [`marketing-video.md`](../../knowledge/video/marketing-video.md) |
|
|
31
|
+
| Reels / Shorts / TikTok / vertical | [`social-and-short-form.md`](../../knowledge/video/social-and-short-form.md) |
|
|
32
|
+
| Onboarding, help, changelog | [`in-product-video.md`](../../knowledge/video/in-product-video.md) |
|
|
33
|
+
| Korean market specifics | [`korean-video-conventions.md`](../../knowledge/video/korean-video-conventions.md) |
|
|
34
|
+
|
|
35
|
+
Always also: [`video-fundamentals.md`](../../knowledge/video/video-fundamentals.md).
|
|
36
|
+
|
|
37
|
+
### 2. Spec the technical format
|
|
38
|
+
|
|
39
|
+
| Spec | Decide |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| Resolution | 1080p default; 4K master if reframing needed |
|
|
42
|
+
| Aspect ratio | 16:9 landscape / 9:16 vertical / 1:1 square |
|
|
43
|
+
| Framerate | 30fps default; 60fps for fast UI / sports |
|
|
44
|
+
| Codec | H.264 (compatibility) + H.265 / AV1 (size); WebM for web |
|
|
45
|
+
| Audio | AAC 128-256 kbps; -14 LUFS for online |
|
|
46
|
+
| Captions | WebVTT or burned-in (specify language tracks) |
|
|
47
|
+
| File size | Target by use: < 5MB hero loop, < 50MB demo |
|
|
48
|
+
|
|
49
|
+
### 3. Pick length
|
|
50
|
+
|
|
51
|
+
| Use | Length |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| Hero loop autoplay | 5-15s |
|
|
54
|
+
| Product demo | 30-90s |
|
|
55
|
+
| Brand film | 60-180s |
|
|
56
|
+
| Onboarding video | 30-90s |
|
|
57
|
+
| Help video | 30-120s |
|
|
58
|
+
| Reels / Shorts | 15-60s |
|
|
59
|
+
| TikTok | 15-60s (up to 3min, 10min) |
|
|
60
|
+
| YouTube long-form | varies |
|
|
61
|
+
| TVCM | 15s, 30s, 60s spots |
|
|
62
|
+
|
|
63
|
+
Cut to shortest that conveys the message. Default: **shorter than the obvious answer**.
|
|
64
|
+
|
|
65
|
+
### 4. Spec the script structure
|
|
66
|
+
|
|
67
|
+
For long-form (60+ seconds):
|
|
68
|
+
```
|
|
69
|
+
0:00-0:05 Hook (1-second-grade attention grab)
|
|
70
|
+
0:05-0:20 Problem (what users face)
|
|
71
|
+
0:20-0:50 Solution (your product / value)
|
|
72
|
+
0:50-end CTA (try it, sign up, learn more)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
For short-form (15-30s):
|
|
76
|
+
```
|
|
77
|
+
0:00-0:01 Hook (must stop scroll)
|
|
78
|
+
0:01-end Single message / single demo
|
|
79
|
+
0:end-1s CTA / brand mark
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
For hero loop (5-15s):
|
|
83
|
+
```
|
|
84
|
+
0:00 Calm starting frame
|
|
85
|
+
0:05 Peak action (the "wow" beat)
|
|
86
|
+
0:end Settle to start frame (loop)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Captions / subtitles
|
|
90
|
+
|
|
91
|
+
| Use | Captions |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| Hero loop (silent autoplay) | None needed (no audio) |
|
|
94
|
+
| Brand film / demo | WebVTT, multi-language |
|
|
95
|
+
| Social short-form | Burned-in (open captions) — 80% watch muted |
|
|
96
|
+
| In-product | WebVTT toggle, default ON |
|
|
97
|
+
| Korean any platform | Korean subtitle always |
|
|
98
|
+
|
|
99
|
+
Style:
|
|
100
|
+
- Bottom 10-20% of frame.
|
|
101
|
+
- White text + black outline OR brand color.
|
|
102
|
+
- Sans-serif, condensed (Pretendard / NanumSquare for Korean).
|
|
103
|
+
- Max 2 lines, ≤ 32 chars per line.
|
|
104
|
+
|
|
105
|
+
### 6. Voiceover (if applicable)
|
|
106
|
+
|
|
107
|
+
| Choice | Use |
|
|
108
|
+
| --- | --- |
|
|
109
|
+
| Korean female gentle | Toss-style fintech, beauty |
|
|
110
|
+
| Korean female professional | B2B, education |
|
|
111
|
+
| Korean male warm | Premium consumer, automotive |
|
|
112
|
+
| English voiceover | International primary |
|
|
113
|
+
| AI voice (Clova, ElevenLabs) | Short-form, changelogs, low-stakes |
|
|
114
|
+
| Human voiceover | Brand-critical, ads, hero |
|
|
115
|
+
|
|
116
|
+
Honorific level (Korean):
|
|
117
|
+
- 합쇼체 (~합니다) for B2B, banking, formal.
|
|
118
|
+
- 해요체 (~해요) for B2C, lifestyle, fintech (default 2024+).
|
|
119
|
+
|
|
120
|
+
### 7. Music + sound
|
|
121
|
+
|
|
122
|
+
| Source | Use |
|
|
123
|
+
| --- | --- |
|
|
124
|
+
| Royalty-free libraries (Epidemic, Artlist, Musicbed) | Most B2B / B2C |
|
|
125
|
+
| Korean royalty-free (Audionetwork KR, Pond5 KR) | KR market |
|
|
126
|
+
| Platform-native trending sound | Reels / TikTok algorithm boost |
|
|
127
|
+
| Custom composition | Brand-defining campaigns |
|
|
128
|
+
| K-pop tracks | Avoid — copyright |
|
|
129
|
+
|
|
130
|
+
Mix loudness to **-14 LUFS** for online platforms.
|
|
131
|
+
|
|
132
|
+
### 8. Korean ad disclosure (if branded)
|
|
133
|
+
|
|
134
|
+
For sponsored / paid promotion:
|
|
135
|
+
- YouTube: tag "Includes paid promotion" + verbal disclosure.
|
|
136
|
+
- Instagram / TikTok: `#광고`, `#유료광고`, `#PR` in caption.
|
|
137
|
+
- Public-facing ads: 표시광고법 compliance.
|
|
138
|
+
|
|
139
|
+
For health / cosmetic / financial products: KFDA / FSC pre-approval of claims.
|
|
140
|
+
|
|
141
|
+
### 9. Performance + delivery
|
|
142
|
+
|
|
143
|
+
For web:
|
|
144
|
+
- Provide multiple formats (WebM + MP4 H.265 + MP4 H.264).
|
|
145
|
+
- Include poster for first paint.
|
|
146
|
+
- `preload="auto"` for hero, `preload="metadata"` below the fold.
|
|
147
|
+
- Use `<source media="...">` for art-direction (mobile vs desktop video).
|
|
148
|
+
|
|
149
|
+
For platform delivery:
|
|
150
|
+
- YouTube: 1080p+ at high bitrate; YouTube re-encodes.
|
|
151
|
+
- Reels / Shorts / TikTok: 1080×1920 vertical at platform spec.
|
|
152
|
+
- In-product: HLS adaptive bitrate for longer videos.
|
|
153
|
+
|
|
154
|
+
### 10. Output
|
|
155
|
+
|
|
156
|
+
Use this structure:
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
# Video spec: <title>
|
|
160
|
+
|
|
161
|
+
> Surface: <hero loop / brand film / demo / shorts / etc>
|
|
162
|
+
> Platform: <YouTube / Reels / website / in-app>
|
|
163
|
+
> Audience: <KR / international>
|
|
164
|
+
> Brand voice: <...>
|
|
165
|
+
> Length: <duration>
|
|
166
|
+
|
|
167
|
+
## Technical specs
|
|
168
|
+
| Spec | Value |
|
|
169
|
+
... resolution, fps, codec, audio, captions
|
|
170
|
+
|
|
171
|
+
## Script / structure
|
|
172
|
+
<beat-by-beat outline>
|
|
173
|
+
|
|
174
|
+
## Captions
|
|
175
|
+
<language tracks, style, file format>
|
|
176
|
+
|
|
177
|
+
## Voiceover
|
|
178
|
+
<voice, language, honorific level>
|
|
179
|
+
|
|
180
|
+
## Music
|
|
181
|
+
<library / track, loudness>
|
|
182
|
+
|
|
183
|
+
## Korean compliance (if applicable)
|
|
184
|
+
<ad disclosure, KFDA, KFTC>
|
|
185
|
+
|
|
186
|
+
## File delivery
|
|
187
|
+
<formats, bitrates, file naming>
|
|
188
|
+
|
|
189
|
+
## Performance budget
|
|
190
|
+
<file size, LCP impact>
|
|
191
|
+
|
|
192
|
+
## Accessibility
|
|
193
|
+
<captions, transcripts, audio descriptions>
|
|
194
|
+
|
|
195
|
+
## Don't
|
|
196
|
+
<2-3 specific misuses>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Source files this skill reads
|
|
200
|
+
|
|
201
|
+
- [`knowledge/video/video-fundamentals.md`](../../knowledge/video/video-fundamentals.md)
|
|
202
|
+
- [`knowledge/video/marketing-video.md`](../../knowledge/video/marketing-video.md)
|
|
203
|
+
- [`knowledge/video/social-and-short-form.md`](../../knowledge/video/social-and-short-form.md)
|
|
204
|
+
- [`knowledge/video/in-product-video.md`](../../knowledge/video/in-product-video.md)
|
|
205
|
+
- [`knowledge/video/korean-video-conventions.md`](../../knowledge/video/korean-video-conventions.md)
|
|
206
|
+
- [`knowledge/motion/motion-tools.md`](../../knowledge/motion/motion-tools.md) — when motion < video
|
|
207
|
+
- [`knowledge/i18n/korean-document-style.md`](../../knowledge/i18n/korean-document-style.md) — honorific level
|
|
208
|
+
- [`examples/component-video-player.md`](../../examples/component-video-player.md) — player spec
|
|
209
|
+
- [`examples/component-video-hero.md`](../../examples/component-video-hero.md) — autoplay hero spec
|
|
210
|
+
|
|
211
|
+
## Verification phase (run before declaring done)
|
|
212
|
+
|
|
213
|
+
- [ ] Is the surface category explicit (hero loop / demo / shorts / onboarding / etc)?
|
|
214
|
+
- [ ] Is the technical spec (resolution / fps / codec / aspect ratio) explicit?
|
|
215
|
+
- [ ] Is length within range for the surface?
|
|
216
|
+
- [ ] Is the script structure (hook / body / CTA) explicit?
|
|
217
|
+
- [ ] Are captions specified (language tracks + format)?
|
|
218
|
+
- [ ] If voiceover: is the language + tone + honorific level explicit?
|
|
219
|
+
- [ ] Is loudness target (-14 LUFS for online) specified?
|
|
220
|
+
- [ ] Are platform-specific constraints (Reels safe area, YouTube spec) addressed?
|
|
221
|
+
- [ ] If Korean B2C: is ad disclosure + KFDA where applicable addressed?
|
|
222
|
+
- [ ] Is file delivery format (multi-codec, poster, HLS) specified?
|
|
223
|
+
- [ ] Is performance budget (file size, LCP impact) stated?
|
|
224
|
+
- [ ] Is reduced-motion / slow-connection fallback specified for autoplay?
|
|
225
|
+
- [ ] Does "Don't" section catch 2-3 specific misuses?
|
|
226
|
+
|
|
227
|
+
## Done when
|
|
228
|
+
|
|
229
|
+
- One markdown spec, < 400 lines.
|
|
230
|
+
- Surface, platform, audience, length explicit.
|
|
231
|
+
- Technical specs (resolution, fps, codec, audio, captions).
|
|
232
|
+
- Script structure.
|
|
233
|
+
- Captions language + format.
|
|
234
|
+
- Voiceover details if applicable.
|
|
235
|
+
- Music source + loudness.
|
|
236
|
+
- Korean compliance if applicable.
|
|
237
|
+
- File delivery format.
|
|
238
|
+
- Performance + accessibility addressed.
|
|
239
|
+
- "Don't" section.
|
|
240
|
+
- Verification passes.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: video-designer
|
|
3
|
+
description: Design and spec video for marketing, social, or in-product use. Picks length, format, aspect ratio, codec, captions, voiceover, and platform; produces production-ready spec. Korean conventions and ad-disclosure rules included.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
See [PLAYBOOK.md](PLAYBOOK.md).
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# website-improvement — playbook
|
|
2
|
+
|
|
3
|
+
Plan and coordinate professional website improvement work for an existing site. This skill does not modify the target website repository directly; it prepares the audit, MCP readiness, task plan, prompts, and handoff report that another agent can execute in the target repo.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
|
|
7
|
+
- "Improve this homepage."
|
|
8
|
+
- "Audit our website before a redesign sprint."
|
|
9
|
+
- "Create a Codex prompt to refactor the pricing page."
|
|
10
|
+
- "Plan MCP setup for a site improvement project."
|
|
11
|
+
- "Turn website audit findings into implementation tasks."
|
|
12
|
+
|
|
13
|
+
## Inputs
|
|
14
|
+
|
|
15
|
+
1. **Site Profile** — name, live URL, repo URL/local path, priority pages, user flows, Figma URL, brand notes, deploy provider, Sentry, CMS, database, and target viewports.
|
|
16
|
+
2. **Audit findings** — visual design, UX flow, responsive QA, accessibility, performance, SEO, technical quality, runtime issues, and content quality.
|
|
17
|
+
3. **MCP readiness** — GitHub, Figma, Browser/Playwright, Chrome DevTools, deploy provider, Sentry, database, CMS, collaboration, and research status.
|
|
18
|
+
4. **Execution target** — Codex for repo work, Claude for design/research/copy review, or final handoff.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
### 1. Establish the Site Profile
|
|
23
|
+
|
|
24
|
+
Capture only operational metadata needed for planning. Do not copy private source code into design-ai. Treat Figma URLs, repo paths, Sentry project names, CMS details, and local filesystem paths as sensitive project metadata.
|
|
25
|
+
|
|
26
|
+
### 2. Run the Audit Pipeline
|
|
27
|
+
|
|
28
|
+
Evaluate each category and record findings:
|
|
29
|
+
|
|
30
|
+
| Category | Check |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| Visual Design | Layout, type, color, spacing, visual hierarchy |
|
|
33
|
+
| UX Flow | Navigation, CTA, forms, conversion flow, confusion points |
|
|
34
|
+
| Responsive QA | Desktop, tablet, mobile layout and text wrapping |
|
|
35
|
+
| Accessibility | Keyboard, focus, contrast, semantic HTML, ARIA |
|
|
36
|
+
| Performance | Core Web Vitals, images, bundle size, render bottlenecks |
|
|
37
|
+
| SEO | Title, description, headings, canonical, OG, sitemap |
|
|
38
|
+
| Technical Quality | Component structure, style duplication, dead code, dependency risk |
|
|
39
|
+
| Runtime Issues | Console errors, network errors, hydration issues, broken assets |
|
|
40
|
+
| Content Quality | Copy clarity, IA, proof, trust, CTA language |
|
|
41
|
+
|
|
42
|
+
Use the relevant design-ai knowledge files when making judgments:
|
|
43
|
+
|
|
44
|
+
- [`knowledge/PRINCIPLES.md`](../../knowledge/PRINCIPLES.md)
|
|
45
|
+
- [`knowledge/patterns/ux-guidelines.md`](../../knowledge/patterns/ux-guidelines.md)
|
|
46
|
+
- [`knowledge/a11y/contrast.md`](../../knowledge/a11y/contrast.md)
|
|
47
|
+
- [`knowledge/a11y/keyboard-and-focus.md`](../../knowledge/a11y/keyboard-and-focus.md)
|
|
48
|
+
- [`knowledge/layout/spacing-and-grid.md`](../../knowledge/layout/spacing-and-grid.md)
|
|
49
|
+
- [`knowledge/typography/type-scale-fundamentals.md`](../../knowledge/typography/type-scale-fundamentals.md)
|
|
50
|
+
- [`knowledge/patterns/technical-writing.md`](../../knowledge/patterns/technical-writing.md)
|
|
51
|
+
- [`knowledge/patterns/report-design.md`](../../knowledge/patterns/report-design.md)
|
|
52
|
+
|
|
53
|
+
### 3. Classify MCP Readiness
|
|
54
|
+
|
|
55
|
+
Set each MCP to one of:
|
|
56
|
+
|
|
57
|
+
- `required` — needed before implementation or verification can be trusted.
|
|
58
|
+
- `optional` — useful, but a manual fallback is acceptable.
|
|
59
|
+
- `unused` — not relevant to this site/project phase.
|
|
60
|
+
- `unavailable` — relevant, but not connected; mention as a risk.
|
|
61
|
+
|
|
62
|
+
Do not invent live MCP results. If a tool was not actually connected and checked, state that it is readiness planning only.
|
|
63
|
+
|
|
64
|
+
### 4. Generate Refactor Tasks
|
|
65
|
+
|
|
66
|
+
Convert findings into task units with:
|
|
67
|
+
|
|
68
|
+
- problem
|
|
69
|
+
- evidence
|
|
70
|
+
- impact
|
|
71
|
+
- effort
|
|
72
|
+
- priority
|
|
73
|
+
- related pages
|
|
74
|
+
- related MCP
|
|
75
|
+
- Codex implementation prompt
|
|
76
|
+
- verification method
|
|
77
|
+
- risks
|
|
78
|
+
|
|
79
|
+
Tasks should be scoped enough for Codex to run in the target website repo after repo intake. Avoid tasks that mix unrelated design, copy, and technical work unless they are one user-flow fix.
|
|
80
|
+
|
|
81
|
+
### 5. Generate Prompts
|
|
82
|
+
|
|
83
|
+
Generate the appropriate prompt:
|
|
84
|
+
|
|
85
|
+
- Codex repo intake
|
|
86
|
+
- Codex implementation
|
|
87
|
+
- Codex visual QA
|
|
88
|
+
- Codex deployment verification
|
|
89
|
+
- Claude design review
|
|
90
|
+
- Claude competitor research
|
|
91
|
+
- Claude copy/UX critique
|
|
92
|
+
- final handoff report
|
|
93
|
+
|
|
94
|
+
Every Codex prompt must say that the work happens in the target website repo and must preserve the target repo's architecture, components, state patterns, styling conventions, and verification commands.
|
|
95
|
+
|
|
96
|
+
### 6. Produce Handoff Report
|
|
97
|
+
|
|
98
|
+
The report should include target site information, diagnostic summary, major issues, priority recommendations, executed work, verification results, remaining risks, and next tasks.
|
|
99
|
+
|
|
100
|
+
## Output Template
|
|
101
|
+
|
|
102
|
+
Use [`TEMPLATE.md`](TEMPLATE.md) for the final report or planning artifact.
|
|
103
|
+
|
|
104
|
+
## Verification phase
|
|
105
|
+
|
|
106
|
+
- [ ] Site Profile includes live URL, target repo reference, pages, user flows, viewports, and platform notes.
|
|
107
|
+
- [ ] Audit categories cover visual, UX, responsive, accessibility, performance, SEO, technical, runtime, and content quality.
|
|
108
|
+
- [ ] MCP readiness uses only `required`, `optional`, `unused`, or `unavailable`.
|
|
109
|
+
- [ ] Refactor tasks include problem, evidence, impact, effort, priority, pages, MCP, prompt, verification, and risks.
|
|
110
|
+
- [ ] Codex prompts clearly state that implementation happens in the target website repo.
|
|
111
|
+
- [ ] Handoff report includes verification evidence or explicit placeholders for evidence not yet run.
|
|
112
|
+
- [ ] Accessibility, responsive, and source-grounding notes are present.
|
|
113
|
+
|
|
114
|
+
## Done when
|
|
115
|
+
|
|
116
|
+
- One Website Improvement plan or handoff report is produced.
|
|
117
|
+
- The plan can be executed by Codex in the target repo without requiring design-ai to contain the target source.
|
|
118
|
+
- The MVP boundary is explicit: no automatic crawling, external writes, model training, embeddings, or target repo mutation from design-ai.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: website-improvement
|
|
3
|
+
description: Plan and coordinate professional website improvement work. Use for existing website audits, Site Profile setup, MCP readiness planning, refactor task generation, Codex/Claude prompt generation, and handoff reports.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
See [PLAYBOOK.md](PLAYBOOK.md).
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Website Improvement Plan: <site name>
|
|
2
|
+
|
|
3
|
+
> Live URL: <url>
|
|
4
|
+
> Target repo: <repo URL or local path>
|
|
5
|
+
> Viewports: desktop / tablet / mobile
|
|
6
|
+
> Status: planning / implementation / verification / handoff
|
|
7
|
+
|
|
8
|
+
## Site Profile
|
|
9
|
+
|
|
10
|
+
- Name:
|
|
11
|
+
- Live URL:
|
|
12
|
+
- Repo URL:
|
|
13
|
+
- Local path:
|
|
14
|
+
- Figma URL:
|
|
15
|
+
- Deploy provider:
|
|
16
|
+
- Sentry project:
|
|
17
|
+
- CMS:
|
|
18
|
+
- Database:
|
|
19
|
+
- Priority pages:
|
|
20
|
+
- Primary user flows:
|
|
21
|
+
- Brand/design notes:
|
|
22
|
+
|
|
23
|
+
## Audit Summary
|
|
24
|
+
|
|
25
|
+
| Category | Status | Key findings |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| Visual Design | todo | |
|
|
28
|
+
| UX Flow | todo | |
|
|
29
|
+
| Responsive QA | todo | |
|
|
30
|
+
| Accessibility | todo | |
|
|
31
|
+
| Performance | todo | |
|
|
32
|
+
| SEO | todo | |
|
|
33
|
+
| Technical Quality | todo | |
|
|
34
|
+
| Runtime Issues | todo | |
|
|
35
|
+
| Content Quality | todo | |
|
|
36
|
+
|
|
37
|
+
## MCP Readiness
|
|
38
|
+
|
|
39
|
+
| MCP | Status | Reason |
|
|
40
|
+
| --- | --- | --- |
|
|
41
|
+
| GitHub | required | |
|
|
42
|
+
| Figma | optional | |
|
|
43
|
+
| Browser/Playwright | required | |
|
|
44
|
+
| Chrome DevTools | optional | |
|
|
45
|
+
| Deploy | required | |
|
|
46
|
+
| Sentry | optional | |
|
|
47
|
+
| Database | unused | |
|
|
48
|
+
| CMS | optional | |
|
|
49
|
+
| Collaboration | optional | |
|
|
50
|
+
| Research | optional | |
|
|
51
|
+
|
|
52
|
+
## Refactor Plan
|
|
53
|
+
|
|
54
|
+
### [P1] <task title>
|
|
55
|
+
|
|
56
|
+
- Category:
|
|
57
|
+
- Problem:
|
|
58
|
+
- Evidence:
|
|
59
|
+
- Impact:
|
|
60
|
+
- Effort:
|
|
61
|
+
- Pages:
|
|
62
|
+
- Recommended MCP:
|
|
63
|
+
- Codex prompt:
|
|
64
|
+
- Verification:
|
|
65
|
+
- Risks:
|
|
66
|
+
|
|
67
|
+
## Prompt Pack
|
|
68
|
+
|
|
69
|
+
### Codex repo intake
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
<prompt>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Codex implementation
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
<prompt>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Claude design review
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
<prompt>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Handoff Report Draft
|
|
88
|
+
|
|
89
|
+
### Executed Work
|
|
90
|
+
|
|
91
|
+
- Not run yet.
|
|
92
|
+
|
|
93
|
+
### Verification Results
|
|
94
|
+
|
|
95
|
+
- Not run yet.
|
|
96
|
+
|
|
97
|
+
### Remaining Risks
|
|
98
|
+
|
|
99
|
+
- Not run yet.
|
|
100
|
+
|
|
101
|
+
### Next Actions
|
|
102
|
+
|
|
103
|
+
- Not run yet.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Generate CHANGELOG.md from git commit history.
|
|
4
|
+
|
|
5
|
+
Reads commits since the last tag (or all commits if no tags) and
|
|
6
|
+
formats them into a markdown changelog grouped by version.
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
python3 tools/audit/changelog-generate.py [--since vN] [--output CHANGELOG.md]
|
|
10
|
+
|
|
11
|
+
Categorizes commits by conventional-commit prefix:
|
|
12
|
+
feat: → "Added"
|
|
13
|
+
fix: → "Fixed"
|
|
14
|
+
refactor: → "Changed"
|
|
15
|
+
docs: → "Documentation"
|
|
16
|
+
chore: → "Maintenance"
|
|
17
|
+
perf: → "Performance"
|
|
18
|
+
|
|
19
|
+
Skips commits matching ^(chore: bump|chore: release).
|
|
20
|
+
"""
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import argparse
|
|
24
|
+
import re
|
|
25
|
+
import subprocess
|
|
26
|
+
import sys
|
|
27
|
+
from datetime import date
|
|
28
|
+
from pathlib import Path
|
|
29
|
+
|
|
30
|
+
ROOT = Path(__file__).resolve().parents[2]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
CATEGORY_MAP = {
|
|
34
|
+
"feat": "Added",
|
|
35
|
+
"fix": "Fixed",
|
|
36
|
+
"refactor": "Changed",
|
|
37
|
+
"docs": "Documentation",
|
|
38
|
+
"chore": "Maintenance",
|
|
39
|
+
"perf": "Performance",
|
|
40
|
+
"test": "Testing",
|
|
41
|
+
"ci": "CI/CD",
|
|
42
|
+
"build": "Build",
|
|
43
|
+
"style": "Style",
|
|
44
|
+
"revert": "Reverted",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
SKIP_PATTERNS = [
|
|
48
|
+
r"^chore:\s*bump",
|
|
49
|
+
r"^chore:\s*release",
|
|
50
|
+
r"^Merge\s+",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def run(cmd: list[str]) -> str:
|
|
55
|
+
return subprocess.run(cmd, capture_output=True, text=True, cwd=ROOT, check=True).stdout
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def get_tags() -> list[str]:
|
|
59
|
+
out = run(["git", "tag", "--sort=-creatordate"])
|
|
60
|
+
return [t.strip() for t in out.splitlines() if t.strip()]
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def get_commits_between(start: str | None, end: str = "HEAD") -> list[tuple[str, str, str]]:
|
|
64
|
+
"""Return (sha, subject, date) tuples."""
|
|
65
|
+
if start:
|
|
66
|
+
rev_range = f"{start}..{end}"
|
|
67
|
+
else:
|
|
68
|
+
rev_range = end
|
|
69
|
+
out = run(["git", "log", "--pretty=format:%h|%s|%ad", "--date=short", rev_range])
|
|
70
|
+
commits = []
|
|
71
|
+
for line in out.splitlines():
|
|
72
|
+
if not line.strip():
|
|
73
|
+
continue
|
|
74
|
+
parts = line.split("|", 2)
|
|
75
|
+
if len(parts) == 3:
|
|
76
|
+
commits.append((parts[0], parts[1], parts[2]))
|
|
77
|
+
return commits
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def should_skip(subject: str) -> bool:
|
|
81
|
+
for pattern in SKIP_PATTERNS:
|
|
82
|
+
if re.match(pattern, subject):
|
|
83
|
+
return True
|
|
84
|
+
return False
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def categorize(subject: str) -> str:
|
|
88
|
+
match = re.match(r"^(\w+)(?:\(([^)]+)\))?:\s*(.+)$", subject)
|
|
89
|
+
if not match:
|
|
90
|
+
return "Other"
|
|
91
|
+
prefix = match.group(1).lower()
|
|
92
|
+
return CATEGORY_MAP.get(prefix, "Other")
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def strip_prefix(subject: str) -> str:
|
|
96
|
+
"""Remove the conventional-commit prefix from the subject for cleaner display."""
|
|
97
|
+
match = re.match(r"^(\w+)(?:\(([^)]+)\))?:\s*(.+)$", subject)
|
|
98
|
+
if match:
|
|
99
|
+
return match.group(3)
|
|
100
|
+
return subject
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def render_section(version: str, commit_date: str, commits: list[tuple[str, str, str]]) -> str:
|
|
104
|
+
"""Render one version section."""
|
|
105
|
+
if not commits:
|
|
106
|
+
return ""
|
|
107
|
+
|
|
108
|
+
by_category: dict[str, list[tuple[str, str]]] = {}
|
|
109
|
+
for sha, subject, _ in commits:
|
|
110
|
+
if should_skip(subject):
|
|
111
|
+
continue
|
|
112
|
+
cat = categorize(subject)
|
|
113
|
+
by_category.setdefault(cat, []).append((sha, strip_prefix(subject)))
|
|
114
|
+
|
|
115
|
+
if not by_category:
|
|
116
|
+
return ""
|
|
117
|
+
|
|
118
|
+
out = [f"## [{version}] — {commit_date}\n"]
|
|
119
|
+
# Order categories logically
|
|
120
|
+
order = ["Added", "Changed", "Fixed", "Removed", "Performance", "Documentation", "Testing", "CI/CD", "Build", "Maintenance", "Style", "Reverted", "Other"]
|
|
121
|
+
for cat in order:
|
|
122
|
+
if cat not in by_category:
|
|
123
|
+
continue
|
|
124
|
+
out.append(f"### {cat}\n")
|
|
125
|
+
for sha, subject in by_category[cat]:
|
|
126
|
+
out.append(f"- {subject} ({sha})")
|
|
127
|
+
out.append("")
|
|
128
|
+
return "\n".join(out)
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def main() -> None:
|
|
132
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
133
|
+
parser.add_argument("--since", help="Generate from this version backwards")
|
|
134
|
+
parser.add_argument("--output", default="CHANGELOG.md", help="Output file (default: CHANGELOG.md)")
|
|
135
|
+
parser.add_argument("--unreleased-version", default="Unreleased", help="Label for unreleased commits")
|
|
136
|
+
args = parser.parse_args()
|
|
137
|
+
|
|
138
|
+
output_path = ROOT / args.output
|
|
139
|
+
|
|
140
|
+
sections = [f"# Changelog\n\n_Generated by `tools/audit/changelog-generate.py` on {date.today().isoformat()}._\n"]
|
|
141
|
+
|
|
142
|
+
tags = get_tags()
|
|
143
|
+
if not tags:
|
|
144
|
+
# No tags — all commits as "Unreleased"
|
|
145
|
+
commits = get_commits_between(None)
|
|
146
|
+
sections.append(render_section(args.unreleased_version, date.today().isoformat(), commits))
|
|
147
|
+
else:
|
|
148
|
+
# Unreleased = HEAD .. latest tag
|
|
149
|
+
unreleased = get_commits_between(tags[0], "HEAD")
|
|
150
|
+
if unreleased:
|
|
151
|
+
sections.append(render_section(args.unreleased_version, date.today().isoformat(), unreleased))
|
|
152
|
+
|
|
153
|
+
# Each tag-to-tag range
|
|
154
|
+
for i, tag in enumerate(tags):
|
|
155
|
+
prev_tag = tags[i + 1] if i + 1 < len(tags) else None
|
|
156
|
+
commits = get_commits_between(prev_tag, tag)
|
|
157
|
+
tag_date_out = run(["git", "log", "-1", "--pretty=format:%ad", "--date=short", tag]).strip()
|
|
158
|
+
section = render_section(tag, tag_date_out, commits)
|
|
159
|
+
if section:
|
|
160
|
+
sections.append(section)
|
|
161
|
+
|
|
162
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
163
|
+
output_path.write_text("\n".join(s for s in sections if s) + "\n", encoding="utf-8")
|
|
164
|
+
try:
|
|
165
|
+
display_path = output_path.relative_to(ROOT)
|
|
166
|
+
except ValueError:
|
|
167
|
+
display_path = output_path
|
|
168
|
+
print(f"Wrote {display_path}")
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
if __name__ == "__main__":
|
|
172
|
+
try:
|
|
173
|
+
main()
|
|
174
|
+
except subprocess.CalledProcessError as e:
|
|
175
|
+
print(f"git command failed: {e.stderr}", file=sys.stderr)
|
|
176
|
+
sys.exit(1)
|