@hustle-together/api-dev-tools 3.12.16 → 4.5.3

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.
Files changed (180) hide show
  1. package/.claude/adr-requests/.gitkeep +10 -0
  2. package/.claude/agents/adr-researcher.md +109 -0
  3. package/.claude/agents/visual-analyzer.md +183 -0
  4. package/.claude/api-dev-state.json +10 -0
  5. package/.claude/documentation-audit.json +114 -0
  6. package/.claude/registry.json +289 -0
  7. package/.claude/settings.json +45 -1
  8. package/.claude/settings.local.json +1 -7
  9. package/.claude/workflow-logs/None.json +49 -0
  10. package/.claude/workflow-logs/session-20251230-143727.json +106 -0
  11. package/.skills/adr-deep-research/SKILL.md +351 -0
  12. package/.skills/api-create/SKILL.md +34 -20
  13. package/.skills/api-research/SKILL.md +130 -0
  14. package/.skills/docs-update/SKILL.md +205 -0
  15. package/.skills/hustle-brand/SKILL.md +368 -0
  16. package/.skills/hustle-build/SKILL.md +365 -38
  17. package/.skills/parallel-spawn/SKILL.md +212 -0
  18. package/.skills/ralph-continue/SKILL.md +151 -0
  19. package/.skills/ralph-loop/SKILL.md +341 -0
  20. package/.skills/ralph-status/SKILL.md +87 -0
  21. package/.skills/refactor/SKILL.md +59 -0
  22. package/.skills/shadcn/SKILL.md +522 -0
  23. package/.skills/test-all/SKILL.md +210 -0
  24. package/.skills/test-builds/SKILL.md +208 -0
  25. package/.skills/test-debug/SKILL.md +212 -0
  26. package/.skills/test-e2e/SKILL.md +168 -0
  27. package/.skills/test-review/SKILL.md +707 -0
  28. package/.skills/test-unit/SKILL.md +143 -0
  29. package/.skills/test-visual/SKILL.md +301 -0
  30. package/.skills/token-report/SKILL.md +132 -0
  31. package/CHANGELOG.md +488 -0
  32. package/README.md +346 -53
  33. package/bin/cli.js +359 -123
  34. package/hooks/__pycache__/api-workflow-check.cpython-314.pyc +0 -0
  35. package/hooks/__pycache__/auto-answer.cpython-314.pyc +0 -0
  36. package/hooks/__pycache__/cache-research.cpython-314.pyc +0 -0
  37. package/hooks/__pycache__/check-api-routes.cpython-314.pyc +0 -0
  38. package/hooks/__pycache__/check-playwright-setup.cpython-314.pyc +0 -0
  39. package/hooks/__pycache__/check-storybook-setup.cpython-314.pyc +0 -0
  40. package/hooks/__pycache__/check-update.cpython-314.pyc +0 -0
  41. package/hooks/__pycache__/completion-promise-detector.cpython-314.pyc +0 -0
  42. package/hooks/__pycache__/context-capacity-warning.cpython-314.pyc +0 -0
  43. package/hooks/__pycache__/detect-interruption.cpython-314.pyc +0 -0
  44. package/hooks/__pycache__/docs-update-check.cpython-314.pyc +0 -0
  45. package/hooks/__pycache__/enforce-a11y-audit.cpython-314.pyc +0 -0
  46. package/hooks/__pycache__/enforce-brand-guide.cpython-314.pyc +0 -0
  47. package/hooks/__pycache__/enforce-component-type-confirm.cpython-314.pyc +0 -0
  48. package/hooks/__pycache__/enforce-deep-research.cpython-314.pyc +0 -0
  49. package/hooks/__pycache__/enforce-disambiguation.cpython-314.pyc +0 -0
  50. package/hooks/__pycache__/enforce-documentation.cpython-314.pyc +0 -0
  51. package/hooks/__pycache__/enforce-dry-run.cpython-314.pyc +0 -0
  52. package/hooks/__pycache__/enforce-environment.cpython-314.pyc +0 -0
  53. package/hooks/__pycache__/enforce-external-research.cpython-314.pyc +0 -0
  54. package/hooks/__pycache__/enforce-freshness.cpython-314.pyc +0 -0
  55. package/hooks/__pycache__/enforce-interview.cpython-314.pyc +0 -0
  56. package/hooks/__pycache__/enforce-page-components.cpython-314.pyc +0 -0
  57. package/hooks/__pycache__/enforce-page-data-schema.cpython-314.pyc +0 -0
  58. package/hooks/__pycache__/enforce-questions-sourced.cpython-314.pyc +0 -0
  59. package/hooks/__pycache__/enforce-refactor.cpython-314.pyc +0 -0
  60. package/hooks/__pycache__/enforce-research.cpython-314.pyc +0 -0
  61. package/hooks/__pycache__/enforce-schema-from-interview.cpython-314.pyc +0 -0
  62. package/hooks/__pycache__/enforce-schema.cpython-314.pyc +0 -0
  63. package/hooks/__pycache__/enforce-scope.cpython-314.pyc +0 -0
  64. package/hooks/__pycache__/enforce-tdd-red.cpython-314.pyc +0 -0
  65. package/hooks/__pycache__/enforce-ui-disambiguation.cpython-314.pyc +0 -0
  66. package/hooks/__pycache__/enforce-ui-interview.cpython-314.pyc +0 -0
  67. package/hooks/__pycache__/enforce-verify.cpython-314.pyc +0 -0
  68. package/hooks/__pycache__/generate-adr-options.cpython-314.pyc +0 -0
  69. package/hooks/__pycache__/generate-manifest-entry.cpython-314.pyc +0 -0
  70. package/hooks/__pycache__/hook_utils.cpython-314.pyc +0 -0
  71. package/hooks/__pycache__/notify-input-needed.cpython-314.pyc +0 -0
  72. package/hooks/__pycache__/notify-phase-complete.cpython-314.pyc +0 -0
  73. package/hooks/__pycache__/ntfy-on-question.cpython-314.pyc +0 -0
  74. package/hooks/__pycache__/orchestrator-completion.cpython-314.pyc +0 -0
  75. package/hooks/__pycache__/orchestrator-handoff.cpython-314.pyc +0 -0
  76. package/hooks/__pycache__/orchestrator-session-startup.cpython-314.pyc +0 -0
  77. package/hooks/__pycache__/parallel-orchestrator.cpython-314.pyc +0 -0
  78. package/hooks/__pycache__/periodic-reground.cpython-314.pyc +0 -0
  79. package/hooks/__pycache__/project-document-prompt.cpython-314.pyc +0 -0
  80. package/hooks/__pycache__/remote-question-proxy.cpython-314.pyc +0 -0
  81. package/hooks/__pycache__/remote-question-server.cpython-314.pyc +0 -0
  82. package/hooks/__pycache__/run-code-review.cpython-314.pyc +0 -0
  83. package/hooks/__pycache__/run-visual-qa.cpython-314.pyc +0 -0
  84. package/hooks/__pycache__/session-logger.cpython-314.pyc +0 -0
  85. package/hooks/__pycache__/session-startup.cpython-314.pyc +0 -0
  86. package/hooks/__pycache__/track-scope-coverage.cpython-314.pyc +0 -0
  87. package/hooks/__pycache__/track-token-usage.cpython-314.pyc +0 -0
  88. package/hooks/__pycache__/track-tool-use.cpython-314.pyc +0 -0
  89. package/hooks/__pycache__/update-adr-decision.cpython-314.pyc +0 -0
  90. package/hooks/__pycache__/update-api-showcase.cpython-314.pyc +0 -0
  91. package/hooks/__pycache__/update-registry.cpython-314.pyc +0 -0
  92. package/hooks/__pycache__/update-ui-showcase.cpython-314.pyc +0 -0
  93. package/hooks/__pycache__/verify-after-green.cpython-314.pyc +0 -0
  94. package/hooks/__pycache__/verify-implementation.cpython-314.pyc +0 -0
  95. package/hooks/api-workflow-check.py +34 -0
  96. package/hooks/auto-answer.py +97 -20
  97. package/{.claude/hooks → hooks}/completion-promise-detector.py +0 -0
  98. package/{.claude/hooks → hooks}/context-capacity-warning.py +0 -0
  99. package/{.claude/hooks → hooks}/docs-update-check.py +0 -0
  100. package/{.claude/hooks → hooks}/enforce-dry-run.py +0 -0
  101. package/hooks/enforce-external-research.py +25 -0
  102. package/hooks/enforce-interview.py +20 -0
  103. package/{.claude/hooks → hooks}/generate-adr-options.py +0 -0
  104. package/{.claude/hooks → hooks}/hook_utils.py +0 -0
  105. package/hooks/ntfy-on-question.py +15 -2
  106. package/hooks/orchestrator-handoff.py +81 -3
  107. package/{.claude/hooks → hooks}/parallel-orchestrator.py +0 -0
  108. package/hooks/periodic-reground.py +40 -0
  109. package/{.claude/hooks → hooks}/remote-question-server.py +0 -0
  110. package/hooks/run-code-review.py +176 -29
  111. package/{.claude/hooks → hooks}/run-visual-qa.py +0 -0
  112. package/hooks/session-logger.py +27 -1
  113. package/hooks/session-startup.py +113 -0
  114. package/{.claude/hooks → hooks}/update-adr-decision.py +0 -0
  115. package/package.json +1 -1
  116. package/templates/.skills/hustle-interview/SKILL.md +174 -0
  117. package/templates/adr-viewer/_components/ADRViewer.tsx +326 -0
  118. package/templates/api-dev-state.json +33 -1
  119. package/templates/brand-page/page.tsx +645 -0
  120. package/templates/component/Component.visual.spec.ts +30 -24
  121. package/templates/eslint-plugin-zod-schema/index.js +446 -0
  122. package/templates/eslint-plugin-zod-schema/package.json +26 -0
  123. package/templates/github-workflows/security.yml +274 -0
  124. package/templates/hustle-build-defaults.json +53 -1
  125. package/templates/page/page.e2e.test.ts +30 -26
  126. package/templates/performance-budgets.json +63 -5
  127. package/templates/registry.json +279 -3
  128. package/templates/review-dashboard/page.tsx +510 -0
  129. package/templates/settings.json +74 -7
  130. package/templates/ui-showcase/_components/UIShowcase.tsx +47 -0
  131. package/templates/ui-showcase/_components/VisualTestingDashboard.tsx +579 -0
  132. package/.claude/commands/hustle-combine.md +0 -1089
  133. package/.claude/commands/hustle-ui-create-page.md +0 -1078
  134. package/.claude/commands/hustle-ui-create.md +0 -1058
  135. package/.claude/hooks/auto-answer.py +0 -305
  136. package/.claude/hooks/cache-research.py +0 -337
  137. package/.claude/hooks/check-api-routes.py +0 -168
  138. package/.claude/hooks/check-playwright-setup.py +0 -103
  139. package/.claude/hooks/check-storybook-setup.py +0 -81
  140. package/.claude/hooks/check-update.py +0 -132
  141. package/.claude/hooks/detect-interruption.py +0 -165
  142. package/.claude/hooks/enforce-a11y-audit.py +0 -202
  143. package/.claude/hooks/enforce-brand-guide.py +0 -241
  144. package/.claude/hooks/enforce-component-type-confirm.py +0 -97
  145. package/.claude/hooks/enforce-freshness.py +0 -184
  146. package/.claude/hooks/enforce-page-components.py +0 -186
  147. package/.claude/hooks/enforce-page-data-schema.py +0 -155
  148. package/.claude/hooks/enforce-questions-sourced.py +0 -146
  149. package/.claude/hooks/enforce-schema-from-interview.py +0 -248
  150. package/.claude/hooks/enforce-ui-disambiguation.py +0 -108
  151. package/.claude/hooks/enforce-ui-interview.py +0 -130
  152. package/.claude/hooks/generate-manifest-entry.py +0 -1161
  153. package/.claude/hooks/lib/__init__.py +0 -1
  154. package/.claude/hooks/lib/greptile.py +0 -355
  155. package/.claude/hooks/lib/ntfy.py +0 -209
  156. package/.claude/hooks/notify-input-needed.py +0 -73
  157. package/.claude/hooks/notify-phase-complete.py +0 -90
  158. package/.claude/hooks/ntfy-on-question.py +0 -240
  159. package/.claude/hooks/orchestrator-completion.py +0 -313
  160. package/.claude/hooks/orchestrator-handoff.py +0 -267
  161. package/.claude/hooks/orchestrator-session-startup.py +0 -146
  162. package/.claude/hooks/run-code-review.py +0 -393
  163. package/.claude/hooks/session-logger.py +0 -323
  164. package/.claude/hooks/test-orchestrator-reground.py +0 -248
  165. package/.claude/hooks/track-scope-coverage.py +0 -220
  166. package/.claude/hooks/track-token-usage.py +0 -121
  167. package/.claude/hooks/update-api-showcase.py +0 -161
  168. package/.claude/hooks/update-registry.py +0 -352
  169. package/.claude/hooks/update-ui-showcase.py +0 -224
  170. package/.claude/test-auto-answer-bot.py +0 -183
  171. package/.claude/test-completion-detector.py +0 -263
  172. package/.claude/test-orchestrator-state.json +0 -20
  173. package/.claude/test-orchestrator.sh +0 -271
  174. /package/{.claude/commands → commands}/hustle-build.md +0 -0
  175. /package/{.claude/hooks → hooks}/lib/__pycache__/__init__.cpython-314.pyc +0 -0
  176. /package/{.claude/hooks → hooks}/lib/__pycache__/greptile.cpython-314.pyc +0 -0
  177. /package/{.claude/hooks → hooks}/lib/__pycache__/ntfy.cpython-314.pyc +0 -0
  178. /package/{.claude/hooks → hooks}/project-document-prompt.py +0 -0
  179. /package/{.claude/hooks → hooks}/remote-question-proxy.py +0 -0
  180. /package/{.claude/hooks → hooks}/update-testing-checklist.py +0 -0
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: docs-update
3
+ description: Ensure README, CHANGELOG, and docs stay current with features
4
+ tools: Read, Write, Edit, Glob, Grep, Task, TodoWrite
5
+ model: sonnet
6
+ ---
7
+
8
+ # Documentation Update Skill
9
+
10
+ Automatically maintains documentation consistency when features are added or changed. This skill is invoked by the `docs-update-check.py` hook after significant changes.
11
+
12
+ ## Philosophy
13
+
14
+ > **README is the single source of truth** - It should provide a comprehensive overview
15
+ > without becoming too long. Detailed docs live in `/docs/*.md`.
16
+
17
+ ### Update Rules
18
+
19
+ 1. **README.md** - Update only when:
20
+ - New major feature added (new skill, new workflow)
21
+ - Links section needs new doc reference
22
+ - Counts change (skills, hooks, agents)
23
+ - Version number changes
24
+ - Never let it exceed ~500 lines
25
+
26
+ 2. **CHANGELOG.md** - Always update when:
27
+ - New features added
28
+ - Breaking changes
29
+ - Bug fixes
30
+ - Version bump
31
+
32
+ 3. **docs/*.md** - Create/update when:
33
+ - New feature needs detailed explanation
34
+ - Existing doc is out of date
35
+ - Command signature changes
36
+
37
+ ## When This Skill Runs
38
+
39
+ Triggered by `docs-update-check.py` hook when:
40
+ - New skill created in `.skills/`
41
+ - New hook added to `hooks/`
42
+ - New agent defined in `.claude/agents/`
43
+ - New doc created in `docs/`
44
+ - registry.json sections added/changed
45
+
46
+ ## Execution Flow
47
+
48
+ ### Step 1: Detect What Changed
49
+
50
+ ```bash
51
+ # Get recently modified files
52
+ git diff --name-only HEAD~1 HEAD
53
+
54
+ # Or for uncommitted changes
55
+ git status --porcelain
56
+ ```
57
+
58
+ ### Step 2: Categorize Changes
59
+
60
+ | File Pattern | Category | Action |
61
+ |--------------|----------|--------|
62
+ | `.skills/*/SKILL.md` | New Skill | Update README skills count, add to docs/SKILLS.md |
63
+ | `hooks/*.py` | New Hook | Update README hooks count, add to docs/HOOKS.md |
64
+ | `.claude/agents/*.md` | New Agent | Update README agents count, add to docs/AGENTS.md |
65
+ | `docs/*.md` | New Doc | Add to README Documentation section |
66
+ | `templates/*.tsx` | New Template | Consider dashboard integration |
67
+
68
+ ### Step 3: Update README Links
69
+
70
+ Check if new docs need to be linked:
71
+
72
+ ```markdown
73
+ ## Documentation
74
+
75
+ ### Core Reference
76
+
77
+ | Document | Purpose |
78
+ | -------- | ------- |
79
+ | **[docs/NEW_DOC.md](./docs/NEW_DOC.md)** | Description here |
80
+ ```
81
+
82
+ ### Step 4: Update CHANGELOG
83
+
84
+ Add entry under current version or create new version:
85
+
86
+ ```markdown
87
+ ## [X.Y.Z] - YYYY-MM-DD
88
+
89
+ ### Added
90
+ - **`/new-skill`** - Description of what it does
91
+ ```
92
+
93
+ ### Step 5: Update Feature Doc
94
+
95
+ If change affects an existing command, update its doc:
96
+
97
+ ```bash
98
+ # Map skill to doc
99
+ /api-create → docs/API-CREATE.md
100
+ /hustle-ui-create → docs/HUSTLE-UI-CREATE.md
101
+ /test-review → docs/SKILLS.md (test skills section)
102
+ ```
103
+
104
+ ## Output Format
105
+
106
+ ```
107
+ ═══════════════════════════════════════════════════════════════
108
+ DOCUMENTATION UPDATE
109
+ ═══════════════════════════════════════════════════════════════
110
+
111
+ Changes Detected:
112
+ • New skill: /docs-update
113
+ • New doc: docs/PARALLEL_AUTONOMOUS_WORKFLOW.md
114
+ • Modified: .skills/hustle-build/SKILL.md
115
+
116
+ Updates Made:
117
+ ✅ README.md - Added parallel workflow to docs section
118
+ ✅ CHANGELOG.md - Added v4.3.0 entry
119
+ ✅ docs/SKILLS.md - Added docs-update skill reference
120
+ ⏭️ docs/HOOKS.md - No changes needed
121
+
122
+ Verification:
123
+ • README length: 516 lines (target: <600)
124
+ • All new docs linked: Yes
125
+ • CHANGELOG has entry: Yes
126
+
127
+ ═══════════════════════════════════════════════════════════════
128
+ ```
129
+
130
+ ## Decision Tree
131
+
132
+ ```
133
+ New Feature Added?
134
+
135
+ ├─► Is it a major workflow change?
136
+ │ │
137
+ │ ├─► YES: Create new doc in docs/
138
+ │ │ Update README links
139
+ │ │ Update CHANGELOG
140
+ │ │
141
+ │ └─► NO: Is it an enhancement to existing command?
142
+ │ │
143
+ │ ├─► YES: Update that command's doc
144
+ │ │ Update CHANGELOG
145
+ │ │
146
+ │ └─► NO: Is it a minor fix?
147
+ │ │
148
+ │ └─► YES: Update CHANGELOG only
149
+
150
+ └─► Removing a feature?
151
+
152
+ ├─► WARNING: Removal requires justification
153
+ │ Only remove if:
154
+ │ - Feature never worked
155
+ │ - Replaced by better feature
156
+ │ - Security issue
157
+
158
+ └─► Update CHANGELOG with [BREAKING] if public API
159
+ ```
160
+
161
+ ## README Structure Limits
162
+
163
+ | Section | Max Lines | Current |
164
+ |---------|-----------|---------|
165
+ | Header/Banner | 30 | - |
166
+ | Quick Start | 20 | - |
167
+ | Workflows | 50 | - |
168
+ | Phases Diagram | 30 | - |
169
+ | What Gets Installed | 20 | - |
170
+ | Subagents | 20 | - |
171
+ | Commands | 40 | - |
172
+ | Documentation Links | 60 | - |
173
+ | FAQ | 150 | - |
174
+ | **Total** | **~500** | - |
175
+
176
+ If README exceeds 600 lines, move content to dedicated docs.
177
+
178
+ ## Commands
179
+
180
+ ```bash
181
+ # Run documentation update check
182
+ /docs-update
183
+
184
+ # Check what would be updated (dry run)
185
+ /docs-update --dry-run
186
+
187
+ # Force update all docs
188
+ /docs-update --force
189
+
190
+ # Update specific doc only
191
+ /docs-update --target README
192
+ ```
193
+
194
+ ## Integration
195
+
196
+ This skill integrates with:
197
+ - `docs-update-check.py` hook (PostToolUse on Write/Edit)
198
+ - Phase 13 (Documentation) of all workflows
199
+ - `/commit` skill (suggests doc updates before commit)
200
+
201
+ ## See Also
202
+
203
+ - [docs/SKILLS.md](../../docs/SKILLS.md) - All skills reference
204
+ - [docs/HOOKS.md](../../docs/HOOKS.md) - All hooks reference
205
+ - [CHANGELOG.md](../../CHANGELOG.md) - Version history
@@ -0,0 +1,368 @@
1
+ ---
2
+ name: hustle-brand
3
+ description: Create and edit comprehensive brand guide with interview-driven discovery
4
+ tools: Bash, Read, Write, Glob, Grep, Task, AskUserQuestion, TodoWrite
5
+ model: sonnet
6
+ ---
7
+
8
+ # Hustle Brand - Brand Guide Creator
9
+
10
+ Create a comprehensive brand guide through interview-driven discovery. The brand guide becomes the single source of truth for all UI development, ensuring consistency across every component, page, and interaction.
11
+
12
+ ## Why This Matters
13
+
14
+ > **Without a brand guide**, every AI-generated component looks slightly different.
15
+ > Colors drift, fonts vary, animations feel inconsistent.
16
+ > **With a brand guide**, every element feels like it belongs.
17
+
18
+ ## When to Use
19
+
20
+ - During initial project setup (Installation Wizard Phase 3)
21
+ - Anytime with `/hustle-brand` to create or edit
22
+ - Before any UI development work
23
+ - When rebranding or updating visual identity
24
+
25
+ ## What Gets Created
26
+
27
+ ### 1. Brand Guide Document (`.claude/BRAND_GUIDE.md`)
28
+
29
+ The comprehensive brand specification including:
30
+ - Colors (primary, secondary, accent, semantic, gradients)
31
+ - Typography (fonts, sizes, weights, line heights)
32
+ - Spacing system (consistent padding/margins)
33
+ - Border radius conventions
34
+ - Shadows and elevation
35
+ - Animation principles (timing, easing, motion style)
36
+ - Voice and tone guidelines
37
+ - Terminology dictionary
38
+ - Do's and Don'ts
39
+
40
+ ### 2. Brand Page (`src/app/brand/page.tsx`)
41
+
42
+ A living showcase of your brand including:
43
+ - Color palette with copy-to-clipboard
44
+ - Typography scale demonstration
45
+ - Button states (default, hover, active, disabled, loading)
46
+ - Form elements (inputs, selects, checkboxes, radios)
47
+ - Card variations
48
+ - Animation examples (GSAP, Framer Motion, CSS)
49
+ - Custom elements from interview (Three.js, terminal effects, etc.)
50
+ - Voice examples
51
+
52
+ ### 3. ShadCN Theme (`src/lib/theme.ts`)
53
+
54
+ All brand values as CSS variables for ShadCN:
55
+ ```css
56
+ :root {
57
+ --primary: 222.2 47.4% 11.2%;
58
+ --primary-foreground: 210 40% 98%;
59
+ --secondary: 210 40% 96.1%;
60
+ /* ... full theme */
61
+ }
62
+ ```
63
+
64
+ ### 4. Registry Entry
65
+
66
+ Brand tracked in `registry.json`:
67
+ ```json
68
+ {
69
+ "brand_guide": {
70
+ "created_at": "2025-12-29T10:00:00Z",
71
+ "last_updated": "2025-12-29T10:00:00Z",
72
+ "version": 1,
73
+ "interview_completed": true,
74
+ "sections": ["colors", "typography", "animations", "voice"],
75
+ "custom_elements": ["terminal-animation", "gradient-text"]
76
+ }
77
+ }
78
+ ```
79
+
80
+ ## Interview Flow
81
+
82
+ ### Phase 1: Foundation
83
+
84
+ ```
85
+ ┌─────────────────────────────────────────────────────────────────────────────┐
86
+ │ BRAND GUIDE CREATOR │
87
+ │ │
88
+ │ Let's create your brand guide. This will be the foundation for all UI. │
89
+ │ │
90
+ │ You can either: │
91
+ │ [1] Answer interview questions (Recommended) │
92
+ │ [2] Fill out a quick form (faster, uses defaults) │
93
+ │ [3] Import from Figma/existing brand kit │
94
+ │ │
95
+ │ Choice? > │
96
+ └─────────────────────────────────────────────────────────────────────────────┘
97
+ ```
98
+
99
+ ### Phase 2: Visual Identity
100
+
101
+ **Colors:**
102
+ - What's your primary brand color? (hex or description)
103
+ - What mood should the secondary colors convey? (professional, playful, bold)
104
+ - Do you want gradients? What style? (subtle, vibrant, aurora)
105
+ - Dark mode: mirror light, or distinct personality?
106
+
107
+ **Typography:**
108
+ - What font family? (Inter, system fonts, custom Google Font)
109
+ - What's the personality? (modern, classic, technical, friendly)
110
+ - Do you need code/monospace fonts?
111
+
112
+ **Spacing & Sizing:**
113
+ - Prefer compact or spacious layouts?
114
+ - Border radius style? (sharp, subtle, fully rounded)
115
+ - Shadow depth? (flat, subtle, elevated)
116
+
117
+ ### Phase 3: Motion & Animation
118
+
119
+ **Animation Style:**
120
+ - What's the motion personality? (snappy, smooth, bouncy, minimal)
121
+ - Preferred library? (CSS, Framer Motion, GSAP, none)
122
+ - Special effects wanted? (parallax, 3D, particles, terminal)
123
+
124
+ **Loading States:**
125
+ - Skeleton loaders or spinners?
126
+ - Progress bars style?
127
+ - Micro-interactions level? (subtle, noticeable, delightful)
128
+
129
+ ### Phase 4: Voice & Tone
130
+
131
+ **Share of Voice:**
132
+ ```
133
+ How should the UI communicate?
134
+
135
+ [1] Professional & Informative (Recommended)
136
+ "Your report is ready for download."
137
+
138
+ [2] Friendly & Casual
139
+ "Hey! Your report's all done. Grab it here!"
140
+
141
+ [3] Technical & Precise
142
+ "Report generated. 847 records processed. Download available."
143
+
144
+ [4] Playful & Character-driven
145
+ "Beep boop! I crunched those numbers for you!"
146
+
147
+ [5] Custom (describe your voice)
148
+ ```
149
+
150
+ **Terminology:**
151
+ - What do you call your users? (users, members, customers, friends)
152
+ - CTA language preference? (Get Started, Begin, Let's Go, Start Free)
153
+ - Error tone? (apologetic, matter-of-fact, helpful)
154
+
155
+ ### Phase 5: Custom Elements
156
+
157
+ Based on your answers, I'll suggest custom elements:
158
+
159
+ ```
160
+ Based on your "technical + snappy" preferences, consider:
161
+
162
+ [x] Terminal-style code animations
163
+ [x] Typing effect for hero text
164
+ [ ] Matrix rain background
165
+ [x] Syntax-highlighted code blocks
166
+ [ ] ASCII art elements
167
+ [ ] Glitch effects
168
+
169
+ Select the ones you want (comma-separated): > 1,2,4
170
+ ```
171
+
172
+ ### Phase 6: Generation
173
+
174
+ After interview completion:
175
+
176
+ 1. Generate `BRAND_GUIDE.md` with all specifications
177
+ 2. Create Brand Page with live examples
178
+ 3. Configure ShadCN theme variables
179
+ 4. Update registry with brand metadata
180
+ 5. Add to dashboard navigation
181
+
182
+ ## Brand Page Structure
183
+
184
+ ```tsx
185
+ // src/app/brand/page.tsx
186
+ export default function BrandPage() {
187
+ return (
188
+ <div className="container py-12 space-y-16">
189
+ {/* Header */}
190
+ <BrandHeader />
191
+
192
+ {/* Color Palette */}
193
+ <ColorPalette />
194
+
195
+ {/* Typography Scale */}
196
+ <TypographyShowcase />
197
+
198
+ {/* Components */}
199
+ <section>
200
+ <h2>Components</h2>
201
+ <ButtonStates />
202
+ <FormElements />
203
+ <CardVariations />
204
+ <NavigationExamples />
205
+ </section>
206
+
207
+ {/* Animations */}
208
+ <section>
209
+ <h2>Motion</h2>
210
+ <AnimationExamples />
211
+ <LoadingStates />
212
+ <MicroInteractions />
213
+ </section>
214
+
215
+ {/* Custom Elements */}
216
+ <section>
217
+ <h2>Custom Elements</h2>
218
+ {/* Based on interview: terminal, gradients, etc. */}
219
+ <CustomElementShowcase />
220
+ </section>
221
+
222
+ {/* Voice Examples */}
223
+ <section>
224
+ <h2>Voice & Tone</h2>
225
+ <VoiceExamples />
226
+ <TerminologyGuide />
227
+ <DosAndDonts />
228
+ </section>
229
+ </div>
230
+ );
231
+ }
232
+ ```
233
+
234
+ ## ShadCN Integration
235
+
236
+ All UI uses ShadCN components configured with brand values:
237
+
238
+ ```bash
239
+ # Initialize ShadCN with brand theme
240
+ npx shadcn@latest init
241
+
242
+ # Components auto-use brand colors
243
+ npx shadcn@latest add button input card
244
+ ```
245
+
246
+ Theme enforced via `tailwind.config.ts`:
247
+ ```ts
248
+ theme: {
249
+ extend: {
250
+ colors: {
251
+ // Generated from brand interview
252
+ primary: "hsl(var(--primary))",
253
+ secondary: "hsl(var(--secondary))",
254
+ accent: "hsl(var(--accent))",
255
+ },
256
+ fontFamily: {
257
+ // From brand interview
258
+ sans: ["var(--font-sans)", ...defaultTheme.fontFamily.sans],
259
+ },
260
+ animation: {
261
+ // Brand-specific animations
262
+ "fade-in": "fadeIn var(--animation-duration) var(--animation-easing)",
263
+ }
264
+ }
265
+ }
266
+ ```
267
+
268
+ ## Freshness & Updates
269
+
270
+ Brand guide tracked with freshness:
271
+ - Last updated timestamp in registry
272
+ - `/hustle-brand` shows time since last update
273
+ - Prompts for review if >30 days old
274
+ - Version history for rollback
275
+
276
+ ## Commands
277
+
278
+ ```bash
279
+ # Create new brand guide (full interview)
280
+ /hustle-brand
281
+
282
+ # Quick edit specific section
283
+ /hustle-brand --edit colors
284
+ /hustle-brand --edit typography
285
+ /hustle-brand --edit voice
286
+
287
+ # View current brand summary
288
+ /hustle-brand --status
289
+
290
+ # Export brand kit
291
+ /hustle-brand --export
292
+
293
+ # Reset and start over
294
+ /hustle-brand --reset
295
+ ```
296
+
297
+ ## Dashboard Integration
298
+
299
+ Brand page linked from Hustle Dev Dashboard:
300
+ - "Brand Guide" card with last updated date
301
+ - Quick preview of primary colors
302
+ - Link to full brand page
303
+ - Edit button launching `/hustle-brand --edit`
304
+
305
+ ## Installation Wizard Integration
306
+
307
+ During initial setup:
308
+
309
+ ```
310
+ ═══════════════════════════════════════════════════════════════════
311
+ HUSTLE DEV TOOLS - SETUP
312
+ ═══════════════════════════════════════════════════════════════════
313
+
314
+ Step 3 of 8: Brand Guide Setup
315
+
316
+ A brand guide ensures all AI-generated UI looks consistent.
317
+ This is HIGHLY RECOMMENDED but can be done later.
318
+
319
+ [1] Create brand guide now (5-10 min interview)
320
+ [2] Use defaults (can customize later with /hustle-brand)
321
+ [3] Skip for now (warning: UI may be inconsistent)
322
+
323
+ Choice? >
324
+ ═══════════════════════════════════════════════════════════════════
325
+ ```
326
+
327
+ ## Example Output
328
+
329
+ After completing the interview:
330
+
331
+ ```
332
+ ═══════════════════════════════════════════════════════════════════
333
+ BRAND GUIDE CREATED
334
+ ═══════════════════════════════════════════════════════════════════
335
+
336
+ Files Created:
337
+ ✅ .claude/BRAND_GUIDE.md (comprehensive spec)
338
+ ✅ src/app/brand/page.tsx (live showcase)
339
+ ✅ src/lib/theme.ts (ShadCN config)
340
+ ✅ src/styles/brand.css (CSS variables)
341
+
342
+ Brand Summary:
343
+ ───────────────────────────────────────
344
+ Primary: #6366F1 (Indigo)
345
+ Secondary: #F1F5F9 (Slate)
346
+ Font: Inter
347
+ Motion: Snappy (200ms ease-out)
348
+ Voice: Professional & Helpful
349
+ ───────────────────────────────────────
350
+
351
+ Custom Elements Included:
352
+ • Terminal-style code animations
353
+ • Gradient text effects
354
+ • Skeleton loaders
355
+
356
+ Quick Links:
357
+ 📖 Brand Page: http://localhost:3000/brand
358
+ 📝 Edit Brand: /hustle-brand --edit
359
+ 🎨 Dashboard: http://localhost:3000/hustle-dev-dashboard
360
+
361
+ ═══════════════════════════════════════════════════════════════════
362
+ ```
363
+
364
+ ## See Also
365
+
366
+ - `/hustle-ui-create` - Uses brand guide for components
367
+ - `/hustle-ui-create-page` - Uses brand guide for pages
368
+ - `/shadcn` - ShadCN documentation and component installation