@su-record/vibe 2.7.10 → 2.7.12

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 (282) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +126 -222
  3. package/LICENSE +21 -21
  4. package/README.md +580 -580
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +266 -266
  14. package/agents/explorer-low.md +42 -42
  15. package/agents/explorer-medium.md +59 -59
  16. package/agents/explorer.md +48 -48
  17. package/agents/implementer-low.md +43 -43
  18. package/agents/implementer-medium.md +52 -52
  19. package/agents/implementer.md +54 -54
  20. package/agents/junior-mentor.md +141 -141
  21. package/agents/planning/requirements-analyst.md +84 -84
  22. package/agents/planning/ux-advisor.md +83 -83
  23. package/agents/qa/acceptance-tester.md +86 -86
  24. package/agents/qa/edge-case-finder.md +93 -93
  25. package/agents/refactor-cleaner.md +143 -143
  26. package/agents/research/best-practices-agent.md +199 -199
  27. package/agents/research/codebase-patterns-agent.md +157 -157
  28. package/agents/research/framework-docs-agent.md +188 -188
  29. package/agents/research/security-advisory-agent.md +213 -213
  30. package/agents/review/architecture-reviewer.md +107 -107
  31. package/agents/review/complexity-reviewer.md +116 -116
  32. package/agents/review/data-integrity-reviewer.md +88 -88
  33. package/agents/review/git-history-reviewer.md +103 -103
  34. package/agents/review/performance-reviewer.md +86 -86
  35. package/agents/review/python-reviewer.md +150 -150
  36. package/agents/review/rails-reviewer.md +139 -139
  37. package/agents/review/react-reviewer.md +144 -144
  38. package/agents/review/security-reviewer.md +80 -80
  39. package/agents/review/simplicity-reviewer.md +140 -140
  40. package/agents/review/test-coverage-reviewer.md +116 -116
  41. package/agents/review/typescript-reviewer.md +127 -127
  42. package/agents/searcher.md +54 -54
  43. package/agents/simplifier.md +120 -120
  44. package/agents/tester.md +49 -49
  45. package/agents/ui/ui-a11y-auditor.md +93 -93
  46. package/agents/ui/ui-antipattern-detector.md +94 -94
  47. package/agents/ui/ui-dataviz-advisor.md +69 -69
  48. package/agents/ui/ui-design-system-gen.md +57 -57
  49. package/agents/ui/ui-industry-analyzer.md +49 -49
  50. package/agents/ui/ui-layout-architect.md +65 -65
  51. package/agents/ui/ui-stack-implementer.md +68 -68
  52. package/agents/ui/ux-compliance-reviewer.md +81 -81
  53. package/agents/ui-previewer.md +260 -260
  54. package/commands/vibe.run.md +83 -0
  55. package/commands/vibe.spec.review.md +558 -558
  56. package/commands/vibe.utils.md +413 -413
  57. package/commands/vibe.voice.md +79 -79
  58. package/dist/cli/auth.d.ts +1 -1
  59. package/dist/cli/auth.d.ts.map +1 -1
  60. package/dist/cli/auth.js +15 -7
  61. package/dist/cli/auth.js.map +1 -1
  62. package/dist/cli/collaborator.js +52 -52
  63. package/dist/cli/commands/evolution.js +12 -12
  64. package/dist/cli/commands/index.d.ts +1 -0
  65. package/dist/cli/commands/index.d.ts.map +1 -1
  66. package/dist/cli/commands/index.js +1 -0
  67. package/dist/cli/commands/index.js.map +1 -1
  68. package/dist/cli/commands/info.d.ts.map +1 -1
  69. package/dist/cli/commands/info.js +62 -56
  70. package/dist/cli/commands/info.js.map +1 -1
  71. package/dist/cli/commands/init.d.ts.map +1 -1
  72. package/dist/cli/commands/init.js +9 -6
  73. package/dist/cli/commands/init.js.map +1 -1
  74. package/dist/cli/commands/remove.js +14 -14
  75. package/dist/cli/commands/sentinel.js +27 -27
  76. package/dist/cli/commands/skills.d.ts +13 -0
  77. package/dist/cli/commands/skills.d.ts.map +1 -0
  78. package/dist/cli/commands/skills.js +83 -0
  79. package/dist/cli/commands/skills.js.map +1 -0
  80. package/dist/cli/commands/slack.js +10 -10
  81. package/dist/cli/commands/telegram.js +12 -12
  82. package/dist/cli/commands/update.d.ts.map +1 -1
  83. package/dist/cli/commands/update.js +3 -0
  84. package/dist/cli/commands/update.js.map +1 -1
  85. package/dist/cli/detect.js +32 -32
  86. package/dist/cli/index.d.ts.map +1 -1
  87. package/dist/cli/index.js +64 -47
  88. package/dist/cli/index.js.map +1 -1
  89. package/dist/cli/llm/claude-commands.js +16 -16
  90. package/dist/cli/llm/config.js +18 -18
  91. package/dist/cli/llm/gemini-commands.js +47 -47
  92. package/dist/cli/llm/gpt-commands.js +19 -19
  93. package/dist/cli/llm/help.js +21 -21
  94. package/dist/cli/postinstall/constants.d.ts +8 -0
  95. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  96. package/dist/cli/postinstall/constants.js +33 -0
  97. package/dist/cli/postinstall/constants.js.map +1 -1
  98. package/dist/cli/postinstall/cursor-agents.js +32 -32
  99. package/dist/cli/postinstall/cursor-rules.js +83 -83
  100. package/dist/cli/postinstall/cursor-skills.js +743 -743
  101. package/dist/cli/postinstall/index.d.ts +1 -1
  102. package/dist/cli/postinstall/index.d.ts.map +1 -1
  103. package/dist/cli/postinstall/index.js +1 -1
  104. package/dist/cli/postinstall/index.js.map +1 -1
  105. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  106. package/dist/cli/setup/ProjectSetup.js +5 -0
  107. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  108. package/dist/cli/setup/Provisioner.js +42 -42
  109. package/dist/cli/types.d.ts +1 -0
  110. package/dist/cli/types.d.ts.map +1 -1
  111. package/dist/infra/lib/DeepInit.js +24 -24
  112. package/dist/infra/lib/IterationTracker.js +11 -11
  113. package/dist/infra/lib/PythonParser.js +108 -108
  114. package/dist/infra/lib/ReviewRace.js +96 -96
  115. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  116. package/dist/infra/lib/SkillQualityGate.js +9 -9
  117. package/dist/infra/lib/SkillRepository.js +159 -159
  118. package/dist/infra/lib/UltraQA.js +99 -99
  119. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  120. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  121. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  122. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  123. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  124. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  125. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  126. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  127. package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts +79 -0
  128. package/dist/infra/lib/evolution/DescriptionOptimizer.d.ts.map +1 -0
  129. package/dist/infra/lib/evolution/DescriptionOptimizer.js +259 -0
  130. package/dist/infra/lib/evolution/DescriptionOptimizer.js.map +1 -0
  131. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  132. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  133. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  134. package/dist/infra/lib/evolution/SkillBenchmark.d.ts +81 -0
  135. package/dist/infra/lib/evolution/SkillBenchmark.d.ts.map +1 -0
  136. package/dist/infra/lib/evolution/SkillBenchmark.js +233 -0
  137. package/dist/infra/lib/evolution/SkillBenchmark.js.map +1 -0
  138. package/dist/infra/lib/evolution/SkillClassifier.d.ts +35 -0
  139. package/dist/infra/lib/evolution/SkillClassifier.d.ts.map +1 -0
  140. package/dist/infra/lib/evolution/SkillClassifier.js +167 -0
  141. package/dist/infra/lib/evolution/SkillClassifier.js.map +1 -0
  142. package/dist/infra/lib/evolution/SkillEvalRunner.d.ts +102 -0
  143. package/dist/infra/lib/evolution/SkillEvalRunner.d.ts.map +1 -0
  144. package/dist/infra/lib/evolution/SkillEvalRunner.js +256 -0
  145. package/dist/infra/lib/evolution/SkillEvalRunner.js.map +1 -0
  146. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  147. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  148. package/dist/infra/lib/evolution/__tests__/eval.test.d.ts +2 -0
  149. package/dist/infra/lib/evolution/__tests__/eval.test.d.ts.map +1 -0
  150. package/dist/infra/lib/evolution/__tests__/eval.test.js +539 -0
  151. package/dist/infra/lib/evolution/__tests__/eval.test.js.map +1 -0
  152. package/dist/infra/lib/evolution/index.d.ts +8 -0
  153. package/dist/infra/lib/evolution/index.d.ts.map +1 -1
  154. package/dist/infra/lib/evolution/index.js +5 -0
  155. package/dist/infra/lib/evolution/index.js.map +1 -1
  156. package/dist/infra/lib/gemini/constants.js +14 -14
  157. package/dist/infra/lib/gemini/orchestration.js +5 -5
  158. package/dist/infra/lib/gpt/oauth.js +44 -44
  159. package/dist/infra/lib/gpt/orchestration.js +4 -4
  160. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  161. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  162. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  163. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  164. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  165. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  166. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  167. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  168. package/dist/infra/orchestrator/AgentManager.js +12 -12
  169. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  170. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  171. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  172. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  173. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  174. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  175. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  176. package/dist/tools/memory/getMemoryGraph.js +12 -12
  177. package/dist/tools/memory/getSessionContext.js +9 -9
  178. package/dist/tools/memory/linkMemories.js +14 -14
  179. package/dist/tools/memory/listMemories.js +4 -4
  180. package/dist/tools/memory/recallMemory.js +4 -4
  181. package/dist/tools/memory/saveMemory.js +4 -4
  182. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  183. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  184. package/dist/tools/semantic/astGrep.test.js +6 -6
  185. package/dist/tools/spec/prdParser.test.js +171 -171
  186. package/dist/tools/spec/specGenerator.js +169 -169
  187. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  188. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  189. package/hooks/gemini-hooks.json +73 -73
  190. package/hooks/hooks.json +137 -137
  191. package/hooks/scripts/code-check.js +70 -70
  192. package/hooks/scripts/context-save.js +212 -212
  193. package/hooks/scripts/hud-status.js +291 -291
  194. package/hooks/scripts/keyword-detector.js +214 -214
  195. package/hooks/scripts/llm-orchestrate.js +646 -646
  196. package/hooks/scripts/post-edit.js +32 -32
  197. package/hooks/scripts/pre-tool-guard.js +125 -125
  198. package/hooks/scripts/prompt-dispatcher.js +185 -185
  199. package/hooks/scripts/sentinel-guard.js +104 -104
  200. package/hooks/scripts/session-start.js +106 -106
  201. package/hooks/scripts/stop-notify.js +209 -209
  202. package/hooks/scripts/utils.js +100 -100
  203. package/languages/csharp-unity.md +515 -515
  204. package/languages/gdscript-godot.md +470 -470
  205. package/languages/ruby-rails.md +489 -489
  206. package/languages/typescript-angular.md +433 -433
  207. package/languages/typescript-astro.md +416 -416
  208. package/languages/typescript-electron.md +406 -406
  209. package/languages/typescript-nestjs.md +524 -524
  210. package/languages/typescript-svelte.md +407 -407
  211. package/languages/typescript-tauri.md +365 -365
  212. package/package.json +121 -121
  213. package/skills/agents-md/SKILL.md +120 -120
  214. package/skills/arch-guard/SKILL.md +180 -0
  215. package/skills/brand-assets/SKILL.md +146 -146
  216. package/skills/capability-loop/SKILL.md +167 -0
  217. package/skills/characterization-test/SKILL.md +206 -206
  218. package/skills/commerce-patterns/SKILL.md +59 -59
  219. package/skills/commit-push-pr/SKILL.md +75 -75
  220. package/skills/context7-usage/SKILL.md +105 -105
  221. package/skills/core-capabilities/SKILL.md +48 -48
  222. package/skills/e2e-commerce/SKILL.md +57 -57
  223. package/skills/exec-plan/SKILL.md +147 -0
  224. package/skills/frontend-design/SKILL.md +73 -73
  225. package/skills/git-worktree/SKILL.md +72 -72
  226. package/skills/handoff/SKILL.md +109 -109
  227. package/skills/parallel-research/SKILL.md +87 -87
  228. package/skills/priority-todos/SKILL.md +63 -63
  229. package/skills/seo-checklist/SKILL.md +57 -57
  230. package/skills/techdebt/SKILL.md +122 -122
  231. package/skills/tool-fallback/SKILL.md +103 -103
  232. package/skills/typescript-advanced-types/SKILL.md +65 -65
  233. package/skills/ui-ux-pro-max/SKILL.md +206 -206
  234. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  235. package/skills/video-production/SKILL.md +51 -51
  236. package/vibe/config.json +29 -29
  237. package/vibe/constitution.md +227 -227
  238. package/vibe/rules/principles/communication-guide.md +98 -98
  239. package/vibe/rules/principles/development-philosophy.md +52 -52
  240. package/vibe/rules/principles/quick-start.md +102 -102
  241. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  242. package/vibe/rules/quality/checklist.md +276 -276
  243. package/vibe/rules/quality/performance.md +236 -236
  244. package/vibe/rules/quality/testing-strategy.md +440 -440
  245. package/vibe/rules/standards/anti-patterns.md +541 -541
  246. package/vibe/rules/standards/code-structure.md +291 -291
  247. package/vibe/rules/standards/complexity-metrics.md +313 -313
  248. package/vibe/rules/standards/git-workflow.md +237 -237
  249. package/vibe/rules/standards/naming-conventions.md +198 -198
  250. package/vibe/rules/standards/security.md +305 -305
  251. package/vibe/rules/writing/document-style.md +74 -74
  252. package/vibe/setup.sh +31 -31
  253. package/vibe/templates/constitution-template.md +252 -252
  254. package/vibe/templates/contract-backend-template.md +526 -526
  255. package/vibe/templates/contract-frontend-template.md +599 -599
  256. package/vibe/templates/feature-template.md +96 -96
  257. package/vibe/templates/spec-template.md +221 -221
  258. package/vibe/ui-ux-data/charts.csv +26 -26
  259. package/vibe/ui-ux-data/colors.csv +97 -97
  260. package/vibe/ui-ux-data/icons.csv +101 -101
  261. package/vibe/ui-ux-data/landing.csv +31 -31
  262. package/vibe/ui-ux-data/products.csv +96 -96
  263. package/vibe/ui-ux-data/react-performance.csv +45 -45
  264. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  265. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  266. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  267. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  268. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  269. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  270. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  271. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  272. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  273. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  274. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  275. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  276. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  277. package/vibe/ui-ux-data/styles.csv +68 -68
  278. package/vibe/ui-ux-data/typography.csv +57 -57
  279. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  280. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  281. package/vibe/ui-ux-data/version.json +31 -31
  282. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -1,260 +1,260 @@
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 + Code
101
-
102
- ##### A. UI Mockup Image Generation
103
-
104
- ```bash
105
- node "[LLM_SCRIPT]" gemini image "Modern UI mockup: [UI Description from step 2]. Clean design, [colors/typography if available], mobile-first responsive layout" --output "./ui-preview.png"
106
- ```
107
-
108
- ##### B. UI Code Generation (from design files)
109
-
110
- When design files (image/HTML/folder) are provided, use Gemini to generate production-ready component code:
111
-
112
- ```bash
113
- node "[LLM_SCRIPT]" gemini orchestrate "You are a UI code generator. Analyze the provided design and generate production-ready React TypeScript components with Tailwind CSS. Output complete component code with proper types, responsive layout, and accessibility attributes."
114
- ```
115
-
116
- Pass the design context (file contents, extracted colors, layout structure from step 2) as the user prompt via stdin or arguments.
117
-
118
- **When to use each:**
119
-
120
- | Input | Image (Step A) | Code (Step B) |
121
- | ----- | -------------- | ------------- |
122
- | Text description | Generate mockup | Skip |
123
- | Image/HTML/Folder | Generate mockup | Generate component code |
124
-
125
- #### If Gemini Disabled: ASCII Art Fallback
126
-
127
- Generate ASCII art based on the UI description:
128
-
129
- **Input format:**
130
-
131
- - Page name
132
- - Layout type (centered, sidebar, grid, header-footer)
133
- - Components list (type, label, position)
134
-
135
- **Example ASCII output:**
136
-
137
- ```
138
- ┌─────────────────────────────────────────┐
139
- │ Welcome │
140
- ├─────────────────────────────────────────┤
141
- │ │
142
- │ ┌─────────────────────┐ │
143
- │ Email: │ │ │
144
- │ └─────────────────────┘ │
145
- │ │
146
- │ ┌─────────────────────┐ │
147
- │ Pass: │ │ │
148
- │ └─────────────────────┘ │
149
- │ │
150
- │ ┌─────────────────────┐ │
151
- │ │ Login │ │
152
- │ └─────────────────────┘ │
153
- │ │
154
- └─────────────────────────────────────────┘
155
- ```
156
-
157
- ### 4. Generate Component List
158
-
159
- Suggest list of components needed for UI:
160
-
161
- **Required Components:**
162
-
163
- - `Header.tsx` - Header ("Welcome")
164
- - `LoginForm.tsx` - Form container
165
- - `Input.tsx` - Reusable input field
166
- - `Button.tsx` - Login button
167
-
168
- **Expected File Structure:**
169
-
170
- ```
171
- src/
172
- ├── components/
173
- │ ├── common/
174
- │ │ ├── Input.tsx
175
- │ │ └── Button.tsx
176
- │ └── auth/
177
- │ ├── Header.tsx
178
- │ └── LoginForm.tsx
179
- └── pages/
180
- └── LoginPage.tsx
181
- ```
182
-
183
- ## Example (with Gemini)
184
-
185
- ```
186
- User: /vibe.ui ./design/dashboard/
187
-
188
- Claude: Reading design folder...
189
- - Found: mockup.png, tokens.json, style-guide.md
190
-
191
- Analyzing design files...
192
- - Layout: Sidebar + Main content
193
- - Colors: Primary #2F6BFF, Background #F5F5F5
194
- - Components: Header, Sidebar, 3 StatCards, Footer
195
-
196
- Generating UI mockup with Gemini...
197
-
198
- ✅ UI Preview generated: ./ui-preview-1706234567.png
199
-
200
- [Image displayed]
201
-
202
- **Component Breakdown:**
203
- 1. Header (logo, user menu)
204
- 2. Sidebar (navigation)
205
- 3. StatsCard (reusable card)
206
- 4. Footer (copyright, links)
207
- 5. DashboardLayout (overall layout)
208
-
209
- Next step: /vibe.spec "dashboard page"
210
- ```
211
-
212
- ## Example (ASCII Fallback)
213
-
214
- ```
215
- User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
216
-
217
- Claude: Gemini not configured. Using ASCII preview...
218
-
219
- ┌────────────────────────────────────────────────────────┐
220
- │ [Logo] Dashboard [User] [Logout] │
221
- ├────────┬───────────────────────────────────────────────┤
222
- │ │ │
223
- │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
224
- │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
225
- │ Users │ │ │ │ │ │ │ │
226
- │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
227
- │ │ └──────────┘ └──────────┘ └──────────┘ │
228
- │ │ │
229
- │ │ │
230
- ├────────┴───────────────────────────────────────────────┤
231
- │ © 2025 Company Privacy | Terms │
232
- └────────────────────────────────────────────────────────┘
233
-
234
- **Required Components:**
235
- 1. Header (logo, user menu)
236
- 2. Sidebar (navigation)
237
- 3. StatsCard (reusable card)
238
- 4. Footer (copyright, links)
239
- 5. DashboardLayout (overall layout)
240
-
241
- **Layout Structure:**
242
- - Layout: sidebar (fixed left)
243
- - Main: grid (3 columns)
244
- - Responsive: Changes to 1 column on mobile
245
-
246
- 💡 Tip: Run `vibe gemini auth` for actual UI image generation
247
-
248
- Next step: /vibe.spec "dashboard page"
249
- ```
250
-
251
- ## Notes
252
-
253
- - For complex UI, request in multiple parts
254
- - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
255
- - Gemini generates high-quality mockups; ASCII is for quick visualization
256
- - Design folder input extracts colors, typography, and component structure automatically
257
-
258
- ---
259
-
260
- 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 + Code
101
+
102
+ ##### A. UI Mockup Image Generation
103
+
104
+ ```bash
105
+ node "[LLM_SCRIPT]" gemini image "Modern UI mockup: [UI Description from step 2]. Clean design, [colors/typography if available], mobile-first responsive layout" --output "./ui-preview.png"
106
+ ```
107
+
108
+ ##### B. UI Code Generation (from design files)
109
+
110
+ When design files (image/HTML/folder) are provided, use Gemini to generate production-ready component code:
111
+
112
+ ```bash
113
+ node "[LLM_SCRIPT]" gemini orchestrate "You are a UI code generator. Analyze the provided design and generate production-ready React TypeScript components with Tailwind CSS. Output complete component code with proper types, responsive layout, and accessibility attributes."
114
+ ```
115
+
116
+ Pass the design context (file contents, extracted colors, layout structure from step 2) as the user prompt via stdin or arguments.
117
+
118
+ **When to use each:**
119
+
120
+ | Input | Image (Step A) | Code (Step B) |
121
+ | ----- | -------------- | ------------- |
122
+ | Text description | Generate mockup | Skip |
123
+ | Image/HTML/Folder | Generate mockup | Generate component code |
124
+
125
+ #### If Gemini Disabled: ASCII Art Fallback
126
+
127
+ Generate ASCII art based on the UI description:
128
+
129
+ **Input format:**
130
+
131
+ - Page name
132
+ - Layout type (centered, sidebar, grid, header-footer)
133
+ - Components list (type, label, position)
134
+
135
+ **Example ASCII output:**
136
+
137
+ ```
138
+ ┌─────────────────────────────────────────┐
139
+ │ Welcome │
140
+ ├─────────────────────────────────────────┤
141
+ │ │
142
+ │ ┌─────────────────────┐ │
143
+ │ Email: │ │ │
144
+ │ └─────────────────────┘ │
145
+ │ │
146
+ │ ┌─────────────────────┐ │
147
+ │ Pass: │ │ │
148
+ │ └─────────────────────┘ │
149
+ │ │
150
+ │ ┌─────────────────────┐ │
151
+ │ │ Login │ │
152
+ │ └─────────────────────┘ │
153
+ │ │
154
+ └─────────────────────────────────────────┘
155
+ ```
156
+
157
+ ### 4. Generate Component List
158
+
159
+ Suggest list of components needed for UI:
160
+
161
+ **Required Components:**
162
+
163
+ - `Header.tsx` - Header ("Welcome")
164
+ - `LoginForm.tsx` - Form container
165
+ - `Input.tsx` - Reusable input field
166
+ - `Button.tsx` - Login button
167
+
168
+ **Expected File Structure:**
169
+
170
+ ```
171
+ src/
172
+ ├── components/
173
+ │ ├── common/
174
+ │ │ ├── Input.tsx
175
+ │ │ └── Button.tsx
176
+ │ └── auth/
177
+ │ ├── Header.tsx
178
+ │ └── LoginForm.tsx
179
+ └── pages/
180
+ └── LoginPage.tsx
181
+ ```
182
+
183
+ ## Example (with Gemini)
184
+
185
+ ```
186
+ User: /vibe.ui ./design/dashboard/
187
+
188
+ Claude: Reading design folder...
189
+ - Found: mockup.png, tokens.json, style-guide.md
190
+
191
+ Analyzing design files...
192
+ - Layout: Sidebar + Main content
193
+ - Colors: Primary #2F6BFF, Background #F5F5F5
194
+ - Components: Header, Sidebar, 3 StatCards, Footer
195
+
196
+ Generating UI mockup with Gemini...
197
+
198
+ ✅ UI Preview generated: ./ui-preview-1706234567.png
199
+
200
+ [Image displayed]
201
+
202
+ **Component Breakdown:**
203
+ 1. Header (logo, user menu)
204
+ 2. Sidebar (navigation)
205
+ 3. StatsCard (reusable card)
206
+ 4. Footer (copyright, links)
207
+ 5. DashboardLayout (overall layout)
208
+
209
+ Next step: /vibe.spec "dashboard page"
210
+ ```
211
+
212
+ ## Example (ASCII Fallback)
213
+
214
+ ```
215
+ User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
216
+
217
+ Claude: Gemini not configured. Using ASCII preview...
218
+
219
+ ┌────────────────────────────────────────────────────────┐
220
+ │ [Logo] Dashboard [User] [Logout] │
221
+ ├────────┬───────────────────────────────────────────────┤
222
+ │ │ │
223
+ │ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
224
+ │ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
225
+ │ Users │ │ │ │ │ │ │ │
226
+ │ Settings│ │ 100 │ │ 200 │ │ 50 │ │
227
+ │ │ └──────────┘ └──────────┘ └──────────┘ │
228
+ │ │ │
229
+ │ │ │
230
+ ├────────┴───────────────────────────────────────────────┤
231
+ │ © 2025 Company Privacy | Terms │
232
+ └────────────────────────────────────────────────────────┘
233
+
234
+ **Required Components:**
235
+ 1. Header (logo, user menu)
236
+ 2. Sidebar (navigation)
237
+ 3. StatsCard (reusable card)
238
+ 4. Footer (copyright, links)
239
+ 5. DashboardLayout (overall layout)
240
+
241
+ **Layout Structure:**
242
+ - Layout: sidebar (fixed left)
243
+ - Main: grid (3 columns)
244
+ - Responsive: Changes to 1 column on mobile
245
+
246
+ 💡 Tip: Run `vibe gemini auth` for actual UI image generation
247
+
248
+ Next step: /vibe.spec "dashboard page"
249
+ ```
250
+
251
+ ## Notes
252
+
253
+ - For complex UI, request in multiple parts
254
+ - Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
255
+ - Gemini generates high-quality mockups; ASCII is for quick visualization
256
+ - Design folder input extracts colors, typography, and component structure automatically
257
+
258
+ ---
259
+
260
+ ARGUMENTS: $ARGUMENTS
@@ -693,6 +693,89 @@ Step 3: If neither exists → Error
693
693
  Run /vibe.spec "{feature-name}" first.
