@su-record/vibe 2.6.28 → 2.6.30

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 (240) hide show
  1. package/CLAUDE.md +235 -202
  2. package/LICENSE +21 -21
  3. package/README.md +276 -267
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/docs/api-documenter.md +99 -99
  11. package/agents/docs/changelog-writer.md +93 -93
  12. package/agents/e2e-tester.md +266 -266
  13. package/agents/explorer-low.md +42 -42
  14. package/agents/explorer-medium.md +59 -59
  15. package/agents/explorer.md +48 -48
  16. package/agents/implementer-low.md +43 -43
  17. package/agents/implementer-medium.md +52 -52
  18. package/agents/implementer.md +54 -54
  19. package/agents/planning/requirements-analyst.md +84 -84
  20. package/agents/planning/ux-advisor.md +83 -83
  21. package/agents/qa/acceptance-tester.md +86 -86
  22. package/agents/qa/edge-case-finder.md +93 -93
  23. package/agents/refactor-cleaner.md +143 -143
  24. package/agents/research/best-practices-agent.md +199 -199
  25. package/agents/research/codebase-patterns-agent.md +157 -157
  26. package/agents/research/framework-docs-agent.md +188 -188
  27. package/agents/research/security-advisory-agent.md +213 -213
  28. package/agents/review/architecture-reviewer.md +107 -107
  29. package/agents/review/complexity-reviewer.md +116 -116
  30. package/agents/review/data-integrity-reviewer.md +88 -88
  31. package/agents/review/git-history-reviewer.md +103 -103
  32. package/agents/review/performance-reviewer.md +86 -86
  33. package/agents/review/python-reviewer.md +150 -150
  34. package/agents/review/rails-reviewer.md +139 -139
  35. package/agents/review/react-reviewer.md +144 -144
  36. package/agents/review/security-reviewer.md +80 -80
  37. package/agents/review/simplicity-reviewer.md +140 -140
  38. package/agents/review/test-coverage-reviewer.md +116 -116
  39. package/agents/review/typescript-reviewer.md +127 -127
  40. package/agents/searcher.md +54 -54
  41. package/agents/simplifier.md +120 -120
  42. package/agents/tester.md +49 -49
  43. package/agents/ui-previewer.md +268 -268
  44. package/commands/vibe.analyze.md +356 -356
  45. package/commands/vibe.reason.md +329 -329
  46. package/commands/vibe.review.md +423 -423
  47. package/commands/vibe.run.md +1423 -1313
  48. package/commands/vibe.spec.md +1054 -1054
  49. package/commands/vibe.spec.review.md +412 -412
  50. package/commands/vibe.trace.md +161 -161
  51. package/commands/vibe.utils.md +376 -376
  52. package/commands/vibe.verify.md +375 -375
  53. package/dist/cli/collaborator.js +52 -52
  54. package/dist/cli/detect.js +32 -32
  55. package/dist/cli/hud.js +20 -20
  56. package/dist/cli/index.js +112 -112
  57. package/dist/cli/llm.js +144 -144
  58. package/dist/cli/postinstall.js +858 -858
  59. package/dist/lib/DeepInit.js +24 -24
  60. package/dist/lib/IterationTracker.js +11 -11
  61. package/dist/lib/PythonParser.js +108 -108
  62. package/dist/lib/ReviewRace.js +96 -96
  63. package/dist/lib/SkillFrontmatter.js +28 -28
  64. package/dist/lib/SkillQualityGate.js +9 -9
  65. package/dist/lib/SkillRepository.js +159 -159
  66. package/dist/lib/UltraQA.js +77 -77
  67. package/dist/lib/gemini-api.js +5 -5
  68. package/dist/lib/gpt-api.js +4 -4
  69. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  70. package/dist/lib/memory/MemorySearch.js +43 -43
  71. package/dist/lib/memory/MemoryStorage.js +130 -130
  72. package/dist/lib/memory/ObservationStore.js +28 -28
  73. package/dist/lib/memory/SessionRAGRetriever.js +7 -7
  74. package/dist/lib/memory/SessionRAGStore.js +216 -216
  75. package/dist/lib/memory/SessionSummarizer.js +9 -9
  76. package/dist/orchestrator/AgentManager.js +12 -12
  77. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  78. package/dist/orchestrator/SmartRouter.js +11 -11
  79. package/dist/orchestrator/SwarmOrchestrator.test.js +16 -16
  80. package/dist/orchestrator/parallelResearch.js +24 -24
  81. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  82. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  83. package/dist/tools/spec/prdParser.test.js +171 -171
  84. package/dist/tools/spec/specGenerator.js +169 -169
  85. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  86. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  87. package/hooks/hooks.json +115 -115
  88. package/hooks/scripts/code-check.js +70 -70
  89. package/hooks/scripts/code-review.js +22 -22
  90. package/hooks/scripts/complexity.js +22 -22
  91. package/hooks/scripts/compound.js +23 -23
  92. package/hooks/scripts/context-save.js +53 -53
  93. package/hooks/scripts/gemini-ui-gen.js +281 -281
  94. package/hooks/scripts/generate-brand-assets.js +474 -474
  95. package/hooks/scripts/hud-multiline.js +262 -262
  96. package/hooks/scripts/hud-status.js +291 -291
  97. package/hooks/scripts/keyword-detector.js +214 -214
  98. package/hooks/scripts/llm-orchestrate.js +328 -171
  99. package/hooks/scripts/post-edit.js +97 -97
  100. package/hooks/scripts/post-tool-verify.js +210 -210
  101. package/hooks/scripts/pre-tool-guard.js +125 -125
  102. package/hooks/scripts/prompt-dispatcher.js +161 -161
  103. package/hooks/scripts/recall.js +22 -22
  104. package/hooks/scripts/session-start.js +30 -30
  105. package/hooks/scripts/skill-injector.js +191 -191
  106. package/hooks/scripts/utils.js +97 -97
  107. package/languages/csharp-unity.md +515 -515
  108. package/languages/gdscript-godot.md +470 -470
  109. package/languages/ruby-rails.md +489 -489
  110. package/languages/typescript-angular.md +433 -433
  111. package/languages/typescript-astro.md +416 -416
  112. package/languages/typescript-electron.md +406 -406
  113. package/languages/typescript-nestjs.md +524 -524
  114. package/languages/typescript-svelte.md +407 -407
  115. package/languages/typescript-tauri.md +365 -365
  116. package/package.json +84 -84
  117. package/skills/brand-assets.md +141 -141
  118. package/skills/commerce-patterns.md +361 -361
  119. package/skills/context7-usage.md +102 -102
  120. package/skills/e2e-commerce.md +304 -304
  121. package/skills/frontend-design.md +92 -92
  122. package/skills/git-worktree.md +181 -181
  123. package/skills/parallel-research.md +77 -77
  124. package/skills/priority-todos.md +239 -239
  125. package/skills/seo-checklist.md +244 -244
  126. package/skills/tool-fallback.md +190 -190
  127. package/skills/vibe-capabilities.md +161 -161
  128. package/vibe/constitution.md +227 -227
  129. package/vibe/rules/core/communication-guide.md +98 -98
  130. package/vibe/rules/core/development-philosophy.md +52 -52
  131. package/vibe/rules/core/quick-start.md +102 -102
  132. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  133. package/vibe/rules/quality/checklist.md +276 -276
  134. package/vibe/rules/quality/testing-strategy.md +440 -440
  135. package/vibe/rules/standards/anti-patterns.md +541 -541
  136. package/vibe/rules/standards/code-structure.md +291 -291
  137. package/vibe/rules/standards/complexity-metrics.md +313 -313
  138. package/vibe/rules/standards/naming-conventions.md +198 -198
  139. package/vibe/setup.sh +31 -31
  140. package/vibe/templates/constitution-template.md +252 -252
  141. package/vibe/templates/contract-backend-template.md +526 -526
  142. package/vibe/templates/contract-frontend-template.md +599 -599
  143. package/vibe/templates/feature-template.md +96 -96
  144. package/vibe/templates/spec-template.md +221 -221
  145. package/dist/cli/mcp.d.ts +0 -49
  146. package/dist/cli/mcp.d.ts.map +0 -1
  147. package/dist/cli/mcp.js +0 -169
  148. package/dist/cli/mcp.js.map +0 -1
  149. package/dist/lib/gemini-mcp.d.ts +0 -10
  150. package/dist/lib/gemini-mcp.d.ts.map +0 -1
  151. package/dist/lib/gemini-mcp.js +0 -353
  152. package/dist/lib/gemini-mcp.js.map +0 -1
  153. package/dist/lib/gpt-mcp.d.ts +0 -10
  154. package/dist/lib/gpt-mcp.d.ts.map +0 -1
  155. package/dist/lib/gpt-mcp.js +0 -352
  156. package/dist/lib/gpt-mcp.js.map +0 -1
  157. package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
  158. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
  159. package/dist/tools/analytics/getUsageAnalytics.js +0 -246
  160. package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
  161. package/dist/tools/analytics/index.d.ts +0 -5
  162. package/dist/tools/analytics/index.d.ts.map +0 -1
  163. package/dist/tools/analytics/index.js +0 -5
  164. package/dist/tools/analytics/index.js.map +0 -1
  165. package/dist/tools/convention/getCodingGuide.d.ts +0 -7
  166. package/dist/tools/convention/getCodingGuide.d.ts.map +0 -1
  167. package/dist/tools/convention/getCodingGuide.js +0 -69
  168. package/dist/tools/convention/getCodingGuide.js.map +0 -1
  169. package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
  170. package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
  171. package/dist/tools/planning/analyzeRequirements.js +0 -171
  172. package/dist/tools/planning/analyzeRequirements.js.map +0 -1
  173. package/dist/tools/planning/createUserStories.d.ts +0 -9
  174. package/dist/tools/planning/createUserStories.d.ts.map +0 -1
  175. package/dist/tools/planning/createUserStories.js +0 -124
  176. package/dist/tools/planning/createUserStories.js.map +0 -1
  177. package/dist/tools/planning/featureRoadmap.d.ts +0 -10
  178. package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
  179. package/dist/tools/planning/featureRoadmap.js +0 -207
  180. package/dist/tools/planning/featureRoadmap.js.map +0 -1
  181. package/dist/tools/planning/generatePrd.d.ts +0 -11
  182. package/dist/tools/planning/generatePrd.d.ts.map +0 -1
  183. package/dist/tools/planning/generatePrd.js +0 -161
  184. package/dist/tools/planning/generatePrd.js.map +0 -1
  185. package/dist/tools/planning/index.d.ts +0 -8
  186. package/dist/tools/planning/index.d.ts.map +0 -1
  187. package/dist/tools/planning/index.js +0 -8
  188. package/dist/tools/planning/index.js.map +0 -1
  189. package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
  190. package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
  191. package/dist/tools/prompt/analyzePrompt.js +0 -150
  192. package/dist/tools/prompt/analyzePrompt.js.map +0 -1
  193. package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
  194. package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
  195. package/dist/tools/prompt/enhancePrompt.js +0 -110
  196. package/dist/tools/prompt/enhancePrompt.js.map +0 -1
  197. package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
  198. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
  199. package/dist/tools/prompt/enhancePromptGemini.js +0 -332
  200. package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
  201. package/dist/tools/prompt/index.d.ts +0 -7
  202. package/dist/tools/prompt/index.d.ts.map +0 -1
  203. package/dist/tools/prompt/index.js +0 -7
  204. package/dist/tools/prompt/index.js.map +0 -1
  205. package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
  206. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
  207. package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
  208. package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
  209. package/dist/tools/reasoning/index.d.ts +0 -5
  210. package/dist/tools/reasoning/index.d.ts.map +0 -1
  211. package/dist/tools/reasoning/index.js +0 -5
  212. package/dist/tools/reasoning/index.js.map +0 -1
  213. package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
  214. package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
  215. package/dist/tools/thinking/analyzeProblem.js +0 -55
  216. package/dist/tools/thinking/analyzeProblem.js.map +0 -1
  217. package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
  218. package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
  219. package/dist/tools/thinking/breakDownProblem.js +0 -145
  220. package/dist/tools/thinking/breakDownProblem.js.map +0 -1
  221. package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
  222. package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
  223. package/dist/tools/thinking/createThinkingChain.js +0 -44
  224. package/dist/tools/thinking/createThinkingChain.js.map +0 -1
  225. package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
  226. package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
  227. package/dist/tools/thinking/formatAsPlan.js +0 -78
  228. package/dist/tools/thinking/formatAsPlan.js.map +0 -1
  229. package/dist/tools/thinking/index.d.ts +0 -10
  230. package/dist/tools/thinking/index.d.ts.map +0 -1
  231. package/dist/tools/thinking/index.js +0 -10
  232. package/dist/tools/thinking/index.js.map +0 -1
  233. package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
  234. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
  235. package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
  236. package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
  237. package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
  238. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
  239. package/dist/tools/thinking/thinkAloudProcess.js +0 -80
  240. package/dist/tools/thinking/thinkAloudProcess.js.map +0 -1
