@su-record/vibe 2.7.14 → 2.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +37 -37
- package/CLAUDE.md +134 -126
- package/LICENSE +21 -21
- package/README.md +449 -449
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -258
- package/commands/vibe.analyze.md +11 -13
- package/commands/vibe.review.md +43 -1
- package/commands/vibe.run.md +2124 -2078
- package/commands/vibe.spec.md +9 -4
- package/commands/vibe.spec.review.md +569 -565
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +33 -8
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +51 -55
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +7 -8
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +77 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -475
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +63 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -48
- package/skills/e2e-commerce/SKILL.md +61 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -66
- package/skills/ui-ux-pro-max/SKILL.md +221 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
package/agents/ui-previewer.md
CHANGED
|
@@ -1,258 +1,258 @@
|
|
|
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
|
-
#### If Gemini Enabled: Generate UI Image + Code
|
|
99
|
-
|
|
100
|
-
##### A. UI Mockup Image Generation
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
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"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
##### B. UI Code Generation (from design files)
|
|
107
|
-
|
|
108
|
-
When design files (image/HTML/folder) are provided, use Gemini to generate production-ready component code:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
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."
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
Pass the design context (file contents, extracted colors, layout structure from step 2) as the user prompt via stdin or arguments.
|
|
115
|
-
|
|
116
|
-
**When to use each:**
|
|
117
|
-
|
|
118
|
-
| Input | Image (Step A) | Code (Step B) |
|
|
119
|
-
| ----- | -------------- | ------------- |
|
|
120
|
-
| Text description | Generate mockup | Skip |
|
|
121
|
-
| Image/HTML/Folder | Generate mockup | Generate component code |
|
|
122
|
-
|
|
123
|
-
#### If Gemini Disabled: ASCII Art Fallback
|
|
124
|
-
|
|
125
|
-
Generate ASCII art based on the UI description:
|
|
126
|
-
|
|
127
|
-
**Input format:**
|
|
128
|
-
|
|
129
|
-
- Page name
|
|
130
|
-
- Layout type (centered, sidebar, grid, header-footer)
|
|
131
|
-
- Components list (type, label, position)
|
|
132
|
-
|
|
133
|
-
**Example ASCII output:**
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
┌─────────────────────────────────────────┐
|
|
137
|
-
│ Welcome │
|
|
138
|
-
├─────────────────────────────────────────┤
|
|
139
|
-
│ │
|
|
140
|
-
│ ┌─────────────────────┐ │
|
|
141
|
-
│ Email: │ │ │
|
|
142
|
-
│ └─────────────────────┘ │
|
|
143
|
-
│ │
|
|
144
|
-
│ ┌─────────────────────┐ │
|
|
145
|
-
│ Pass: │ │ │
|
|
146
|
-
│ └─────────────────────┘ │
|
|
147
|
-
│ │
|
|
148
|
-
│ ┌─────────────────────┐ │
|
|
149
|
-
│ │ Login │ │
|
|
150
|
-
│ └─────────────────────┘ │
|
|
151
|
-
│ │
|
|
152
|
-
└─────────────────────────────────────────┘
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### 4. Generate Component List
|
|
156
|
-
|
|
157
|
-
Suggest list of components needed for UI:
|
|
158
|
-
|
|
159
|
-
**Required Components:**
|
|
160
|
-
|
|
161
|
-
- `Header.tsx` - Header ("Welcome")
|
|
162
|
-
- `LoginForm.tsx` - Form container
|
|
163
|
-
- `Input.tsx` - Reusable input field
|
|
164
|
-
- `Button.tsx` - Login button
|
|
165
|
-
|
|
166
|
-
**Expected File Structure:**
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
src/
|
|
170
|
-
├── components/
|
|
171
|
-
│ ├── common/
|
|
172
|
-
│ │ ├── Input.tsx
|
|
173
|
-
│ │ └── Button.tsx
|
|
174
|
-
│ └── auth/
|
|
175
|
-
│ ├── Header.tsx
|
|
176
|
-
│ └── LoginForm.tsx
|
|
177
|
-
└── pages/
|
|
178
|
-
└── LoginPage.tsx
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Example (with Gemini)
|
|
182
|
-
|
|
183
|
-
```
|
|
184
|
-
User: /vibe.ui ./design/dashboard/
|
|
185
|
-
|
|
186
|
-
Claude: Reading design folder...
|
|
187
|
-
- Found: mockup.png, tokens.json, style-guide.md
|
|
188
|
-
|
|
189
|
-
Analyzing design files...
|
|
190
|
-
- Layout: Sidebar + Main content
|
|
191
|
-
- Colors: Primary #2F6BFF, Background #F5F5F5
|
|
192
|
-
- Components: Header, Sidebar, 3 StatCards, Footer
|
|
193
|
-
|
|
194
|
-
Generating UI mockup with Gemini...
|
|
195
|
-
|
|
196
|
-
✅ UI Preview generated: ./ui-preview-1706234567.png
|
|
197
|
-
|
|
198
|
-
[Image displayed]
|
|
199
|
-
|
|
200
|
-
**Component Breakdown:**
|
|
201
|
-
1. Header (logo, user menu)
|
|
202
|
-
2. Sidebar (navigation)
|
|
203
|
-
3. StatsCard (reusable card)
|
|
204
|
-
4. Footer (copyright, links)
|
|
205
|
-
5. DashboardLayout (overall layout)
|
|
206
|
-
|
|
207
|
-
Next step: /vibe.spec "dashboard page"
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## Example (ASCII Fallback)
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
|
|
214
|
-
|
|
215
|
-
Claude: Gemini not configured. Using ASCII preview...
|
|
216
|
-
|
|
217
|
-
┌────────────────────────────────────────────────────────┐
|
|
218
|
-
│ [Logo] Dashboard [User] [Logout] │
|
|
219
|
-
├────────┬───────────────────────────────────────────────┤
|
|
220
|
-
│ │ │
|
|
221
|
-
│ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
222
|
-
│ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
|
|
223
|
-
│ Users │ │ │ │ │ │ │ │
|
|
224
|
-
│ Settings│ │ 100 │ │ 200 │ │ 50 │ │
|
|
225
|
-
│ │ └──────────┘ └──────────┘ └──────────┘ │
|
|
226
|
-
│ │ │
|
|
227
|
-
│ │ │
|
|
228
|
-
├────────┴───────────────────────────────────────────────┤
|
|
229
|
-
│ © 2025 Company Privacy | Terms │
|
|
230
|
-
└────────────────────────────────────────────────────────┘
|
|
231
|
-
|
|
232
|
-
**Required Components:**
|
|
233
|
-
1. Header (logo, user menu)
|
|
234
|
-
2. Sidebar (navigation)
|
|
235
|
-
3. StatsCard (reusable card)
|
|
236
|
-
4. Footer (copyright, links)
|
|
237
|
-
5. DashboardLayout (overall layout)
|
|
238
|
-
|
|
239
|
-
**Layout Structure:**
|
|
240
|
-
- Layout: sidebar (fixed left)
|
|
241
|
-
- Main: grid (3 columns)
|
|
242
|
-
- Responsive: Changes to 1 column on mobile
|
|
243
|
-
|
|
244
|
-
💡 Tip: Run `vibe gemini auth` for actual UI image generation
|
|
245
|
-
|
|
246
|
-
Next step: /vibe.spec "dashboard page"
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Notes
|
|
250
|
-
|
|
251
|
-
- For complex UI, request in multiple parts
|
|
252
|
-
- Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
|
|
253
|
-
- Gemini generates high-quality mockups; ASCII is for quick visualization
|
|
254
|
-
- Design folder input extracts colors, typography, and component structure automatically
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
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
|
+
#### If Gemini Enabled: Generate UI Image + Code
|
|
99
|
+
|
|
100
|
+
##### A. UI Mockup Image Generation
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
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"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
##### B. UI Code Generation (from design files)
|
|
107
|
+
|
|
108
|
+
When design files (image/HTML/folder) are provided, use Gemini to generate production-ready component code:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
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."
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Pass the design context (file contents, extracted colors, layout structure from step 2) as the user prompt via stdin or arguments.
|
|
115
|
+
|
|
116
|
+
**When to use each:**
|
|
117
|
+
|
|
118
|
+
| Input | Image (Step A) | Code (Step B) |
|
|
119
|
+
| ----- | -------------- | ------------- |
|
|
120
|
+
| Text description | Generate mockup | Skip |
|
|
121
|
+
| Image/HTML/Folder | Generate mockup | Generate component code |
|
|
122
|
+
|
|
123
|
+
#### If Gemini Disabled: ASCII Art Fallback
|
|
124
|
+
|
|
125
|
+
Generate ASCII art based on the UI description:
|
|
126
|
+
|
|
127
|
+
**Input format:**
|
|
128
|
+
|
|
129
|
+
- Page name
|
|
130
|
+
- Layout type (centered, sidebar, grid, header-footer)
|
|
131
|
+
- Components list (type, label, position)
|
|
132
|
+
|
|
133
|
+
**Example ASCII output:**
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
┌─────────────────────────────────────────┐
|
|
137
|
+
│ Welcome │
|
|
138
|
+
├─────────────────────────────────────────┤
|
|
139
|
+
│ │
|
|
140
|
+
│ ┌─────────────────────┐ │
|
|
141
|
+
│ Email: │ │ │
|
|
142
|
+
│ └─────────────────────┘ │
|
|
143
|
+
│ │
|
|
144
|
+
│ ┌─────────────────────┐ │
|
|
145
|
+
│ Pass: │ │ │
|
|
146
|
+
│ └─────────────────────┘ │
|
|
147
|
+
│ │
|
|
148
|
+
│ ┌─────────────────────┐ │
|
|
149
|
+
│ │ Login │ │
|
|
150
|
+
│ └─────────────────────┘ │
|
|
151
|
+
│ │
|
|
152
|
+
└─────────────────────────────────────────┘
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 4. Generate Component List
|
|
156
|
+
|
|
157
|
+
Suggest list of components needed for UI:
|
|
158
|
+
|
|
159
|
+
**Required Components:**
|
|
160
|
+
|
|
161
|
+
- `Header.tsx` - Header ("Welcome")
|
|
162
|
+
- `LoginForm.tsx` - Form container
|
|
163
|
+
- `Input.tsx` - Reusable input field
|
|
164
|
+
- `Button.tsx` - Login button
|
|
165
|
+
|
|
166
|
+
**Expected File Structure:**
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
src/
|
|
170
|
+
├── components/
|
|
171
|
+
│ ├── common/
|
|
172
|
+
│ │ ├── Input.tsx
|
|
173
|
+
│ │ └── Button.tsx
|
|
174
|
+
│ └── auth/
|
|
175
|
+
│ ├── Header.tsx
|
|
176
|
+
│ └── LoginForm.tsx
|
|
177
|
+
└── pages/
|
|
178
|
+
└── LoginPage.tsx
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Example (with Gemini)
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
User: /vibe.ui ./design/dashboard/
|
|
185
|
+
|
|
186
|
+
Claude: Reading design folder...
|
|
187
|
+
- Found: mockup.png, tokens.json, style-guide.md
|
|
188
|
+
|
|
189
|
+
Analyzing design files...
|
|
190
|
+
- Layout: Sidebar + Main content
|
|
191
|
+
- Colors: Primary #2F6BFF, Background #F5F5F5
|
|
192
|
+
- Components: Header, Sidebar, 3 StatCards, Footer
|
|
193
|
+
|
|
194
|
+
Generating UI mockup with Gemini...
|
|
195
|
+
|
|
196
|
+
✅ UI Preview generated: ./ui-preview-1706234567.png
|
|
197
|
+
|
|
198
|
+
[Image displayed]
|
|
199
|
+
|
|
200
|
+
**Component Breakdown:**
|
|
201
|
+
1. Header (logo, user menu)
|
|
202
|
+
2. Sidebar (navigation)
|
|
203
|
+
3. StatsCard (reusable card)
|
|
204
|
+
4. Footer (copyright, links)
|
|
205
|
+
5. DashboardLayout (overall layout)
|
|
206
|
+
|
|
207
|
+
Next step: /vibe.spec "dashboard page"
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Example (ASCII Fallback)
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
User: /vibe.ui "Dashboard page - header, sidebar, main content (3 cards), footer"
|
|
214
|
+
|
|
215
|
+
Claude: Gemini not configured. Using ASCII preview...
|
|
216
|
+
|
|
217
|
+
┌────────────────────────────────────────────────────────┐
|
|
218
|
+
│ [Logo] Dashboard [User] [Logout] │
|
|
219
|
+
├────────┬───────────────────────────────────────────────┤
|
|
220
|
+
│ │ │
|
|
221
|
+
│ Home │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
222
|
+
│ Stats │ │ Card 1 │ │ Card 2 │ │ Card 3 │ │
|
|
223
|
+
│ Users │ │ │ │ │ │ │ │
|
|
224
|
+
│ Settings│ │ 100 │ │ 200 │ │ 50 │ │
|
|
225
|
+
│ │ └──────────┘ └──────────┘ └──────────┘ │
|
|
226
|
+
│ │ │
|
|
227
|
+
│ │ │
|
|
228
|
+
├────────┴───────────────────────────────────────────────┤
|
|
229
|
+
│ © 2025 Company Privacy | Terms │
|
|
230
|
+
└────────────────────────────────────────────────────────┘
|
|
231
|
+
|
|
232
|
+
**Required Components:**
|
|
233
|
+
1. Header (logo, user menu)
|
|
234
|
+
2. Sidebar (navigation)
|
|
235
|
+
3. StatsCard (reusable card)
|
|
236
|
+
4. Footer (copyright, links)
|
|
237
|
+
5. DashboardLayout (overall layout)
|
|
238
|
+
|
|
239
|
+
**Layout Structure:**
|
|
240
|
+
- Layout: sidebar (fixed left)
|
|
241
|
+
- Main: grid (3 columns)
|
|
242
|
+
- Responsive: Changes to 1 column on mobile
|
|
243
|
+
|
|
244
|
+
💡 Tip: Run `vibe gemini auth` for actual UI image generation
|
|
245
|
+
|
|
246
|
+
Next step: /vibe.spec "dashboard page"
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## Notes
|
|
250
|
+
|
|
251
|
+
- For complex UI, request in multiple parts
|
|
252
|
+
- Layout options: `sidebar`, `header-footer`, `grid`, `centered`, `split`
|
|
253
|
+
- Gemini generates high-quality mockups; ASCII is for quick visualization
|
|
254
|
+
- Design folder input extracts colors, typography, and component structure automatically
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
ARGUMENTS: $ARGUMENTS
|
package/commands/vibe.analyze.md
CHANGED
|
@@ -67,12 +67,15 @@ Read `CLAUDE.md`, `package.json`, `pyproject.toml`, etc. to identify tech stack:
|
|
|
67
67
|
|
|
68
68
|
#### 3. Explore Related Code (Parallel Sub-Agents)
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
**MANDATORY: Always use explorer sub-agents. Never explore in main session.**
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
> Why: 3 explorer-low agents return ~600 tokens of summaries to main session.
|
|
73
|
+
> Direct Glob/Grep/Read in main session would add 5-15K tokens of raw file content.
|
|
74
|
+
|
|
75
|
+
**Parallel exploration (ALL tasks in ONE message):**
|
|
73
76
|
|
|
74
77
|
```text
|
|
75
|
-
# 3
|
|
78
|
+
# 3 explorer agents in parallel (single message, multiple tool calls)
|
|
76
79
|
Task(subagent_type="explorer-low", model="haiku",
|
|
77
80
|
prompt="Find all [FEATURE] related API endpoints in this project. List file paths, HTTP methods, routes, and auth requirements.")
|
|
78
81
|
|
|
@@ -83,10 +86,10 @@ Task(subagent_type="explorer-low", model="haiku",
|
|
|
83
86
|
prompt="Find all [FEATURE] related data models, schemas, and database queries. Document relationships and key fields.")
|
|
84
87
|
```
|
|
85
88
|
|
|
86
|
-
|
|
89
|
+
**Additional exploration (scale by project size):**
|
|
87
90
|
|
|
88
91
|
```text
|
|
89
|
-
#
|
|
92
|
+
# Large projects (6+ related files) — add 2 more in parallel
|
|
90
93
|
Task(subagent_type="explorer-low", model="haiku",
|
|
91
94
|
prompt="Find all test files related to [FEATURE]. Identify tested vs untested paths.")
|
|
92
95
|
|
|
@@ -94,14 +97,9 @@ Task(subagent_type="explorer-low", model="haiku",
|
|
|
94
97
|
prompt="Analyze [FEATURE] configuration, environment variables, and external integrations.")
|
|
95
98
|
```
|
|
96
99
|
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
|
|
101
|
-
**Fallback (direct tools — 소규모 프로젝트):**
|
|
102
|
-
1. **Glob** to collect related file list
|
|
103
|
-
2. **Grep** to locate code by keyword
|
|
104
|
-
3. **Read** to analyze key files in detail
|
|
100
|
+
**After all agents return:**
|
|
101
|
+
- Synthesize results → proceed to Flow Analysis (Step 4)
|
|
102
|
+
- Only Read specific files in main session when agent summary needs clarification
|
|
105
103
|
|
|
106
104
|
#### 4. Flow Analysis
|
|
107
105
|
|
package/commands/vibe.review.md
CHANGED
|
@@ -134,6 +134,36 @@ node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.j
|
|
|
134
134
|
| P2 | Performance issues, architecture violations, missing tests | Fix before merge |
|
|
135
135
|
| P3 | Style, refactoring suggestions, documentation | Add to backlog |
|
|
136
136
|
|
|
137
|
+
## Convergence Rules (Over-Diagnosis Prevention)
|
|
138
|
+
|
|
139
|
+
> **Principle**: Reviews must converge. A review that always finds more issues is broken, not thorough.
|
|
140
|
+
|
|
141
|
+
### Scope Limiting
|
|
142
|
+
|
|
143
|
+
- **Review ONLY changed files** — based on `git diff --name-only`. Never scan the entire project
|
|
144
|
+
- **If no git diff** (first review) — review only files in the target path
|
|
145
|
+
|
|
146
|
+
### Severity Filtering by Round
|
|
147
|
+
|
|
148
|
+
| Round | What to Report |
|
|
149
|
+
|-------|---------------|
|
|
150
|
+
| 1st review | P1 + P2 + P3 (all) |
|
|
151
|
+
| 2nd review (same code) | P1 + P2 only (skip P3) |
|
|
152
|
+
| 3rd+ review | P1 only (report only new P1s) |
|
|
153
|
+
|
|
154
|
+
### Stop Conditions
|
|
155
|
+
|
|
156
|
+
- **P1 = 0 means MERGE READY** — mergeable even with remaining P2/P3
|
|
157
|
+
- **P1 = 0 after auto-fix means DONE** — record P2 auto-fix failures as TODO and stop
|
|
158
|
+
- **Final P1 list unchanged after Review Debate → DONE** — no new findings = converged
|
|
159
|
+
|
|
160
|
+
### Anti-Patterns (FORBIDDEN)
|
|
161
|
+
|
|
162
|
+
- "All items must be verified" → Only P1 is mandatory, P2/P3 are best-effort
|
|
163
|
+
- "Found one more issue" (repeated) → Only report P1s not mentioned in previous review
|
|
164
|
+
- Forcing code changes for P3 issues → P3 goes to TODO files only, never force code changes
|
|
165
|
+
- Infinite retries on auto-fix failure → max 1 retry then move to TODO
|
|
166
|
+
|
|
137
167
|
## Process
|
|
138
168
|
|
|
139
169
|
### Phase 1: Tech Stack Detection
|
|
@@ -149,6 +179,18 @@ Read go.mod -> Go
|
|
|
149
179
|
Read CLAUDE.md -> Explicit tech stack declaration
|
|
150
180
|
```
|
|
151
181
|
|
|
182
|
+
### Phase 1.5: SPEC ↔ Code Alignment Check
|
|
183
|
+
|
|
184
|
+
> When SPEC files exist, verify that code changes align with the SPEC
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
1. Search .claude/vibe/specs/ for related SPEC files (based on git diff filenames)
|
|
188
|
+
2. Compare SPEC REQ-* list against functionality in changed code
|
|
189
|
+
3. If functionality added that's not in SPEC → P2 finding: "Feature added without SPEC"
|
|
190
|
+
4. If implementation differs from SPEC → P1 finding: "SPEC ↔ code mismatch"
|
|
191
|
+
5. If no SPEC files exist → Skip (reviews work without SPEC too)
|
|
192
|
+
```
|
|
193
|
+
|
|
152
194
|
### Phase 2: Parallel Agent Review (STACK-AWARE) via Orchestrator
|
|
153
195
|
|
|
154
196
|
**Execution via Orchestrator (12+ agents in parallel):**
|
|
@@ -481,7 +523,7 @@ node -e "import('{{VIBE_PATH_URL}}/node_modules/@su-record/vibe/dist/tools/index
|
|
|
481
523
|
|
|
482
524
|
### Review Quality Checklist
|
|
483
525
|
|
|
484
|
-
Before completing review,
|
|
526
|
+
Before completing review, check P1-critical items. P2/P3 items are best-effort:
|
|
485
527
|
|
|
486
528
|
| Category | Check Item | Weight |
|
|
487
529
|
|----------|------------|--------|
|