@su-record/vibe 2.6.16 → 2.6.18

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 (249) hide show
  1. package/CLAUDE.md +681 -681
  2. package/LICENSE +21 -21
  3. package/README.md +235 -203
  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/e2e-tester.md +266 -266
  11. package/agents/explorer-low.md +42 -42
  12. package/agents/explorer-medium.md +59 -59
  13. package/agents/explorer.md +48 -48
  14. package/agents/implementer-low.md +43 -43
  15. package/agents/implementer-medium.md +52 -52
  16. package/agents/implementer.md +54 -54
  17. package/agents/refactor-cleaner.md +143 -143
  18. package/agents/research/best-practices-agent.md +199 -199
  19. package/agents/research/codebase-patterns-agent.md +157 -157
  20. package/agents/research/framework-docs-agent.md +188 -188
  21. package/agents/research/security-advisory-agent.md +213 -213
  22. package/agents/review/architecture-reviewer.md +107 -107
  23. package/agents/review/complexity-reviewer.md +116 -116
  24. package/agents/review/data-integrity-reviewer.md +88 -88
  25. package/agents/review/git-history-reviewer.md +103 -103
  26. package/agents/review/performance-reviewer.md +86 -86
  27. package/agents/review/python-reviewer.md +150 -150
  28. package/agents/review/rails-reviewer.md +139 -139
  29. package/agents/review/react-reviewer.md +144 -144
  30. package/agents/review/security-reviewer.md +80 -80
  31. package/agents/review/simplicity-reviewer.md +140 -140
  32. package/agents/review/test-coverage-reviewer.md +116 -116
  33. package/agents/review/typescript-reviewer.md +127 -127
  34. package/agents/searcher.md +54 -54
  35. package/agents/simplifier.md +120 -120
  36. package/agents/tester.md +49 -49
  37. package/agents/ui-previewer.md +268 -268
  38. package/commands/vibe.analyze.md +356 -356
  39. package/commands/vibe.reason.md +329 -329
  40. package/commands/vibe.review.md +412 -412
  41. package/commands/vibe.run.md +1266 -1266
  42. package/commands/vibe.spec.md +1054 -1054
  43. package/commands/vibe.spec.review.md +319 -319
  44. package/commands/vibe.trace.md +161 -161
  45. package/commands/vibe.utils.md +376 -376
  46. package/commands/vibe.verify.md +375 -375
  47. package/dist/cli/collaborator.js +52 -52
  48. package/dist/cli/detect.js +32 -32
  49. package/dist/cli/hud.js +20 -20
  50. package/dist/cli/index.d.ts.map +1 -1
  51. package/dist/cli/index.js +120 -118
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/llm.js +144 -144
  54. package/dist/cli/postinstall.d.ts +1 -0
  55. package/dist/cli/postinstall.d.ts.map +1 -1
  56. package/dist/cli/postinstall.js +859 -859
  57. package/dist/cli/postinstall.js.map +1 -1
  58. package/dist/cli/setup/ProjectSetup.d.ts +2 -2
  59. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  60. package/dist/cli/setup/ProjectSetup.js +51 -17
  61. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  62. package/dist/lib/DeepInit.js +24 -24
  63. package/dist/lib/IterationTracker.js +11 -11
  64. package/dist/lib/PythonParser.js +108 -108
  65. package/dist/lib/ReviewRace.js +96 -96
  66. package/dist/lib/SkillFrontmatter.js +28 -28
  67. package/dist/lib/SkillQualityGate.js +9 -9
  68. package/dist/lib/SkillRepository.js +159 -159
  69. package/dist/lib/UltraQA.js +77 -77
  70. package/dist/lib/gemini-api.js +5 -5
  71. package/dist/lib/gpt-api.js +4 -4
  72. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  73. package/dist/lib/memory/MemorySearch.js +20 -20
  74. package/dist/lib/memory/MemoryStorage.js +64 -64
  75. package/dist/orchestrator/AgentManager.js +12 -12
  76. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  77. package/dist/orchestrator/SmartRouter.js +11 -11
  78. package/dist/orchestrator/SwarmOrchestrator.d.ts +144 -0
  79. package/dist/orchestrator/SwarmOrchestrator.d.ts.map +1 -0
  80. package/dist/orchestrator/SwarmOrchestrator.js +361 -0
  81. package/dist/orchestrator/SwarmOrchestrator.js.map +1 -0
  82. package/dist/orchestrator/SwarmOrchestrator.test.d.ts +5 -0
  83. package/dist/orchestrator/SwarmOrchestrator.test.d.ts.map +1 -0
  84. package/dist/orchestrator/SwarmOrchestrator.test.js +95 -0
  85. package/dist/orchestrator/SwarmOrchestrator.test.js.map +1 -0
  86. package/dist/orchestrator/index.d.ts +2 -0
  87. package/dist/orchestrator/index.d.ts.map +1 -1
  88. package/dist/orchestrator/index.js +2 -0
  89. package/dist/orchestrator/index.js.map +1 -1
  90. package/dist/orchestrator/parallelResearch.js +24 -24
  91. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  92. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  93. package/dist/tools/spec/prdParser.test.js +171 -171
  94. package/dist/tools/spec/specGenerator.js +169 -169
  95. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  96. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  97. package/hooks/hooks.json +222 -222
  98. package/hooks/scripts/code-check.js +22 -22
  99. package/hooks/scripts/code-review.js +22 -22
  100. package/hooks/scripts/complexity.js +22 -22
  101. package/hooks/scripts/compound.js +23 -23
  102. package/hooks/scripts/context-save.js +33 -33
  103. package/hooks/scripts/gemini-ui-gen.js +281 -281
  104. package/hooks/scripts/generate-brand-assets.js +474 -474
  105. package/hooks/scripts/hud-multiline.js +262 -262
  106. package/hooks/scripts/hud-status.js +291 -291
  107. package/hooks/scripts/keyword-detector.js +214 -214
  108. package/hooks/scripts/llm-orchestrate.js +171 -171
  109. package/hooks/scripts/post-edit.js +97 -97
  110. package/hooks/scripts/post-tool-verify.js +210 -210
  111. package/hooks/scripts/pre-tool-guard.js +125 -125
  112. package/hooks/scripts/recall.js +22 -22
  113. package/hooks/scripts/session-start.js +30 -30
  114. package/hooks/scripts/skill-injector.js +191 -191
  115. package/hooks/scripts/utils.js +97 -97
  116. package/languages/csharp-unity.md +515 -515
  117. package/languages/gdscript-godot.md +470 -470
  118. package/languages/ruby-rails.md +489 -489
  119. package/languages/typescript-angular.md +433 -433
  120. package/languages/typescript-astro.md +416 -416
  121. package/languages/typescript-electron.md +406 -406
  122. package/languages/typescript-nestjs.md +524 -524
  123. package/languages/typescript-svelte.md +407 -407
  124. package/languages/typescript-tauri.md +365 -365
  125. package/package.json +84 -84
  126. package/skills/brand-assets.md +141 -141
  127. package/skills/commerce-patterns.md +361 -361
  128. package/skills/context7-usage.md +102 -102
  129. package/skills/e2e-commerce.md +304 -304
  130. package/skills/frontend-design.md +92 -92
  131. package/skills/git-worktree.md +181 -181
  132. package/skills/parallel-research.md +77 -77
  133. package/skills/priority-todos.md +239 -239
  134. package/skills/seo-checklist.md +244 -244
  135. package/skills/tool-fallback.md +190 -190
  136. package/skills/vibe-capabilities.md +161 -161
  137. package/vibe/constitution.md +227 -227
  138. package/vibe/rules/core/communication-guide.md +98 -98
  139. package/vibe/rules/core/development-philosophy.md +52 -52
  140. package/vibe/rules/core/quick-start.md +102 -102
  141. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  142. package/vibe/rules/quality/checklist.md +276 -276
  143. package/vibe/rules/quality/testing-strategy.md +440 -440
  144. package/vibe/rules/standards/anti-patterns.md +541 -541
  145. package/vibe/rules/standards/code-structure.md +291 -291
  146. package/vibe/rules/standards/complexity-metrics.md +313 -313
  147. package/vibe/rules/standards/naming-conventions.md +198 -198
  148. package/vibe/setup.sh +31 -31
  149. package/vibe/templates/constitution-template.md +252 -252
  150. package/vibe/templates/contract-backend-template.md +526 -526
  151. package/vibe/templates/contract-frontend-template.md +599 -599
  152. package/vibe/templates/feature-template.md +96 -96
  153. package/vibe/templates/spec-template.md +221 -221
  154. package/dist/cli/mcp.d.ts +0 -49
  155. package/dist/cli/mcp.d.ts.map +0 -1
  156. package/dist/cli/mcp.js +0 -169
  157. package/dist/cli/mcp.js.map +0 -1
  158. package/dist/lib/gemini-mcp.d.ts +0 -10
  159. package/dist/lib/gemini-mcp.d.ts.map +0 -1
  160. package/dist/lib/gemini-mcp.js +0 -353
  161. package/dist/lib/gemini-mcp.js.map +0 -1
  162. package/dist/lib/gpt-mcp.d.ts +0 -10
  163. package/dist/lib/gpt-mcp.d.ts.map +0 -1
  164. package/dist/lib/gpt-mcp.js +0 -352
  165. package/dist/lib/gpt-mcp.js.map +0 -1
  166. package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
  167. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
  168. package/dist/tools/analytics/getUsageAnalytics.js +0 -246
  169. package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
  170. package/dist/tools/analytics/index.d.ts +0 -5
  171. package/dist/tools/analytics/index.d.ts.map +0 -1
  172. package/dist/tools/analytics/index.js +0 -5
  173. package/dist/tools/analytics/index.js.map +0 -1
  174. package/dist/tools/convention/getCodingGuide.d.ts +0 -7
  175. package/dist/tools/convention/getCodingGuide.d.ts.map +0 -1
  176. package/dist/tools/convention/getCodingGuide.js +0 -69
  177. package/dist/tools/convention/getCodingGuide.js.map +0 -1
  178. package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
  179. package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
  180. package/dist/tools/planning/analyzeRequirements.js +0 -171
  181. package/dist/tools/planning/analyzeRequirements.js.map +0 -1
  182. package/dist/tools/planning/createUserStories.d.ts +0 -9
  183. package/dist/tools/planning/createUserStories.d.ts.map +0 -1
  184. package/dist/tools/planning/createUserStories.js +0 -124
  185. package/dist/tools/planning/createUserStories.js.map +0 -1
  186. package/dist/tools/planning/featureRoadmap.d.ts +0 -10
  187. package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
  188. package/dist/tools/planning/featureRoadmap.js +0 -207
  189. package/dist/tools/planning/featureRoadmap.js.map +0 -1
  190. package/dist/tools/planning/generatePrd.d.ts +0 -11
  191. package/dist/tools/planning/generatePrd.d.ts.map +0 -1
  192. package/dist/tools/planning/generatePrd.js +0 -161
  193. package/dist/tools/planning/generatePrd.js.map +0 -1
  194. package/dist/tools/planning/index.d.ts +0 -8
  195. package/dist/tools/planning/index.d.ts.map +0 -1
  196. package/dist/tools/planning/index.js +0 -8
  197. package/dist/tools/planning/index.js.map +0 -1
  198. package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
  199. package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
  200. package/dist/tools/prompt/analyzePrompt.js +0 -150
  201. package/dist/tools/prompt/analyzePrompt.js.map +0 -1
  202. package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
  203. package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
  204. package/dist/tools/prompt/enhancePrompt.js +0 -110
  205. package/dist/tools/prompt/enhancePrompt.js.map +0 -1
  206. package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
  207. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
  208. package/dist/tools/prompt/enhancePromptGemini.js +0 -332
  209. package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
  210. package/dist/tools/prompt/index.d.ts +0 -7
  211. package/dist/tools/prompt/index.d.ts.map +0 -1
  212. package/dist/tools/prompt/index.js +0 -7
  213. package/dist/tools/prompt/index.js.map +0 -1
  214. package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
  215. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
  216. package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
  217. package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
  218. package/dist/tools/reasoning/index.d.ts +0 -5
  219. package/dist/tools/reasoning/index.d.ts.map +0 -1
  220. package/dist/tools/reasoning/index.js +0 -5
  221. package/dist/tools/reasoning/index.js.map +0 -1
  222. package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
  223. package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
  224. package/dist/tools/thinking/analyzeProblem.js +0 -55
  225. package/dist/tools/thinking/analyzeProblem.js.map +0 -1
  226. package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
  227. package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
  228. package/dist/tools/thinking/breakDownProblem.js +0 -145
  229. package/dist/tools/thinking/breakDownProblem.js.map +0 -1
  230. package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
  231. package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
  232. package/dist/tools/thinking/createThinkingChain.js +0 -44
  233. package/dist/tools/thinking/createThinkingChain.js.map +0 -1
  234. package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
  235. package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
  236. package/dist/tools/thinking/formatAsPlan.js +0 -78
  237. package/dist/tools/thinking/formatAsPlan.js.map +0 -1
  238. package/dist/tools/thinking/index.d.ts +0 -10
  239. package/dist/tools/thinking/index.d.ts.map +0 -1
  240. package/dist/tools/thinking/index.js +0 -10
  241. package/dist/tools/thinking/index.js.map +0 -1
  242. package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
  243. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
  244. package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
  245. package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
  246. package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
  247. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
  248. package/dist/tools/thinking/thinkAloudProcess.js +0 -80
  249. 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