package/agents/tester.md CHANGED
@@ -1,49 +1,49 @@
1
- # Tester Agent (Haiku 4.5)
2
-
3
- Test writing specialist sub-agent.
4
-
5
- ## Role
6
-
7
- - Test code writing
8
- - BDD Feature-based testing
9
- - Edge case validation
10
- - Test execution
11
-
12
- ## Model
13
-
14
- **Haiku 4.5** - Fast test generation
15
-
16
- ## Usage
17
-
18
- Call via Task tool:
19
- ```
20
- Task(model: "haiku", prompt: "Write tests for the implemented code")
21
- ```
22
-
23
- ## Process
24
-
25
- 1. Check `.claude/vibe/features/{feature-name}.feature`
26
- 2. Analyze implemented code
27
- 3. Write test cases
28
- 4. Run tests
29
- 5. Return results
30
-
31
- ## Output
32
-
33
- ```markdown
34
- ## Test Results
35
-
36
- ### Generated Tests
37
- - src/__tests__/LoginForm.test.tsx
38
- - src/__tests__/useLogin.test.ts
39
-
40
- ### Coverage
41
- - Statements: 85%
42
- - Branches: 80%
43
- - Functions: 90%
44
-
45
- ### Execution Results
46
- ✅ 12 passed
47
- ⏭️ 0 skipped
48
- ❌ 0 failed
49
- ```
1
+ # Tester Agent (Haiku 4.5)
2
+
3
+ Test writing specialist sub-agent.
4
+
5
+ ## Role
6
+
7
+ - Test code writing
8
+ - BDD Feature-based testing
9
+ - Edge case validation
10
+ - Test execution
11
+
12
+ ## Model
13
+
14
+ **Haiku 4.5** - Fast test generation
15
+
16
+ ## Usage
17
+
18
+ Call via Task tool:
19
+ ```
20
+ Task(model: "haiku", prompt: "Write tests for the implemented code")
21
+ ```
22
+
23
+ ## Process
24
+
25
+ 1. Check `.claude/vibe/features/{feature-name}.feature`
26
+ 2. Analyze implemented code
27
+ 3. Write test cases
28
+ 4. Run tests
29
+ 5. Return results
30
+
31
+ ## Output
32
+
33
+ ```markdown
34
+ ## Test Results
35
+
36
+ ### Generated Tests
37
+ - src/__tests__/LoginForm.test.tsx
38
+ - src/__tests__/useLogin.test.ts
39
+
40
+ ### Coverage
41
+ - Statements: 85%
42
+ - Branches: 80%
43
+ - Functions: 90%
44
+
45
+ ### Execution Results
46
+ ✅ 12 passed
47
+ ⏭️ 0 skipped
48
+ ❌ 0 failed
49
+ ```
@@ -1,268 +1,268 @@
1
- ---
2
- description: Preview UI with Gemini image or ASCII art fallback
3
- argument-hint: "UI description or design folder path"
4
- ---
5
-
6
- # /vibe.ui
7
-
8
- Preview UI from description or design guide folder.
9
-
10
- - **Gemini enabled**: Generate actual UI image
11
- - **Gemini disabled**: ASCII art fallback
12
-
13
- ## Usage
14
-
15
- ```
16
- /vibe.ui "login page" # Text description
17
- /vibe.ui "dashboard" --layout grid # With layout option
18
- /vibe.ui ./design/ # Design guide folder
19
- /vibe.ui ./mockups/login.html # Single HTML file
20
- ```
21
-
22
- ## Process
23
-
24
- ### 0. Detect Input Type
25
-
26
- First, determine if input is:
27
-
28
- - **Text description**: Generate UI from description
29
- - **Folder path**: Read design files and generate UI
30
- - **File path**: Read single file and generate UI
31
-
32
- **Detection logic:**
33
-
34
- ```
35
- if (input starts with "./" or "/" or contains "/" or "\") → path
36
- else → text description
37
- ```
38
-
39
- ### 1. If Folder/File Path: Read Design Files
40
-
41
- **Supported file formats:**
42
-
43
- | Format | Purpose | How to read |
44
- | ------ | ------- | ----------- |
45
- | `*.html` | HTML mockups/prototypes | Read and parse structure |
46
- | `*.md` | Design guide documents | Read content |
47
- | `*.json` | Design tokens, theme config | Parse JSON |
48
- | `*.css` / `*.scss` | Style variables, colors | Extract variables |
49
- | `*.png` / `*.jpg` / `*.webp` | UI screenshots, mockups | **Use Read tool** (multimodal) |
50
- | `*.svg` | Icons, vector graphics | Read as XML |
51
- | `*.figma.json` | Figma export | Parse components |
52
-
53
- **Reading images:**
54
-
55
- Claude can read images using the Read tool. When encountering image files:
56
-
57
- 1. Use Read tool to view the image
58
- 2. Analyze UI structure, colors, layout from the image
59
- 3. Extract component hierarchy
60
-
61
- **Folder scanning priority:**
62
-
63
- 1. `*.html` files first (main structure)
64
- 2. `*.png` / `*.jpg` images (visual reference)
65
- 3. `*.json` (design tokens)
66
- 4. `*.css` / `*.scss` (styles)
67
- 5. `*.md` (documentation)
68
-
69
- **Example folder structure:**
70
-
71
- ```
72
- design/
73
- ├── mockup.html # Main HTML mockup
74
- ├── screenshot.png # UI screenshot
75
- ├── tokens.json # Design tokens
76
- ├── variables.css # CSS variables
77
- └── style-guide.md # Documentation
78
- ```
79
-
80
- ### 2. Analyze UI (from description or files)
81
-
82
- Analyze the UI structure:
83
-
84
- - Page/component name
85
- - Required UI elements (buttons, inputs, cards, etc.)
86
- - Layout structure (header-footer, sidebar, grid, etc.)
87
- - **Colors and typography** (from design tokens/CSS)
88
- - **Component hierarchy** (from HTML/images)
89
-
90
- ### 3. Check Gemini Status and Generate
91
-
92
- **Check Gemini authentication:**
93
-
94
- ```bash
95
- vibe gemini status
96
- ```
97
-
98
- Or check config file: `~/.config/vibe/gemini.json`
99
-
100
- #### If Gemini Enabled: Generate UI Image
101
-
102
- Use Gemini Image API to generate actual UI mockup:
103
-
104
- **Prompt template for Gemini:**
105
-
106
- ```
107
- Generate a modern UI mockup image for:
108
-
109
- [UI Description from step 2]
110
-
111
- Style requirements:
112
- - Clean, modern design
113
- - [Colors from design tokens if available]
114
- - [Typography from style guide if available]
115
- - Mobile-first responsive layout
116
- - Include all specified components
117
-
118
- Output: High-quality UI mockup image (1280x720 or similar)
119
- ```
120
-
121
- **Execution:**
122
-
123
- ```bash
124
- node hooks/scripts/generate-brand-assets.js \
125
- --type "ui-mockup" \
126
- --description "[analyzed UI description]" \
127
- --colors "[extracted colors]" \
128
- --output "./ui-preview.png"
129
- ```
130
-
131
- **Output location:** `./ui-preview-{timestamp}.png`
132
-
133
- #### If Gemini Disabled: ASCII Art Fallback
134
-
135
- Generate ASCII art based on the UI description:
136
-
137
- **Input format:**
138
-
139
- - Page name
140
- - Layout type (centered, sidebar, grid, header-footer)
141
- - Components list (type, label, position)
142
-
143
- **Example ASCII output:**
144
-
145
- ```
146
- ┌─────────────────────────────────────────┐
147
- │ Welcome │
148
- ├─────────────────────────────────────────┤
149
- │ │
150
- │ ┌─────────────────────┐ │
151
- │ Email: │ │ │
152
- │ └─────────────────────┘ │
153
- │ │
154
- │ ┌─────────────────────┐ │
155
- │ Pass: │ │ │
156
- │ └─────────────────────┘ │
157
- │ │
158
- │ ┌─────────────────────┐ │
159
- │ │ Login │ │
160
- │ └─────────────────────┘ │
161
- │ │
162
- └─────────────────────────────────────────┘
163
- ```
164
-
165
- ### 4. Generate Component List
166
-
167
- Suggest list of components needed for UI:
168
-
169
- **Required Components:**
170
-
171
- - `Header.tsx` - Header ("Welcome")
172
- - `LoginForm.tsx` - Form container
173
- - `Input.tsx` - Reusable input field
174
- - `Button.tsx` - Login button
175
-
176
- **Expected File Structure:**
177
-
178
- ```
179
- src/
180
- ├── components/
181
- │ ├── common/
182
- │ │ ├── Input.tsx
183
- │ │ └── Button.tsx
184
- │ └── auth/
185
- │ ├── Header.tsx
186
- │ └── LoginForm.tsx
187
- └── pages/
188
- └── LoginPage.tsx
189
- ```
190
-
191
- ## Example (with Gemini)
192
-
193
- ```
194
- User: /vibe.ui ./design/dashboard/
195
-
196
- Claude: Reading design folder...
197
- - Found: mockup.png, tokens.json, style-guide.md
198
-
199
- Analyzing design files...
200
- - Layout: Sidebar + Main content
201
- - Colors: Primary #2F6BFF, Background #F5F5F5
202
- - Components: Header, Sidebar, 3 StatCards, Footer
203
-
204
- Generating UI mockup with Gemini...
205
-
206
- ✅ UI Preview generated: ./ui-preview-1706234567.png
207
-
208
- [Image displayed]
209
-
210
- **Component Breakdown:**
211
- 1. Header (logo, user menu)
212
- 2. Sidebar (navigation)
213
- 3. StatsCard (reusable card)
214
- 4. Footer (copyright, links)
215
- 5. DashboardLayout (overall layout)
216
-
217
- Next step: /vibe.spec "dashboard page"
218
- ```
219
-
220
- ## Example (ASCII Fallback)
221
-
222
- ```
223
- User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
224
-
225
- Claude: Gemini not configured. Using ASCII preview...
226
-
227
- ┌────────────────────────────────────────────────────────┐
228
- │ [Logo] Dashboard [User] [Logout] │
229
- ├────────┬───────────────────────────────────────────────┤
230
- │ │ │
231
- │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
232
- │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
233
- │ Users │ │ │ │ │ │ │ │
234
- │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
235
- │ │ └──────────┘ └──────────┘ └──────────┘ │
236
- │ │ │
237
- │ │ │
238
- ├────────┴───────────────────────────────────────────────┤
239
- │ © 2025 Company Privacy | Terms │
240
- └────────────────────────────────────────────────────────┘
241
-
242
- **Required Components:**
243
- 1. Header (logo, user menu)
244
- 2. Sidebar (navigation)
245
- 3. StatsCard (reusable card)
246
- 4. Footer (copyright, links)
247
- 5. DashboardLayout (overall layout)
248
-
249
- **Layout Structure:**
250
- - Layout: sidebar (fixed left)
251
- - Main: grid (3 columns)
252
- - Responsive: Changes to 1 column on mobile
253
-
254
- 💡 Tip: Run `vibe gemini auth` for actual UI image generation
255
-
256
- Next step: /vibe.spec "dashboard page"
257
- ```
258
-
259
- ## Notes
260
-
261
- - For complex UI, request in multiple parts
262
- - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
263
- - Gemini generates high-quality mockups; ASCII is for quick visualization
264
- - Design folder input extracts colors, typography, and component structure automatically
265
-
266
- ---
267
-
268
- ARGUMENTS: $ARGUMENTS
1
+ ---
2
+ description: Preview UI with Gemini image or ASCII art fallback
3
+ argument-hint: "UI description or design folder path"
4
+ ---
5
+
6
+ # /vibe.ui
7
+
8
+ Preview UI from description or design guide folder.
9
+
10
+ - **Gemini enabled**: Generate actual UI image
11
+ - **Gemini disabled**: ASCII art fallback
12
+
13
+ ## Usage
14
+
15
+ ```
16
+ /vibe.ui "login page" # Text description
17
+ /vibe.ui "dashboard" --layout grid # With layout option
18
+ /vibe.ui ./design/ # Design guide folder
19
+ /vibe.ui ./mockups/login.html # Single HTML file
20
+ ```
21
+
22
+ ## Process
23
+
24
+ ### 0. Detect Input Type
25
+
26
+ First, determine if input is:
27
+
28
+ - **Text description**: Generate UI from description
29
+ - **Folder path**: Read design files and generate UI
30
+ - **File path**: Read single file and generate UI
31
+
32
+ **Detection logic:**
33
+
34
+ ```
35
+ if (input starts with "./" or "/" or contains "/" or "\") → path
36
+ else → text description
37
+ ```
38
+
39
+ ### 1. If Folder/File Path: Read Design Files
40
+
41
+ **Supported file formats:**
42
+
43
+ | Format | Purpose | How to read |
44
+ | ------ | ------- | ----------- |
45
+ | `*.html` | HTML mockups/prototypes | Read and parse structure |
46
+ | `*.md` | Design guide documents | Read content |
47
+ | `*.json` | Design tokens, theme config | Parse JSON |
48
+ | `*.css` / `*.scss` | Style variables, colors | Extract variables |
49
+ | `*.png` / `*.jpg` / `*.webp` | UI screenshots, mockups | **Use Read tool** (multimodal) |
50
+ | `*.svg` | Icons, vector graphics | Read as XML |
51
+ | `*.figma.json` | Figma export | Parse components |
52
+
53
+ **Reading images:**
54
+
55
+ Claude can read images using the Read tool. When encountering image files:
56
+
57
+ 1. Use Read tool to view the image
58
+ 2. Analyze UI structure, colors, layout from the image
59
+ 3. Extract component hierarchy
60
+
61
+ **Folder scanning priority:**
62
+
63
+ 1. `*.html` files first (main structure)
64
+ 2. `*.png` / `*.jpg` images (visual reference)
65
+ 3. `*.json` (design tokens)
66
+ 4. `*.css` / `*.scss` (styles)
67
+ 5. `*.md` (documentation)
68
+
69
+ **Example folder structure:**
70
+
71
+ ```
72
+ design/
73
+ ├── mockup.html # Main HTML mockup
74
+ ├── screenshot.png # UI screenshot
75
+ ├── tokens.json # Design tokens
76
+ ├── variables.css # CSS variables
77
+ └── style-guide.md # Documentation
78
+ ```
79
+
80
+ ### 2. Analyze UI (from description or files)
81
+
82
+ Analyze the UI structure:
83
+
84
+ - Page/component name
85
+ - Required UI elements (buttons, inputs, cards, etc.)
86
+ - Layout structure (header-footer, sidebar, grid, etc.)
87
+ - **Colors and typography** (from design tokens/CSS)
88
+ - **Component hierarchy** (from HTML/images)
89
+
90
+ ### 3. Check Gemini Status and Generate
91
+
92
+ **Check Gemini authentication:**
93
+
94
+ ```bash
95
+ vibe gemini status
96
+ ```
97
+
98
+ Or check config file: `~/.config/vibe/gemini.json`
99
+
100
+ #### If Gemini Enabled: Generate UI Image
101
+
102
+ Use Gemini Image API to generate actual UI mockup:
103
+
104
+ **Prompt template for Gemini:**
105
+
106
+ ```
107
+ Generate a modern UI mockup image for:
108
+
109
+ [UI Description from step 2]
110
+
111
+ Style requirements:
112
+ - Clean, modern design
113
+ - [Colors from design tokens if available]
114
+ - [Typography from style guide if available]
115
+ - Mobile-first responsive layout
116
+ - Include all specified components
117
+
118
+ Output: High-quality UI mockup image (1280x720 or similar)
119
+ ```
120
+
121
+ **Execution:**
122
+
123
+ ```bash
124
+ node hooks/scripts/generate-brand-assets.js \
125
+ --type "ui-mockup" \
126
+ --description "[analyzed UI description]" \
127
+ --colors "[extracted colors]" \
128
+ --output "./ui-preview.png"
129
+ ```
130
+
131
+ **Output location:** `./ui-preview-{timestamp}.png`
132
+
133
+ #### If Gemini Disabled: ASCII Art Fallback
134
+
135
+ Generate ASCII art based on the UI description:
136
+
137
+ **Input format:**
138
+
139
+ - Page name
140
+ - Layout type (centered, sidebar, grid, header-footer)
141
+ - Components list (type, label, position)
142
+
143
+ **Example ASCII output:**
144
+
145
+ ```
146
+ ┌─────────────────────────────────────────┐
147
+ │ Welcome │
148
+ ├─────────────────────────────────────────┤
149
+ │ │
150
+ │ ┌─────────────────────┐ │
151
+ │ Email: │ │ │
152
+ │ └─────────────────────┘ │
153
+ │ │
154
+ │ ┌─────────────────────┐ │
155
+ │ Pass: │ │ │
156
+ │ └─────────────────────┘ │
157
+ │ │
158
+ │ ┌─────────────────────┐ │
159
+ │ │ Login │ │
160
+ │ └─────────────────────┘ │
161
+ │ │
162
+ └─────────────────────────────────────────┘
163
+ ```
164
+
165
+ ### 4. Generate Component List
166
+
167
+ Suggest list of components needed for UI:
168
+
169
+ **Required Components:**
170
+
171
+ - `Header.tsx` - Header ("Welcome")
172
+ - `LoginForm.tsx` - Form container
173
+ - `Input.tsx` - Reusable input field
174
+ - `Button.tsx` - Login button
175
+
176
+ **Expected File Structure:**
177
+
178
+ ```
179
+ src/
180
+ ├── components/
181
+ │ ├── common/
182
+ │ │ ├── Input.tsx
183
+ │ │ └── Button.tsx
184
+ │ └── auth/
185
+ │ ├── Header.tsx
186
+ │ └── LoginForm.tsx
187
+ └── pages/
188
+ └── LoginPage.tsx
189
+ ```
190
+
191
+ ## Example (with Gemini)
192
+
193
+ ```
194
+ User: /vibe.ui ./design/dashboard/
195
+
196
+ Claude: Reading design folder...
197
+ - Found: mockup.png, tokens.json, style-guide.md
198
+
199
+ Analyzing design files...
200
+ - Layout: Sidebar + Main content
201
+ - Colors: Primary #2F6BFF, Background #F5F5F5
202
+ - Components: Header, Sidebar, 3 StatCards, Footer
203
+
204
+ Generating UI mockup with Gemini...
205
+
206
+ ✅ UI Preview generated: ./ui-preview-1706234567.png
207
+
208
+ [Image displayed]
209
+
210
+ **Component Breakdown:**
211
+ 1. Header (logo, user menu)
212
+ 2. Sidebar (navigation)
213
+ 3. StatsCard (reusable card)
214
+ 4. Footer (copyright, links)
215
+ 5. DashboardLayout (overall layout)
216
+
217
+ Next step: /vibe.spec "dashboard page"
218
+ ```
219
+
220
+ ## Example (ASCII Fallback)
221
+
222
+ ```
223
+ User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
224
+
225
+ Claude: Gemini not configured. Using ASCII preview...
226
+
227
+ ┌────────────────────────────────────────────────────────┐
228
+ │ [Logo] Dashboard [User] [Logout] │
229
+ ├────────┬───────────────────────────────────────────────┤
230
+ │ │ │
231
+ │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
232
+ │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
233
+ │ Users │ │ │ │ │ │ │ │
234
+ │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
235
+ │ │ └──────────┘ └──────────┘ └──────────┘ │
236
+ │ │ │
237
+ │ │ │
238
+ ├────────┴───────────────────────────────────────────────┤
239
+ │ © 2025 Company Privacy | Terms │
240
+ └────────────────────────────────────────────────────────┘
241
+
242
+ **Required Components:**
243
+ 1. Header (logo, user menu)
244
+ 2. Sidebar (navigation)
245
+ 3. StatsCard (reusable card)
246
+ 4. Footer (copyright, links)
247
+ 5. DashboardLayout (overall layout)
248
+
249
+ **Layout Structure:**
250
+ - Layout: sidebar (fixed left)
251
+ - Main: grid (3 columns)
252
+ - Responsive: Changes to 1 column on mobile
253
+
254
+ 💡 Tip: Run `vibe gemini auth` for actual UI image generation
255
+
256
+ Next step: /vibe.spec "dashboard page"
257
+ ```
258
+
259
+ ## Notes
260
+
261
+ - For complex UI, request in multiple parts
262
+ - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
263
+ - Gemini generates high-quality mockups; ASCII is for quick visualization
264
+ - Design folder input extracts colors, typography, and component structure automatically
265
+
266
+ ---
267
+
268
+ ARGUMENTS: $ARGUMENTS