claude-code-orchestrator-kit 1.4.0 → 1.4.15
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/agents/business/workers/lead-research-assistant.md +199 -0
- package/.claude/agents/database/workers/database-architect.md +3 -3
- package/.claude/agents/database/workers/supabase-auditor.md +7 -7
- package/.claude/agents/development/workers/code-reviewer.md +17 -2
- package/.claude/agents/frontend/workers/nextjs-ui-designer.md +30 -0
- package/.claude/agents/health/workers/bug-fixer.md +31 -2
- package/.claude/agents/health/workers/bug-hunter.md +0 -1
- package/.claude/agents/health/workers/dead-code-hunter.md +167 -75
- package/.claude/agents/health/workers/dead-code-remover.md +217 -66
- package/.claude/agents/health/workers/dependency-auditor.md +83 -24
- package/.claude/agents/health/workers/dependency-updater.md +0 -1
- package/.claude/agents/health/workers/security-scanner.md +0 -1
- package/.claude/agents/infrastructure/workers/deployment-engineer.md +446 -0
- package/.claude/agents/infrastructure/workers/infrastructure-specialist.md +2 -2
- package/.claude/agents/meta/workers/meta-agent-v3.md +22 -0
- package/.claude/agents/testing/workers/integration-tester.md +1 -1
- package/.claude/agents/testing/workers/test-writer.md +16 -0
- package/.claude/commands/health-bugs.md +14 -281
- package/.claude/commands/health-cleanup.md +14 -281
- package/.claude/commands/health-deps.md +14 -281
- package/.claude/commands/health-metrics.md +51 -709
- package/.claude/commands/health-reuse.md +14 -311
- package/.claude/commands/health-security.md +14 -281
- package/.claude/commands/push.md +17 -3
- package/.claude/commands/speckit.implement.md +0 -11
- package/.claude/commands/speckit.taskstoissues.md +95 -5
- package/.claude/commands/worktree.md +150 -0
- package/.claude/scripts/gates/check-bundle-size.sh +0 -0
- package/.claude/scripts/gates/check-coverage.sh +0 -0
- package/.claude/scripts/gates/check-security.sh +0 -0
- package/.claude/scripts/release.sh +469 -94
- package/.claude/skills/algorithmic-art/LICENSE.txt +202 -0
- package/.claude/skills/algorithmic-art/SKILL.md +405 -0
- package/.claude/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/.claude/skills/algorithmic-art/templates/viewer.html +599 -0
- package/.claude/skills/artifacts-builder/LICENSE.txt +202 -0
- package/.claude/skills/artifacts-builder/SKILL.md +74 -0
- package/.claude/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/.claude/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/.claude/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/.claude/skills/bug-health-inline/SKILL.md +221 -0
- package/.claude/skills/bug-health-inline/references/worker-prompts.md +182 -0
- package/.claude/skills/canvas-design/LICENSE.txt +202 -0
- package/.claude/skills/canvas-design/SKILL.md +130 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/.claude/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/.claude/skills/changelog-generator/SKILL.md +104 -0
- package/.claude/skills/cleanup-health-inline/SKILL.md +224 -0
- package/.claude/skills/code-reviewer/SKILL.md +209 -0
- package/.claude/skills/code-reviewer/references/code_review_checklist.md +103 -0
- package/.claude/skills/code-reviewer/references/coding_standards.md +103 -0
- package/.claude/skills/code-reviewer/references/common_antipatterns.md +103 -0
- package/.claude/skills/code-reviewer/scripts/code_quality_checker.py +114 -0
- package/.claude/skills/code-reviewer/scripts/pr_analyzer.py +114 -0
- package/.claude/skills/code-reviewer/scripts/review_report_generator.py +114 -0
- package/.claude/skills/content-research-writer/SKILL.md +538 -0
- package/.claude/skills/deps-health-inline/SKILL.md +227 -0
- package/.claude/skills/frontend-aesthetics/SKILL.md +51 -396
- package/.claude/skills/git-commit-helper/SKILL.md +203 -0
- package/.claude/skills/lead-research-assistant/SKILL.md +199 -0
- package/.claude/skills/reuse-health-inline/SKILL.md +248 -0
- package/.claude/skills/rollback-changes/SKILL.md +50 -524
- package/.claude/skills/run-quality-gate/SKILL.md +36 -346
- package/.claude/skills/security-health-inline/SKILL.md +224 -0
- package/.claude/skills/senior-devops/SKILL.md +209 -0
- package/.claude/skills/senior-devops/references/cicd_pipeline_guide.md +103 -0
- package/.claude/skills/senior-devops/references/deployment_strategies.md +103 -0
- package/.claude/skills/senior-devops/references/infrastructure_as_code.md +103 -0
- package/.claude/skills/senior-devops/scripts/deployment_manager.py +114 -0
- package/.claude/skills/senior-devops/scripts/pipeline_generator.py +114 -0
- package/.claude/skills/senior-devops/scripts/terraform_scaffolder.py +114 -0
- package/.claude/skills/senior-prompt-engineer/SKILL.md +226 -0
- package/.claude/skills/senior-prompt-engineer/references/agentic_system_design.md +80 -0
- package/.claude/skills/senior-prompt-engineer/references/llm_evaluation_frameworks.md +80 -0
- package/.claude/skills/senior-prompt-engineer/references/prompt_engineering_patterns.md +80 -0
- package/.claude/skills/senior-prompt-engineer/scripts/agent_orchestrator.py +100 -0
- package/.claude/skills/senior-prompt-engineer/scripts/prompt_optimizer.py +100 -0
- package/.claude/skills/senior-prompt-engineer/scripts/rag_evaluator.py +100 -0
- package/.claude/skills/setup-knip/SKILL.md +372 -0
- package/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/.claude/skills/systematic-debugging/SKILL.md +296 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/.claude/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.claude/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.claude/skills/systematic-debugging/find-polluter.sh +63 -0
- package/.claude/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.claude/skills/systematic-debugging/test-academic.md +14 -0
- package/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/.claude/skills/theme-factory/LICENSE.txt +202 -0
- package/.claude/skills/theme-factory/SKILL.md +59 -0
- package/.claude/skills/theme-factory/theme-showcase.pdf +0 -0
- package/.claude/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/.claude/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/.claude/skills/theme-factory/themes/desert-rose.md +19 -0
- package/.claude/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/.claude/skills/theme-factory/themes/golden-hour.md +19 -0
- package/.claude/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/.claude/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/.claude/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/.claude/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/.claude/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/.claude/skills/ui-design-system/SKILL.md +32 -0
- package/.claude/skills/ui-design-system/scripts/design_token_generator.py +529 -0
- package/.claude/skills/ux-researcher-designer/SKILL.md +30 -0
- package/.claude/skills/ux-researcher-designer/scripts/persona_generator.py +508 -0
- package/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/.gitignore +4 -0
- package/README.md +492 -1093
- package/README.ru.md +719 -0
- package/docs/Agents Ecosystem/AGENT-ORCHESTRATION.md +2 -2
- package/docs/{SPECKIT-GUIDE.md → COMMANDS-GUIDE.md} +252 -20
- package/docs/reports/skills/new-skills-analysis-2025-12.md +331 -0
- package/package.json +11 -3
- package/.claude/agents/health/orchestrators/bug-orchestrator.md +0 -1084
- package/.claude/agents/health/orchestrators/dead-code-orchestrator.md +0 -1064
- package/.claude/agents/health/orchestrators/dependency-orchestrator.md +0 -1064
- package/.claude/agents/health/orchestrators/reuse-orchestrator.md +0 -1112
- package/.claude/agents/health/orchestrators/security-orchestrator.md +0 -1064
- package/.claude/commands/worktree-cleanup.md +0 -382
- package/.claude/commands/worktree-create.md +0 -287
- package/.claude/commands/worktree-list.md +0 -239
- package/.claude/commands/worktree-remove.md +0 -339
- package/.claude/project-index.md +0 -75
- package/.claude/skills/load-project-context/SKILL.md +0 -89
- package/.claude/skills/resume-session/SKILL.md +0 -164
- package/.claude/skills/save-session-context/SKILL.md +0 -123
- package/.claude/templates/project-index.template.md +0 -67
- package/.claude/templates/session/context.template.md +0 -40
- package/.claude/templates/session/log.template.md +0 -72
- package/.github/BRANCH_PROTECTION.md +0 -137
- package/.github/workflows/build.yml +0 -70
- package/.github/workflows/deploy-staging.yml +0 -90
- package/.github/workflows/test.yml +0 -104
|
@@ -5,436 +5,91 @@ description: Guide frontend design decisions to create distinctive, creative UIs
|
|
|
5
5
|
|
|
6
6
|
# Frontend Aesthetics
|
|
7
7
|
|
|
8
|
-
Create distinctive
|
|
8
|
+
Create distinctive designs that avoid generic AI-generated aesthetics.
|
|
9
9
|
|
|
10
10
|
## When to Use
|
|
11
11
|
|
|
12
|
-
- Designing
|
|
13
|
-
- Selecting typography
|
|
14
|
-
-
|
|
15
|
-
- Implementing animations and micro-interactions
|
|
16
|
-
- Reviewing frontend designs for generic patterns
|
|
17
|
-
- Making design decisions for landing pages, dashboards, or web applications
|
|
18
|
-
- Providing design guidance to frontend-focused agents
|
|
12
|
+
- Designing UI components, layouts, landing pages, dashboards
|
|
13
|
+
- Selecting typography, colors, animations
|
|
14
|
+
- Reviewing designs for generic patterns
|
|
19
15
|
|
|
20
|
-
##
|
|
16
|
+
## Design Principles
|
|
21
17
|
|
|
22
|
-
###
|
|
18
|
+
### Typography
|
|
23
19
|
|
|
24
|
-
|
|
20
|
+
**AVOID** (overused): Inter, Roboto, Arial, system fonts
|
|
25
21
|
|
|
26
|
-
**
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- What makes this project unique?
|
|
22
|
+
**Recommended**:
|
|
23
|
+
- Code/Technical: JetBrains Mono, Fira Code, Victor Mono
|
|
24
|
+
- Editorial: Playfair Display, Crimson Pro, Spectral, Lora
|
|
25
|
+
- Modern: DM Sans, Outfit, Plus Jakarta Sans (vary across projects)
|
|
31
26
|
|
|
32
|
-
###
|
|
27
|
+
### Colors & Theme
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
**AVOID These Generic Fonts**:
|
|
37
|
-
- Inter (massively overused in AI-generated UIs)
|
|
38
|
-
- Roboto
|
|
39
|
-
- Arial
|
|
40
|
-
- System fonts (-apple-system, BlinkMacSystemFont)
|
|
41
|
-
|
|
42
|
-
**Recommended Font Categories**:
|
|
43
|
-
|
|
44
|
-
**Code/Technical Aesthetics**:
|
|
45
|
-
- JetBrains Mono
|
|
46
|
-
- Fira Code
|
|
47
|
-
- Cascadia Code
|
|
48
|
-
- Victor Mono
|
|
49
|
-
|
|
50
|
-
**Editorial/Sophisticated**:
|
|
51
|
-
- Playfair Display
|
|
52
|
-
- Crimson Pro
|
|
53
|
-
- Spectral
|
|
54
|
-
- Lora
|
|
55
|
-
|
|
56
|
-
**Modern/Clean**:
|
|
57
|
-
- Space Grotesk (use sparingly - increasingly common)
|
|
58
|
-
- DM Sans
|
|
59
|
-
- Outfit
|
|
60
|
-
- Plus Jakarta Sans
|
|
61
|
-
|
|
62
|
-
**Critical**: Vary font choices across different projects. Don't converge on the same selections (like Space Grotesk) across all generations.
|
|
63
|
-
|
|
64
|
-
### Step 3: Color & Theme Design
|
|
65
|
-
|
|
66
|
-
Create cohesive color systems using CSS variables with dominant colors and sharp accents.
|
|
29
|
+
**AVOID**: Purple gradients on white (clichéd AI aesthetic), generic blue/gray
|
|
67
30
|
|
|
68
31
|
**Principles**:
|
|
69
|
-
- Dominant colors with sharp accents >
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
**AVOID**:
|
|
75
|
-
- Purple gradients on white backgrounds (clichéd AI aesthetic)
|
|
76
|
-
- Generic blue/gray combinations
|
|
77
|
-
- Predictable rainbow palettes with equal weight
|
|
78
|
-
- Safe, corporate color schemes when inappropriate for context
|
|
32
|
+
- Dominant colors with sharp accents > evenly-distributed palettes
|
|
33
|
+
- Draw from IDE themes (Dracula, Nord, Tokyo Night, Monokai)
|
|
34
|
+
- Use CSS variables for theming
|
|
35
|
+
- 1-2 dominant + 1-2 accent colors
|
|
79
36
|
|
|
80
|
-
|
|
81
|
-
- Choose 1-2 dominant colors that define the brand
|
|
82
|
-
- Add 1-2 sharp accent colors for calls-to-action and highlights
|
|
83
|
-
- Use CSS custom properties for theming
|
|
84
|
-
- Consider both light and dark mode variations
|
|
37
|
+
### Animation
|
|
85
38
|
|
|
86
|
-
|
|
39
|
+
**Priorities**:
|
|
40
|
+
1. High-impact: Orchestrated page loads with staggered reveals
|
|
41
|
+
2. Micro-interactions: Button hovers, state changes
|
|
42
|
+
3. Contextual: Scroll-triggered, parallax
|
|
87
43
|
|
|
88
|
-
|
|
44
|
+
**Implementation**: CSS-only for HTML/Vanilla JS, Motion (Framer) for React
|
|
89
45
|
|
|
90
|
-
**Animation Priorities**:
|
|
91
|
-
1. **High-impact moments**: Orchestrated page loads with staggered reveals
|
|
92
|
-
2. **Micro-interactions**: Button hovers, transitions, state changes
|
|
93
|
-
3. **Contextual effects**: Scroll-triggered animations, parallax
|
|
94
|
-
|
|
95
|
-
**Implementation Guidelines**:
|
|
96
|
-
- **For HTML/Vanilla JS**: Prioritize CSS-only solutions (transitions, animations, @keyframes)
|
|
97
|
-
- **For React**: Use Motion library (Framer Motion) when available
|
|
98
|
-
- **Focus on orchestration**: One well-orchestrated sequence > scattered micro-interactions
|
|
99
|
-
- **Use animation-delay**: Create staggered reveals for related elements
|
|
100
|
-
|
|
101
|
-
**Example Pattern**:
|
|
102
46
|
```css
|
|
103
|
-
.stagger-item {
|
|
104
|
-
animation: fadeInUp 0.6s ease-out forwards;
|
|
105
|
-
opacity: 0;
|
|
106
|
-
}
|
|
47
|
+
.stagger-item { animation: fadeInUp 0.6s ease-out forwards; opacity: 0; }
|
|
107
48
|
.stagger-item:nth-child(1) { animation-delay: 0.1s; }
|
|
108
49
|
.stagger-item:nth-child(2) { animation-delay: 0.2s; }
|
|
109
|
-
.stagger-item:nth-child(3) { animation-delay: 0.3s; }
|
|
110
50
|
```
|
|
111
51
|
|
|
112
|
-
###
|
|
113
|
-
|
|
114
|
-
Create depth and atmosphere through layered backgrounds and contextual effects.
|
|
115
|
-
|
|
116
|
-
**AVOID**:
|
|
117
|
-
- Defaulting to solid colors
|
|
118
|
-
- Plain white or gray backgrounds
|
|
119
|
-
- Flat, lifeless surfaces
|
|
120
|
-
|
|
121
|
-
**Recommended Approaches**:
|
|
122
|
-
- Layer CSS gradients for depth
|
|
123
|
-
- Use geometric patterns (stripes, grids, dots)
|
|
124
|
-
- Add subtle noise textures
|
|
125
|
-
- Implement contextual effects (glow, blur, shadows)
|
|
126
|
-
- Match background complexity to overall aesthetic
|
|
127
|
-
|
|
128
|
-
**Example Patterns**:
|
|
129
|
-
```css
|
|
130
|
-
/* Layered gradient */
|
|
131
|
-
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
132
|
-
|
|
133
|
-
/* Geometric pattern */
|
|
134
|
-
background-image:
|
|
135
|
-
repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0,0,0,.05) 10px, rgba(0,0,0,.05) 20px);
|
|
136
|
-
|
|
137
|
-
/* Subtle noise texture */
|
|
138
|
-
background-image: url('data:image/svg+xml,...'), linear-gradient(...);
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Step 6: Validate Against Anti-Patterns
|
|
142
|
-
|
|
143
|
-
Review the design against common AI-generated UI pitfalls.
|
|
144
|
-
|
|
145
|
-
**Anti-Pattern Checklist**:
|
|
146
|
-
- [ ] Not using Inter, Roboto, Arial, or system fonts
|
|
147
|
-
- [ ] No purple gradients on white backgrounds
|
|
148
|
-
- [ ] Color palette has clear hierarchy (dominant + accent, not even distribution)
|
|
149
|
-
- [ ] Animations are orchestrated and purposeful (not scattered)
|
|
150
|
-
- [ ] Backgrounds have depth and atmosphere (not solid colors)
|
|
151
|
-
- [ ] Layout is creative and context-appropriate (not cookie-cutter)
|
|
152
|
-
- [ ] Typography is distinctive and matches brand personality
|
|
153
|
-
- [ ] Design choices vary from previous projects (not repetitive)
|
|
52
|
+
### Backgrounds
|
|
154
53
|
|
|
155
|
-
|
|
54
|
+
**AVOID**: Solid white/gray, flat surfaces
|
|
156
55
|
|
|
157
|
-
|
|
56
|
+
**Use**: Layered gradients, geometric patterns, subtle noise, contextual glow/blur
|
|
158
57
|
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"typography": {
|
|
163
|
-
"primary": "Font name and reasoning",
|
|
164
|
-
"secondary": "Font name and reasoning",
|
|
165
|
-
"code": "Monospace font (if applicable)"
|
|
166
|
-
},
|
|
167
|
-
"colors": {
|
|
168
|
-
"dominant": ["#hex1", "#hex2"],
|
|
169
|
-
"accent": ["#hex3"],
|
|
170
|
-
"theme_inspiration": "IDE theme or cultural aesthetic reference"
|
|
171
|
-
},
|
|
172
|
-
"animations": {
|
|
173
|
-
"approach": "CSS-only or Framer Motion",
|
|
174
|
-
"focus": "Page load orchestration or micro-interactions",
|
|
175
|
-
"key_moments": ["List of high-impact animation opportunities"]
|
|
176
|
-
},
|
|
177
|
-
"backgrounds": {
|
|
178
|
-
"technique": "Layered gradients, geometric patterns, etc.",
|
|
179
|
-
"atmosphere": "Description of desired depth/mood"
|
|
180
|
-
},
|
|
181
|
-
"anti_pattern_validation": {
|
|
182
|
-
"passed": true,
|
|
183
|
-
"warnings": []
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## Error Handling
|
|
189
|
-
|
|
190
|
-
- **Missing Context**: Ask clarifying questions about brand identity and project purpose
|
|
191
|
-
- **Generic Choices Detected**: Explicitly warn and suggest distinctive alternatives
|
|
192
|
-
- **Repetitive Patterns**: Flag convergence on previously used aesthetics
|
|
193
|
-
- **Unclear Requirements**: Request specific design goals or constraints
|
|
58
|
+
## Anti-Pattern Checklist
|
|
194
59
|
|
|
195
|
-
|
|
60
|
+
- [ ] Not using Inter, Roboto, Arial, system fonts
|
|
61
|
+
- [ ] No purple gradients on white
|
|
62
|
+
- [ ] Color hierarchy clear (dominant + accent)
|
|
63
|
+
- [ ] Animations orchestrated and purposeful
|
|
64
|
+
- [ ] Backgrounds have depth
|
|
65
|
+
- [ ] Typography matches brand personality
|
|
66
|
+
- [ ] Design varies from previous projects
|
|
196
67
|
|
|
197
|
-
|
|
68
|
+
## Output Format
|
|
198
69
|
|
|
199
|
-
**Input**:
|
|
200
70
|
```json
|
|
201
71
|
{
|
|
202
|
-
"
|
|
203
|
-
"
|
|
204
|
-
"
|
|
72
|
+
"typography": { "primary": "Font + reasoning", "secondary": "Font", "code": "Mono font" },
|
|
73
|
+
"colors": { "dominant": ["#hex"], "accent": ["#hex"], "theme_inspiration": "Reference" },
|
|
74
|
+
"animations": { "approach": "CSS-only|Framer", "focus": "Page load|micro-interactions", "key_moments": [] },
|
|
75
|
+
"backgrounds": { "technique": "Gradients|patterns", "atmosphere": "Description" },
|
|
76
|
+
"anti_pattern_validation": { "passed": true, "warnings": [] }
|
|
205
77
|
}
|
|
206
78
|
```
|
|
207
79
|
|
|
208
|
-
|
|
209
|
-
```json
|
|
210
|
-
{
|
|
211
|
-
"typography": {
|
|
212
|
-
"primary": "DM Sans - modern, readable, technical feel without being generic",
|
|
213
|
-
"secondary": "Crimson Pro - for editorial content and longer reads",
|
|
214
|
-
"code": "JetBrains Mono - excellent code aesthetics with ligatures"
|
|
215
|
-
},
|
|
216
|
-
"colors": {
|
|
217
|
-
"dominant": ["#0f172a", "#1e293b"],
|
|
218
|
-
"accent": ["#38bdf8", "#f97316"],
|
|
219
|
-
"theme_inspiration": "Tokyo Night - dark blues with bright cyan and orange accents"
|
|
220
|
-
},
|
|
221
|
-
"animations": {
|
|
222
|
-
"approach": "CSS-only for performance",
|
|
223
|
-
"focus": "Staggered page load for documentation sections",
|
|
224
|
-
"key_moments": ["Code block reveal", "Navigation transitions", "Search result appearance"]
|
|
225
|
-
},
|
|
226
|
-
"backgrounds": {
|
|
227
|
-
"technique": "Dark gradient with subtle grid pattern overlay",
|
|
228
|
-
"atmosphere": "Technical depth with code editor vibe"
|
|
229
|
-
},
|
|
230
|
-
"anti_pattern_validation": {
|
|
231
|
-
"passed": true,
|
|
232
|
-
"warnings": []
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
```
|
|
80
|
+
## Example
|
|
236
81
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
**Input**:
|
|
240
|
-
```json
|
|
241
|
-
{
|
|
242
|
-
"project": "Design agency portfolio",
|
|
243
|
-
"brand": "Bold, creative, experimental",
|
|
244
|
-
"audience": "Potential clients seeking innovative design"
|
|
245
|
-
}
|
|
246
|
-
```
|
|
82
|
+
**Input**: Technical documentation, code-focused, for developers
|
|
247
83
|
|
|
248
84
|
**Output**:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
"secondary": "Outfit - modern contrast for body text",
|
|
254
|
-
"code": "Not applicable"
|
|
255
|
-
},
|
|
256
|
-
"colors": {
|
|
257
|
-
"dominant": ["#000000", "#fffef7"],
|
|
258
|
-
"accent": ["#ff6b35", "#00d9ff"],
|
|
259
|
-
"theme_inspiration": "High-contrast editorial with vibrant accent pops"
|
|
260
|
-
},
|
|
261
|
-
"animations": {
|
|
262
|
-
"approach": "Framer Motion for complex orchestration",
|
|
263
|
-
"focus": "Full-page orchestrated entry sequence",
|
|
264
|
-
"key_moments": ["Hero text reveal with stagger", "Project thumbnails parallax", "Section transitions"]
|
|
265
|
-
},
|
|
266
|
-
"backgrounds": {
|
|
267
|
-
"technique": "Animated gradient mesh with organic shapes",
|
|
268
|
-
"atmosphere": "Dynamic, bold, artistic depth"
|
|
269
|
-
},
|
|
270
|
-
"anti_pattern_validation": {
|
|
271
|
-
"passed": true,
|
|
272
|
-
"warnings": []
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
### Example 3: Anti-Pattern Detection
|
|
278
|
-
|
|
279
|
-
**Input**:
|
|
280
|
-
```json
|
|
281
|
-
{
|
|
282
|
-
"project": "SaaS dashboard",
|
|
283
|
-
"proposed_design": {
|
|
284
|
-
"font": "Inter",
|
|
285
|
-
"colors": ["#6366f1", "#8b5cf6", "#ffffff"],
|
|
286
|
-
"background": "solid white",
|
|
287
|
-
"animations": "minimal button hovers"
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
**Output**:
|
|
293
|
-
```json
|
|
294
|
-
{
|
|
295
|
-
"typography": {
|
|
296
|
-
"primary": "REJECTED: Inter is overused. Recommend: Plus Jakarta Sans - similar readability, more distinctive",
|
|
297
|
-
"secondary": "Consider Spectral for data-heavy sections to add visual interest"
|
|
298
|
-
},
|
|
299
|
-
"colors": {
|
|
300
|
-
"dominant": ["#0c4a6e", "#082f49"],
|
|
301
|
-
"accent": ["#06b6d4", "#fbbf24"],
|
|
302
|
-
"theme_inspiration": "REJECTED: Purple gradient is clichéd. Recommend: Deep ocean blues with cyan/amber accents (Dracula-inspired)"
|
|
303
|
-
},
|
|
304
|
-
"animations": {
|
|
305
|
-
"approach": "Framer Motion",
|
|
306
|
-
"focus": "UPGRADE: Add orchestrated dashboard load sequence",
|
|
307
|
-
"key_moments": ["Staggered card reveals", "Chart animations", "Data transitions"]
|
|
308
|
-
},
|
|
309
|
-
"backgrounds": {
|
|
310
|
-
"technique": "REJECTED: Solid white is flat. Recommend: Subtle gradient with noise texture",
|
|
311
|
-
"atmosphere": "Add depth with layered backgrounds and geometric patterns"
|
|
312
|
-
},
|
|
313
|
-
"anti_pattern_validation": {
|
|
314
|
-
"passed": false,
|
|
315
|
-
"warnings": [
|
|
316
|
-
"Using Inter font (generic AI aesthetic)",
|
|
317
|
-
"Purple gradient color scheme (overused)",
|
|
318
|
-
"Solid white background (no atmosphere)",
|
|
319
|
-
"Minimal animations (missed opportunities for delight)"
|
|
320
|
-
]
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
### Example 4: E-commerce Product Page
|
|
326
|
-
|
|
327
|
-
**Input**:
|
|
328
|
-
```json
|
|
329
|
-
{
|
|
330
|
-
"project": "Premium fashion e-commerce",
|
|
331
|
-
"brand": "Luxury, minimalist, editorial",
|
|
332
|
-
"audience": "High-end fashion consumers"
|
|
333
|
-
}
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
**Output**:
|
|
337
|
-
```json
|
|
338
|
-
{
|
|
339
|
-
"typography": {
|
|
340
|
-
"primary": "Lora - sophisticated serif for luxury feel",
|
|
341
|
-
"secondary": "DM Sans - clean sans-serif for product details and UI",
|
|
342
|
-
"code": "Not applicable"
|
|
343
|
-
},
|
|
344
|
-
"colors": {
|
|
345
|
-
"dominant": ["#1a1a1a", "#f5f5f0"],
|
|
346
|
-
"accent": ["#c4a57b"],
|
|
347
|
-
"theme_inspiration": "Luxury editorial - black, cream, gold accent"
|
|
348
|
-
},
|
|
349
|
-
"animations": {
|
|
350
|
-
"approach": "CSS-only for lightweight performance",
|
|
351
|
-
"focus": "Smooth product image transitions and subtle reveals",
|
|
352
|
-
"key_moments": ["Product image crossfade", "Size selector micro-interaction", "Add to cart confirmation"]
|
|
353
|
-
},
|
|
354
|
-
"backgrounds": {
|
|
355
|
-
"technique": "Soft gradient from cream to off-white with subtle texture",
|
|
356
|
-
"atmosphere": "Luxurious, tactile, premium feel"
|
|
357
|
-
},
|
|
358
|
-
"anti_pattern_validation": {
|
|
359
|
-
"passed": true,
|
|
360
|
-
"warnings": []
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
## Validation
|
|
366
|
-
|
|
367
|
-
- [ ] Recommends distinctive fonts that match project character
|
|
368
|
-
- [ ] Explicitly warns against generic fonts (Inter, Roboto, Arial, system)
|
|
369
|
-
- [ ] Creates color palettes with clear hierarchy (dominant + accent)
|
|
370
|
-
- [ ] Avoids clichéd color schemes (purple gradients)
|
|
371
|
-
- [ ] Suggests orchestrated animations for high-impact moments
|
|
372
|
-
- [ ] Recommends backgrounds with depth and atmosphere
|
|
373
|
-
- [ ] Validates against anti-patterns
|
|
374
|
-
- [ ] Varies aesthetic recommendations across different contexts
|
|
375
|
-
- [ ] Provides context-specific reasoning for each choice
|
|
376
|
-
|
|
377
|
-
## Integration with Agents
|
|
378
|
-
|
|
379
|
-
### Frontend-Focused Agents
|
|
380
|
-
|
|
381
|
-
Before implementing UI components, invoke frontend-aesthetics Skill to receive design guidance:
|
|
382
|
-
|
|
383
|
-
```markdown
|
|
384
|
-
## Step 1: Design Guidance
|
|
385
|
-
|
|
386
|
-
Use frontend-aesthetics Skill to get typography, color, animation, and background recommendations.
|
|
387
|
-
|
|
388
|
-
Input: Project context, brand identity, target aesthetic
|
|
389
|
-
Output: Comprehensive design guidance with specific recommendations
|
|
390
|
-
|
|
391
|
-
Validate output against anti-patterns before proceeding.
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
### Code Review Agents
|
|
395
|
-
|
|
396
|
-
Use frontend-aesthetics Skill to evaluate existing frontend code for generic patterns:
|
|
397
|
-
|
|
398
|
-
```markdown
|
|
399
|
-
## Step 3: Frontend Aesthetics Review
|
|
400
|
-
|
|
401
|
-
Use frontend-aesthetics Skill in validation mode:
|
|
402
|
-
- Extract current font choices from CSS
|
|
403
|
-
- Identify color palette from CSS variables
|
|
404
|
-
- Review animation implementation
|
|
405
|
-
- Check background complexity
|
|
406
|
-
|
|
407
|
-
Flag any anti-patterns detected.
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
### Orchestrator Integration
|
|
411
|
-
|
|
412
|
-
Include frontend-aesthetics validation in quality gates:
|
|
413
|
-
|
|
414
|
-
```markdown
|
|
415
|
-
## Phase 2: Design Review
|
|
416
|
-
|
|
417
|
-
Use frontend-aesthetics Skill to validate design choices:
|
|
418
|
-
1. Check typography selection
|
|
419
|
-
2. Validate color scheme
|
|
420
|
-
3. Review animation approach
|
|
421
|
-
4. Assess background depth
|
|
422
|
-
|
|
423
|
-
If anti_pattern_validation.passed == false:
|
|
424
|
-
Delegate design improvements to frontend worker
|
|
425
|
-
```
|
|
85
|
+
- Typography: DM Sans (primary), Crimson Pro (editorial), JetBrains Mono (code)
|
|
86
|
+
- Colors: #0f172a, #1e293b (dominant), #38bdf8, #f97316 (accent) - Tokyo Night inspired
|
|
87
|
+
- Animations: CSS-only, staggered section reveals
|
|
88
|
+
- Background: Dark gradient with subtle grid overlay
|
|
426
89
|
|
|
427
90
|
## Notes
|
|
428
91
|
|
|
429
|
-
-
|
|
430
|
-
-
|
|
431
|
-
-
|
|
432
|
-
-
|
|
433
|
-
- **Performance Considerations**: CSS-only animations are preferred for HTML; Framer Motion is appropriate for React when available
|
|
434
|
-
- **Font Licensing**: Ensure recommended fonts are available via Google Fonts or other accessible sources
|
|
435
|
-
- **Accessibility**: Distinctive aesthetics should not compromise readability or WCAG compliance
|
|
436
|
-
- **Iteration**: Design choices can be refined based on user feedback and testing
|
|
437
|
-
|
|
438
|
-
## References
|
|
439
|
-
|
|
440
|
-
Based on official Anthropic guidance: "Improving Claude's front-end aesthetic sense" (2025-01-15)
|
|
92
|
+
- Variation is critical - avoid converging on same choices across projects
|
|
93
|
+
- Context matters - match brand identity and purpose
|
|
94
|
+
- Performance: CSS-only preferred, Framer Motion for complex React animations
|
|
95
|
+
- Ensure WCAG compliance despite distinctive aesthetics
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Git Commit Helper
|
|
3
|
+
description: Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Git Commit Helper
|
|
7
|
+
|
|
8
|
+
## Quick start
|
|
9
|
+
|
|
10
|
+
Analyze staged changes and generate commit message:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# View staged changes
|
|
14
|
+
git diff --staged
|
|
15
|
+
|
|
16
|
+
# Generate commit message based on changes
|
|
17
|
+
# (Claude will analyze the diff and suggest a message)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Commit message format
|
|
21
|
+
|
|
22
|
+
Follow conventional commits format:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
<type>(<scope>): <description>
|
|
26
|
+
|
|
27
|
+
[optional body]
|
|
28
|
+
|
|
29
|
+
[optional footer]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Types
|
|
33
|
+
|
|
34
|
+
- **feat**: New feature
|
|
35
|
+
- **fix**: Bug fix
|
|
36
|
+
- **docs**: Documentation changes
|
|
37
|
+
- **style**: Code style changes (formatting, missing semicolons)
|
|
38
|
+
- **refactor**: Code refactoring
|
|
39
|
+
- **test**: Adding or updating tests
|
|
40
|
+
- **chore**: Maintenance tasks
|
|
41
|
+
|
|
42
|
+
### Examples
|
|
43
|
+
|
|
44
|
+
**Feature commit:**
|
|
45
|
+
```
|
|
46
|
+
feat(auth): add JWT authentication
|
|
47
|
+
|
|
48
|
+
Implement JWT-based authentication system with:
|
|
49
|
+
- Login endpoint with token generation
|
|
50
|
+
- Token validation middleware
|
|
51
|
+
- Refresh token support
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Bug fix:**
|
|
55
|
+
```
|
|
56
|
+
fix(api): handle null values in user profile
|
|
57
|
+
|
|
58
|
+
Prevent crashes when user profile fields are null.
|
|
59
|
+
Add null checks before accessing nested properties.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Refactor:**
|
|
63
|
+
```
|
|
64
|
+
refactor(database): simplify query builder
|
|
65
|
+
|
|
66
|
+
Extract common query patterns into reusable functions.
|
|
67
|
+
Reduce code duplication in database layer.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Analyzing changes
|
|
71
|
+
|
|
72
|
+
Review what's being committed:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Show files changed
|
|
76
|
+
git status
|
|
77
|
+
|
|
78
|
+
# Show detailed changes
|
|
79
|
+
git diff --staged
|
|
80
|
+
|
|
81
|
+
# Show statistics
|
|
82
|
+
git diff --staged --stat
|
|
83
|
+
|
|
84
|
+
# Show changes for specific file
|
|
85
|
+
git diff --staged path/to/file
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Commit message guidelines
|
|
89
|
+
|
|
90
|
+
**DO:**
|
|
91
|
+
- Use imperative mood ("add feature" not "added feature")
|
|
92
|
+
- Keep first line under 50 characters
|
|
93
|
+
- Capitalize first letter
|
|
94
|
+
- No period at end of summary
|
|
95
|
+
- Explain WHY not just WHAT in body
|
|
96
|
+
|
|
97
|
+
**DON'T:**
|
|
98
|
+
- Use vague messages like "update" or "fix stuff"
|
|
99
|
+
- Include technical implementation details in summary
|
|
100
|
+
- Write paragraphs in summary line
|
|
101
|
+
- Use past tense
|
|
102
|
+
|
|
103
|
+
## Multi-file commits
|
|
104
|
+
|
|
105
|
+
When committing multiple related changes:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
refactor(core): restructure authentication module
|
|
109
|
+
|
|
110
|
+
- Move auth logic from controllers to service layer
|
|
111
|
+
- Extract validation into separate validators
|
|
112
|
+
- Update tests to use new structure
|
|
113
|
+
- Add integration tests for auth flow
|
|
114
|
+
|
|
115
|
+
Breaking change: Auth service now requires config object
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Scope examples
|
|
119
|
+
|
|
120
|
+
**Frontend:**
|
|
121
|
+
- `feat(ui): add loading spinner to dashboard`
|
|
122
|
+
- `fix(form): validate email format`
|
|
123
|
+
|
|
124
|
+
**Backend:**
|
|
125
|
+
- `feat(api): add user profile endpoint`
|
|
126
|
+
- `fix(db): resolve connection pool leak`
|
|
127
|
+
|
|
128
|
+
**Infrastructure:**
|
|
129
|
+
- `chore(ci): update Node version to 20`
|
|
130
|
+
- `feat(docker): add multi-stage build`
|
|
131
|
+
|
|
132
|
+
## Breaking changes
|
|
133
|
+
|
|
134
|
+
Indicate breaking changes clearly:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
feat(api)!: restructure API response format
|
|
138
|
+
|
|
139
|
+
BREAKING CHANGE: All API responses now follow JSON:API spec
|
|
140
|
+
|
|
141
|
+
Previous format:
|
|
142
|
+
{ "data": {...}, "status": "ok" }
|
|
143
|
+
|
|
144
|
+
New format:
|
|
145
|
+
{ "data": {...}, "meta": {...} }
|
|
146
|
+
|
|
147
|
+
Migration guide: Update client code to handle new response structure
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Template workflow
|
|
151
|
+
|
|
152
|
+
1. **Review changes**: `git diff --staged`
|
|
153
|
+
2. **Identify type**: Is it feat, fix, refactor, etc.?
|
|
154
|
+
3. **Determine scope**: What part of the codebase?
|
|
155
|
+
4. **Write summary**: Brief, imperative description
|
|
156
|
+
5. **Add body**: Explain why and what impact
|
|
157
|
+
6. **Note breaking changes**: If applicable
|
|
158
|
+
|
|
159
|
+
## Interactive commit helper
|
|
160
|
+
|
|
161
|
+
Use `git add -p` for selective staging:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# Stage changes interactively
|
|
165
|
+
git add -p
|
|
166
|
+
|
|
167
|
+
# Review what's staged
|
|
168
|
+
git diff --staged
|
|
169
|
+
|
|
170
|
+
# Commit with message
|
|
171
|
+
git commit -m "type(scope): description"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Amending commits
|
|
175
|
+
|
|
176
|
+
Fix the last commit message:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# Amend commit message only
|
|
180
|
+
git commit --amend
|
|
181
|
+
|
|
182
|
+
# Amend and add more changes
|
|
183
|
+
git add forgotten-file.js
|
|
184
|
+
git commit --amend --no-edit
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Best practices
|
|
188
|
+
|
|
189
|
+
1. **Atomic commits** - One logical change per commit
|
|
190
|
+
2. **Test before commit** - Ensure code works
|
|
191
|
+
3. **Reference issues** - Include issue numbers if applicable
|
|
192
|
+
4. **Keep it focused** - Don't mix unrelated changes
|
|
193
|
+
5. **Write for humans** - Future you will read this
|
|
194
|
+
|
|
195
|
+
## Commit message checklist
|
|
196
|
+
|
|
197
|
+
- [ ] Type is appropriate (feat/fix/docs/etc.)
|
|
198
|
+
- [ ] Scope is specific and clear
|
|
199
|
+
- [ ] Summary is under 50 characters
|
|
200
|
+
- [ ] Summary uses imperative mood
|
|
201
|
+
- [ ] Body explains WHY not just WHAT
|
|
202
|
+
- [ ] Breaking changes are clearly marked
|
|
203
|
+
- [ ] Related issue numbers are included
|