@su-record/vibe 2.7.12 → 2.7.14
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 +126 -126
- package/LICENSE +21 -21
- package/README.md +449 -580
- 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 -266
- 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 -260
- package/commands/vibe.analyze.md +8 -0
- package/commands/vibe.review.md +10 -3
- package/commands/vibe.run.md +2078 -2022
- package/commands/vibe.spec.md +10 -10
- package/commands/vibe.spec.review.md +565 -558
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +45 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +1 -7
- package/dist/cli/auth.js.map +1 -1
- 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 +55 -70
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/setup.js +1 -1
- package/dist/cli/commands/setup.js.map +1 -1
- 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/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +3 -4
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +20 -20
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.d.ts +4 -6
- package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
- package/dist/cli/llm/gemini-commands.js +52 -322
- package/dist/cli/llm/gemini-commands.js.map +1 -1
- package/dist/cli/llm/gpt-commands.js +21 -21
- package/dist/cli/llm/gpt-commands.js.map +1 -1
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.js +1 -1
- 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/postinstall/inline-skills.js +1 -1
- package/dist/cli/postinstall/inline-skills.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +2 -18
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/utils.d.ts +0 -9
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +0 -28
- package/dist/cli/utils.js.map +1 -1
- 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/config/GlobalConfigManager.d.ts +0 -2
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.js +0 -27
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
- 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/auth.d.ts +4 -16
- package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
- package/dist/infra/lib/gemini/auth.js +10 -405
- package/dist/infra/lib/gemini/auth.js.map +1 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +4 -8
- package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -1
- package/dist/infra/lib/gemini/capabilities.js +8 -166
- package/dist/infra/lib/gemini/capabilities.js.map +1 -1
- package/dist/infra/lib/gemini/chat.d.ts +4 -13
- package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
- package/dist/infra/lib/gemini/chat.js +10 -323
- package/dist/infra/lib/gemini/chat.js.map +1 -1
- package/dist/infra/lib/gemini/completion.d.ts +5 -15
- package/dist/infra/lib/gemini/completion.d.ts.map +1 -1
- package/dist/infra/lib/gemini/completion.js +6 -97
- package/dist/infra/lib/gemini/completion.js.map +1 -1
- package/dist/infra/lib/gemini/constants.d.ts +2 -31
- package/dist/infra/lib/gemini/constants.d.ts.map +1 -1
- package/dist/infra/lib/gemini/constants.js +2 -77
- package/dist/infra/lib/gemini/constants.js.map +1 -1
- package/dist/infra/lib/gemini/index.d.ts +5 -8
- package/dist/infra/lib/gemini/index.d.ts.map +1 -1
- package/dist/infra/lib/gemini/index.js +4 -7
- package/dist/infra/lib/gemini/index.js.map +1 -1
- package/dist/infra/lib/gemini/models.d.ts +3 -4
- package/dist/infra/lib/gemini/models.d.ts.map +1 -1
- package/dist/infra/lib/gemini/models.js +8 -84
- package/dist/infra/lib/gemini/models.js.map +1 -1
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gemini/types.d.ts +16 -44
- package/dist/infra/lib/gemini/types.d.ts.map +1 -1
- package/dist/infra/lib/gemini/types.js +1 -1
- package/dist/infra/lib/gpt/auth.d.ts +2 -5
- package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/auth.js +8 -38
- package/dist/infra/lib/gpt/auth.js.map +1 -1
- package/dist/infra/lib/gpt/chat.d.ts +3 -3
- package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
- package/dist/infra/lib/gpt/chat.js +37 -53
- package/dist/infra/lib/gpt/chat.js.map +1 -1
- package/dist/infra/lib/gpt/constants.d.ts +2 -5
- package/dist/infra/lib/gpt/constants.d.ts.map +1 -1
- package/dist/infra/lib/gpt/constants.js +4 -9
- package/dist/infra/lib/gpt/constants.js.map +1 -1
- package/dist/infra/lib/gpt/embedding.d.ts +1 -1
- package/dist/infra/lib/gpt/embedding.js +3 -3
- package/dist/infra/lib/gpt/embedding.js.map +1 -1
- package/dist/infra/lib/gpt/oauth.d.ts +6 -39
- package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/oauth.js +8 -340
- package/dist/infra/lib/gpt/oauth.js.map +1 -1
- package/dist/infra/lib/gpt/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js.map +1 -1
- package/dist/infra/lib/gpt/specializations.d.ts +2 -2
- package/dist/infra/lib/gpt/specializations.js +3 -3
- package/dist/infra/lib/gpt/specializations.js.map +1 -1
- package/dist/infra/lib/gpt/types.d.ts +1 -1
- package/dist/infra/lib/gpt/types.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +2 -2
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
- package/dist/infra/lib/llm/auth/index.d.ts +2 -12
- package/dist/infra/lib/llm/auth/index.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/index.js +5 -63
- package/dist/infra/lib/llm/auth/index.js.map +1 -1
- package/dist/infra/lib/llm/types.d.ts +1 -1
- package/dist/infra/lib/llm/types.d.ts.map +1 -1
- 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 +70 -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 -646
- 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 +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +73 -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 -65
- package/skills/ui-ux-pro-max/SKILL.md +206 -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/commands/vibe.voice.md +0 -79
package/agents/ui-previewer.md
CHANGED
|
@@ -1,260 +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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
│
|
|
140
|
-
|
|
141
|
-
│
|
|
142
|
-
│
|
|
143
|
-
│
|
|
144
|
-
│
|
|
145
|
-
│
|
|
146
|
-
│
|
|
147
|
-
│
|
|
148
|
-
│
|
|
149
|
-
│
|
|
150
|
-
│
|
|
151
|
-
│
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
- `
|
|
164
|
-
- `
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
├──
|
|
173
|
-
│
|
|
174
|
-
│
|
|
175
|
-
│
|
|
176
|
-
│
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
│
|
|
221
|
-
|
|
222
|
-
│
|
|
223
|
-
│
|
|
224
|
-
│
|
|
225
|
-
│
|
|
226
|
-
│
|
|
227
|
-
│ │
|
|
228
|
-
|
|
229
|
-
│
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
-
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
+
#### 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
|
@@ -17,6 +17,14 @@ Analyze project or specific feature/module.
|
|
|
17
17
|
/vibe.analyze --arch # Architecture analysis only
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
## File Reading Policy (Mandatory)
|
|
21
|
+
|
|
22
|
+
- **SPEC/Feature 파일**: 반드시 `Read` 도구로 전체 파일을 읽을 것 (Grep 금지)
|
|
23
|
+
- **소스코드 파일**: 분석 대상 파일은 반드시 `Read` 도구로 전체 읽은 후 분석할 것
|
|
24
|
+
- **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악에는 반드시 Read 사용
|
|
25
|
+
- **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 분석하라"를 반드시 포함할 것
|
|
26
|
+
- **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 분석 가능
|
|
27
|
+
|
|
20
28
|
## Context Reset
|
|
21
29
|
|
|
22
30
|
**When this command runs, previous conversation is ignored.**
|
package/commands/vibe.review.md
CHANGED
|
@@ -30,8 +30,8 @@ argument-hint: "PR number, branch name, or file path"
|
|
|
30
30
|
/vibe.review --race
|
|
31
31
|
|
|
32
32
|
security-review:
|
|
33
|
-
├─ GPT
|
|
34
|
-
└─ Gemini
|
|
33
|
+
├─ GPT Codex → [SQL injection, XSS]
|
|
34
|
+
└─ Gemini → [SQL injection, CSRF]
|
|
35
35
|
↓
|
|
36
36
|
Cross-validation:
|
|
37
37
|
- SQL injection (2/2) → 🔴 P1 (100% confidence)
|
|
@@ -61,7 +61,7 @@ security-review:
|
|
|
61
61
|
## SECURITY Review (Race Mode)
|
|
62
62
|
|
|
63
63
|
**Duration**: 3420ms
|
|
64
|
-
**Models**: GPT
|
|
64
|
+
**Models**: GPT Codex, Gemini
|
|
65
65
|
|
|
66
66
|
### Model Results
|
|
67
67
|
|
|
@@ -119,6 +119,13 @@ node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/review-input.json
|
|
|
119
119
|
node "[LLM_SCRIPT]" gemini orchestrate-json --input "[SCRATCHPAD]/review-input.json"
|
|
120
120
|
```
|
|
121
121
|
|
|
122
|
+
## File Reading Policy (Mandatory)
|
|
123
|
+
|
|
124
|
+
- **소스코드 파일**: 리뷰 대상 파일은 반드시 `Read` 도구로 전체 파일을 읽은 후 리뷰할 것 (Grep으로 훑어보기 금지)
|
|
125
|
+
- **Grep 사용 제한**: 파일 위치 탐색(어떤 파일에 있는지 찾기)에만 사용. 파일 내용 파악 및 리뷰에는 반드시 Read 사용
|
|
126
|
+
- **에이전트 spawn 시**: 프롬프트에 "대상 파일을 Read 도구로 전체 읽은 후 분석하라"를 반드시 포함할 것
|
|
127
|
+
- **부분 읽기 금지**: Grep 결과의 주변 몇 줄만 보고 판단하지 말 것. 전체 맥락을 파악해야 정확한 리뷰 가능
|
|
128
|
+
|
|
122
129
|
## Priority System
|
|
123
130
|
|
|
124
131
|
| Priority | Criteria | Action |
|