@hegemonart/get-design-done 1.41.5 → 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 +1120 -1029
- package/README.md +158 -154
- 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 +48 -0
- package/dist/claude-code/.claude/skills/analyze-dependencies/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/apply-reflections/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/apply-reflections/apply-reflections-procedure.md +170 -0
- package/dist/claude-code/.claude/skills/audit/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/bandit-status/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/benchmark/SKILL.md +65 -0
- package/dist/claude-code/.claude/skills/bootstrap-ds/SKILL.md +43 -0
- package/dist/claude-code/.claude/skills/brief/SKILL.md +128 -0
- package/dist/claude-code/.claude/skills/budget/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/cache-manager/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/cache-manager/cache-policy.md +126 -0
- package/dist/claude-code/.claude/skills/check-update/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/compare/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/compare/compare-rubric.md +171 -0
- package/dist/claude-code/.claude/skills/complete-cycle/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/connections/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/connections/connections-onboarding.md +608 -0
- package/dist/claude-code/.claude/skills/continue/SKILL.md +24 -0
- package/dist/claude-code/.claude/skills/darkmode/SKILL.md +76 -0
- package/dist/claude-code/.claude/skills/darkmode/darkmode-audit-procedure.md +258 -0
- package/dist/claude-code/.claude/skills/debug/SKILL.md +41 -0
- package/dist/claude-code/.claude/skills/debug/debug-feedback-loops.md +119 -0
- package/dist/claude-code/.claude/skills/design/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/design/design-procedure.md +304 -0
- package/dist/claude-code/.claude/skills/discover/SKILL.md +72 -0
- package/dist/claude-code/.claude/skills/discover/discover-procedure.md +222 -0
- package/dist/claude-code/.claude/skills/discuss/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/do/SKILL.md +45 -0
- package/dist/claude-code/.claude/skills/explore/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/explore/explore-procedure.md +267 -0
- package/dist/claude-code/.claude/skills/export/SKILL.md +30 -0
- package/dist/claude-code/.claude/skills/extract-learnings/SKILL.md +98 -0
- package/dist/claude-code/.claude/skills/fast/SKILL.md +91 -0
- package/dist/claude-code/.claude/skills/figma-extract/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/figma-write/SKILL.md +39 -0
- package/dist/claude-code/.claude/skills/graphify/SKILL.md +49 -0
- package/dist/claude-code/.claude/skills/health/SKILL.md +99 -0
- package/dist/claude-code/.claude/skills/health/health-mcp-detection.md +44 -0
- package/dist/claude-code/.claude/skills/health/health-skill-length-report.md +69 -0
- package/dist/claude-code/.claude/skills/help/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/list-assumptions/SKILL.md +61 -0
- package/dist/claude-code/.claude/skills/locale/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/map/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/migrate/SKILL.md +70 -0
- package/dist/claude-code/.claude/skills/new-cycle/SKILL.md +37 -0
- package/dist/claude-code/.claude/skills/new-cycle/milestone-completeness-rubric.md +87 -0
- package/dist/claude-code/.claude/skills/new-project/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/next/SKILL.md +68 -0
- package/dist/claude-code/.claude/skills/note/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/openrouter-status/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/optimize/SKILL.md +97 -0
- package/dist/claude-code/.claude/skills/pause/SKILL.md +77 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/SKILL.md +88 -0
- package/dist/claude-code/.claude/skills/peer-cli-add/peer-cli-protocol.md +161 -0
- package/dist/claude-code/.claude/skills/peer-cli-customize/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/peers/SKILL.md +96 -0
- package/dist/claude-code/.claude/skills/plan/SKILL.md +105 -0
- package/dist/claude-code/.claude/skills/plan/plan-procedure.md +278 -0
- package/dist/claude-code/.claude/skills/plant-seed/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/pr-branch/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/progress/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/quality-gate/SKILL.md +90 -0
- package/dist/claude-code/.claude/skills/quality-gate/threat-modeling.md +101 -0
- package/dist/claude-code/.claude/skills/quick/SKILL.md +44 -0
- package/dist/claude-code/.claude/skills/reapply-patches/SKILL.md +32 -0
- package/dist/claude-code/.claude/skills/recall/SKILL.md +75 -0
- package/dist/claude-code/.claude/skills/reflect/SKILL.md +85 -0
- package/dist/claude-code/.claude/skills/reflect/procedures/capability-gap-scan.md +120 -0
- package/dist/claude-code/.claude/skills/report-issue/SKILL.md +53 -0
- package/dist/claude-code/.claude/skills/report-issue/report-issue-procedure.md +120 -0
- package/dist/claude-code/.claude/skills/resume/SKILL.md +93 -0
- package/dist/claude-code/.claude/skills/review-backlog/SKILL.md +46 -0
- package/dist/claude-code/.claude/skills/review-decisions/SKILL.md +42 -0
- package/dist/claude-code/.claude/skills/roi/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/rollout-status/SKILL.md +35 -0
- package/dist/claude-code/.claude/skills/router/SKILL.md +89 -0
- package/dist/claude-code/.claude/skills/router/capability-gap-emitter.md +65 -0
- package/dist/claude-code/.claude/skills/router/router-pick-emitter.md +78 -0
- package/dist/claude-code/.claude/skills/router/router-rules.md +84 -0
- package/dist/claude-code/.claude/skills/scan/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/scan/scan-procedure.md +732 -0
- package/dist/claude-code/.claude/skills/settings/SKILL.md +87 -0
- package/dist/claude-code/.claude/skills/ship/SKILL.md +48 -0
- package/dist/claude-code/.claude/skills/sketch/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/sketch-wrap-up/SKILL.md +92 -0
- package/dist/claude-code/.claude/skills/skill-manifest/SKILL.md +79 -0
- package/dist/claude-code/.claude/skills/spike/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/spike-wrap-up/SKILL.md +86 -0
- package/dist/claude-code/.claude/skills/start/SKILL.md +67 -0
- package/dist/claude-code/.claude/skills/start/start-procedure.md +115 -0
- package/dist/claude-code/.claude/skills/stats/SKILL.md +51 -0
- package/dist/claude-code/.claude/skills/style/SKILL.md +71 -0
- package/dist/claude-code/.claude/skills/style/style-doc-procedure.md +150 -0
- package/dist/claude-code/.claude/skills/synthesize/SKILL.md +94 -0
- package/dist/claude-code/.claude/skills/timeline/SKILL.md +66 -0
- package/dist/claude-code/.claude/skills/todo/SKILL.md +64 -0
- package/dist/claude-code/.claude/skills/turn-closeout/SKILL.md +95 -0
- package/dist/claude-code/.claude/skills/undo/SKILL.md +31 -0
- package/dist/claude-code/.claude/skills/unlock-decision/SKILL.md +54 -0
- package/dist/claude-code/.claude/skills/update/SKILL.md +56 -0
- package/dist/claude-code/.claude/skills/using-gdd/SKILL.md +78 -0
- package/dist/claude-code/.claude/skills/verify/SKILL.md +113 -0
- package/dist/claude-code/.claude/skills/verify/verify-procedure.md +512 -0
- package/dist/claude-code/.claude/skills/warm-cache/SKILL.md +81 -0
- package/dist/claude-code/.claude/skills/watch-authorities/SKILL.md +82 -0
- package/dist/claude-code/.claude/skills/zoom-out/SKILL.md +26 -0
- package/package.json +8 -2
- package/reference/DEPRECATIONS.md +21 -7
- 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/registry.json +7 -0
- 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 +71 -0
- 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/build/factory.cjs +62 -0
- package/scripts/lib/build/harness-configs.cjs +64 -0
- package/scripts/lib/manifest/prose-denylist.json +1 -1
- package/sdk/cli/commands/build.ts +106 -0
- package/sdk/cli/index.js +84 -2
- package/sdk/cli/index.ts +7 -0
- 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/brand-voice.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Source: nextlevelbuilder/ui-ux-pro-max-skill (MIT) — data/products.csv, data/ui-reasoning.csv (industry-context section) -->
|
|
4
4
|
|
|
5
|
-
Brand voice is not a single setting
|
|
5
|
+
Brand voice is not a single setting - it is a combination of independent axes, an archetype frame, and a sensitivity to context. Agents reading this file should treat the voice axes and archetype library as orthogonal dimensions: pick a position on each axis independently, then select an archetype to layer personality on top. Neither choice is derived from the other.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
## Voice Axes
|
|
10
10
|
|
|
11
|
-
Each axis is a spectrum between two poles. Moving toward one pole is not superior to moving toward the other
|
|
11
|
+
Each axis is a spectrum between two poles. Moving toward one pole is not superior to moving toward the other - the correct position depends entirely on the product's audience, vertical, and context of use. Most products do not land at the extreme of any axis; they occupy a deliberate range within it.
|
|
12
12
|
|
|
13
13
|
### Axis 1: Formal ↔ Casual
|
|
14
14
|
|
|
@@ -30,7 +30,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
30
30
|
|
|
31
31
|
**Serious pole:** Tone is earnest and sober. Errors are acknowledged without irony. Humor is absent or very subdued. Stakes are treated as real. Example error message: "We were unable to process your payment. Please verify your card details and try again, or contact your bank."
|
|
32
32
|
|
|
33
|
-
**Playful pole:** Tone uses wit, lightness, and occasionally emoji or metaphor to reduce tension and delight the user. Playfulness does not mean frivolous
|
|
33
|
+
**Playful pole:** Tone uses wit, lightness, and occasionally emoji or metaphor to reduce tension and delight the user. Playfulness does not mean frivolous - it means the product enjoys its own existence. Example error message: "Something got tangled up on our end. Give it another go? 🙏"
|
|
34
34
|
|
|
35
35
|
**When to move toward Serious:** Enterprise B2B, professional tools, medical platforms, legal services, and financial dashboards should maintain a serious register because users are performing consequential work and playful tone signals a mismatch in understanding stakes. An HR platform with whimsical error messages risks undermining managerial authority.
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
38
38
|
|
|
39
39
|
**Copy examples:**
|
|
40
40
|
- Serious: "This action cannot be undone. All selected records will be permanently deleted."
|
|
41
|
-
- Playful: "Heads up
|
|
41
|
+
- Playful: "Heads up - once you delete this, it's gone for good. Still want to?"
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
46
46
|
|
|
47
47
|
**Expert pole:** Language assumes domain knowledge. Technical terms are used without definition. The product speaks as a peer to specialists. Precision is prioritized over accessibility. Example: "Configure your OAuth 2.0 PKCE flow with a 256-bit code verifier before initiating the authorization request."
|
|
48
48
|
|
|
49
|
-
**Approachable pole:** Language explains concepts in plain English. Jargon is translated or avoided. The product speaks as a guide to non-specialists. Accessibility is prioritized over brevity. Example: "Connect your account securely
|
|
49
|
+
**Approachable pole:** Language explains concepts in plain English. Jargon is translated or avoided. The product speaks as a guide to non-specialists. Accessibility is prioritized over brevity. Example: "Connect your account securely - we use a modern login method that keeps your password private."
|
|
50
50
|
|
|
51
51
|
**When to move toward Expert:** Developer tools, ML/data platforms, DevOps dashboards, security products, and medical or legal professional tools are used by specialists who are frustrated by over-explanation. Unnecessary simplification reads as condescension and slows expert users down.
|
|
52
52
|
|
|
@@ -66,7 +66,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
66
66
|
|
|
67
67
|
**When to move toward Reverent:** Luxury brands, heritage fashion houses, fine dining, premium hospitality, and cultural institutions benefit from reverent language because it honors the symbolic weight users attach to these products and does not puncture the aspirational experience they are purchasing.
|
|
68
68
|
|
|
69
|
-
**When to move toward Irreverent:** Challenger brands, startup disruptors, creative tools, youth-oriented products, and any brand explicitly positioning against an incumbent benefit from irreverent language because it embodies the brand's core argument
|
|
69
|
+
**When to move toward Irreverent:** Challenger brands, startup disruptors, creative tools, youth-oriented products, and any brand explicitly positioning against an incumbent benefit from irreverent language because it embodies the brand's core argument - that the old way is worth questioning. An anti-establishment fintech that writes like a bank forfeits its entire premise.
|
|
70
70
|
|
|
71
71
|
**Copy examples:**
|
|
72
72
|
- Reverent: "Each piece is hand-finished by our atelier in Lyon."
|
|
@@ -78,7 +78,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
78
78
|
|
|
79
79
|
**Authoritative pole:** The product speaks with confidence and direction. It tells users what to do. Instructions are commands, not suggestions. The relationship is expert-to-user. Example: "You must complete identity verification before withdrawing funds." / "Save your work before closing this window."
|
|
80
80
|
|
|
81
|
-
**Collaborative pole:** The product speaks as a partner. It recommends and explains, framing choices as shared decisions. The relationship is peer-to-peer. Example: "We recommend verifying your identity now
|
|
81
|
+
**Collaborative pole:** The product speaks as a partner. It recommends and explains, framing choices as shared decisions. The relationship is peer-to-peer. Example: "We recommend verifying your identity now - it unlocks higher withdrawal limits." / "Just so you know - unsaved changes will be lost if you close."
|
|
82
82
|
|
|
83
83
|
**When to move toward Authoritative:** Compliance interfaces, safety-critical systems, legal workflows, and any context where users must follow a specific procedure without deviation benefit from authoritative language because ambiguity creates errors and liability. A safety checklist that says "You might want to confirm the valve is closed" is a design defect.
|
|
84
84
|
|
|
@@ -86,7 +86,7 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
86
86
|
|
|
87
87
|
**Copy examples:**
|
|
88
88
|
- Authoritative: "Enter your password to confirm this irreversible action."
|
|
89
|
-
- Collaborative: "One last check
|
|
89
|
+
- Collaborative: "One last check - confirm your password and we'll take it from there."
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
@@ -95,40 +95,40 @@ Each axis is a spectrum between two poles. Moving toward one pole is not superio
|
|
|
95
95
|
Archetypes are personality frames, not voice axes. They describe the fundamental role the brand plays in its users' lives and the emotional contract it offers. Archetypes and voice axes are orthogonal: a Sage brand can be formal or casual, serious or playful. Select an archetype and then tune voice axes independently.
|
|
96
96
|
|
|
97
97
|
### 1. The Sage
|
|
98
|
-
The Sage earns trust by sharing knowledge. It positions the product as the most informed source in the room
|
|
98
|
+
The Sage earns trust by sharing knowledge. It positions the product as the most informed source in the room - not arrogant, but genuinely expert. The Sage communicates in a way that makes users feel more capable after each interaction, not dependent. In UI, this means rich documentation, contextual education woven into onboarding, and copy that explains the "why" rather than just the "what." Design skews toward clarity, precision, and minimalism - nothing competes with the information itself.
|
|
99
99
|
|
|
100
100
|
### 2. The Hero
|
|
101
|
-
The Hero is empowering and action-oriented. It frames the user as the agent of change and the product as the tool that makes the mission possible. CTAs are verbs: "Start building," "Launch your campaign," "Deploy now." The Hero archetype works best when users have a clear goal and the product gives them velocity toward it. Design is bold, directional, and high-contrast
|
|
101
|
+
The Hero is empowering and action-oriented. It frames the user as the agent of change and the product as the tool that makes the mission possible. CTAs are verbs: "Start building," "Launch your campaign," "Deploy now." The Hero archetype works best when users have a clear goal and the product gives them velocity toward it. Design is bold, directional, and high-contrast - it communicates momentum.
|
|
102
102
|
|
|
103
103
|
### 3. The Creator
|
|
104
|
-
The Creator prioritizes imagination and aesthetic experience. The product itself is a canvas, and the copy celebrates what users will make rather than what the product can do. Language is evocative rather than functional. Onboarding feels like an invitation rather than a tutorial. Design is aesthetic-forward
|
|
104
|
+
The Creator prioritizes imagination and aesthetic experience. The product itself is a canvas, and the copy celebrates what users will make rather than what the product can do. Language is evocative rather than functional. Onboarding feels like an invitation rather than a tutorial. Design is aesthetic-forward - typography, whitespace, and visual rhythm are treated as expressive elements, not just layout tools.
|
|
105
105
|
|
|
106
106
|
### 4. The Caregiver
|
|
107
|
-
The Caregiver is empathetic, supportive, and gentle under pressure. It anticipates user anxiety and responds with reassurance. Error messages do not blame; they comfort and guide. Onboarding is patient. The Caregiver archetype is essential for health apps, mental wellness platforms, parenting tools, and any product used during vulnerable moments. Design is warm, rounded, and low-stimulus
|
|
107
|
+
The Caregiver is empathetic, supportive, and gentle under pressure. It anticipates user anxiety and responds with reassurance. Error messages do not blame; they comfort and guide. Onboarding is patient. The Caregiver archetype is essential for health apps, mental wellness platforms, parenting tools, and any product used during vulnerable moments. Design is warm, rounded, and low-stimulus - nothing startles or overwhelms.
|
|
108
108
|
|
|
109
109
|
### 5. The Ruler
|
|
110
|
-
The Ruler is premium, commanding, and authority-signaling. It does not explain itself
|
|
110
|
+
The Ruler is premium, commanding, and authority-signaling. It does not explain itself - it presents. Copy is declarative and sparse. The Ruler archetype justifies premium pricing through an experience that communicates exclusivity and mastery. This archetype works for luxury goods, high-end B2B platforms, and any product where status is part of the value. Design is restrained, high-contrast, and architectural - every element signals control.
|
|
111
111
|
|
|
112
112
|
### 6. The Jester
|
|
113
|
-
The Jester uses humor to disarm and delight. It understands that joy is a retention mechanism and that laughter creates loyalty. The Jester does not take itself seriously and invites users to share that lightness. This archetype works for consumer products in low-stakes categories, social tools, and brands that have earned enough trust to be self-deprecating. Design uses surprise, playful motion, and unexpected visual moments
|
|
113
|
+
The Jester uses humor to disarm and delight. It understands that joy is a retention mechanism and that laughter creates loyalty. The Jester does not take itself seriously and invites users to share that lightness. This archetype works for consumer products in low-stakes categories, social tools, and brands that have earned enough trust to be self-deprecating. Design uses surprise, playful motion, and unexpected visual moments - but always purposefully, never randomly.
|
|
114
114
|
|
|
115
115
|
### 7. The Innocent
|
|
116
|
-
The Innocent is clean, optimistic, and simple. It communicates that the world is basically good and that this product exists to make it a little better. Copy is honest, unpretentious, and free of manipulation. The Innocent archetype is right for health food brands, sustainable products, children's tools, and any product positioning around purity or honesty. Design is bright, open, and generous with whitespace
|
|
116
|
+
The Innocent is clean, optimistic, and simple. It communicates that the world is basically good and that this product exists to make it a little better. Copy is honest, unpretentious, and free of manipulation. The Innocent archetype is right for health food brands, sustainable products, children's tools, and any product positioning around purity or honesty. Design is bright, open, and generous with whitespace - nothing hidden, nothing complex.
|
|
117
117
|
|
|
118
118
|
### 8. The Explorer
|
|
119
119
|
The Explorer is discovery-forward and adventurous. It communicates that the world is full of things worth finding and that this product is the best vehicle for that journey. Copy uses open-ended language: "See what's possible," "Go further," "Find your path." The Explorer archetype fits travel apps, outdoor brands, learning platforms, and curiosity-driven tools. Design uses movement, depth, and environmental imagery to evoke possibility.
|
|
120
120
|
|
|
121
121
|
### 9. The Rebel
|
|
122
|
-
The Rebel challenges assumptions and frames the incumbent as the problem. It uses anti-establishment language deliberately, not carelessly. The Rebel is not angry
|
|
122
|
+
The Rebel challenges assumptions and frames the incumbent as the problem. It uses anti-establishment language deliberately, not carelessly. The Rebel is not angry - it is confident in its alternative. Copy names what it rejects: "Not your usual bank," "Skip the middleman," "Design without the gatekeepers." The Rebel archetype is right for challenger brands, disruptive startups, and any product that exists because the existing solution is broken. Design is unconventional - asymmetric, raw, or deliberately anti-polished to signal that the rules have changed.
|
|
123
123
|
|
|
124
124
|
### 10. The Lover
|
|
125
|
-
The Lover creates intimacy and sensory connection. Copy is warm, personal, and physically evocative. The Lover archetype is less about romance than about deep emotional resonance
|
|
125
|
+
The Lover creates intimacy and sensory connection. Copy is warm, personal, and physically evocative. The Lover archetype is less about romance than about deep emotional resonance - the product feels like it was made for you specifically. This archetype fits beauty brands, food and beverage, hospitality, and any product where sensory experience is central. Design is rich, textural, and emotionally warm - photography over illustration, warmth over coolness.
|
|
126
126
|
|
|
127
127
|
### 11. The Everyman
|
|
128
|
-
The Everyman is relatable, unpretentious, and radically inclusive. It signals that this product is for everyone, not for a tribe or an aspirational identity. Copy avoids jargon, insider language, and exclusivity markers. The Everyman archetype is right for utility apps, mass-market consumer tools, and any product that succeeds by broad adoption rather than niche loyalty. Design is familiar and accessible
|
|
128
|
+
The Everyman is relatable, unpretentious, and radically inclusive. It signals that this product is for everyone, not for a tribe or an aspirational identity. Copy avoids jargon, insider language, and exclusivity markers. The Everyman archetype is right for utility apps, mass-market consumer tools, and any product that succeeds by broad adoption rather than niche loyalty. Design is familiar and accessible - conventional enough to feel immediately understandable to any user.
|
|
129
129
|
|
|
130
130
|
### 12. The Magician
|
|
131
|
-
The Magician is transformation-focused. It frames the product as the mechanism by which users go from a lesser to a greater state. Copy uses before/after framing: "What used to take days takes minutes," "You used to guess. Now you know." The Magician archetype fits productivity tools, AI platforms, and any product whose core promise is that the user will be meaningfully different after using it. Design uses contrast
|
|
131
|
+
The Magician is transformation-focused. It frames the product as the mechanism by which users go from a lesser to a greater state. Copy uses before/after framing: "What used to take days takes minutes," "You used to guess. Now you know." The Magician archetype fits productivity tools, AI platforms, and any product whose core promise is that the user will be meaningfully different after using it. Design uses contrast - before states feel constrained, after states feel open and capable.
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
@@ -152,18 +152,18 @@ Beyond the 12 canonical archetypes, products can adopt a design-register variant
|
|
|
152
152
|
|
|
153
153
|
## Tone-by-Context Table
|
|
154
154
|
|
|
155
|
-
Tone is not fixed
|
|
155
|
+
Tone is not fixed - even a consistent brand voice shifts register depending on the situation the user is in. A Jester brand should not make jokes in an error message that signals data loss. This table maps UI contexts to appropriate tone adjustments.
|
|
156
156
|
|
|
157
157
|
| Context | Recommended Tone | Example Copy |
|
|
158
158
|
|---------|-----------------|--------------|
|
|
159
|
-
| Error message | Calm, clear, helpful
|
|
160
|
-
| Empty state | Warm, forward-looking, actionable
|
|
161
|
-
| Success / celebration | Positive, proportionate to stakes
|
|
162
|
-
| Onboarding | Welcoming, encouraging, brief
|
|
163
|
-
| Loading state | Reassuring, informative
|
|
164
|
-
| Destructive action confirmation | Serious, precise, no hedging
|
|
165
|
-
| Pricing page | Honest, benefit-led, no dark patterns
|
|
166
|
-
| Marketing headline | Archetype-forward, emotionally resonant
|
|
159
|
+
| Error message | Calm, clear, helpful - never humorous for data loss or high-stakes failure | "We couldn't save your changes. Check your connection and try again." |
|
|
160
|
+
| Empty state | Warm, forward-looking, actionable - explains why empty and what to do | "Nothing here yet. Add your first project to get started." |
|
|
161
|
+
| Success / celebration | Positive, proportionate to stakes - brief and genuine, not excessive | "All done! Your report is ready." / "🎉 You're all set!" (casual products only) |
|
|
162
|
+
| Onboarding | Welcoming, encouraging, brief - does not front-load complexity | "Let's set up your workspace. It only takes a minute." |
|
|
163
|
+
| Loading state | Reassuring, informative - signals progress without being annoying | "Getting your data…" / "Almost there." |
|
|
164
|
+
| Destructive action confirmation | Serious, precise, no hedging - names what will be destroyed | "Delete project 'Alpha'? This cannot be undone." |
|
|
165
|
+
| Pricing page | Honest, benefit-led, no dark patterns - copy earns the price | "Everything in Pro, plus unlimited seats and priority support." |
|
|
166
|
+
| Marketing headline | Archetype-forward, emotionally resonant - captures brand promise | Varies by archetype (Hero: "Ship faster." / Creator: "Make something beautiful.") |
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
@@ -171,29 +171,29 @@ Tone is not fixed — even a consistent brand voice shifts register depending on
|
|
|
171
171
|
|
|
172
172
|
<!-- Source: nextlevelbuilder/ui-ux-pro-max-skill (MIT) — data/products.csv, data/ui-reasoning.csv -->
|
|
173
173
|
|
|
174
|
-
**Important:** Voice axis positions and industry context are orthogonal dimensions. Industry context provides defaults and constraints; voice axis positions are still chosen deliberately within those constraints. A FinTech product can be formal but approachable, or formal and expert
|
|
174
|
+
**Important:** Voice axis positions and industry context are orthogonal dimensions. Industry context provides defaults and constraints; voice axis positions are still chosen deliberately within those constraints. A FinTech product can be formal but approachable, or formal and expert - industry context does not collapse those choices, it narrows the range.
|
|
175
175
|
|
|
176
176
|
---
|
|
177
177
|
|
|
178
178
|
| Vertical | Voice Axis Defaults | Color Mood | Typography Mood | Key Effects | Anti-Patterns |
|
|
179
179
|
|----------|-------------------|------------|-----------------|-------------|---------------|
|
|
180
|
-
| **FinTech / Banking** | Formal → Serious → Expert → Authoritative; trust must be earned through consistency | Deep navy, forest green, cool greys
|
|
181
|
-
| **HealthTech / Medical** | Formal → Serious → Approachable → Collaborative; clarity reduces anxiety | Soft teal, warm white, calm blues
|
|
180
|
+
| **FinTech / Banking** | Formal → Serious → Expert → Authoritative; trust must be earned through consistency | Deep navy, forest green, cool greys - signals stability and security | Clean sans-serif (Inter, DM Sans), generous line-height for readability at numeric density | Microanimations on transaction confirmation; subtle loading states; no celebration for transfers | Casual tone on high-stakes actions; bright consumer palettes; playful error messages; flashy transitions on money movement |
|
|
181
|
+
| **HealthTech / Medical** | Formal → Serious → Approachable → Collaborative; clarity reduces anxiety | Soft teal, warm white, calm blues - avoids red except for genuine danger signals | Clean, large, high-contrast; body text ≥16px mandatory for compliance and accessibility | Gentle loading indicators; animated check states for completed steps; no jarring motion | Dense data without explanation; dark mode with pure black; small body text; red used decoratively |
|
|
182
182
|
| **SaaS / B2B** | Formal–Casual range → Serious → Expert → Authoritative–Collaborative range | Neutral greys, controlled accent (brand blue/green), white space dominant | Clean sans-serif, systematic type scale; headings earn visual weight | Skeleton loading for data tables; progressive disclosure for settings; tooltips for technical fields | Over-explaining basics to expert users; inconsistent terminology across modules; AI-slop purple palette |
|
|
183
183
|
| **E-commerce / DTC** | Casual → Playful–Serious range → Approachable → Collaborative | Brand-driven palette; high saturation for CTAs; warm neutrals for product context | Expressive display for headlines; clean body for product descriptions | Product zoom hover states; cart animation on add; wishlist micro-interaction | Fake urgency copy; cluttered hierarchy; hidden total cost until checkout; tiny CTA on mobile |
|
|
184
184
|
| **Gaming / Entertainment** | Casual → Playful → Approachable–Expert range → Irreverent | High saturation, dark mode dominant, neon accent on dark surface | Display/gaming typefaces for headers; clean body for UI; weight contrast is high | Motion-heavy transitions; achievement celebrations; ambient background animation | Accessibility blindspots in dark mode; pure black backgrounds (vibration); low contrast on energetic backgrounds |
|
|
185
185
|
| **Social / Community** | Casual → Playful → Approachable → Collaborative | Warm neutrals, brand accent, avatar-forward UI with minimal chrome | Friendly rounded sans-serif; generous spacing; conversational scale | Reaction microanimations; real-time presence indicators; celebratory confetti for milestones | Cold enterprise-grade color in social context; heavy typography hierarchy that buries user content |
|
|
186
186
|
| **Dev Tools** | Casual–Formal range → Serious → Expert → Authoritative | Dark mode default; syntax-highlight palette; cool greys; code-emphasis contrast | Monospace for code; sans-serif for prose; no decorative type | Fast, no-flash loading states; inline error syntax highlighting; keyboard shortcut visibility | Explaining basics to experts; hiding power features; light-mode-only; inconsistent CLI↔UI vocabulary |
|
|
187
|
-
| **EdTech** | Casual → Playful–Serious range → Approachable → Collaborative | Warm, bright, optimistic
|
|
188
|
-
| **Legal / Compliance** | Formal → Serious → Expert → Authoritative | Navy, charcoal, neutral greys
|
|
187
|
+
| **EdTech** | Casual → Playful–Serious range → Approachable → Collaborative | Warm, bright, optimistic - not childish; academic versions use cooler tone | Friendly rounded sans; large body text; generous spacing for reading context | Progress animations; streak celebration; gentle nudges for return | Overwhelming choice on first launch; punitive error framing; tests without explanation of why wrong |
|
|
188
|
+
| **Legal / Compliance** | Formal → Serious → Expert → Authoritative | Navy, charcoal, neutral greys - no decorative color | Readable serif or clean sans; no display type for primary content | None beyond loading states; no celebratory states - outcomes have real weight | Casual tone on contract actions; hiding consequences; playful UI that signals legal work is trivial |
|
|
189
189
|
| **HR / People Ops** | Formal–Casual range → Serious → Approachable → Collaborative | Warm professional: muted teal, earth tones, warm greys | Clean sans-serif; expressive enough to feel human, not cold | Subtle check animations for onboarding; gentle feedback on form completion | Clinical coldness in employee-facing UI; hiding personal data implications; confusing benefit summaries |
|
|
190
190
|
| **Real Estate** | Formal → Serious → Approachable → Authoritative | Warm greys, earth tones, occasional brand accent; photography-dominant | Clean serif or premium sans; photography does the expressive work | Map interaction states; mortgage calculator animations; image gallery transitions | Overwhelming data without hierarchy; hiding total cost; small map interaction targets on mobile |
|
|
191
191
|
| **Travel / Hospitality** | Casual → Playful–Serious range → Approachable → Collaborative | Destination-driven: warm ambers, ocean blues, lush greens | Expressive display for destination content; clean sans for booking flows | Immersive imagery transitions; booking confirmation celebration; ambient destination video | Hiding fees until final step; tiny date pickers; inconsistent voice between inspiration and transactional flows |
|
|
192
192
|
| **Food / Delivery** | Casual → Playful → Approachable → Collaborative | Warm appetizing tones: terracotta, golden yellow, deep greens | Rounded, friendly sans-serif; photography-heavy | Order status animation; delivery tracking real-time; add-to-cart micro-interaction | Cold clinical tone; hiding delivery costs; overwhelming menu density; slow loading states for item images |
|
|
193
193
|
| **Fitness / Wellness** | Casual → Serious–Playful range → Approachable → Collaborative | High energy (fitness): deep navy + neon; Wellness: warm cream, sage, earth | Strong weight contrast for motivational moments; clean body for routine content | Workout completion celebration; streak animation; activity ring fill | Shaming language for missed goals; pure black dark mode; excessive notifications; gamification without consent |
|
|
194
|
-
| **Non-profit / NGO** | Casual–Formal range → Serious → Approachable → Collaborative | Mission-driven: warm humanist tones, photography-led, restrained accent | Readable, accessible, warm
|
|
195
|
-
| **Government / Civic** | Formal → Serious → Approachable → Authoritative | Institutional: navy, red, white variants
|
|
196
|
-
| **Luxury / Fashion** | Formal → Serious → Expert → Reverent | Black, white, gold, nude
|
|
194
|
+
| **Non-profit / NGO** | Casual–Formal range → Serious → Approachable → Collaborative | Mission-driven: warm humanist tones, photography-led, restrained accent | Readable, accessible, warm - never cold or corporate | Impact counter animations; donation confirmation warmth; progress-toward-goal bars | Guilt-manipulation copy; inaccessible donation flows; slow load on donation pages; hiding overhead costs |
|
|
195
|
+
| **Government / Civic** | Formal → Serious → Approachable → Authoritative | Institutional: navy, red, white variants - national palette conventions | Highly readable sans-serif; no display type; large body text mandatory | Progress bars for multi-step processes; no celebration for government services | Jargon without explanation; inaccessible forms; mobile-hostile layouts; hiding deadlines |
|
|
196
|
+
| **Luxury / Fashion** | Formal → Serious → Expert → Reverent | Black, white, gold, nude - restraint signals luxury | Editorial serif or geometric sans; generous whitespace; typography is the aesthetic | Elegant fade transitions; product reveal on scroll; no click-bait motion | Playful copy that undercuts premium positioning; cluttered layout; urgent sale language; AI-slop palette |
|
|
197
197
|
| **Media / Publishing** | Casual–Formal range → Serious → Approachable–Expert range → Authoritative | Publication-specific; reading UX emphasizes contrast and typography | Reading-optimized: long-form line length (60–75ch), generous line-height (1.7+) | Scroll-progress indicators; reading time estimates; article-end engagement | Distraction ads interrupting reading flow; tiny body text; low contrast for long-form content |
|
|
198
198
|
| **Analytics / BI** | Formal → Serious → Expert → Authoritative | Data-focused: high contrast, neutral chrome, vivid but accessible chart palette | Dense but readable sans-serif; monospace for data values; strong heading hierarchy | Interactive chart hover states; filter animation; export confirmation | Color-blind-unsafe chart palettes; pure decoration in data visualizations; hiding data provenance |
|
|
199
199
|
| **AI / ML Platform** | Casual–Formal range → Serious → Expert → Authoritative–Collaborative range | Dark mode default with vibrant accent; cool-to-neutral chrome | Clean monospace for code and prompts; sans-serif for prose; strong weight contrast | Streaming text animation; generation loading state; token cost micro-display | Anthropomorphizing in ways that mislead; hiding capability limits; magical framing that hides user responsibility |
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
> Phase 29 reference doc. Specifies the deterministic gate that decides when
|
|
4
4
|
> the reflector has gathered enough `capability_gap` signal to surface a
|
|
5
5
|
> one-time opt-in prompt for Stage-1 (incubator authoring of new agents /
|
|
6
|
-
> skills). **No code path in this repository auto-flips the stage**
|
|
6
|
+
> skills). **No code path in this repository auto-flips the stage** -
|
|
7
7
|
> D-01 is the discipline.
|
|
8
8
|
|
|
9
9
|
---
|
|
@@ -23,7 +23,7 @@ date or a release. The reflector aggregates events into per-cycle
|
|
|
23
23
|
clusters (`scripts/lib/reflector-capability-gap-aggregator.cjs`) and
|
|
24
24
|
evaluates a deterministic stability function against the project's
|
|
25
25
|
cycle history. When the gate is crossed, `/gdd:apply-reflections`
|
|
26
|
-
emits a **one-time user-facing prompt** in the cycle markdown
|
|
26
|
+
emits a **one-time user-facing prompt** in the cycle markdown - never
|
|
27
27
|
an auto-stage-flip. The user opting in is a separate explicit action,
|
|
28
28
|
out of scope for this gate spec.
|
|
29
29
|
|
|
@@ -72,7 +72,7 @@ A cluster `c` is **stable** iff both conditions hold:
|
|
|
72
72
|
|
|
73
73
|
1. **Consecutive presence.** `c` appears in `≥ M` consecutive cycles
|
|
74
74
|
somewhere within the observed history. (The most recent unbroken
|
|
75
|
-
run is what matters
|
|
75
|
+
run is what matters - if a cluster missed a cycle, the run resets
|
|
76
76
|
and only the longest streak counts.)
|
|
77
77
|
2. **Narrow posterior.** The closed-form posterior standard deviation
|
|
78
78
|
of the Beta distribution satisfies:
|
|
@@ -129,7 +129,7 @@ Inputs:
|
|
|
129
129
|
|
|
130
130
|
The evaluation is **deterministic** (no randomness), **idempotent**
|
|
131
131
|
(no side-effects in the evaluator), and **read-only** with respect to
|
|
132
|
-
`.design/config.json`
|
|
132
|
+
`.design/config.json` - that file is only updated by the user's
|
|
133
133
|
explicit opt-in action, never by the reflector.
|
|
134
134
|
|
|
135
135
|
---
|
|
@@ -140,11 +140,11 @@ When the gate crosses for the first time, `/gdd:apply-reflections`
|
|
|
140
140
|
appends the following verbatim block to the cycle markdown:
|
|
141
141
|
|
|
142
142
|
> ```markdown
|
|
143
|
-
> ## Stage-0 → Stage-1 gate crossed
|
|
143
|
+
> ## Stage-0 → Stage-1 gate crossed - opt-in required
|
|
144
144
|
>
|
|
145
145
|
> Capability-gap detection has accumulated enough signal across recent
|
|
146
146
|
> cycles to consider enabling Stage-1 (incubator authoring of new
|
|
147
|
-
> agents / skills). The gate is informational only
|
|
147
|
+
> agents / skills). The gate is informational only - **nothing has
|
|
148
148
|
> changed in the runtime**, and Stage-1 will NOT auto-enable. Per
|
|
149
149
|
> Phase 29 CONTEXT.md decision D-01, the user opts in explicitly.
|
|
150
150
|
>
|
|
@@ -174,8 +174,8 @@ appends the following verbatim block to the cycle markdown:
|
|
|
174
174
|
> `capability_gap_gate.user_prompted_at` from `.design/config.json`.
|
|
175
175
|
> ```
|
|
176
176
|
|
|
177
|
-
The wiring side of this
|
|
178
|
-
timestamp and routing the opt-in confirmation
|
|
177
|
+
The wiring side of this - actually writing the `user_prompted_at`
|
|
178
|
+
timestamp and routing the opt-in confirmation - is deferred to
|
|
179
179
|
**Plan 29-05** (`/gdd:apply-reflections` extension). This document
|
|
180
180
|
specifies the prompt text and behavior; 29-05 implements the
|
|
181
181
|
state-machine that consumes it.
|
|
@@ -204,7 +204,7 @@ Two timestamps in `.design/config.json` track the project's gate state:
|
|
|
204
204
|
- **`opted_in_at`** is set when the user explicitly opts into Stage-1.
|
|
205
205
|
Stage-1 incubator authoring (Plans 29-04+) becomes active once this
|
|
206
206
|
timestamp is present. **Stage 1 is NEVER enabled by the reflector
|
|
207
|
-
setting this timestamp itself**
|
|
207
|
+
setting this timestamp itself** - D-01 lock.
|
|
208
208
|
|
|
209
209
|
Once `opted_in_at` is set, the gate stops emitting prompts entirely
|
|
210
210
|
(it's a one-shot mechanism, not a continuous nudge).
|
|
@@ -222,7 +222,7 @@ Operators can manually reset the gate by editing `.design/config.json`:
|
|
|
222
222
|
| Tighten / loosen thresholds | Edit `K` / `M` / `stddev_threshold` directly. Out-of-range values silently fall back to defaults (§ 2). |
|
|
223
223
|
|
|
224
224
|
Reset is **explicit** and **idempotent**. The reflector never writes
|
|
225
|
-
to these fields on its own
|
|
225
|
+
to these fields on its own - the only writers are (a) the
|
|
226
226
|
`/gdd:apply-reflections` opt-in path (Plan 29-05) and (b) the human
|
|
227
227
|
operator editing the file by hand.
|
|
228
228
|
|
|
@@ -233,32 +233,32 @@ operator editing the file by hand.
|
|
|
233
233
|
Executable examples that exercise the gate live in
|
|
234
234
|
`tests/reflector-capability-gap-aggregation.test.cjs`:
|
|
235
235
|
|
|
236
|
-
- **T3**
|
|
236
|
+
- **T3** - 30 cycles × 3 always-present clusters → gate crosses with
|
|
237
237
|
default K=3 / M=10 / stddev_threshold=0.05.
|
|
238
|
-
- **T3b**
|
|
238
|
+
- **T3b** - 10 cycles × 1 always-present cluster → gate does NOT
|
|
239
239
|
cross (posterior stddev ≈ 0.077 with α=11, β=1 is above the 0.05
|
|
240
240
|
threshold; M=10 is the lower bound on observations, not a
|
|
241
241
|
sufficient condition for stability).
|
|
242
|
-
- **T4**
|
|
242
|
+
- **T4** - 30 cycles, 2 always-present clusters + 1 "noisy" cluster
|
|
243
243
|
present in only the first 4 cycles → gate does NOT cross
|
|
244
244
|
(`stable_cluster_ids.length === 2 < K=3`).
|
|
245
|
-
- **T4b**
|
|
246
|
-
- **T7**
|
|
245
|
+
- **T4b** - 5 cycles total → gate does NOT cross (`cycles_observed < M`).
|
|
246
|
+
- **T7** - Confirms `K` and `stddev_threshold` overrides flow through
|
|
247
247
|
`normalizeConfig` and reach the evaluation.
|
|
248
248
|
|
|
249
249
|
These fixtures are synthetic and inline (D-11). The gate evaluator
|
|
250
|
-
never reads `.design/gep/events.jsonl` directly in CI
|
|
250
|
+
never reads `.design/gep/events.jsonl` directly in CI - fixtures
|
|
251
251
|
seed the cluster lists by hand.
|
|
252
252
|
|
|
253
253
|
---
|
|
254
254
|
|
|
255
255
|
## Decisions referenced
|
|
256
256
|
|
|
257
|
-
- **D-01**
|
|
257
|
+
- **D-01** - Two-stage approach: Stage 0 telemetry-only ships first;
|
|
258
258
|
Stage 1 authoring gated on data; user opts in per a one-time prompt;
|
|
259
259
|
no auto-flip.
|
|
260
|
-
- **D-03**
|
|
260
|
+
- **D-03** - Default `K=3` / `M=10` / `stddev_threshold=0.05`,
|
|
261
261
|
overridable via `.design/config.json`.
|
|
262
|
-
- **D-11**
|
|
263
|
-
- **Phase 23.5**
|
|
262
|
+
- **D-11** - Tests use synthetic fixtures (no live event chain reads).
|
|
263
|
+
- **Phase 23.5** - Posterior `stddev(Beta(α, β))` closed form and
|
|
264
264
|
Laplace prior convention reused here.
|
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.
|