@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.
Files changed (331) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +126 -126
  3. package/LICENSE +21 -21
  4. package/README.md +449 -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 +294 -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 +258 -260
  54. package/commands/vibe.analyze.md +8 -0
  55. package/commands/vibe.review.md +10 -3
  56. package/commands/vibe.run.md +2078 -2022
  57. package/commands/vibe.spec.md +10 -10
  58. package/commands/vibe.spec.review.md +565 -558
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +45 -0
  61. package/dist/cli/auth.d.ts.map +1 -1
  62. package/dist/cli/auth.js +1 -7
  63. package/dist/cli/auth.js.map +1 -1
  64. package/dist/cli/collaborator.js +52 -52
  65. package/dist/cli/commands/evolution.js +12 -12
  66. package/dist/cli/commands/info.d.ts.map +1 -1
  67. package/dist/cli/commands/info.js +55 -70
  68. package/dist/cli/commands/info.js.map +1 -1
  69. package/dist/cli/commands/init.d.ts.map +1 -1
  70. package/dist/cli/commands/init.js +6 -7
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/remove.js +14 -14
  73. package/dist/cli/commands/sentinel.js +27 -27
  74. package/dist/cli/commands/setup.js +1 -1
  75. package/dist/cli/commands/setup.js.map +1 -1
  76. package/dist/cli/commands/skills.js +5 -5
  77. package/dist/cli/commands/slack.js +10 -10
  78. package/dist/cli/commands/telegram.js +12 -12
  79. package/dist/cli/commands/update.d.ts.map +1 -1
  80. package/dist/cli/commands/update.js +3 -4
  81. package/dist/cli/commands/update.js.map +1 -1
  82. package/dist/cli/detect.js +32 -32
  83. package/dist/cli/index.js +51 -55
  84. package/dist/cli/index.js.map +1 -1
  85. package/dist/cli/llm/claude-commands.js +16 -16
  86. package/dist/cli/llm/config.js +20 -20
  87. package/dist/cli/llm/config.js.map +1 -1
  88. package/dist/cli/llm/gemini-commands.d.ts +4 -6
  89. package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
  90. package/dist/cli/llm/gemini-commands.js +52 -322
  91. package/dist/cli/llm/gemini-commands.js.map +1 -1
  92. package/dist/cli/llm/gpt-commands.js +21 -21
  93. package/dist/cli/llm/gpt-commands.js.map +1 -1
  94. package/dist/cli/llm/help.js +21 -21
  95. package/dist/cli/postinstall/constants.js +1 -1
  96. package/dist/cli/postinstall/constants.js.map +1 -1
  97. package/dist/cli/postinstall/cursor-agents.js +32 -32
  98. package/dist/cli/postinstall/cursor-rules.js +83 -83
  99. package/dist/cli/postinstall/cursor-skills.js +743 -743
  100. package/dist/cli/postinstall/inline-skills.js +1 -1
  101. package/dist/cli/postinstall/inline-skills.js.map +1 -1
  102. package/dist/cli/setup/Provisioner.js +42 -42
  103. package/dist/cli/types.d.ts +2 -18
  104. package/dist/cli/types.d.ts.map +1 -1
  105. package/dist/cli/utils.d.ts +0 -9
  106. package/dist/cli/utils.d.ts.map +1 -1
  107. package/dist/cli/utils.js +0 -28
  108. package/dist/cli/utils.js.map +1 -1
  109. package/dist/infra/lib/DeepInit.js +24 -24
  110. package/dist/infra/lib/IterationTracker.js +11 -11
  111. package/dist/infra/lib/PythonParser.js +108 -108
  112. package/dist/infra/lib/ReviewRace.js +96 -96
  113. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  114. package/dist/infra/lib/SkillQualityGate.js +9 -9
  115. package/dist/infra/lib/SkillRepository.js +159 -159
  116. package/dist/infra/lib/UltraQA.js +99 -99
  117. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  118. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  119. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  120. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  121. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  122. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  123. package/dist/infra/lib/config/GlobalConfigManager.d.ts +0 -2
  124. package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
  125. package/dist/infra/lib/config/GlobalConfigManager.js +0 -27
  126. package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
  127. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  128. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  129. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  130. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  131. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  132. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  133. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  134. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  135. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  136. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  137. package/dist/infra/lib/gemini/auth.d.ts +4 -16
  138. package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
  139. package/dist/infra/lib/gemini/auth.js +10 -405
  140. package/dist/infra/lib/gemini/auth.js.map +1 -1
  141. package/dist/infra/lib/gemini/capabilities.d.ts +4 -8
  142. package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -1
  143. package/dist/infra/lib/gemini/capabilities.js +8 -166
  144. package/dist/infra/lib/gemini/capabilities.js.map +1 -1
  145. package/dist/infra/lib/gemini/chat.d.ts +4 -13
  146. package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
  147. package/dist/infra/lib/gemini/chat.js +10 -323
  148. package/dist/infra/lib/gemini/chat.js.map +1 -1
  149. package/dist/infra/lib/gemini/completion.d.ts +5 -15
  150. package/dist/infra/lib/gemini/completion.d.ts.map +1 -1
  151. package/dist/infra/lib/gemini/completion.js +6 -97
  152. package/dist/infra/lib/gemini/completion.js.map +1 -1
  153. package/dist/infra/lib/gemini/constants.d.ts +2 -31
  154. package/dist/infra/lib/gemini/constants.d.ts.map +1 -1
  155. package/dist/infra/lib/gemini/constants.js +2 -77
  156. package/dist/infra/lib/gemini/constants.js.map +1 -1
  157. package/dist/infra/lib/gemini/index.d.ts +5 -8
  158. package/dist/infra/lib/gemini/index.d.ts.map +1 -1
  159. package/dist/infra/lib/gemini/index.js +4 -7
  160. package/dist/infra/lib/gemini/index.js.map +1 -1
  161. package/dist/infra/lib/gemini/models.d.ts +3 -4
  162. package/dist/infra/lib/gemini/models.d.ts.map +1 -1
  163. package/dist/infra/lib/gemini/models.js +8 -84
  164. package/dist/infra/lib/gemini/models.js.map +1 -1
  165. package/dist/infra/lib/gemini/orchestration.js +5 -5
  166. package/dist/infra/lib/gemini/types.d.ts +16 -44
  167. package/dist/infra/lib/gemini/types.d.ts.map +1 -1
  168. package/dist/infra/lib/gemini/types.js +1 -1
  169. package/dist/infra/lib/gpt/auth.d.ts +2 -5
  170. package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
  171. package/dist/infra/lib/gpt/auth.js +8 -38
  172. package/dist/infra/lib/gpt/auth.js.map +1 -1
  173. package/dist/infra/lib/gpt/chat.d.ts +3 -3
  174. package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
  175. package/dist/infra/lib/gpt/chat.js +37 -53
  176. package/dist/infra/lib/gpt/chat.js.map +1 -1
  177. package/dist/infra/lib/gpt/constants.d.ts +2 -5
  178. package/dist/infra/lib/gpt/constants.d.ts.map +1 -1
  179. package/dist/infra/lib/gpt/constants.js +4 -9
  180. package/dist/infra/lib/gpt/constants.js.map +1 -1
  181. package/dist/infra/lib/gpt/embedding.d.ts +1 -1
  182. package/dist/infra/lib/gpt/embedding.js +3 -3
  183. package/dist/infra/lib/gpt/embedding.js.map +1 -1
  184. package/dist/infra/lib/gpt/oauth.d.ts +6 -39
  185. package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
  186. package/dist/infra/lib/gpt/oauth.js +8 -340
  187. package/dist/infra/lib/gpt/oauth.js.map +1 -1
  188. package/dist/infra/lib/gpt/orchestration.js +5 -5
  189. package/dist/infra/lib/gpt/orchestration.js.map +1 -1
  190. package/dist/infra/lib/gpt/specializations.d.ts +2 -2
  191. package/dist/infra/lib/gpt/specializations.js +3 -3
  192. package/dist/infra/lib/gpt/specializations.js.map +1 -1
  193. package/dist/infra/lib/gpt/types.d.ts +1 -1
  194. package/dist/infra/lib/gpt/types.d.ts.map +1 -1
  195. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +2 -2
  196. package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
  197. package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
  198. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +1 -1
  199. package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
  200. package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
  201. package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
  202. package/dist/infra/lib/llm/auth/index.d.ts +2 -12
  203. package/dist/infra/lib/llm/auth/index.d.ts.map +1 -1
  204. package/dist/infra/lib/llm/auth/index.js +5 -63
  205. package/dist/infra/lib/llm/auth/index.js.map +1 -1
  206. package/dist/infra/lib/llm/types.d.ts +1 -1
  207. package/dist/infra/lib/llm/types.d.ts.map +1 -1
  208. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  209. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  210. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  211. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  212. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  213. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  214. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  215. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  216. package/dist/infra/orchestrator/AgentManager.js +12 -12
  217. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  218. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  219. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  220. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  221. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  222. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  223. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  224. package/dist/tools/memory/getMemoryGraph.js +12 -12
  225. package/dist/tools/memory/getSessionContext.js +9 -9
  226. package/dist/tools/memory/linkMemories.js +14 -14
  227. package/dist/tools/memory/listMemories.js +4 -4
  228. package/dist/tools/memory/recallMemory.js +4 -4
  229. package/dist/tools/memory/saveMemory.js +4 -4
  230. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  231. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  232. package/dist/tools/semantic/astGrep.test.js +6 -6
  233. package/dist/tools/spec/prdParser.test.js +171 -171
  234. package/dist/tools/spec/specGenerator.js +169 -169
  235. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  236. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  237. package/hooks/gemini-hooks.json +73 -73
  238. package/hooks/hooks.json +137 -137
  239. package/hooks/scripts/code-check.js +70 -70
  240. package/hooks/scripts/context-save.js +212 -212
  241. package/hooks/scripts/hud-status.js +291 -291
  242. package/hooks/scripts/keyword-detector.js +214 -214
  243. package/hooks/scripts/llm-orchestrate.js +475 -646
  244. package/hooks/scripts/post-edit.js +32 -32
  245. package/hooks/scripts/pre-tool-guard.js +125 -125
  246. package/hooks/scripts/prompt-dispatcher.js +185 -185
  247. package/hooks/scripts/sentinel-guard.js +104 -104
  248. package/hooks/scripts/session-start.js +106 -106
  249. package/hooks/scripts/stop-notify.js +209 -209
  250. package/hooks/scripts/utils.js +100 -100
  251. package/languages/csharp-unity.md +515 -515
  252. package/languages/gdscript-godot.md +470 -470
  253. package/languages/ruby-rails.md +489 -489
  254. package/languages/typescript-angular.md +433 -433
  255. package/languages/typescript-astro.md +416 -416
  256. package/languages/typescript-electron.md +406 -406
  257. package/languages/typescript-nestjs.md +524 -524
  258. package/languages/typescript-svelte.md +407 -407
  259. package/languages/typescript-tauri.md +365 -365
  260. package/package.json +121 -121
  261. package/skills/agents-md/SKILL.md +120 -120
  262. package/skills/arch-guard/SKILL.md +180 -180
  263. package/skills/brand-assets/SKILL.md +146 -146
  264. package/skills/capability-loop/SKILL.md +167 -167
  265. package/skills/characterization-test/SKILL.md +206 -206
  266. package/skills/commerce-patterns/SKILL.md +59 -59
  267. package/skills/commit-push-pr/SKILL.md +75 -75
  268. package/skills/context7-usage/SKILL.md +105 -105
  269. package/skills/core-capabilities/SKILL.md +48 -48
  270. package/skills/e2e-commerce/SKILL.md +57 -57
  271. package/skills/exec-plan/SKILL.md +147 -147
  272. package/skills/frontend-design/SKILL.md +73 -73
  273. package/skills/git-worktree/SKILL.md +72 -72
  274. package/skills/handoff/SKILL.md +109 -109
  275. package/skills/parallel-research/SKILL.md +87 -87
  276. package/skills/priority-todos/SKILL.md +63 -63
  277. package/skills/seo-checklist/SKILL.md +57 -57
  278. package/skills/techdebt/SKILL.md +122 -122
  279. package/skills/tool-fallback/SKILL.md +103 -103
  280. package/skills/typescript-advanced-types/SKILL.md +66 -65
  281. package/skills/ui-ux-pro-max/SKILL.md +206 -206
  282. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  283. package/skills/video-production/SKILL.md +51 -51
  284. package/vibe/config.json +29 -29
  285. package/vibe/constitution.md +227 -227
  286. package/vibe/rules/principles/communication-guide.md +98 -98
  287. package/vibe/rules/principles/development-philosophy.md +52 -52
  288. package/vibe/rules/principles/quick-start.md +102 -102
  289. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  290. package/vibe/rules/quality/checklist.md +276 -276
  291. package/vibe/rules/quality/performance.md +236 -236
  292. package/vibe/rules/quality/testing-strategy.md +440 -440
  293. package/vibe/rules/standards/anti-patterns.md +541 -541
  294. package/vibe/rules/standards/code-structure.md +291 -291
  295. package/vibe/rules/standards/complexity-metrics.md +313 -313
  296. package/vibe/rules/standards/git-workflow.md +237 -237
  297. package/vibe/rules/standards/naming-conventions.md +198 -198
  298. package/vibe/rules/standards/security.md +305 -305
  299. package/vibe/rules/writing/document-style.md +74 -74
  300. package/vibe/setup.sh +31 -31
  301. package/vibe/templates/constitution-template.md +252 -252
  302. package/vibe/templates/contract-backend-template.md +526 -526
  303. package/vibe/templates/contract-frontend-template.md +599 -599
  304. package/vibe/templates/feature-template.md +96 -96
  305. package/vibe/templates/spec-template.md +221 -221
  306. package/vibe/ui-ux-data/charts.csv +26 -26
  307. package/vibe/ui-ux-data/colors.csv +97 -97
  308. package/vibe/ui-ux-data/icons.csv +101 -101
  309. package/vibe/ui-ux-data/landing.csv +31 -31
  310. package/vibe/ui-ux-data/products.csv +96 -96
  311. package/vibe/ui-ux-data/react-performance.csv +45 -45
  312. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  313. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  314. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  315. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  316. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  317. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  318. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  319. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  320. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  321. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  322. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  323. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  324. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  325. package/vibe/ui-ux-data/styles.csv +68 -68
  326. package/vibe/ui-ux-data/typography.csv +57 -57
  327. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  328. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  329. package/vibe/ui-ux-data/version.json +31 -31
  330. package/vibe/ui-ux-data/web-interface.csv +31 -31
  331. package/commands/vibe.voice.md +0 -79
@@ -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
- 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
+ #### 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
@@ -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.**
@@ -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-5.2-Codex → [SQL injection, XSS]
34
- └─ Gemini-3-Flash → [SQL injection, CSRF]
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-5.2-Codex, Gemini-3-Flash
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 |