@su-record/vibe 2.8.24 → 2.8.25
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/dist/cli/commands/config.d.ts +17 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +207 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +2 -0
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +78 -54
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +13 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +280 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +33 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +1 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -1
- package/dist/cli/setup/GlobalInstaller.js +7 -7
- package/dist/cli/setup/GlobalInstaller.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +18 -12
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/infra/lib/ContextCompressor.d.ts.map +1 -1
- package/dist/infra/lib/ContextCompressor.js +10 -4
- package/dist/infra/lib/ContextCompressor.js.map +1 -1
- package/dist/infra/lib/ProjectCache.d.ts +2 -2
- package/dist/infra/lib/ProjectCache.d.ts.map +1 -1
- package/dist/infra/lib/ProjectCache.js +4 -3
- package/dist/infra/lib/ProjectCache.js.map +1 -1
- package/dist/infra/lib/utils.d.ts +24 -0
- package/dist/infra/lib/utils.d.ts.map +1 -1
- package/dist/infra/lib/utils.js +41 -0
- package/dist/infra/lib/utils.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.d.ts +3 -0
- package/dist/infra/orchestrator/SmartRouter.d.ts.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.js +11 -1
- package/dist/infra/orchestrator/SmartRouter.js.map +1 -1
- package/dist/infra/orchestrator/SmartRouter.test.d.ts +5 -0
- package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +1 -0
- package/dist/infra/orchestrator/SmartRouter.test.js +457 -0
- package/dist/infra/orchestrator/SmartRouter.test.js.map +1 -0
- package/dist/tools/convention/analyzeComplexity.d.ts.map +1 -1
- package/dist/tools/convention/analyzeComplexity.js +18 -10
- package/dist/tools/convention/analyzeComplexity.js.map +1 -1
- package/dist/tools/convention/checkCouplingCohesion.d.ts.map +1 -1
- package/dist/tools/convention/checkCouplingCohesion.js +14 -6
- package/dist/tools/convention/checkCouplingCohesion.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js.map +1 -1
- package/dist/tools/semantic/findReferences.d.ts.map +1 -1
- package/dist/tools/semantic/findReferences.js +13 -13
- package/dist/tools/semantic/findReferences.js.map +1 -1
- package/dist/tools/semantic/findSymbol.d.ts.map +1 -1
- package/dist/tools/semantic/findSymbol.js +12 -13
- package/dist/tools/semantic/findSymbol.js.map +1 -1
- package/dist/tools/semantic/lsp.d.ts.map +1 -1
- package/dist/tools/semantic/lsp.js +22 -14
- package/dist/tools/semantic/lsp.js.map +1 -1
- package/hooks/hooks.json +29 -0
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -0
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -0
- package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -0
- package/hooks/scripts/auto-commit.js +65 -0
- package/hooks/scripts/auto-format.js +64 -0
- package/hooks/scripts/auto-test.js +81 -0
- package/hooks/scripts/code-check.js +139 -0
- package/hooks/scripts/command-log.js +32 -0
- package/hooks/scripts/context-save.js +60 -6
- package/hooks/scripts/hud-status.js +32 -2
- package/hooks/scripts/llm-orchestrate.js +95 -17
- package/hooks/scripts/pr-test-gate.js +52 -0
- package/package.json +1 -1
- package/skills/agents-md/rubrics/what-to-keep.md +49 -0
- package/skills/agents-md/templates/agents-md.md +36 -0
- package/skills/arch-guard/agents/detector.md +48 -0
- package/skills/arch-guard/agents/reporter.md +48 -0
- package/skills/arch-guard/agents/rule-generator.md +49 -0
- package/skills/arch-guard/agents/violation-checker.md +51 -0
- package/skills/arch-guard/frameworks/clean-architecture.md +108 -0
- package/skills/arch-guard/frameworks/solid.md +102 -0
- package/skills/arch-guard/scripts/check-boundaries.js +90 -0
- package/skills/arch-guard/templates/arch-rules.json +47 -0
- package/skills/arch-guard/templates/violation-report.md +53 -0
- package/skills/brand-assets/rubrics/asset-checklist.md +98 -0
- package/skills/brand-assets/templates/brand-guide.md +161 -0
- package/skills/capability-loop/agents/capability-designer.md +61 -0
- package/skills/capability-loop/agents/failure-analyst.md +55 -0
- package/skills/capability-loop/agents/implementer.md +50 -0
- package/skills/capability-loop/agents/tester.md +53 -0
- package/skills/capability-loop/templates/capability-spec.md +118 -0
- package/skills/capability-loop/templates/failure-analysis.md +118 -0
- package/skills/characterization-test/agents/behavior-capturer.md +50 -0
- package/skills/characterization-test/agents/coverage-checker.md +54 -0
- package/skills/characterization-test/agents/reporter.md +50 -0
- package/skills/characterization-test/agents/test-writer.md +49 -0
- package/skills/characterization-test/rubrics/coverage-criteria.md +53 -0
- package/skills/characterization-test/templates/test-template.ts +101 -0
- package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -0
- package/skills/claude-md-guide/templates/claude-md.md +54 -0
- package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -0
- package/skills/commerce-patterns/templates/product-schema.md +85 -0
- package/skills/commit-push-pr/agents/change-analyzer.md +55 -0
- package/skills/commit-push-pr/agents/message-writer.md +50 -0
- package/skills/commit-push-pr/agents/pr-writer.md +58 -0
- package/skills/commit-push-pr/agents/reviewer.md +52 -0
- package/skills/commit-push-pr/rubrics/commit-message.md +73 -0
- package/skills/commit-push-pr/templates/pr-body.md +63 -0
- package/skills/context7-usage/rubrics/when-to-use.md +50 -0
- package/skills/create-prd/agents/edge-case-finder.md +48 -0
- package/skills/create-prd/agents/prioritizer.md +60 -0
- package/skills/create-prd/agents/requirements-writer.md +48 -0
- package/skills/create-prd/agents/researcher.md +55 -0
- package/skills/create-prd/agents/reviewer.md +54 -0
- package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -0
- package/skills/create-prd/frameworks/rice-scoring.md +97 -0
- package/skills/create-prd/orchestrator.md +70 -0
- package/skills/create-prd/rubrics/completeness.md +58 -0
- package/skills/create-prd/templates/prd.md +139 -0
- package/skills/design-audit/agents/a11y-auditor.md +43 -0
- package/skills/design-audit/agents/performance-auditor.md +46 -0
- package/skills/design-audit/agents/responsive-auditor.md +46 -0
- package/skills/design-audit/agents/scorer.md +47 -0
- package/skills/design-audit/agents/slop-detector.md +47 -0
- package/skills/design-audit/frameworks/core-web-vitals.md +107 -0
- package/skills/design-audit/frameworks/wcag-checklist.md +64 -0
- package/skills/design-audit/orchestrator.md +64 -0
- package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -0
- package/skills/design-audit/rubrics/scoring.md +63 -0
- package/skills/design-audit/templates/report.md +88 -0
- package/skills/design-critique/rubrics/ux-heuristics.md +143 -0
- package/skills/design-critique/templates/critique-report.md +86 -0
- package/skills/design-distill/templates/design-system.md +132 -0
- package/skills/design-normalize/rubrics/token-naming.md +117 -0
- package/skills/design-normalize/templates/token-audit.md +89 -0
- package/skills/design-polish/rubrics/polish-checklist.md +68 -0
- package/skills/design-polish/templates/polish-report.md +64 -0
- package/skills/design-teach/rubrics/brand-personality.md +73 -0
- package/skills/design-teach/templates/design-context.json +36 -0
- package/skills/e2e-commerce/templates/test-scenarios.md +170 -0
- package/skills/event-comms/templates/email-invite.md +99 -0
- package/skills/event-comms/templates/sns-post.md +133 -0
- package/skills/event-ops/rubrics/contingency.md +85 -0
- package/skills/event-ops/templates/d-day-checklist.md +65 -0
- package/skills/event-planning/rubrics/timeline.md +70 -0
- package/skills/event-planning/templates/event-plan.md +91 -0
- package/skills/exec-plan/agents/decomposer.md +47 -0
- package/skills/exec-plan/agents/dependency-mapper.md +44 -0
- package/skills/exec-plan/agents/estimator.md +43 -0
- package/skills/exec-plan/agents/validator.md +55 -0
- package/skills/exec-plan/orchestrator.md +70 -0
- package/skills/exec-plan/rubrics/complexity-scoring.md +75 -0
- package/skills/exec-plan/templates/plan.md +147 -0
- package/skills/git-worktree/rubrics/when-to-use.md +55 -0
- package/skills/handoff/agents/context-summarizer.md +51 -0
- package/skills/handoff/agents/document-writer.md +63 -0
- package/skills/handoff/agents/state-collector.md +53 -0
- package/skills/handoff/agents/verifier.md +48 -0
- package/skills/handoff/rubrics/completeness.md +62 -0
- package/skills/handoff/templates/handoff.md +107 -0
- package/skills/parallel-research/agents/best-practices.md +43 -0
- package/skills/parallel-research/agents/codebase-patterns.md +46 -0
- package/skills/parallel-research/agents/framework-docs.md +45 -0
- package/skills/parallel-research/agents/security-advisory.md +46 -0
- package/skills/parallel-research/agents/synthesizer.md +52 -0
- package/skills/parallel-research/experts/best-practices.md +50 -0
- package/skills/parallel-research/experts/codebase-patterns.md +70 -0
- package/skills/parallel-research/experts/framework-docs.md +65 -0
- package/skills/parallel-research/experts/security-advisory.md +69 -0
- package/skills/parallel-research/orchestrator.md +65 -0
- package/skills/parallel-research/templates/synthesis.md +101 -0
- package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -0
- package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -0
- package/skills/priority-todos/rubrics/prioritization.md +70 -0
- package/skills/priority-todos/templates/todo-board.md +59 -0
- package/skills/seo-checklist/frameworks/structured-data.md +153 -0
- package/skills/seo-checklist/rubrics/content-seo.md +42 -0
- package/skills/seo-checklist/rubrics/technical-seo.md +48 -0
- package/skills/techdebt/agents/analyzer.md +50 -0
- package/skills/techdebt/agents/fixer.md +41 -0
- package/skills/techdebt/agents/reviewer.md +47 -0
- package/skills/techdebt/agents/scanner.md +44 -0
- package/skills/techdebt/orchestrator.md +70 -0
- package/skills/techdebt/rubrics/severity.md +51 -0
- package/skills/techdebt/scripts/scan.js +90 -0
- package/skills/techdebt/templates/report.md +86 -0
- package/skills/tool-fallback/rubrics/fallback-chain.md +58 -0
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -0
- package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -0
- package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -0
- package/skills/user-personas/rubrics/research-methods.md +56 -0
- package/skills/user-personas/templates/persona.md +89 -0
- package/skills/vercel-react-best-practices/rubrics/performance.md +82 -0
- package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -0
- package/skills/vibe-docs/SKILL.md +171 -0
- package/skills/vibe-docs/templates/architecture.md +80 -0
- package/skills/vibe-docs/templates/readme.md +84 -0
- package/skills/vibe-docs/templates/release-notes.md +74 -0
- package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -0
- package/skills/vibe-figma/templates/figma-handoff.md +96 -0
- package/skills/vibe-figma-analyze/rubrics/analysis-dimensions.md +53 -0
- package/skills/vibe-figma-codegen/rubrics/code-quality.md +54 -0
- package/skills/vibe-figma-consolidate/templates/consolidation-report.md +95 -0
- package/skills/vibe-figma-convert/rubrics/conversion-rules.md +83 -0
- package/skills/vibe-figma-convert/templates/component.md +152 -0
- package/skills/vibe-figma-extract/rubrics/image-rules.md +67 -0
- package/skills/vibe-figma-frame/rubrics/frame-selection.md +55 -0
- package/skills/vibe-figma-pipeline/rubrics/pipeline-stages.md +96 -0
- package/skills/vibe-figma-rules/rubrics/naming-conventions.md +70 -0
- package/skills/vibe-figma-style/rubrics/style-mapping.md +100 -0
- package/skills/video-production/rubrics/quality-checklist.md +58 -0
- package/skills/video-production/templates/production-plan.md +104 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Design Critique: {{TARGET}}
|
|
2
|
+
|
|
3
|
+
**Date**: {{DATE}}
|
|
4
|
+
**Scope**: {{SCOPE_DESCRIPTION}}
|
|
5
|
+
**Design Context**: {{CONTEXT_SOURCE}} (design-context.json / defaults)
|
|
6
|
+
**Audience**: {{AUDIENCE_PRIMARY}} — {{AUDIENCE_EXPERTISE}}
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Heuristic Scores
|
|
11
|
+
|
|
12
|
+
| # | Heuristic | Score | Key Issue |
|
|
13
|
+
|---|-----------|-------|-----------|
|
|
14
|
+
| H1 | Visibility of system status | {{H1_SCORE}}/4 | {{H1_ISSUE}} |
|
|
15
|
+
| H2 | Match between system and real world | {{H2_SCORE}}/4 | {{H2_ISSUE}} |
|
|
16
|
+
| H3 | User control and freedom | {{H3_SCORE}}/4 | {{H3_ISSUE}} |
|
|
17
|
+
| H4 | Consistency and standards | {{H4_SCORE}}/4 | {{H4_ISSUE}} |
|
|
18
|
+
| H5 | Error prevention | {{H5_SCORE}}/4 | {{H5_ISSUE}} |
|
|
19
|
+
| H6 | Recognition rather than recall | {{H6_SCORE}}/4 | {{H6_ISSUE}} |
|
|
20
|
+
| H7 | Flexibility and efficiency | {{H7_SCORE}}/4 | {{H7_ISSUE}} |
|
|
21
|
+
| H8 | Aesthetic and minimalist design | {{H8_SCORE}}/4 | {{H8_ISSUE}} |
|
|
22
|
+
| H9 | Help recognize and recover from errors | {{H9_SCORE}}/4 | {{H9_ISSUE}} |
|
|
23
|
+
| H10 | Help and documentation | {{H10_SCORE}}/4 | {{H10_ISSUE}} |
|
|
24
|
+
| **Total** | | **{{TOTAL_SCORE}}/40** | **{{TOTAL_PCT}}%** |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Persona Red Flags
|
|
29
|
+
|
|
30
|
+
### Power User — {{POWER_STATUS}}
|
|
31
|
+
{{#POWER_ISSUES}}
|
|
32
|
+
- {{ISSUE}}
|
|
33
|
+
{{/POWER_ISSUES}}
|
|
34
|
+
{{#POWER_CLEAR}}
|
|
35
|
+
- No red flags
|
|
36
|
+
{{/POWER_CLEAR}}
|
|
37
|
+
|
|
38
|
+
### First-Time User — {{FIRST_TIME_STATUS}}
|
|
39
|
+
{{#FIRST_TIME_ISSUES}}
|
|
40
|
+
- {{ISSUE}}
|
|
41
|
+
{{/FIRST_TIME_ISSUES}}
|
|
42
|
+
{{#FIRST_TIME_CLEAR}}
|
|
43
|
+
- No red flags
|
|
44
|
+
{{/FIRST_TIME_CLEAR}}
|
|
45
|
+
|
|
46
|
+
### Accessibility-Dependent User — {{A11Y_STATUS}}
|
|
47
|
+
{{#A11Y_ISSUES}}
|
|
48
|
+
- {{ISSUE}}
|
|
49
|
+
{{/A11Y_ISSUES}}
|
|
50
|
+
{{#A11Y_CLEAR}}
|
|
51
|
+
- No red flags
|
|
52
|
+
{{/A11Y_CLEAR}}
|
|
53
|
+
|
|
54
|
+
### Stressed / Distracted User — {{STRESSED_STATUS}}
|
|
55
|
+
{{#STRESSED_ISSUES}}
|
|
56
|
+
- {{ISSUE}}
|
|
57
|
+
{{/STRESSED_ISSUES}}
|
|
58
|
+
{{#STRESSED_CLEAR}}
|
|
59
|
+
- No red flags
|
|
60
|
+
{{/STRESSED_CLEAR}}
|
|
61
|
+
|
|
62
|
+
### Mobile-Only User — {{MOBILE_STATUS}}
|
|
63
|
+
{{#MOBILE_ISSUES}}
|
|
64
|
+
- {{ISSUE}}
|
|
65
|
+
{{/MOBILE_ISSUES}}
|
|
66
|
+
{{#MOBILE_CLEAR}}
|
|
67
|
+
- No red flags
|
|
68
|
+
{{/MOBILE_CLEAR}}
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Top Recommendations
|
|
73
|
+
|
|
74
|
+
{{#RECOMMENDATIONS}}
|
|
75
|
+
{{INDEX}}. **[{{HEURISTIC}}]** {{RECOMMENDATION}}
|
|
76
|
+
{{/RECOMMENDATIONS}}
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Next Steps
|
|
81
|
+
|
|
82
|
+
| Condition | Recommended Skill |
|
|
83
|
+
|-----------|-------------------|
|
|
84
|
+
| Visual complexity / clutter noted | `/design-distill` |
|
|
85
|
+
| Token inconsistencies noted | `/design-normalize` |
|
|
86
|
+
| Good overall, minor polish needed | `/design-polish` |
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Design System Summary: {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
**Generated**: {{DATE}}
|
|
4
|
+
**Version**: {{VERSION}}
|
|
5
|
+
**Source**: {{SOURCE}} (distilled from codebase / design-context.json / MASTER.md)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Brand Identity
|
|
10
|
+
|
|
11
|
+
| Attribute | Value |
|
|
12
|
+
|-----------|-------|
|
|
13
|
+
| Personality | {{BRAND_PERSONALITY}} |
|
|
14
|
+
| Tone | {{BRAND_TONE}} |
|
|
15
|
+
| Style | {{AESTHETIC_STYLE}} |
|
|
16
|
+
| Color Mood | {{COLOR_MOOD}} |
|
|
17
|
+
| Typography Mood | {{TYPOGRAPHY_MOOD}} |
|
|
18
|
+
| Reference Products | {{REFERENCES}} |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Color Palette
|
|
23
|
+
|
|
24
|
+
### Primary
|
|
25
|
+
|
|
26
|
+
| Token | Value | Usage |
|
|
27
|
+
|-------|-------|-------|
|
|
28
|
+
| `--color-primary` | {{PRIMARY_VALUE}} | Primary actions, links |
|
|
29
|
+
| `--color-primary-hover` | {{PRIMARY_HOVER_VALUE}} | Hover state |
|
|
30
|
+
| `--color-secondary` | {{SECONDARY_VALUE}} | Secondary actions |
|
|
31
|
+
|
|
32
|
+
### Surfaces
|
|
33
|
+
|
|
34
|
+
| Token | Value | Usage |
|
|
35
|
+
|-------|-------|-------|
|
|
36
|
+
| `--color-surface` | {{SURFACE_VALUE}} | Page background |
|
|
37
|
+
| `--color-surface-raised` | {{SURFACE_RAISED_VALUE}} | Cards |
|
|
38
|
+
| `--color-surface-overlay` | {{SURFACE_OVERLAY_VALUE}} | Modals |
|
|
39
|
+
| `--color-border` | {{BORDER_VALUE}} | Borders |
|
|
40
|
+
|
|
41
|
+
### Semantic
|
|
42
|
+
|
|
43
|
+
| Token | Value | Usage |
|
|
44
|
+
|-------|-------|-------|
|
|
45
|
+
| `--color-text` | {{TEXT_VALUE}} | Body text |
|
|
46
|
+
| `--color-text-muted` | {{TEXT_MUTED_VALUE}} | Secondary text |
|
|
47
|
+
| `--color-error` | {{ERROR_VALUE}} | Errors |
|
|
48
|
+
| `--color-success` | {{SUCCESS_VALUE}} | Success |
|
|
49
|
+
| `--color-warning` | {{WARNING_VALUE}} | Warnings |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Typography
|
|
54
|
+
|
|
55
|
+
| Token | Value | Usage |
|
|
56
|
+
|-------|-------|-------|
|
|
57
|
+
| Heading font | {{HEADING_FONT}} | All headings |
|
|
58
|
+
| Body font | {{BODY_FONT}} | Body text |
|
|
59
|
+
| Mono font | {{MONO_FONT}} | Code, technical |
|
|
60
|
+
|
|
61
|
+
### Scale
|
|
62
|
+
|
|
63
|
+
| Token | Size | Weight | Line Height | Use |
|
|
64
|
+
|-------|------|--------|-------------|-----|
|
|
65
|
+
| `--text-xs` | {{XS_SIZE}} | {{XS_WEIGHT}} | {{XS_LH}} | Captions |
|
|
66
|
+
| `--text-sm` | {{SM_SIZE}} | {{SM_WEIGHT}} | {{SM_LH}} | Labels |
|
|
67
|
+
| `--text-base` | {{BASE_SIZE}} | {{BASE_WEIGHT}} | {{BASE_LH}} | Body |
|
|
68
|
+
| `--text-lg` | {{LG_SIZE}} | {{LG_WEIGHT}} | {{LG_LH}} | Subheading |
|
|
69
|
+
| `--text-2xl` | {{2XL_SIZE}} | {{2XL_WEIGHT}} | {{2XL_LH}} | Section heading |
|
|
70
|
+
| `--text-4xl` | {{4XL_SIZE}} | {{4XL_WEIGHT}} | {{4XL_LH}} | Hero |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Spacing
|
|
75
|
+
|
|
76
|
+
Base unit: {{SPACING_BASE}} ({{SPACING_SYSTEM}})
|
|
77
|
+
|
|
78
|
+
| Token | Value | Common Use |
|
|
79
|
+
|-------|-------|------------|
|
|
80
|
+
| `--space-1` | {{S1}} | Tight internal gap |
|
|
81
|
+
| `--space-2` | {{S2}} | Icon-text spacing |
|
|
82
|
+
| `--space-4` | {{S4}} | Component padding |
|
|
83
|
+
| `--space-6` | {{S6}} | Section internal gap |
|
|
84
|
+
| `--space-8` | {{S8}} | Section separation |
|
|
85
|
+
| `--space-12` | {{S12}} | Large section gap |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Shape & Elevation
|
|
90
|
+
|
|
91
|
+
| Token | Value | Use |
|
|
92
|
+
|-------|-------|-----|
|
|
93
|
+
| `--radius-sm` | {{RADIUS_SM}} | Badges, tags |
|
|
94
|
+
| `--radius-md` | {{RADIUS_MD}} | Inputs, buttons |
|
|
95
|
+
| `--radius-lg` | {{RADIUS_LG}} | Cards |
|
|
96
|
+
| `--radius-full` | 9999px | Pills |
|
|
97
|
+
| `--shadow-sm` | {{SHADOW_SM}} | Subtle lift |
|
|
98
|
+
| `--shadow-md` | {{SHADOW_MD}} | Cards |
|
|
99
|
+
| `--shadow-lg` | {{SHADOW_LG}} | Dropdowns |
|
|
100
|
+
| `--shadow-xl` | {{SHADOW_XL}} | Modals |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Motion
|
|
105
|
+
|
|
106
|
+
| Token | Value | Use |
|
|
107
|
+
|-------|-------|-----|
|
|
108
|
+
| `--duration-fast` | 150ms | Micro-interactions |
|
|
109
|
+
| `--duration-normal` | 200ms | State transitions |
|
|
110
|
+
| `--duration-slow` | 300ms | Page transitions |
|
|
111
|
+
| `--ease-default` | {{EASE_DEFAULT}} | Standard transitions |
|
|
112
|
+
| `--ease-enter` | {{EASE_ENTER}} | Elements entering |
|
|
113
|
+
| `--ease-exit` | {{EASE_EXIT}} | Elements leaving |
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Component Patterns Preserved
|
|
118
|
+
|
|
119
|
+
The following elements were identified as brand-expressive and preserved during distillation:
|
|
120
|
+
|
|
121
|
+
{{#PRESERVED_PATTERNS}}
|
|
122
|
+
- **{{NAME}}**: {{DESCRIPTION}}
|
|
123
|
+
{{/PRESERVED_PATTERNS}}
|
|
124
|
+
{{#NO_PRESERVED_PATTERNS}}
|
|
125
|
+
- None identified — all patterns are functional
|
|
126
|
+
{{/NO_PRESERVED_PATTERNS}}
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Notes
|
|
131
|
+
|
|
132
|
+
{{ADDITIONAL_NOTES}}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Design Token Naming Conventions
|
|
2
|
+
|
|
3
|
+
Reference for evaluating and creating design tokens. Consistent naming prevents duplication and aids discovery.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Naming Structure
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
--{category}-{scale-or-variant}[-{modifier}]
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Examples: `--color-primary`, `--space-4`, `--radius-md`, `--shadow-lg-hover`
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Color Tokens
|
|
18
|
+
|
|
19
|
+
### Semantic over descriptive
|
|
20
|
+
|
|
21
|
+
| Preferred | Avoid | Reason |
|
|
22
|
+
|-----------|-------|--------|
|
|
23
|
+
| `--color-primary` | `--color-blue` | Blue may change; "primary" is stable |
|
|
24
|
+
| `--color-surface` | `--color-white` | White fails in dark mode |
|
|
25
|
+
| `--color-border` | `--color-gray-200` | Ties to a specific shade, not intent |
|
|
26
|
+
| `--color-error` | `--color-red` | Semantic meaning is the point |
|
|
27
|
+
| `--color-text-muted` | `--color-gray-500` | Describes role, not value |
|
|
28
|
+
|
|
29
|
+
### Required color token set
|
|
30
|
+
|
|
31
|
+
| Token | Purpose |
|
|
32
|
+
|-------|---------|
|
|
33
|
+
| `--color-primary` | Primary brand action color |
|
|
34
|
+
| `--color-primary-hover` | Hover state of primary |
|
|
35
|
+
| `--color-secondary` | Secondary action color |
|
|
36
|
+
| `--color-surface` | Default background surface |
|
|
37
|
+
| `--color-surface-raised` | Cards, elevated surfaces |
|
|
38
|
+
| `--color-surface-overlay` | Modals, popovers |
|
|
39
|
+
| `--color-border` | Default border |
|
|
40
|
+
| `--color-border-focus` | Focus ring color |
|
|
41
|
+
| `--color-text` | Primary body text |
|
|
42
|
+
| `--color-text-muted` | Secondary/subdued text |
|
|
43
|
+
| `--color-error` | Error states |
|
|
44
|
+
| `--color-success` | Success states |
|
|
45
|
+
| `--color-warning` | Warning states |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Spacing Tokens
|
|
50
|
+
|
|
51
|
+
Use a numeric scale tied to a base unit (4px or 8px).
|
|
52
|
+
|
|
53
|
+
| Token | 4px base | 8px base | Use |
|
|
54
|
+
|-------|----------|----------|-----|
|
|
55
|
+
| `--space-1` | 4px | 8px | Tight gaps |
|
|
56
|
+
| `--space-2` | 8px | 16px | Icon-text gap |
|
|
57
|
+
| `--space-3` | 12px | 24px | Input padding |
|
|
58
|
+
| `--space-4` | 16px | 32px | Card padding |
|
|
59
|
+
| `--space-6` | 24px | 48px | Section gap |
|
|
60
|
+
| `--space-8` | 32px | 64px | Large section |
|
|
61
|
+
| `--space-12` | 48px | 96px | Hero spacing |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Typography Tokens
|
|
66
|
+
|
|
67
|
+
| Token | Purpose |
|
|
68
|
+
|-------|---------|
|
|
69
|
+
| `--text-xs` | Caption, footnote |
|
|
70
|
+
| `--text-sm` | Secondary labels |
|
|
71
|
+
| `--text-base` | Body text (≥16px on mobile) |
|
|
72
|
+
| `--text-lg` | Emphasized body |
|
|
73
|
+
| `--text-xl` | Subheading |
|
|
74
|
+
| `--text-2xl` | Section heading |
|
|
75
|
+
| `--text-3xl` | Page heading |
|
|
76
|
+
| `--text-4xl` | Hero heading |
|
|
77
|
+
| `--font-normal` | 400 weight |
|
|
78
|
+
| `--font-medium` | 500 weight |
|
|
79
|
+
| `--font-semibold` | 600 weight |
|
|
80
|
+
| `--font-bold` | 700 weight |
|
|
81
|
+
| `--leading-tight` | 1.2 (headings) |
|
|
82
|
+
| `--leading-normal` | 1.5 (body) |
|
|
83
|
+
| `--leading-relaxed` | 1.75 (long-form) |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Border Radius Tokens
|
|
88
|
+
|
|
89
|
+
| Token | Value | Use |
|
|
90
|
+
|-------|-------|-----|
|
|
91
|
+
| `--radius-sm` | 4px | Tags, badges |
|
|
92
|
+
| `--radius-md` | 6–8px | Inputs, buttons |
|
|
93
|
+
| `--radius-lg` | 12px | Cards |
|
|
94
|
+
| `--radius-xl` | 16px | Large panels |
|
|
95
|
+
| `--radius-full` | 9999px | Pills, avatars |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Shadow Tokens
|
|
100
|
+
|
|
101
|
+
| Token | Use |
|
|
102
|
+
|-------|-----|
|
|
103
|
+
| `--shadow-sm` | Subtle card lift |
|
|
104
|
+
| `--shadow-md` | Default card shadow |
|
|
105
|
+
| `--shadow-lg` | Popovers, dropdowns |
|
|
106
|
+
| `--shadow-xl` | Modals, floating panels |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Anti-Patterns
|
|
111
|
+
|
|
112
|
+
| Pattern | Problem | Fix |
|
|
113
|
+
|---------|---------|-----|
|
|
114
|
+
| `--blue-500` | Descriptive, breaks dark mode | Use `--color-primary` |
|
|
115
|
+
| `--margin-top-16` | Property-specific; use spacing scale | Use `--space-4` |
|
|
116
|
+
| `--button-text-color` | Component-scoped; can't be shared | Use `--color-text` or `--color-primary` |
|
|
117
|
+
| `--size-large` | Ambiguous category | Specify: `--text-lg`, `--radius-lg`, `--space-lg` |
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Design Token Consistency Audit: {{TARGET}}
|
|
2
|
+
|
|
3
|
+
**Date**: {{DATE}}
|
|
4
|
+
**Token Source**: {{TOKEN_SOURCE}} (MASTER.md / design-context.json / auto-detected)
|
|
5
|
+
**Scope**: {{SCOPE_DESCRIPTION}}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Token Coverage Summary
|
|
10
|
+
|
|
11
|
+
| Category | Total Found | Tokenized | Hardcoded | Coverage % |
|
|
12
|
+
|----------|-------------|-----------|-----------|------------|
|
|
13
|
+
| Colors | {{COLOR_TOTAL}} | {{COLOR_TOKEN}} | {{COLOR_HARD}} | {{COLOR_PCT}}% |
|
|
14
|
+
| Typography sizes | {{TYPO_TOTAL}} | {{TYPO_TOKEN}} | {{TYPO_HARD}} | {{TYPO_PCT}}% |
|
|
15
|
+
| Spacing | {{SPACE_TOTAL}} | {{SPACE_TOKEN}} | {{SPACE_HARD}} | {{SPACE_PCT}}% |
|
|
16
|
+
| Border radius | {{RADIUS_TOTAL}} | {{RADIUS_TOKEN}} | {{RADIUS_HARD}} | {{RADIUS_PCT}}% |
|
|
17
|
+
| Shadows | {{SHADOW_TOTAL}} | {{SHADOW_TOKEN}} | {{SHADOW_HARD}} | {{SHADOW_PCT}}% |
|
|
18
|
+
| **Overall** | **{{GRAND_TOTAL}}** | **{{GRAND_TOKEN}}** | **{{GRAND_HARD}}** | **{{GRAND_PCT}}%** |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Hardcoded Values Found
|
|
23
|
+
|
|
24
|
+
### Colors
|
|
25
|
+
|
|
26
|
+
| File | Line | Value | Nearest Token | Action |
|
|
27
|
+
|------|------|-------|---------------|--------|
|
|
28
|
+
{{#COLOR_FINDINGS}}
|
|
29
|
+
| `{{FILE}}` | {{LINE}} | `{{VALUE}}` | `{{TOKEN}}` | {{ACTION}} |
|
|
30
|
+
{{/COLOR_FINDINGS}}
|
|
31
|
+
{{#NO_COLOR_FINDINGS}}
|
|
32
|
+
| — | — | None found | — | — |
|
|
33
|
+
{{/NO_COLOR_FINDINGS}}
|
|
34
|
+
|
|
35
|
+
### Typography
|
|
36
|
+
|
|
37
|
+
| File | Line | Value | Nearest Token | Action |
|
|
38
|
+
|------|------|-------|---------------|--------|
|
|
39
|
+
{{#TYPO_FINDINGS}}
|
|
40
|
+
| `{{FILE}}` | {{LINE}} | `{{VALUE}}` | `{{TOKEN}}` | {{ACTION}} |
|
|
41
|
+
{{/TYPO_FINDINGS}}
|
|
42
|
+
{{#NO_TYPO_FINDINGS}}
|
|
43
|
+
| — | — | None found | — | — |
|
|
44
|
+
{{/NO_TYPO_FINDINGS}}
|
|
45
|
+
|
|
46
|
+
### Spacing
|
|
47
|
+
|
|
48
|
+
| File | Line | Value | Nearest Token | Action |
|
|
49
|
+
|------|------|-------|---------------|--------|
|
|
50
|
+
{{#SPACE_FINDINGS}}
|
|
51
|
+
| `{{FILE}}` | {{LINE}} | `{{VALUE}}` | `{{TOKEN}}` | {{ACTION}} |
|
|
52
|
+
{{/SPACE_FINDINGS}}
|
|
53
|
+
{{#NO_SPACE_FINDINGS}}
|
|
54
|
+
| — | — | None found | — | — |
|
|
55
|
+
{{/NO_SPACE_FINDINGS}}
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## New Tokens Suggested
|
|
60
|
+
|
|
61
|
+
These values appear 3+ times with no matching token. Candidates for addition to MASTER.md.
|
|
62
|
+
|
|
63
|
+
| Suggested Token Name | Value | Usage Count | Category |
|
|
64
|
+
|----------------------|-------|-------------|----------|
|
|
65
|
+
{{#SUGGESTED_TOKENS}}
|
|
66
|
+
| `{{NAME}}` | `{{VALUE}}` | {{COUNT}} | {{CATEGORY}} |
|
|
67
|
+
{{/SUGGESTED_TOKENS}}
|
|
68
|
+
{{#NO_SUGGESTED_TOKENS}}
|
|
69
|
+
| — | — | — | — |
|
|
70
|
+
{{/NO_SUGGESTED_TOKENS}}
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Skipped (Intentional / Not Replaceable)
|
|
75
|
+
|
|
76
|
+
{{#SKIPPED}}
|
|
77
|
+
- `{{FILE}}:{{LINE}}` — `{{VALUE}}` — {{REASON}}
|
|
78
|
+
{{/SKIPPED}}
|
|
79
|
+
{{#NO_SKIPPED}}
|
|
80
|
+
- None
|
|
81
|
+
{{/NO_SKIPPED}}
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Next Steps
|
|
86
|
+
|
|
87
|
+
1. {{#HAS_SUGGESTED_TOKENS}}Add suggested tokens to MASTER.md, then re-run `/design-normalize`{{/HAS_SUGGESTED_TOKENS}}
|
|
88
|
+
2. {{#HAS_HARDCODED}}Run `/design-normalize` to apply replacements{{/HAS_HARDCODED}}
|
|
89
|
+
3. {{#ALL_TOKENIZED}}Token coverage complete — proceed to `/design-polish`{{/ALL_TOKENIZED}}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Design Polish — Final Pass Checklist
|
|
2
|
+
|
|
3
|
+
Detailed criteria for each polish category. Each item is binary: pass or fail with a file:line reference.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Micro-Interactions
|
|
8
|
+
|
|
9
|
+
| Item | Pass Criteria | Fail Signal |
|
|
10
|
+
|------|--------------|-------------|
|
|
11
|
+
| Button hover | Color or shadow change within 150–300ms | No change, or change > 500ms |
|
|
12
|
+
| Button active/pressed | Slight scale-down (`scale(0.97)`) or color shift | No pressed state |
|
|
13
|
+
| Link hover | Underline or color change on entry | No visual feedback |
|
|
14
|
+
| Input focus | Border color change + visible focus ring | Ring missing or `outline: none` with no substitute |
|
|
15
|
+
| Toggle/switch | Smooth slide transition (200ms) | Instant jump with no transition |
|
|
16
|
+
| Checkbox/radio | Fill animation or check animation on select | Instant state change only |
|
|
17
|
+
| Toast/notification | Fade-in entry, fade-out dismiss (200–300ms) | Instant appear/disappear |
|
|
18
|
+
| Dropdown open | Fade + slight translate-y on open | No entry animation |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. Spacing & Alignment
|
|
23
|
+
|
|
24
|
+
| Item | Pass Criteria | Fail Signal |
|
|
25
|
+
|------|--------------|-------------|
|
|
26
|
+
| Grid alignment | All elements snap to 4px or 8px grid | Arbitrary values like `13px`, `22px`, `37px` |
|
|
27
|
+
| Section rhythm | Consistent vertical spacing between sections | Different gaps between visually equivalent sections |
|
|
28
|
+
| Icon-text alignment | Icons vertically centered with adjacent text label | Icon top-aligned with multi-line text (unless intentional) |
|
|
29
|
+
| Container padding | Symmetric horizontal padding unless intentional asymmetry | Left padding ≠ right padding without justification |
|
|
30
|
+
| Card internal spacing | Same padding token used for all cards of same level | One card uses `p-4`, adjacent uses `p-6` |
|
|
31
|
+
| List item gaps | Consistent gap between items | First item has different spacing than rest |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Typography Refinements
|
|
36
|
+
|
|
37
|
+
| Item | Pass Criteria | Fail Signal |
|
|
38
|
+
|------|--------------|-------------|
|
|
39
|
+
| No orphaned words | Last line of heading has ≥ 2 words | Single word dangling on its own line |
|
|
40
|
+
| Capitalization | Consistent Title Case or sentence case per element type | Mix of styles on same element type |
|
|
41
|
+
| No placeholder copy | All text is real content | "Lorem ipsum", "placeholder", "TODO", "test text" present |
|
|
42
|
+
| Overflow truncation | Long text uses `text-overflow: ellipsis` with `overflow: hidden` | Text overflows container or wraps unpredictably |
|
|
43
|
+
| Line length | Body text ≤ 75 characters wide | Wide blocks of text with no max-width constraint |
|
|
44
|
+
| Heading hierarchy | Visual size matches semantic level (`h1` > `h2` > `h3`) | `h2` styled larger than `h1`, or heading levels skipped |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Visual Consistency
|
|
49
|
+
|
|
50
|
+
| Item | Pass Criteria | Fail Signal |
|
|
51
|
+
|------|--------------|-------------|
|
|
52
|
+
| Border radius | Same-level cards and inputs share identical radius token | Card uses `rounded-lg`, adjacent input uses `rounded-md` |
|
|
53
|
+
| Shadow elevation | Shadow depth increases with z-index elevation | Modals (high elevation) have less shadow than cards |
|
|
54
|
+
| Icon size | Icons within same context use one of: 16/20/24px | Mix of 14px, 18px, 22px icons in the same component |
|
|
55
|
+
| Color semantics | Red = error/danger, Green = success, Yellow = warning consistently | Success toast is blue, error badge is orange |
|
|
56
|
+
| Empty states | All empty states have an icon or illustration + message + CTA | Some empty states show only "No data" text |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 5. Code Cleanliness
|
|
61
|
+
|
|
62
|
+
| Item | Pass Criteria | Fail Signal |
|
|
63
|
+
|------|--------------|-------------|
|
|
64
|
+
| No console.log | Zero `console.log` calls in UI files | Any `console.log` in production code paths |
|
|
65
|
+
| No commented code | No commented-out JSX or HTML blocks | `{/* <OldButton /> */}` style remnants |
|
|
66
|
+
| z-index discipline | No `z-index` > 100 without a comment explaining the reason | `z-index: 9999` or `z-index: 99999` |
|
|
67
|
+
| No inline styles | Presentation values use classes or tokens | `style={{ color: '#3B82F6', padding: '16px' }}` on component |
|
|
68
|
+
| No dead CSS | No class names defined but never applied | Classes in stylesheet with zero matches in templates |
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Design Polish Report: {{TARGET}}
|
|
2
|
+
|
|
3
|
+
**Date**: {{DATE}}
|
|
4
|
+
**Scope**: {{SCOPE_DESCRIPTION}}
|
|
5
|
+
**Design Context**: {{CONTEXT_SOURCE}} (design-context.json / defaults)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Summary
|
|
10
|
+
|
|
11
|
+
| Category | Checked | Auto-Fixed | Manual Review |
|
|
12
|
+
|----------|---------|------------|---------------|
|
|
13
|
+
| Micro-interactions | {{MI_CHECKED}} | {{MI_FIXED}} | {{MI_MANUAL}} |
|
|
14
|
+
| Spacing & Alignment | {{SP_CHECKED}} | {{SP_FIXED}} | {{SP_MANUAL}} |
|
|
15
|
+
| Typography | {{TY_CHECKED}} | {{TY_FIXED}} | {{TY_MANUAL}} |
|
|
16
|
+
| Visual Consistency | {{VC_CHECKED}} | {{VC_FIXED}} | {{VC_MANUAL}} |
|
|
17
|
+
| Code Cleanliness | {{CC_CHECKED}} | {{CC_FIXED}} | {{CC_MANUAL}} |
|
|
18
|
+
| **Total** | **{{TOTAL_CHECKED}}** | **{{TOTAL_FIXED}}** | **{{TOTAL_MANUAL}}** |
|
|
19
|
+
|
|
20
|
+
**Ship-ready**: {{SHIP_READY}}
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Auto-Fixed
|
|
25
|
+
|
|
26
|
+
{{#AUTO_FIXED}}
|
|
27
|
+
- `{{FILE}}:{{LINE}}` — {{DESCRIPTION}}
|
|
28
|
+
{{/AUTO_FIXED}}
|
|
29
|
+
{{#NO_AUTO_FIXED}}
|
|
30
|
+
- None
|
|
31
|
+
{{/NO_AUTO_FIXED}}
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Manual Review Required
|
|
36
|
+
|
|
37
|
+
{{#MANUAL_REVIEW}}
|
|
38
|
+
- `{{FILE}}:{{LINE}}` — {{DESCRIPTION}}
|
|
39
|
+
- Reason: {{REASON}}
|
|
40
|
+
- Suggested fix: {{SUGGESTION}}
|
|
41
|
+
{{/MANUAL_REVIEW}}
|
|
42
|
+
{{#NO_MANUAL_REVIEW}}
|
|
43
|
+
- None
|
|
44
|
+
{{/NO_MANUAL_REVIEW}}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Skipped Items
|
|
49
|
+
|
|
50
|
+
{{#SKIPPED}}
|
|
51
|
+
- {{ITEM}} — {{REASON}}
|
|
52
|
+
{{/SKIPPED}}
|
|
53
|
+
{{#NO_SKIPPED}}
|
|
54
|
+
- None
|
|
55
|
+
{{/NO_SKIPPED}}
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Next Steps
|
|
60
|
+
|
|
61
|
+
| Condition | Recommended Skill |
|
|
62
|
+
|-----------|-------------------|
|
|
63
|
+
| Design system gaps found | `/design-normalize` then re-run `/design-polish` |
|
|
64
|
+
| All items pass | Ship ready |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Brand Personality Assessment Framework
|
|
2
|
+
|
|
3
|
+
Use this rubric to evaluate whether the current UI implementation reflects the stated brand personality. Score each axis 0–4.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Personality Axes
|
|
8
|
+
|
|
9
|
+
### Axis 1: Formality (Casual ↔ Professional)
|
|
10
|
+
|
|
11
|
+
| Score | Indicators |
|
|
12
|
+
|-------|------------|
|
|
13
|
+
| **4** | Typography is structured, spacing generous, copy is precise; no playful shapes or informal microcopy |
|
|
14
|
+
| **3** | Mostly formal with 1–2 informal touches (e.g., friendly empty state copy) |
|
|
15
|
+
| **2** | Mixed signals: formal layout but casual copy, or vice versa |
|
|
16
|
+
| **1** | Predominantly informal when brand requires professional tone |
|
|
17
|
+
| **0** | Completely misaligned (e.g., bounce animations and emoji icons on a financial compliance tool) |
|
|
18
|
+
|
|
19
|
+
### Axis 2: Energy (Calm ↔ Bold)
|
|
20
|
+
|
|
21
|
+
| Score | Indicators |
|
|
22
|
+
|-------|------------|
|
|
23
|
+
| **4** | Color saturation, animation speed, and typographic weight all consistent with stated energy level |
|
|
24
|
+
| **3** | One outlier element (e.g., a single high-saturation call-to-action in an otherwise calm palette) |
|
|
25
|
+
| **2** | Energy inconsistent across pages or components |
|
|
26
|
+
| **1** | Dominant energy contradicts brand intent |
|
|
27
|
+
| **0** | Extreme mismatch (e.g., muted monochrome palette on an "energetic, vibrant" brand) |
|
|
28
|
+
|
|
29
|
+
### Axis 3: Warmth (Cold/Technical ↔ Warm/Human)
|
|
30
|
+
|
|
31
|
+
| Score | Indicators |
|
|
32
|
+
|-------|------------|
|
|
33
|
+
| **4** | Color temperature, illustration style, and copy voice all aligned to warmth target |
|
|
34
|
+
| **3** | Mostly aligned; one section feels tonally off |
|
|
35
|
+
| **2** | Neutral — neither warm nor cold, no clear personality signal |
|
|
36
|
+
| **1** | Opposite of intended (e.g., cool blues throughout a "warm and approachable" consumer product) |
|
|
37
|
+
| **0** | Severely misaligned — creates user trust issues or tonal dissonance |
|
|
38
|
+
|
|
39
|
+
### Axis 4: Complexity (Minimal ↔ Rich)
|
|
40
|
+
|
|
41
|
+
| Score | Indicators |
|
|
42
|
+
|-------|------------|
|
|
43
|
+
| **4** | Visual density, number of elements per screen, and information hierarchy match stated style |
|
|
44
|
+
| **3** | Correct overall density with 1–2 overcrowded or overly sparse areas |
|
|
45
|
+
| **2** | Inconsistent density — some screens minimal, others overwhelming |
|
|
46
|
+
| **1** | Density clearly wrong for product type (e.g., a consumer app with an enterprise-dense layout) |
|
|
47
|
+
| **0** | Completely unrelated to brand intent |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Reference: Personality → Design Signal Mapping
|
|
52
|
+
|
|
53
|
+
| Personality Word | Typography | Color | Spacing | Motion |
|
|
54
|
+
|-----------------|------------|-------|---------|--------|
|
|
55
|
+
| Professional | Geometric sans, weight contrast | Desaturated, cool neutrals | Generous, consistent | Subtle, linear ease |
|
|
56
|
+
| Playful | Rounded, variable weight | High saturation, warm | Tight or expressive | Bouncy, spring ease |
|
|
57
|
+
| Minimal | Single typeface, tight scale | Monochromatic or 2-color | Very generous | None or fade only |
|
|
58
|
+
| Bold | High contrast, expressive display | Primary-heavy, high contrast | Dramatic gaps | Fast, snappy |
|
|
59
|
+
| Warm | Humanist typeface | Warm neutrals, amber/terracotta | Comfortable | Gentle, ease-in-out |
|
|
60
|
+
| Technical | Monospace or geometric | Low saturation, functional | Dense, structured | None or immediate |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Overall Brand Alignment Score
|
|
65
|
+
|
|
66
|
+
Average the four axis scores. Thresholds:
|
|
67
|
+
|
|
68
|
+
| Average | Assessment |
|
|
69
|
+
|---------|------------|
|
|
70
|
+
| 3.5–4.0 | Strong brand alignment — personality comes through clearly |
|
|
71
|
+
| 2.5–3.4 | Adequate — personality visible but inconsistent in places |
|
|
72
|
+
| 1.5–2.4 | Weak — personality signals mixed or absent in key areas |
|
|
73
|
+
| 0–1.4 | Misaligned — redesign brand expression before shipping |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "design-context-v1",
|
|
3
|
+
"createdAt": "{{ISO_DATE}}",
|
|
4
|
+
"updatedAt": "{{ISO_DATE}}",
|
|
5
|
+
"audience": {
|
|
6
|
+
"primary": "B2B SaaS — product managers and engineers at mid-size tech companies",
|
|
7
|
+
"context": "desktop",
|
|
8
|
+
"expertise": "intermediate"
|
|
9
|
+
},
|
|
10
|
+
"brand": {
|
|
11
|
+
"personality": ["professional", "clean", "trustworthy", "efficient"],
|
|
12
|
+
"tone": "professional",
|
|
13
|
+
"existingAssets": ".claude/vibe/brand/brand-guide.pdf"
|
|
14
|
+
},
|
|
15
|
+
"aesthetic": {
|
|
16
|
+
"style": "minimal",
|
|
17
|
+
"colorMood": "cool",
|
|
18
|
+
"typographyMood": "modern",
|
|
19
|
+
"references": [
|
|
20
|
+
"https://linear.app",
|
|
21
|
+
"https://vercel.com"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"constraints": {
|
|
25
|
+
"accessibility": "AA",
|
|
26
|
+
"performance": "core-web-vitals",
|
|
27
|
+
"browsers": ["chrome", "safari", "firefox", "edge"],
|
|
28
|
+
"devices": ["desktop", "tablet"]
|
|
29
|
+
},
|
|
30
|
+
"detectedStack": {
|
|
31
|
+
"framework": "Next.js 15",
|
|
32
|
+
"componentLibrary": "shadcn/ui",
|
|
33
|
+
"styling": "Tailwind CSS",
|
|
34
|
+
"fonts": ["Inter"]
|
|
35
|
+
}
|
|
36
|
+
}
|