694
694
  ```
695
695
 
696
+ ### 1-1. Phase Isolation Protocol (Large SPEC Guard)
697
+
698
+ > **Problem**: Large SPECs (3+ phases, 5+ scenarios) overflow context — agent drifts from SPEC by Phase 3.
699
+ > **Solution**: Load only the current phase's SPEC section. Re-anchor before each scenario.
700
+
701
+ **Phase Isolation Rules (MANDATORY for 3+ phases):**
702
+
703
+ ```
704
+ ┌─────────────────────────────────────────────────────────────────┐
705
+ │ PHASE ISOLATION PROTOCOL │
706
+ │ │
707
+ │ ❌ WRONG: Load entire SPEC → implement all phases │
708
+ │ ✅ RIGHT: Load _index overview → per-phase load → implement │
709
+ │ │
710
+ │ Step A: Read _index.md (overview only — phase list, REQ IDs) │
711
+ │ Step B: For each Phase N: │
712
+ │ 1. RE-READ Phase N SPEC section (every time, no memory) │
713
+ │ 2. RE-READ Phase N Feature scenarios │
714
+ │ 3. Extract Phase N scope: files, scenarios, requirements │
715
+ │ 4. Implement Phase N scenarios │
716
+ │ 5. Verify Phase N │
717
+ │ 6. Write Phase Checkpoint → .claude/vibe/checkpoints/ │
718
+ │ 7. DISCARD Phase N details from working memory │
719
+ │ Step C: Next Phase — go to Step B │
720
+ └─────────────────────────────────────────────────────────────────┘
721
+ ```
722
+
723
+ **Phase Checkpoint Format** (`.claude/vibe/checkpoints/{feature}-phase-{N}.md`):
724
+
725
+ ```markdown
726
+ # Checkpoint: {feature} Phase {N}
727
+
728
+ ## Completed
729
+ - Scenario 1: {name} ✅
730
+ - Scenario 2: {name} ✅
731
+
732
+ ## Files Changed
733
+ - src/auth.service.ts (added login(), validateToken())
734
+ - src/auth.controller.ts (POST /login, POST /refresh)
735
+
736
+ ## State for Next Phase
737
+ - Auth service exports: login(), logout(), validateToken(), refreshToken()
738
+ - JWT secret configured in .env (JWT_SECRET)
739
+ - Test baseline: 12 tests passing
740
+
741
+ ## Remaining Phases
742
+ - Phase {N+1}: {name} — {scenario count} scenarios
743
+ - Phase {N+2}: {name} — {scenario count} scenarios
744
+ ```
745
+
746
+ **SPEC Re-anchoring (Before EVERY scenario):**
747
+
748
+ ```
749
+ Before implementing Scenario X:
750
+ 1. Re-read the EXACT Given/When/Then from Feature file (not from memory!)
751
+ 2. Compare: "Am I about to implement what the SPEC says, or what I think it says?"
752
+ 3. If single-file SPEC: re-read only the current phase section (use line offsets)
753
+ 4. If split SPEC: re-read only phase-N-{name}.md
754
+ ```
755
+
756
+ **Scope Lock (Per Phase):**
757
+
758
+ ```
759
+ At Phase start, declare:
760
+ MODIFY: [list of files this phase will touch]
761
+ CREATE: [list of files this phase will create]
762
+ DO NOT TOUCH: everything else
763
+
764
+ If implementation requires files outside scope:
765
+ → STOP. Re-read SPEC. Is this actually needed?
766
+ → If yes: add to scope with explicit justification
767
+ → If no: you're drifting. Return to SPEC.
768
+ ```
769
+
770
+ **Context Pressure Handling:**
771
+
772
+ | Context Level | Action |
773
+ |---------------|--------|
774
+ | < 50% | Normal execution |
775
+ | 50-70% | Save checkpoint, trim exploration results |
776
+ | 70%+ | Save checkpoint → `/new` → resume from checkpoint |
777
+ | Phase boundary | Always save checkpoint regardless of context level |
778
+
696
779
  ### 2. Extract Scenario List
697
780
 
698
781
  Extract all Scenarios from Feature file: