@hegemonart/get-design-done 1.42.0 → 1.43.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/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +1080 -1038
- package/README.md +157 -155
- package/SKILL.md +42 -42
- package/agents/README.md +53 -53
- package/agents/a11y-mapper.md +3 -3
- package/agents/component-benchmark-harvester.md +8 -8
- package/agents/component-benchmark-synthesizer.md +11 -11
- package/agents/component-taxonomy-mapper.md +5 -5
- package/agents/compose-executor.md +25 -25
- package/agents/conflict-resolver.md +8 -8
- package/agents/cost-forecaster.md +12 -12
- package/agents/decision-journal-exporter.md +5 -5
- package/agents/design-advisor.md +19 -19
- package/agents/design-assumptions-analyzer.md +16 -16
- package/agents/design-auditor.md +39 -39
- package/agents/design-authority-watcher.md +28 -28
- package/agents/design-component-generator.md +27 -27
- package/agents/design-context-builder.md +66 -66
- package/agents/design-context-checker-gate.md +5 -5
- package/agents/design-context-checker.md +20 -20
- package/agents/design-discussant.md +23 -23
- package/agents/design-doc-writer.md +12 -12
- package/agents/design-executor.md +38 -38
- package/agents/design-figma-writer.md +31 -31
- package/agents/design-fixer.md +27 -27
- package/agents/design-integration-checker-gate.md +5 -5
- package/agents/design-integration-checker.md +29 -29
- package/agents/design-paper-writer.md +14 -14
- package/agents/design-pattern-mapper.md +9 -9
- package/agents/design-pencil-writer.md +12 -12
- package/agents/design-phase-researcher.md +14 -14
- package/agents/design-plan-checker.md +13 -13
- package/agents/design-planner.md +24 -24
- package/agents/design-reflector.md +48 -48
- package/agents/design-research-synthesizer.md +21 -21
- package/agents/design-start-writer.md +7 -7
- package/agents/design-update-checker.md +8 -8
- package/agents/design-verifier-gate.md +5 -5
- package/agents/design-verifier.md +80 -80
- package/agents/ds-generator.md +14 -14
- package/agents/ds-migration-planner.md +12 -12
- package/agents/email-executor.md +26 -26
- package/agents/experiment-result-ingester.md +10 -10
- package/agents/flutter-executor.md +28 -28
- package/agents/gdd-graph-refresh.md +10 -10
- package/agents/gdd-intel-updater.md +11 -11
- package/agents/gdd-learnings-extractor.md +2 -2
- package/agents/motion-mapper.md +8 -8
- package/agents/motion-verifier.md +16 -16
- package/agents/pdf-executor.md +27 -27
- package/agents/perf-analyzer.md +20 -20
- package/agents/pr-commenter.md +24 -24
- package/agents/prototype-gate.md +29 -29
- package/agents/quality-gate-runner.md +21 -21
- package/agents/rollout-coordinator.md +8 -8
- package/agents/swift-executor.md +41 -41
- package/agents/ticket-sync-agent.md +19 -19
- package/agents/token-mapper.md +6 -6
- package/agents/user-research-synthesizer.md +13 -13
- package/agents/visual-hierarchy-mapper.md +2 -2
- package/dist/claude-code/.claude/skills/add-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/dist/claude-code/.claude/skills/audit/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/brief/SKILL.md +20 -20
- package/dist/claude-code/.claude/skills/budget/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +5 -5
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/compare/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +17 -17
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/connections/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +76 -76
- package/dist/claude-code/.claude/skills/continue/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/dist/claude-code/.claude/skills/debug/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +12 -12
- package/dist/claude-code/.claude/skills/design/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/design/design-procedure.md +23 -23
- package/dist/claude-code/.claude/skills/discover/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +18 -18
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/do/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/explore/SKILL.md +21 -21
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +48 -48
- package/dist/claude-code/.claude/skills/export/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/fast/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +6 -6
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/health/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +3 -3
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +6 -6
- package/dist/claude-code/.claude/skills/help/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/map/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/next/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/note/SKILL.md +1 -1
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/pause/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +14 -14
- package/dist/claude-code/.claude/skills/peers/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/plan/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +24 -24
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/progress/SKILL.md +15 -15
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +22 -22
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +19 -19
- package/dist/claude-code/.claude/skills/quick/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +27 -27
- package/dist/claude-code/.claude/skills/resume/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/roi/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/router/SKILL.md +11 -11
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +6 -6
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +9 -9
- package/dist/claude-code/.claude/skills/router/router-rules.md +7 -7
- package/dist/claude-code/.claude/skills/scan/SKILL.md +16 -16
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +42 -42
- package/dist/claude-code/.claude/skills/settings/SKILL.md +2 -2
- package/dist/claude-code/.claude/skills/ship/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/spike/SKILL.md +7 -7
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/start/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/start/start-procedure.md +9 -9
- package/dist/claude-code/.claude/skills/stats/SKILL.md +5 -5
- package/dist/claude-code/.claude/skills/style/SKILL.md +12 -12
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +12 -12
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +4 -4
- package/dist/claude-code/.claude/skills/todo/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +10 -10
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +3 -3
- package/dist/claude-code/.claude/skills/update/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +17 -17
- package/dist/claude-code/.claude/skills/verify/SKILL.md +13 -13
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +34 -34
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +8 -8
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +9 -9
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +4 -4
- package/package.json +5 -2
- package/reference/DEPRECATIONS.md +10 -10
- package/reference/STATE-TEMPLATE.md +26 -26
- package/reference/accessibility.md +13 -13
- package/reference/adr-format.md +13 -13
- package/reference/ai-native-tool-interface.md +5 -5
- package/reference/anti-patterns.md +9 -9
- package/reference/architecture-vocabulary.md +31 -31
- package/reference/audit-scoring.md +13 -13
- package/reference/authority-feeds.md +36 -36
- package/reference/bandit-integration.md +25 -25
- package/reference/brand-voice.md +36 -36
- package/reference/capability-gap-stage-gate.md +20 -20
- package/reference/checklists.md +26 -26
- package/reference/cli-localization.md +13 -13
- package/reference/codex-tools.md +2 -2
- package/reference/color-theory.md +28 -28
- package/reference/component-authoring.md +4 -4
- package/reference/components/README.md +13 -13
- package/reference/components/TEMPLATE.md +13 -13
- package/reference/components/accordion.md +15 -15
- package/reference/components/alert.md +25 -25
- package/reference/components/badge.md +18 -18
- package/reference/components/breadcrumbs.md +24 -24
- package/reference/components/button.md +21 -21
- package/reference/components/card.md +13 -13
- package/reference/components/checkbox.md +20 -20
- package/reference/components/chip.md +20 -20
- package/reference/components/command-palette.md +15 -15
- package/reference/components/date-picker.md +22 -22
- package/reference/components/drawer.md +13 -13
- package/reference/components/file-upload.md +22 -22
- package/reference/components/input.md +18 -18
- package/reference/components/label.md +25 -25
- package/reference/components/link.md +19 -19
- package/reference/components/list.md +17 -17
- package/reference/components/menu.md +19 -19
- package/reference/components/modal-dialog.md +16 -16
- package/reference/components/navbar.md +19 -19
- package/reference/components/pagination.md +18 -18
- package/reference/components/popover.md +12 -12
- package/reference/components/progress.md +18 -18
- package/reference/components/radio.md +17 -17
- package/reference/components/rich-text-editor.md +24 -24
- package/reference/components/select-combobox.md +16 -16
- package/reference/components/sidebar.md +15 -15
- package/reference/components/skeleton.md +20 -20
- package/reference/components/slider.md +20 -20
- package/reference/components/stepper.md +24 -24
- package/reference/components/switch.md +19 -19
- package/reference/components/table.md +21 -21
- package/reference/components/tabs.md +11 -11
- package/reference/components/toast.md +19 -19
- package/reference/components/tooltip.md +19 -19
- package/reference/components/tree.md +17 -17
- package/reference/composition.md +38 -38
- package/reference/config-schema.md +37 -37
- package/reference/context-md-format.md +9 -9
- package/reference/contrast-advanced.md +29 -29
- package/reference/conversational-ui.md +17 -17
- package/reference/cost-governance.md +14 -14
- package/reference/css-grid-layout.md +8 -8
- package/reference/cycle-handoff-preamble.md +3 -3
- package/reference/data-visualization.md +67 -67
- package/reference/debugger-philosophy.md +5 -5
- package/reference/design-system-guidance.md +21 -21
- package/reference/design-systems-catalog.md +20 -20
- package/reference/design-variants.md +11 -11
- package/reference/domains/civic-patterns.md +10 -10
- package/reference/domains/finance-patterns.md +9 -9
- package/reference/domains/gaming-patterns.md +9 -9
- package/reference/domains/healthcare-patterns.md +11 -11
- package/reference/ds-bootstrap-rubric.md +13 -13
- package/reference/email-design.md +22 -22
- package/reference/emotional-design.md +10 -10
- package/reference/error-recovery.md +11 -11
- package/reference/export-formats.md +7 -7
- package/reference/figma-sandbox.md +6 -6
- package/reference/first-principles.md +10 -10
- package/reference/form-patterns.md +26 -26
- package/reference/framer-motion-patterns.md +49 -49
- package/reference/gdd-runtime-audit.md +17 -17
- package/reference/gdd-threat-model.md +44 -44
- package/reference/gemini-tools.md +3 -3
- package/reference/gestalt.md +24 -24
- package/reference/heuristics.md +32 -32
- package/reference/i18n.md +44 -44
- package/reference/iconography.md +24 -24
- package/reference/image-optimization.md +14 -14
- package/reference/information-architecture.md +47 -47
- package/reference/intel-schema.md +1 -1
- package/reference/known-failure-modes.md +37 -37
- package/reference/meta-rules.md +5 -5
- package/reference/migrations/material-3-to-4.md +17 -17
- package/reference/migrations/mui-v6.md +16 -16
- package/reference/migrations/shadcn-v2.md +25 -25
- package/reference/migrations/tailwind-v4.md +21 -21
- package/reference/model-prices.md +3 -3
- package/reference/model-tiers.md +40 -40
- package/reference/motion-advanced.md +21 -21
- package/reference/motion-easings.md +29 -29
- package/reference/motion-interpolate.md +1 -1
- package/reference/motion-spring.md +13 -13
- package/reference/motion-transition-taxonomy.md +34 -34
- package/reference/motion.md +31 -31
- package/reference/multi-author-model.md +13 -13
- package/reference/native-platforms.md +28 -28
- package/reference/notification-routing.md +6 -6
- package/reference/onboarding-progressive-disclosure.md +32 -32
- package/reference/openrouter-tier-mapping.md +8 -8
- package/reference/palette-catalog.md +37 -37
- package/reference/parallelism-rules.md +20 -20
- package/reference/peer-cli-capabilities.md +14 -14
- package/reference/peer-protocols.md +21 -21
- package/reference/perf-budget.md +21 -21
- package/reference/performance.md +22 -22
- package/reference/platforms.md +51 -51
- package/reference/pr-review-integration.md +7 -7
- package/reference/prices/antigravity.md +3 -3
- package/reference/prices/augment.md +3 -3
- package/reference/prices/claude.md +2 -2
- package/reference/prices/cline.md +4 -4
- package/reference/prices/codebuddy.md +3 -3
- package/reference/prices/codex.md +2 -2
- package/reference/prices/copilot.md +3 -3
- package/reference/prices/cursor.md +3 -3
- package/reference/prices/gemini.md +2 -2
- package/reference/prices/kilo.md +3 -3
- package/reference/prices/opencode.md +4 -4
- package/reference/prices/qwen.md +2 -2
- package/reference/prices/trae.md +3 -3
- package/reference/prices/windsurf.md +3 -3
- package/reference/prices.openrouter.md +5 -5
- package/reference/print-design.md +36 -36
- package/reference/priority-matrix.md +2 -2
- package/reference/project-skills-guide.md +3 -3
- package/reference/proportion-systems.md +23 -23
- package/reference/pseudonymization-rules.md +30 -30
- package/reference/retrieval-contract.md +14 -14
- package/reference/review-format.md +7 -7
- package/reference/rollout-coordination.md +10 -10
- package/reference/rtl-cjk-cultural.md +39 -39
- package/reference/runtime-models.md +28 -28
- package/reference/shared-preamble.md +26 -26
- package/reference/skill-authoring-contract.md +16 -16
- package/reference/skill-placeholders.md +3 -3
- package/reference/start-interview.md +10 -10
- package/reference/style-vocabulary.md +25 -25
- package/reference/surfaces.md +4 -4
- package/reference/ticket-sync.md +9 -9
- package/reference/typography.md +64 -64
- package/reference/user-research.md +54 -54
- package/reference/variable-fonts-loading.md +15 -15
- package/reference/visual-hierarchy-layout.md +41 -41
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/skills/add-backlog/SKILL.md +3 -3
- package/skills/analyze-dependencies/SKILL.md +10 -10
- package/skills/apply-reflections/SKILL.md +13 -13
- package/skills/apply-reflections/apply-reflections-procedure.md +20 -20
- package/skills/audit/SKILL.md +7 -7
- package/skills/bandit-status/SKILL.md +7 -7
- package/skills/benchmark/SKILL.md +7 -7
- package/skills/bootstrap-ds/SKILL.md +10 -10
- package/skills/brief/SKILL.md +20 -20
- package/skills/budget/SKILL.md +4 -4
- package/skills/cache-manager/SKILL.md +6 -6
- package/skills/cache-manager/cache-policy.md +5 -5
- package/skills/check-update/SKILL.md +5 -5
- package/skills/compare/SKILL.md +15 -15
- package/skills/compare/compare-rubric.md +17 -17
- package/skills/complete-cycle/SKILL.md +5 -5
- package/skills/connections/SKILL.md +11 -11
- package/skills/connections/connections-onboarding.md +76 -76
- package/skills/continue/SKILL.md +2 -2
- package/skills/darkmode/SKILL.md +17 -17
- package/skills/darkmode/darkmode-audit-procedure.md +7 -7
- package/skills/debug/SKILL.md +3 -3
- package/skills/debug/debug-feedback-loops.md +12 -12
- package/skills/design/SKILL.md +12 -12
- package/skills/design/design-procedure.md +23 -23
- package/skills/discover/SKILL.md +7 -7
- package/skills/discover/discover-procedure.md +18 -18
- package/skills/discuss/SKILL.md +12 -12
- package/skills/do/SKILL.md +1 -1
- package/skills/explore/SKILL.md +21 -21
- package/skills/explore/explore-procedure.md +48 -48
- package/skills/export/SKILL.md +9 -9
- package/skills/extract-learnings/SKILL.md +5 -5
- package/skills/fast/SKILL.md +7 -7
- package/skills/figma-extract/SKILL.md +11 -11
- package/skills/figma-write/SKILL.md +6 -6
- package/skills/graphify/SKILL.md +4 -4
- package/skills/health/SKILL.md +16 -16
- package/skills/health/health-mcp-detection.md +3 -3
- package/skills/health/health-skill-length-report.md +6 -6
- package/skills/help/SKILL.md +1 -1
- package/skills/list-assumptions/SKILL.md +4 -4
- package/skills/map/SKILL.md +12 -12
- package/skills/migrate/SKILL.md +5 -5
- package/skills/new-cycle/SKILL.md +2 -2
- package/skills/new-cycle/milestone-completeness-rubric.md +16 -16
- package/skills/new-project/SKILL.md +1 -1
- package/skills/next/SKILL.md +5 -5
- package/skills/note/SKILL.md +1 -1
- package/skills/openrouter-status/SKILL.md +4 -4
- package/skills/optimize/SKILL.md +15 -15
- package/skills/pause/SKILL.md +5 -5
- package/skills/peer-cli-add/SKILL.md +11 -11
- package/skills/peer-cli-add/peer-cli-protocol.md +39 -39
- package/skills/peer-cli-customize/SKILL.md +14 -14
- package/skills/peers/SKILL.md +4 -4
- package/skills/plan/SKILL.md +13 -13
- package/skills/plan/plan-procedure.md +24 -24
- package/skills/plant-seed/SKILL.md +4 -4
- package/skills/pr-branch/SKILL.md +2 -2
- package/skills/progress/SKILL.md +15 -15
- package/skills/quality-gate/SKILL.md +22 -22
- package/skills/quality-gate/threat-modeling.md +19 -19
- package/skills/quick/SKILL.md +5 -5
- package/skills/reapply-patches/SKILL.md +7 -7
- package/skills/reflect/SKILL.md +3 -3
- package/skills/reflect/procedures/capability-gap-scan.md +11 -11
- package/skills/report-issue/SKILL.md +5 -5
- package/skills/report-issue/report-issue-procedure.md +27 -27
- package/skills/resume/SKILL.md +9 -9
- package/skills/review-backlog/SKILL.md +3 -3
- package/skills/review-decisions/SKILL.md +3 -3
- package/skills/roi/SKILL.md +5 -5
- package/skills/rollout-status/SKILL.md +4 -4
- package/skills/router/SKILL.md +11 -11
- package/skills/router/capability-gap-emitter.md +6 -6
- package/skills/router/router-pick-emitter.md +9 -9
- package/skills/router/router-rules.md +7 -7
- package/skills/scan/SKILL.md +16 -16
- package/skills/scan/scan-procedure.md +42 -42
- package/skills/settings/SKILL.md +2 -2
- package/skills/ship/SKILL.md +7 -7
- package/skills/sketch/SKILL.md +10 -10
- package/skills/sketch-wrap-up/SKILL.md +12 -12
- package/skills/skill-manifest/SKILL.md +5 -5
- package/skills/spike/SKILL.md +7 -7
- package/skills/spike-wrap-up/SKILL.md +13 -13
- package/skills/start/SKILL.md +8 -8
- package/skills/start/start-procedure.md +9 -9
- package/skills/stats/SKILL.md +5 -5
- package/skills/style/SKILL.md +12 -12
- package/skills/style/style-doc-procedure.md +12 -12
- package/skills/synthesize/SKILL.md +10 -10
- package/skills/timeline/SKILL.md +4 -4
- package/skills/todo/SKILL.md +3 -3
- package/skills/turn-closeout/SKILL.md +10 -10
- package/skills/unlock-decision/SKILL.md +3 -3
- package/skills/update/SKILL.md +9 -9
- package/skills/using-gdd/SKILL.md +17 -17
- package/skills/verify/SKILL.md +13 -13
- package/skills/verify/verify-procedure.md +34 -34
- package/skills/warm-cache/SKILL.md +8 -8
- package/skills/watch-authorities/SKILL.md +9 -9
- package/skills/zoom-out/SKILL.md +4 -4
package/reference/checklists.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pre-Delivery Checklists
|
|
2
2
|
|
|
3
|
-
Run these before saying "done." Each checklist below is **gated**
|
|
3
|
+
Run these before saying "done." Each checklist below is **gated** - if any item fails, you cannot ship.
|
|
4
4
|
|
|
5
5
|
## Master pre-ship checklist
|
|
6
6
|
|
|
@@ -60,7 +60,7 @@ Use this before any design artifact goes to the user or into a PR.
|
|
|
60
60
|
- [ ] Error messages: what happened + how to fix (not just what's wrong)
|
|
61
61
|
- [ ] Empty state acknowledges state + explains value + one CTA
|
|
62
62
|
- [ ] No "Oops!" / forced cheer in errors
|
|
63
|
-
- [ ] No 3-adjective pile-up ("beautiful,
|
|
63
|
+
- [ ] No 3-adjective pile-up ("beautiful, smooth, intuitive")
|
|
64
64
|
- [ ] Placeholders show format, not restated label
|
|
65
65
|
|
|
66
66
|
### Technical check (code artifacts)
|
|
@@ -78,7 +78,7 @@ Use this before any design artifact goes to the user or into a PR.
|
|
|
78
78
|
|
|
79
79
|
---
|
|
80
80
|
|
|
81
|
-
## Quick checklist
|
|
81
|
+
## Quick checklist - Small changes
|
|
82
82
|
|
|
83
83
|
When the change is a single-screen tweak, use this shortened list:
|
|
84
84
|
|
|
@@ -99,11 +99,11 @@ When the change is a single-screen tweak, use this shortened list:
|
|
|
99
99
|
When adding tokens/components to the design system:
|
|
100
100
|
|
|
101
101
|
- [ ] New tokens follow `[category].[variant].[property].[state]` naming
|
|
102
|
-
- [ ] No primitive token used directly in a component
|
|
102
|
+
- [ ] No primitive token used directly in a component - route through semantic
|
|
103
103
|
- [ ] Component has full anatomy doc (slots + variants + states + behavior + platform notes + do/don't)
|
|
104
104
|
- [ ] Figma spec frame exists OR explicit note that it doesn't
|
|
105
105
|
- [ ] Component validated against: same-structure-variant rule, not-a-new-component rule
|
|
106
|
-
- [ ] 30-min audit performed
|
|
106
|
+
- [ ] 30-min audit performed - no off-grid spacings, no duplicate color tokens
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
|
|
@@ -145,18 +145,18 @@ Use this checklist after the main design review for pixel-level craft verificati
|
|
|
145
145
|
|
|
146
146
|
### Typography micro
|
|
147
147
|
- [ ] Headings use `text-wrap: balance`
|
|
148
|
-
- [ ] Body/caption uses `text-wrap: pretty` (or no wrap setting
|
|
148
|
+
- [ ] Body/caption uses `text-wrap: pretty` (or no wrap setting - not `balance`)
|
|
149
149
|
- [ ] Font smoothing applied at `:root` only, not per-element
|
|
150
150
|
- [ ] Dynamic numbers (counters, prices, timers) use `font-variant-numeric: tabular-nums`
|
|
151
151
|
|
|
152
152
|
### Surfaces
|
|
153
153
|
- [ ] Nested elements use concentric radius (`innerRadius = outerRadius − padding`)
|
|
154
154
|
- [ ] No same-radius parent+child within padded container (see BAN-10 same-radius-nested)
|
|
155
|
-
- [ ] Images have `outline: 1px solid rgba(0,0,0,0.08)`
|
|
155
|
+
- [ ] Images have `outline: 1px solid rgba(0,0,0,0.08)` - no tinted outlines
|
|
156
156
|
- [ ] Interactive elements <40px have `::after` hit-area extension to 40×40
|
|
157
157
|
|
|
158
158
|
### Motion
|
|
159
|
-
- [ ] Press feedback uses `scale(0.96)`
|
|
159
|
+
- [ ] Press feedback uses `scale(0.96)` - not 0.95, not 0.97, not 0.98
|
|
160
160
|
- [ ] `AnimatePresence` on persistent UI has `initial={false}`
|
|
161
161
|
- [ ] Icon cross-fade spring has `bounce: 0`
|
|
162
162
|
- [ ] No `transition: all` anywhere (see BAN-12 transition-all)
|
|
@@ -165,30 +165,30 @@ Use this checklist after the main design review for pixel-level craft verificati
|
|
|
165
165
|
|
|
166
166
|
---
|
|
167
167
|
|
|
168
|
-
## Rams Lens
|
|
168
|
+
## Rams Lens - 10 Design Questions
|
|
169
169
|
|
|
170
170
|
Dieter Rams's 10 principles of good design (Vitsœ/Braun, 1970s–80s) applied as a self-audit lens. Each question maps to one principle.
|
|
171
171
|
|
|
172
|
-
- [ ] **Innovative**
|
|
173
|
-
- [ ] **Useful**
|
|
174
|
-
- [ ] **Aesthetic**
|
|
175
|
-
- [ ] **Understandable**
|
|
176
|
-
- [ ] **Unobtrusive**
|
|
177
|
-
- [ ] **Honest**
|
|
178
|
-
- [ ] **Long-lasting**
|
|
179
|
-
- [ ] **Thorough**
|
|
180
|
-
- [ ] **Environmentally friendly**
|
|
181
|
-
- [ ] **As little design as possible**
|
|
172
|
+
- [ ] **Innovative** - Does this design solve the problem in a way that was not possible or obvious before?
|
|
173
|
+
- [ ] **Useful** - Does every element serve the primary function? Nothing decorative that doesn't earn its place?
|
|
174
|
+
- [ ] **Aesthetic** - Is the visual appearance the minimum necessary for legibility and emotional resonance?
|
|
175
|
+
- [ ] **Understandable** - Can the user figure out how to use this without reading documentation or a tooltip?
|
|
176
|
+
- [ ] **Unobtrusive** - Does the design stay in the background and let the content or task take focus?
|
|
177
|
+
- [ ] **Honest** - Does the design not imply capabilities, quality, or status that the product doesn't have?
|
|
178
|
+
- [ ] **Long-lasting** - Is this design free of trend-dependent choices (gradients, micro-styles) that will age in 12 months?
|
|
179
|
+
- [ ] **Thorough** - Have edge cases been considered and handled (empty states, error states, loading states, overflow text)?
|
|
180
|
+
- [ ] **Environmentally friendly** - Is the performance footprint minimal? (image sizes, JS bundle, font weight)
|
|
181
|
+
- [ ] **As little design as possible** - If you removed 20% of the design decisions, would the product be worse? If not, remove them.
|
|
182
182
|
|
|
183
183
|
---
|
|
184
184
|
|
|
185
|
-
## Sonner / Component-Authoring Lens
|
|
185
|
+
## Sonner / Component-Authoring Lens - 6 Questions
|
|
186
186
|
|
|
187
187
|
Emil Kowalski's component-authoring principles applied as a per-component self-audit. Full reference: `reference/component-authoring.md`.
|
|
188
188
|
|
|
189
|
-
- [ ] **P-01 API surface**
|
|
190
|
-
- [ ] **P-02 Composability**
|
|
191
|
-
- [ ] **P-03 Defaults**
|
|
192
|
-
- [ ] **P-04 Animation**
|
|
193
|
-
- [ ] **P-05 Accessibility**
|
|
194
|
-
- [ ] **P-06 Edge honesty**
|
|
189
|
+
- [ ] **P-01 API surface** - Does this component work correctly in 1 line with zero configuration?
|
|
190
|
+
- [ ] **P-02 Composability** - Does this component compose via slots/children, not via style-configuration props?
|
|
191
|
+
- [ ] **P-03 Defaults** - Are the defaults so sensible that most consumers never need to pass any props?
|
|
192
|
+
- [ ] **P-04 Animation** - Does every animation in this component communicate a state change? No decorative loops?
|
|
193
|
+
- [ ] **P-05 Accessibility** - Does this component have a complete ARIA contract before any visual styling?
|
|
194
|
+
- [ ] **P-06 Edge honesty** - Are known failure modes documented with `// KNOWN:` or `// EDGE:` comments?
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# CLI Localization
|
|
1
|
+
# CLI Localization - GDD's Own Surface
|
|
2
2
|
|
|
3
3
|
Phase 40.5 contract. `reference/i18n.md` covers internationalizing *user designs*; this file covers
|
|
4
|
-
**GDD's own CLI**
|
|
4
|
+
**GDD's own CLI** - `--help`, the common error messages, and skill prompt headers. The goal is the
|
|
5
5
|
lowest-effort, highest-impact subset; full skill-body translation is deferred (per-locale demand).
|
|
6
6
|
|
|
7
7
|
## Resolution
|
|
8
8
|
|
|
9
9
|
`scripts/lib/i18n/index.cjs` resolves the active locale with this precedence:
|
|
10
10
|
|
|
11
|
-
1. **`.design/config.json#locale`**
|
|
12
|
-
2. **`process.env`**
|
|
13
|
-
3. **`en`**
|
|
11
|
+
1. **`.design/config.json#locale`** - an explicit per-project override (set via `/gdd:locale <code>`).
|
|
12
|
+
2. **`process.env`** - `LC_ALL` / `LC_MESSAGES` / `LANG` / `LANGUAGE` (normalized: `ru_RU.UTF-8` → `ru`).
|
|
13
|
+
3. **`en`** - the default.
|
|
14
14
|
|
|
15
15
|
A `C` / `POSIX` env locale resolves to `en`. The resolved code then drives a **fallback chain**
|
|
16
16
|
`locale → base → en` (e.g. `de-DE → de → en`), so a regional locale degrades to its base and finally
|
|
17
|
-
to English
|
|
17
|
+
to English - the complete source table.
|
|
18
18
|
|
|
19
19
|
## Message tables
|
|
20
20
|
|
|
@@ -23,9 +23,9 @@ simplicity). Each is `{ "_meta": { locale, coverage, fallback }, "<key>": "<stri
|
|
|
23
23
|
namespaced: `help.*` (usage + section headers), `error.*` (the common CLI errors), `prompt.*` (skill
|
|
24
24
|
prompt headers), `status.*`.
|
|
25
25
|
|
|
26
|
-
- **`en.json`**
|
|
27
|
-
- **`ru.json`**
|
|
28
|
-
- **`uk.json` / `de.json` / `fr.json` / `zh.json` / `ja.json`**
|
|
26
|
+
- **`en.json`** - the **complete source of truth**; every key lives here.
|
|
27
|
+
- **`ru.json`** - a complete second-locale translation (covers every `en` key).
|
|
28
|
+
- **`uk.json` / `de.json` / `fr.json` / `zh.json` / `ja.json`** - **placeholders**: a `_meta` marker
|
|
29
29
|
(`coverage: "placeholder"`) plus a starter subset. Any missing key falls back to `en` per the chain.
|
|
30
30
|
|
|
31
31
|
`translate(tables, key, locale)` walks the chain and returns the first hit, or the key itself if no
|
|
@@ -35,7 +35,7 @@ table has it (a missing key is always visible, never a crash).
|
|
|
35
35
|
|
|
36
36
|
Skills and agents may carry an **opt-in** `description_i18n: { <locale>: "<description>" }` map.
|
|
37
37
|
`descriptionFor(frontmatter, locale)` returns the localized description via the fallback chain, or the
|
|
38
|
-
plain English `description` when the locale is absent. The field is fully backward-compatible
|
|
38
|
+
plain English `description` when the locale is absent. The field is fully backward-compatible - a
|
|
39
39
|
skill/agent without it is unaffected, and the Phase 28.5 contract only validates it (as an object of
|
|
40
40
|
locale→string) when present.
|
|
41
41
|
|
|
@@ -43,12 +43,12 @@ locale→string) when present.
|
|
|
43
43
|
|
|
44
44
|
The completeness gate is **warn-only**. Only `en` (source) and `ru` (full) are expected to be 100%; the
|
|
45
45
|
five placeholder locales are intentionally partial and rely on the English fallback. A locale is never
|
|
46
|
-
required to be complete to ship
|
|
46
|
+
required to be complete to ship - partial is better than English-only, and fallback guarantees no key
|
|
47
47
|
is ever missing at runtime.
|
|
48
48
|
|
|
49
49
|
## Adding or completing a locale (contribution path)
|
|
50
50
|
|
|
51
|
-
1. Edit `scripts/lib/i18n/messages/<locale>.json`
|
|
51
|
+
1. Edit `scripts/lib/i18n/messages/<locale>.json` - add the keys you can translate (any `en` key is
|
|
52
52
|
fair game; you do not need 100%).
|
|
53
53
|
2. Set `_meta.coverage` to `"complete"` once every `en` key is present, else leave `"placeholder"`.
|
|
54
54
|
3. Add a translator-credit line to `NOTICE` under the attributions section (name/handle + locale).
|
|
@@ -56,6 +56,6 @@ is ever missing at runtime.
|
|
|
56
56
|
|
|
57
57
|
## Boundaries
|
|
58
58
|
|
|
59
|
-
`--help` + common errors + skill prompt headers only
|
|
59
|
+
`--help` + common errors + skill prompt headers only - not full skill bodies (deferred per demand),
|
|
60
60
|
not RTL terminal rendering (a terminal concern), not voice/conversational localization. English is
|
|
61
61
|
always the final fallback, so the CLI is never broken by a partial translation.
|
package/reference/codex-tools.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Last verified: 2026-04-24
|
|
4
4
|
|
|
5
5
|
When a GDD skill references a Claude Code tool name, the Codex runtime
|
|
6
|
-
translates to the equivalent below. Skills do NOT need to branch
|
|
6
|
+
translates to the equivalent below. Skills do NOT need to branch - the tool
|
|
7
7
|
name in prose is authoritative; Codex resolves via this map.
|
|
8
8
|
|
|
9
9
|
## Tool-name mapping
|
|
@@ -49,5 +49,5 @@ All 11 tools exposed by the server appear as `mcp__gdd_state__*` in Codex.
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
Last verified: 2026-04-24
|
|
52
|
+
Last verified: 2026-04-24 - tool surface re-checked against Codex CLI docs
|
|
53
53
|
current to this date. Revisit whenever Codex ships a tool-vocabulary change.
|
|
@@ -9,23 +9,23 @@ last_updated: 2026-05-18
|
|
|
9
9
|
|
|
10
10
|
# Color Theory
|
|
11
11
|
|
|
12
|
-
The existing [palette catalog](./palette-catalog.md) gives industry-vertical lookup
|
|
12
|
+
The existing [palette catalog](./palette-catalog.md) gives industry-vertical lookup - read a row, adopt the baseline tokens, ship. This file gives the underlying model so an agent can reason about color *before* applying it: which color space to author in, how to construct a harmony that holds together under motion and across viewing conditions, how surrounding context shifts perception, which hue pairs collapse under common color-blindness, and why default sRGB interpolation produces muddy mid-transitions in animation. Where the catalog says "shift the primary hue ±15°", this file replaces that hand-wave with explicit OKLCH ΔL/ΔC/Δh guidance.
|
|
13
13
|
|
|
14
|
-
This is the file an agent should consult any time it is *constructing* color
|
|
14
|
+
This is the file an agent should consult any time it is *constructing* color - picking a new palette, generating a harmony, animating a color, or auditing a contrast pair under the color-blindness lens.
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
## Color Spaces
|
|
18
|
+
## Color Spaces - sRGB / HSL / OKLCH / LCH
|
|
19
19
|
|
|
20
20
|
Color is not one thing. Every "color" lives in some color space, and every color space makes a trade between three concerns: device gamut (what monitors can actually display), authoring ergonomics (what a human can predict from the numbers), and perceptual uniformity (whether equal numeric jumps produce equal perceived jumps). Choosing the wrong space costs hours of token tweaking and produces palettes that drift under interpolation.
|
|
21
21
|
|
|
22
22
|
### sRGB
|
|
23
23
|
|
|
24
|
-
sRGB is the device-coordinate space
|
|
24
|
+
sRGB is the device-coordinate space - three channels (`r`, `g`, `b`), each `0–255` or `0–1`, mapped onto the standard-monitor gamut defined by IEC 61966-2-1 (1996). It models *what the monitor emits*, not *what the eye perceives*. Equal numeric jumps are not equal perceptual jumps: stepping `rgb(50 50 50)` → `rgb(100 100 100)` looks like a much larger lightness change than `rgb(200 200 200)` → `rgb(250 250 250)`, even though both are a +50 step. Use sRGB only at the output layer (final compiled CSS), not as the authoring space for a palette.
|
|
25
25
|
|
|
26
26
|
### HSL
|
|
27
27
|
|
|
28
|
-
HSL was the first authoring-friendly attempt: three channels (`h` 0–360°, `s` 0–100%, `l` 0–100%) that decompose color into hue, saturation, and lightness
|
|
28
|
+
HSL was the first authoring-friendly attempt: three channels (`h` 0–360°, `s` 0–100%, `l` 0–100%) that decompose color into hue, saturation, and lightness - the dimensions a human reasons in. The catch: HSL's `l` is *not* perceptual lightness. `hsl(60 100% 50%)` (pure yellow) and `hsl(240 100% 50%)` (pure blue) both have `l: 50%`, but yellow looks vastly brighter than blue at identical `l`. This means a design instruction like "shift hue 30°, hold lightness constant" can produce wildly different perceived lightnesses across hue ranges. HSL is fine for quick mental math; it is wrong for token-system construction.
|
|
29
29
|
|
|
30
30
|
### OKLCH
|
|
31
31
|
|
|
@@ -35,13 +35,13 @@ OKLCH is the modern authoring default: three channels (`L` 0–1 perceptual ligh
|
|
|
35
35
|
2. **Independent C and h axes.** Adjusting chroma does not drift lightness; rotating hue does not drift either. Token systems become predictable.
|
|
36
36
|
3. **Wide-gamut aware.** OKLCH expresses Display-P3 and Rec.2020 colors that sRGB cannot represent, while remaining a single authoring space.
|
|
37
37
|
|
|
38
|
-
Browser support: CSS Color Module 4 `oklch(L C H)` shipped in Safari 15.4, Chrome 111, Firefox 113
|
|
38
|
+
Browser support: CSS Color Module 4 `oklch(L C H)` shipped in Safari 15.4, Chrome 111, Firefox 113 - already production-safe for token authoring with sRGB fallback.
|
|
39
39
|
|
|
40
40
|
### LCH
|
|
41
41
|
|
|
42
|
-
LCH (CIE Lab-based) is OKLCH's older sibling: same three-axis structure (`L`, `C`, `h`), built on the 1976 CIE L*a*b* color space. It is perceptually uniform but has well-documented hue-rotation kinks in the blue range
|
|
42
|
+
LCH (CIE Lab-based) is OKLCH's older sibling: same three-axis structure (`L`, `C`, `h`), built on the 1976 CIE L*a*b* color space. It is perceptually uniform but has well-documented hue-rotation kinks in the blue range - straight-line hue interpolation through LCH visibly bends toward purple. OKLCH was specifically designed to fix this. Use LCH only when matching an existing print or video pipeline; otherwise prefer OKLCH.
|
|
43
43
|
|
|
44
|
-
### Concrete CSS
|
|
44
|
+
### Concrete CSS - the same color in four spaces
|
|
45
45
|
|
|
46
46
|
Using `#1A56DB` from the FinTech/Banking row of [./palette-catalog.md](./palette-catalog.md) as the authoritative primary:
|
|
47
47
|
|
|
@@ -65,7 +65,7 @@ Using `#1A56DB` from the FinTech/Banking row of [./palette-catalog.md](./palette
|
|
|
65
65
|
|
|
66
66
|
## Color Harmonies
|
|
67
67
|
|
|
68
|
-
All six harmonies expressed in OKLCH
|
|
68
|
+
All six harmonies expressed in OKLCH - adjust hue offset while holding `L` and `C` constant for perceptual stability. The hue offset is what defines the harmony; the lightness and chroma stay anchored so the relationship reads as a *family*, not a collision.
|
|
69
69
|
|
|
70
70
|
### Complementary
|
|
71
71
|
|
|
@@ -83,7 +83,7 @@ Formula: `h + 180°`, hold `L` and `C` constant.
|
|
|
83
83
|
|
|
84
84
|
### Analogous
|
|
85
85
|
|
|
86
|
-
Three hues at small offsets
|
|
86
|
+
Three hues at small offsets - typically 30°. Reads as a single mood with internal modulation; ideal for backgrounds, illustrations, and gentle gradients.
|
|
87
87
|
|
|
88
88
|
Formula: `[h - 30°, h, h + 30°]`, hold `L` and `C` constant.
|
|
89
89
|
|
|
@@ -98,7 +98,7 @@ Formula: `[h - 30°, h, h + 30°]`, hold `L` and `C` constant.
|
|
|
98
98
|
|
|
99
99
|
### Triadic
|
|
100
100
|
|
|
101
|
-
Three hues evenly spaced 120° apart. High visual energy, balanced
|
|
101
|
+
Three hues evenly spaced 120° apart. High visual energy, balanced - used for playful brand systems and category color coding.
|
|
102
102
|
|
|
103
103
|
Formula: `[h, h + 120°, h + 240°]`, hold `L` and `C` constant.
|
|
104
104
|
|
|
@@ -128,7 +128,7 @@ Formula: `[h, h + 150°, h + 210°]`, hold `L` and `C` constant.
|
|
|
128
128
|
|
|
129
129
|
### Tetradic
|
|
130
130
|
|
|
131
|
-
Four hues forming a rectangle on the hue wheel
|
|
131
|
+
Four hues forming a rectangle on the hue wheel - two complementary pairs offset from each other. Very rich; demands one dominant hue and three accents at lower chroma to avoid noise.
|
|
132
132
|
|
|
133
133
|
Formula: `[h, h + 60°, h + 180°, h + 240°]`, hold `L` and `C` constant.
|
|
134
134
|
|
|
@@ -166,14 +166,14 @@ Formula: hold `h` constant; vary `L` across `0.95 → 0.15` for a 9-step scale;
|
|
|
166
166
|
- **Two clear actions (primary vs. destructive):** complementary.
|
|
167
167
|
- **Three-category coding (status: ok / warn / error):** triadic.
|
|
168
168
|
- **Dashboard with one hero accent + supporting hues:** split-complement.
|
|
169
|
-
- **Editorial / illustrative / rich brand:** tetradic
|
|
169
|
+
- **Editorial / illustrative / rich brand:** tetradic - but reduce chroma on three of the four hues.
|
|
170
170
|
- **Token system primarily expressing depth, not category:** monochromatic, scaled across `L`.
|
|
171
171
|
|
|
172
172
|
---
|
|
173
173
|
|
|
174
174
|
## Simultaneous Contrast and Warm-Cool Effects
|
|
175
175
|
|
|
176
|
-
Color is never seen in isolation. The eye continuously normalizes color relative to its surround
|
|
176
|
+
Color is never seen in isolation. The eye continuously normalizes color relative to its surround - a phenomenon Josef Albers documented exhaustively in *Interaction of Color* (1963) and which the perceptual literature calls *simultaneous contrast*. The same OKLCH value placed against a darker surround reads *lighter and more saturated* than placed against a lighter surround; against a complementary surround, hue itself shifts. Token-level lesson: a contrast ratio measured against pure white at design time is not the contrast a user perceives at runtime in a card-on-card-on-background layout.
|
|
177
177
|
|
|
178
178
|
```css
|
|
179
179
|
/* Same foreground token, two surrounds. The same token reads as a different color. */
|
|
@@ -187,15 +187,15 @@ Color is never seen in isolation. The eye continuously normalizes color relative
|
|
|
187
187
|
}
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
-
Warm-cool effects are simultaneous contrast's spatial cousin. Warm hues (red through yellow, OKLCH `h` roughly 0–90°) read as *advancing*
|
|
190
|
+
Warm-cool effects are simultaneous contrast's spatial cousin. Warm hues (red through yellow, OKLCH `h` roughly 0–90°) read as *advancing* - they appear closer to the viewer; cool hues (green through blue, OKLCH `h` roughly 140–270°) read as *receding*. Place a warm accent against a cool field and the accent leaps forward; reverse the relationship and the same hue retreats. Use this deliberately: warm accents pull the eye to primary actions and selected states; cool accents recede appropriately for ambient information, hover states, and large background fields where you do not want the surface competing for attention.
|
|
191
191
|
|
|
192
192
|
---
|
|
193
193
|
|
|
194
|
-
## Color-Blindness
|
|
194
|
+
## Color-Blindness - Deutan / Protan / Tritan
|
|
195
195
|
|
|
196
|
-
Color-vision deficiency is common
|
|
196
|
+
Color-vision deficiency is common - roughly 8% of males and 0.5% of females of Northern European descent have some form. The three clinical types collapse different hue pairs:
|
|
197
197
|
|
|
198
|
-
- **Deutan** (deuteranomaly / deuteranopia, ~6% of males
|
|
198
|
+
- **Deutan** (deuteranomaly / deuteranopia, ~6% of males - the most common): reduced green sensitivity. Confuses red-green pairs at similar lightness, and green-brown at similar saturation.
|
|
199
199
|
- **Protan** (protanomaly / protanopia, ~1% of males): reduced red sensitivity. Confuses red-green pairs; reds appear darker than to typical vision.
|
|
200
200
|
- **Tritan** (tritanomaly / tritanopia, very rare, <0.01%): reduced blue sensitivity. Confuses blue-yellow pairs and blue-green pairs.
|
|
201
201
|
|
|
@@ -204,9 +204,9 @@ Token-level guidance:
|
|
|
204
204
|
1. **Never encode status with red/green alone at similar `L`.** A red-green status pair where both tokens sit at `oklch(0.6 …)` is invisible to a deutan viewer. Either separate `L` by at least 0.15, or distinguish with an icon/shape.
|
|
205
205
|
2. **Prefer hue pairs separated by ≥ 120° in OKLCH `h` for category coding.** Red (`h ≈ 30°`) vs. blue (`h ≈ 260°`) is ~230° apart and reads reliably across all three types. Red (`h ≈ 30°`) vs. green (`h ≈ 140°`) is only ~110° apart and collapses under deutan.
|
|
206
206
|
3. **Test the destructive / success pair under deutan simulation.** If a deutan filter renders them indistinguishable, raise their lightness contrast.
|
|
207
|
-
4. **Add a non-color carrier.** Icons, underlines, bold weight, position
|
|
207
|
+
4. **Add a non-color carrier.** Icons, underlines, bold weight, position - color must never be the *only* differentiator (WCAG 1.4.1, Use of Color).
|
|
208
208
|
|
|
209
|
-
A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nature Methods* 2011)
|
|
209
|
+
A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nature Methods* 2011) - designed for scientific visualization to remain distinguishable under all three CVD types. Concrete OKLCH approximations of three of its colors for direct use in a token system:
|
|
210
210
|
|
|
211
211
|
```css
|
|
212
212
|
/* Three of the 8 Wong CB-safe palette colors, approximated in OKLCH. */
|
|
@@ -217,13 +217,13 @@ A good starting palette is the **Wong 8-color CB-safe palette** (Bang Wong, *Nat
|
|
|
217
217
|
}
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
See [./accessibility.md](./accessibility.md) for the WCAG intersection
|
|
220
|
+
See [./accessibility.md](./accessibility.md) for the WCAG intersection - color must not be the only differentiator (WCAG 1.4.1), and the chosen pair must still satisfy 4.5:1 body-text and 3:1 UI-element contrast thresholds at any combination used.
|
|
221
221
|
|
|
222
222
|
---
|
|
223
223
|
|
|
224
224
|
## Color Interpolation in Animation
|
|
225
225
|
|
|
226
|
-
Animating from one color to another is interpolation across a color space, and the choice of space changes what the user sees mid-transition. When CSS animates `background-color` from red to green in default sRGB, the midpoint becomes muddy gray
|
|
226
|
+
Animating from one color to another is interpolation across a color space, and the choice of space changes what the user sees mid-transition. When CSS animates `background-color` from red to green in default sRGB, the midpoint becomes muddy gray - sRGB's interpolation path crosses the desaturated valley between hues, dragging chroma toward 0 at the midpoint. The same animation in OKLCH walks a perceptually-clean arc along the hue wheel, preserving chroma and lightness across the transition. The user never sees gray.
|
|
227
227
|
|
|
228
228
|
```css
|
|
229
229
|
/* BAD — default interpolation space is sRGB. Red → green midpoint is muddy gray. */
|
|
@@ -258,13 +258,13 @@ Animating from one color to another is interpolation across a color space, and t
|
|
|
258
258
|
}
|
|
259
259
|
```
|
|
260
260
|
|
|
261
|
-
Lab-based interpolation (`in lab` or `in oklab`) is also chromatically clean and is the right choice when matching a print pipeline; OKLCH is the right choice for everything else because hue stays on the perceptual wheel and lightness stays steady. Avoid `in hsl` for cross-hue interpolation
|
|
261
|
+
Lab-based interpolation (`in lab` or `in oklab`) is also chromatically clean and is the right choice when matching a print pipeline; OKLCH is the right choice for everything else because hue stays on the perceptual wheel and lightness stays steady. Avoid `in hsl` for cross-hue interpolation - it inherits HSL's non-perceptual lightness and produces lightness drift across hue families.
|
|
262
262
|
|
|
263
263
|
Practical defaults:
|
|
264
264
|
|
|
265
265
|
- **Same-hue intensity changes** (e.g., disabled → enabled, hover): any space is acceptable; OKLCH is still preferred for predictability.
|
|
266
266
|
- **Cross-hue transitions** (status changes, theme swaps, brand-moment flourishes): mandate `in oklch` or `color-mix(in oklch, …)`. Default sRGB is the muddy-mid bug.
|
|
267
|
-
- **Dark-mode swap animations**: mandate `in oklch` for the same reason
|
|
267
|
+
- **Dark-mode swap animations**: mandate `in oklch` for the same reason - sRGB midpoints across the L extremes are visibly grayed.
|
|
268
268
|
|
|
269
269
|
See [./motion-interpolate.md](./motion-interpolate.md) for the cross-system motion-interpolation discipline that owns interpolation rules across spaces (timing, easing, value mapping). That file owns the interpolation rules; this section owns the color-specific reasoning.
|
|
270
270
|
|
|
@@ -272,8 +272,8 @@ See [./motion-interpolate.md](./motion-interpolate.md) for the cross-system moti
|
|
|
272
272
|
|
|
273
273
|
## Cross-References
|
|
274
274
|
|
|
275
|
-
- [./palette-catalog.md](./palette-catalog.md)
|
|
276
|
-
- [./motion-interpolate.md](./motion-interpolate.md)
|
|
277
|
-
- [./accessibility.md](./accessibility.md)
|
|
275
|
+
- [./palette-catalog.md](./palette-catalog.md) - industry-vertical lookup table; this file replaces its Step 4 "shift hue ±15°" instruction with explicit OKLCH ΔL/ΔC/Δh guidance and supplies the underlying color-space model.
|
|
276
|
+
- [./motion-interpolate.md](./motion-interpolate.md) - cross-system motion-interpolation discipline; this file's §Color Interpolation in Animation links out to it for the broader interpolation rules.
|
|
277
|
+
- [./accessibility.md](./accessibility.md) - WCAG 2.1 thresholds; this file's §Color-Blindness section intersects with WCAG 1.4.1 (Use of Color) and 1.4.3 (Contrast Minimum).
|
|
278
278
|
|
|
279
|
-
Reciprocal inbound cross-links land in Phase 28-06 (additive-only, D-06)
|
|
279
|
+
Reciprocal inbound cross-links land in Phase 28-06 (additive-only, D-06) - the other files will gain pointers back to this one without altering their existing content.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Component Authoring Principles
|
|
2
2
|
|
|
3
|
-
Source: Emil Kowalski's work on Sonner, Vaul, and cmdk
|
|
3
|
+
Source: Emil Kowalski's work on Sonner, Vaul, and cmdk - synthesised from his published writing and talks. See also: `reference/framer-motion-patterns.md`, `reference/motion-advanced.md`.
|
|
4
4
|
|
|
5
5
|
Use this file when authoring, reviewing, or auditing UI components. The 6 principles apply as a lens during code review and design verification. Each principle has a grep-able audit signal.
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ grep -E "^\s+\w+: " src/components/Button.tsx | grep -v "?" | wc -l
|
|
|
25
25
|
- 6–9 props total: acceptable if logically grouped
|
|
26
26
|
- ≥10 props: flag for decomposition
|
|
27
27
|
|
|
28
|
-
**Pattern
|
|
28
|
+
**Pattern - variant over prop explosion:**
|
|
29
29
|
```tsx
|
|
30
30
|
// BAD — prop explosion
|
|
31
31
|
<Button color="blue" size="md" rounded={true} shadow={true} uppercase={false} />
|
|
@@ -48,7 +48,7 @@ The right abstraction lets consumers build what they need by combining small pie
|
|
|
48
48
|
grep -rE "(backgroundColor|textColor|borderRadius|fontSize)=" src/components/ --include="*.tsx"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
**Pattern
|
|
51
|
+
**Pattern - slot composition:**
|
|
52
52
|
```tsx
|
|
53
53
|
// BAD — too much configuration
|
|
54
54
|
<Card title="Hello" subtitle="World" icon="user" rightContent={<Badge />} />
|
|
@@ -78,7 +78,7 @@ A component with sensible defaults doesn't require the consumer to know its inte
|
|
|
78
78
|
grep -E "^\s+\w+: " src/components/Toast.tsx | grep -v "?" | wc -l
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
**The Sonner model:** `<Toaster />` with zero props renders a toast system that follows the OS color scheme, positions correctly on all viewports, stacks properly, and auto-dismisses at a sensible duration. All options exist
|
|
81
|
+
**The Sonner model:** `<Toaster />` with zero props renders a toast system that follows the OS color scheme, positions correctly on all viewports, stacks properly, and auto-dismisses at a sensible duration. All options exist - but the zero-prop case works.
|
|
82
82
|
|
|
83
83
|
**Anti-pattern:** Required props for things with a logical default (e.g., `position` on a modal that should always default to `center`).
|
|
84
84
|
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
Per-component design specifications harvested from 18 major design systems.
|
|
4
4
|
Each spec is ≤350 lines, greppable, diff-friendly, and agent-consumable.
|
|
5
5
|
|
|
6
|
-
**Spec shape**: `TEMPLATE.md`
|
|
6
|
+
**Spec shape**: `TEMPLATE.md` - Purpose · Anatomy · Variants · States · Sizing ·
|
|
7
7
|
Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations · Grep signatures
|
|
8
8
|
|
|
9
9
|
**Harvest source list**: `connections/design-corpora.md` (18 systems)
|
|
10
10
|
**Tooling**: `agents/component-benchmark-harvester.md` → `agents/component-benchmark-synthesizer.md`
|
|
11
|
-
**CLI**: `/gdd:benchmark <component>`
|
|
11
|
+
**CLI**: `/gdd:benchmark <component>` - see `skills/benchmark/SKILL.md`
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
## Wave 1
|
|
15
|
+
## Wave 1 - Inputs (foundational)
|
|
16
16
|
|
|
17
17
|
| Component | Spec | Purpose |
|
|
18
18
|
|-----------|------|---------|
|
|
@@ -27,7 +27,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
-
## Wave 2
|
|
30
|
+
## Wave 2 - Containers
|
|
31
31
|
|
|
32
32
|
| Component | Spec | Purpose |
|
|
33
33
|
|-----------|------|---------|
|
|
@@ -41,7 +41,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
|
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
|
-
## Wave 3
|
|
44
|
+
## Wave 3 - Feedback
|
|
45
45
|
|
|
46
46
|
| Component | Spec | Purpose |
|
|
47
47
|
|-----------|------|---------|
|
|
@@ -54,7 +54,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
|
|
|
54
54
|
|
|
55
55
|
---
|
|
56
56
|
|
|
57
|
-
## Wave 4
|
|
57
|
+
## Wave 4 - Navigation & Data *(v1.17.0 · plan 17-02)*
|
|
58
58
|
|
|
59
59
|
| Component | Spec | Purpose |
|
|
60
60
|
|-----------|------|---------|
|
|
@@ -70,7 +70,7 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
|
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
## Wave 5
|
|
73
|
+
## Wave 5 - Data & Advanced
|
|
74
74
|
|
|
75
75
|
| Component | Spec | Purpose |
|
|
76
76
|
|-----------|------|---------|
|
|
@@ -86,9 +86,9 @@ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations
|
|
|
86
86
|
|
|
87
87
|
| Wave | Specs | Status |
|
|
88
88
|
|------|-------|--------|
|
|
89
|
-
| Wave 1
|
|
90
|
-
| Wave 2
|
|
91
|
-
| Wave 3
|
|
92
|
-
| Wave 4
|
|
93
|
-
| Wave 5
|
|
94
|
-
| **Total** | **35** |
|
|
89
|
+
| Wave 1 - Inputs | 8 | v1.16.0 |
|
|
90
|
+
| Wave 2 - Containers | 7 | v1.16.0 |
|
|
91
|
+
| Wave 3 - Feedback | 6 | v1.17.0 |
|
|
92
|
+
| Wave 4 - Navigation & Data | 9 | v1.17.0 |
|
|
93
|
+
| Wave 5 - Data & Advanced | 5 | v1.17.0 |
|
|
94
|
+
| **Total** | **35** | - |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# [Component Name]
|
|
1
|
+
# [Component Name] - Benchmark Spec
|
|
2
2
|
|
|
3
3
|
> **Template version**: 1.0 (Phase 16)
|
|
4
4
|
> Replace every placeholder in `[brackets]`. Delete this block before committing.
|
|
@@ -55,10 +55,10 @@ distinguishes it visually/behaviorally.]
|
|
|
55
55
|
|
|
56
56
|
| State | Trigger | Visual | ARIA |
|
|
57
57
|
|-------|---------|--------|------|
|
|
58
|
-
| default |
|
|
59
|
-
| hover | pointer over | [description] |
|
|
60
|
-
| focus | keyboard focus | focus-visible ring |
|
|
61
|
-
| active / pressed | mousedown / Space/Enter | [description] |
|
|
58
|
+
| default | - | [description] | - |
|
|
59
|
+
| hover | pointer over | [description] | - |
|
|
60
|
+
| focus | keyboard focus | focus-visible ring | - |
|
|
61
|
+
| active / pressed | mousedown / Space/Enter | [description] | - |
|
|
62
62
|
| disabled | `disabled` attr | [description] | `aria-disabled="true"` |
|
|
63
63
|
| loading | [if applicable] | [description] | `aria-busy="true"` |
|
|
64
64
|
| error | [if applicable] | [description] | `aria-invalid="true"` |
|
|
@@ -84,7 +84,7 @@ for typographic and radius rules.]
|
|
|
84
84
|
|
|
85
85
|
[Any typographic constraints: weight, size relative to body, line-height cap, truncation rules.]
|
|
86
86
|
|
|
87
|
-
Cross-link: `reference/typography.md`
|
|
87
|
+
Cross-link: `reference/typography.md` - [relevant section]
|
|
88
88
|
|
|
89
89
|
---
|
|
90
90
|
|
|
@@ -95,7 +95,7 @@ Cross-link: `reference/typography.md` — [relevant section]
|
|
|
95
95
|
|
|
96
96
|
### Keyboard Contract
|
|
97
97
|
|
|
98
|
-
*Quoted verbatim from WAI-ARIA APG
|
|
98
|
+
*Quoted verbatim from WAI-ARIA APG - [pattern URL] - W3C - [access date]*
|
|
99
99
|
|
|
100
100
|
| Key | Action |
|
|
101
101
|
|-----|--------|
|
|
@@ -103,11 +103,11 @@ Cross-link: `reference/typography.md` — [relevant section]
|
|
|
103
103
|
|
|
104
104
|
### Accessibility Rules
|
|
105
105
|
|
|
106
|
-
- [Rule 1
|
|
107
|
-
- [Rule 2
|
|
108
|
-
- [Rule 3
|
|
106
|
+
- [Rule 1 - e.g., must have visible label or `aria-label`]
|
|
107
|
+
- [Rule 2 - e.g., focus-visible ring must not be suppressed]
|
|
108
|
+
- [Rule 3 - e.g., disabled state uses `aria-disabled`, not `disabled` attr, if interactive]
|
|
109
109
|
|
|
110
|
-
Cross-link: `reference/accessibility.md`
|
|
110
|
+
Cross-link: `reference/accessibility.md` - [relevant section]
|
|
111
111
|
|
|
112
112
|
---
|
|
113
113
|
|
|
@@ -121,7 +121,7 @@ Cross-link: `reference/accessibility.md` — [relevant section]
|
|
|
121
121
|
|
|
122
122
|
**BAN**: [any motion anti-patterns specific to this component]
|
|
123
123
|
|
|
124
|
-
Cross-link: `reference/motion.md`
|
|
124
|
+
Cross-link: `reference/motion.md` - [relevant section]
|
|
125
125
|
|
|
126
126
|
---
|
|
127
127
|
|
|
@@ -143,7 +143,7 @@ Cross-link: `reference/motion.md` — [relevant section]
|
|
|
143
143
|
|
|
144
144
|
| Anti-pattern | Entry |
|
|
145
145
|
|--------------|-------|
|
|
146
|
-
| [BAN-XX] | [brief name]
|
|
146
|
+
| [BAN-XX] | [brief name] - `reference/anti-patterns.md#ban-xx` |
|
|
147
147
|
|
|
148
148
|
---
|
|
149
149
|
|