@su-record/vibe 2.5.11 → 2.5.13

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 (341) hide show
  1. package/CLAUDE.md +243 -0
  2. package/LICENSE +21 -21
  3. package/README.md +262 -262
  4. package/agents/architect-low.md +41 -41
  5. package/agents/architect-medium.md +59 -59
  6. package/agents/architect.md +80 -80
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/e2e-tester.md +266 -266
  11. package/agents/explorer-low.md +42 -42
  12. package/agents/explorer-medium.md +59 -59
  13. package/agents/explorer.md +48 -48
  14. package/agents/implementer-low.md +43 -43
  15. package/agents/implementer-medium.md +52 -52
  16. package/agents/implementer.md +54 -54
  17. package/agents/refactor-cleaner.md +143 -143
  18. package/agents/research/best-practices-agent.md +189 -189
  19. package/agents/research/codebase-patterns-agent.md +147 -147
  20. package/agents/research/framework-docs-agent.md +178 -178
  21. package/agents/research/security-advisory-agent.md +203 -203
  22. package/agents/review/architecture-reviewer.md +107 -107
  23. package/agents/review/complexity-reviewer.md +116 -116
  24. package/agents/review/data-integrity-reviewer.md +88 -88
  25. package/agents/review/git-history-reviewer.md +103 -103
  26. package/agents/review/performance-reviewer.md +86 -86
  27. package/agents/review/python-reviewer.md +150 -150
  28. package/agents/review/rails-reviewer.md +139 -139
  29. package/agents/review/react-reviewer.md +144 -144
  30. package/agents/review/security-reviewer.md +80 -80
  31. package/agents/review/simplicity-reviewer.md +140 -140
  32. package/agents/review/test-coverage-reviewer.md +116 -116
  33. package/agents/review/typescript-reviewer.md +127 -127
  34. package/agents/searcher.md +54 -54
  35. package/agents/simplifier.md +120 -120
  36. package/agents/tester.md +49 -49
  37. package/agents/ui-previewer.md +129 -129
  38. package/commands/vibe.analyze.md +356 -356
  39. package/commands/vibe.reason.md +329 -329
  40. package/commands/vibe.review.md +326 -326
  41. package/commands/vibe.run.md +1117 -1051
  42. package/commands/vibe.spec.md +1058 -1058
  43. package/commands/vibe.utils.md +353 -296
  44. package/commands/vibe.verify.md +375 -375
  45. package/dist/cli/collaborator.js +52 -52
  46. package/dist/cli/detect.js +32 -32
  47. package/dist/cli/index.js +102 -102
  48. package/dist/cli/llm.js +144 -144
  49. package/dist/cli/mcp.d.ts +49 -0
  50. package/dist/cli/mcp.d.ts.map +1 -0
  51. package/dist/cli/mcp.js +169 -0
  52. package/dist/cli/mcp.js.map +1 -0
  53. package/dist/cli/postinstall.js +180 -2
  54. package/dist/cli/postinstall.js.map +1 -1
  55. package/dist/cli/setup/GlobalInstaller.d.ts +24 -0
  56. package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -0
  57. package/dist/cli/setup/GlobalInstaller.js +130 -0
  58. package/dist/cli/setup/GlobalInstaller.js.map +1 -0
  59. package/dist/cli/setup/LanguageDetector.d.ts +16 -0
  60. package/dist/cli/setup/LanguageDetector.d.ts.map +1 -0
  61. package/dist/cli/setup/LanguageDetector.js +49 -0
  62. package/dist/cli/setup/LanguageDetector.js.map +1 -0
  63. package/dist/cli/setup/LegacyMigration.d.ts +25 -0
  64. package/dist/cli/setup/LegacyMigration.d.ts.map +1 -0
  65. package/dist/cli/setup/LegacyMigration.js +162 -0
  66. package/dist/cli/setup/LegacyMigration.js.map +1 -0
  67. package/dist/cli/setup/ProjectSetup.d.ts +30 -0
  68. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -0
  69. package/dist/cli/setup/ProjectSetup.js +238 -0
  70. package/dist/cli/setup/ProjectSetup.js.map +1 -0
  71. package/dist/cli/setup/index.d.ts +14 -0
  72. package/dist/cli/setup/index.d.ts.map +1 -0
  73. package/dist/cli/setup/index.js +18 -0
  74. package/dist/cli/setup/index.js.map +1 -0
  75. package/dist/cli/setup.d.ts +10 -77
  76. package/dist/cli/setup.d.ts.map +1 -1
  77. package/dist/cli/setup.js +15 -592
  78. package/dist/cli/setup.js.map +1 -1
  79. package/dist/lib/DeepInit.d.ts +0 -2
  80. package/dist/lib/DeepInit.d.ts.map +1 -1
  81. package/dist/lib/DeepInit.js +24 -26
  82. package/dist/lib/DeepInit.js.map +1 -1
  83. package/dist/lib/IterationTracker.d.ts +0 -2
  84. package/dist/lib/IterationTracker.d.ts.map +1 -1
  85. package/dist/lib/IterationTracker.js +11 -13
  86. package/dist/lib/IterationTracker.js.map +1 -1
  87. package/dist/lib/ModelRouter.d.ts +0 -2
  88. package/dist/lib/ModelRouter.d.ts.map +1 -1
  89. package/dist/lib/ModelRouter.js +0 -2
  90. package/dist/lib/ModelRouter.js.map +1 -1
  91. package/dist/lib/OrchestrateWorkflow.d.ts +1 -3
  92. package/dist/lib/OrchestrateWorkflow.d.ts.map +1 -1
  93. package/dist/lib/OrchestrateWorkflow.js +1 -3
  94. package/dist/lib/OrchestrateWorkflow.js.map +1 -1
  95. package/dist/lib/PythonParser.js +108 -108
  96. package/dist/lib/SkillFrontmatter.d.ts +0 -2
  97. package/dist/lib/SkillFrontmatter.d.ts.map +1 -1
  98. package/dist/lib/SkillFrontmatter.js +28 -30
  99. package/dist/lib/SkillFrontmatter.js.map +1 -1
  100. package/dist/lib/SkillQualityGate.d.ts +0 -2
  101. package/dist/lib/SkillQualityGate.d.ts.map +1 -1
  102. package/dist/lib/SkillQualityGate.js +9 -11
  103. package/dist/lib/SkillQualityGate.js.map +1 -1
  104. package/dist/lib/SkillRepository.d.ts +117 -0
  105. package/dist/lib/SkillRepository.d.ts.map +1 -0
  106. package/dist/lib/SkillRepository.js +477 -0
  107. package/dist/lib/SkillRepository.js.map +1 -0
  108. package/dist/lib/UltraQA.d.ts +0 -2
  109. package/dist/lib/UltraQA.d.ts.map +1 -1
  110. package/dist/lib/UltraQA.js +77 -79
  111. package/dist/lib/UltraQA.js.map +1 -1
  112. package/dist/lib/gemini-mcp.d.ts +10 -0
  113. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  114. package/dist/lib/gemini-mcp.js +353 -0
  115. package/dist/lib/gemini-mcp.js.map +1 -0
  116. package/dist/lib/gpt-api.js +4 -4
  117. package/dist/lib/gpt-mcp.d.ts +10 -0
  118. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  119. package/dist/lib/gpt-mcp.js +352 -0
  120. package/dist/lib/gpt-mcp.js.map +1 -0
  121. package/dist/lib/llm/auth/ApiKeyManager.d.ts +21 -0
  122. package/dist/lib/llm/auth/ApiKeyManager.d.ts.map +1 -0
  123. package/dist/lib/llm/auth/ApiKeyManager.js +43 -0
  124. package/dist/lib/llm/auth/ApiKeyManager.js.map +1 -0
  125. package/dist/lib/llm/auth/ConfigManager.d.ts +29 -0
  126. package/dist/lib/llm/auth/ConfigManager.d.ts.map +1 -0
  127. package/dist/lib/llm/auth/ConfigManager.js +67 -0
  128. package/dist/lib/llm/auth/ConfigManager.js.map +1 -0
  129. package/dist/lib/llm/auth/index.d.ts +25 -0
  130. package/dist/lib/llm/auth/index.d.ts.map +1 -0
  131. package/dist/lib/llm/auth/index.js +83 -0
  132. package/dist/lib/llm/auth/index.js.map +1 -0
  133. package/dist/lib/llm/index.d.ts +10 -0
  134. package/dist/lib/llm/index.d.ts.map +1 -0
  135. package/dist/lib/llm/index.js +12 -0
  136. package/dist/lib/llm/index.js.map +1 -0
  137. package/dist/lib/llm/types.d.ts +96 -0
  138. package/dist/lib/llm/types.d.ts.map +1 -0
  139. package/dist/lib/llm/types.js +17 -0
  140. package/dist/lib/llm/types.js.map +1 -0
  141. package/dist/lib/llm/utils/index.d.ts +6 -0
  142. package/dist/lib/llm/utils/index.d.ts.map +1 -0
  143. package/dist/lib/llm/utils/index.js +6 -0
  144. package/dist/lib/llm/utils/index.js.map +1 -0
  145. package/dist/lib/llm/utils/retry.d.ts +25 -0
  146. package/dist/lib/llm/utils/retry.d.ts.map +1 -0
  147. package/dist/lib/llm/utils/retry.js +72 -0
  148. package/dist/lib/llm/utils/retry.js.map +1 -0
  149. package/dist/lib/llm/utils/stream.d.ts +13 -0
  150. package/dist/lib/llm/utils/stream.d.ts.map +1 -0
  151. package/dist/lib/llm/utils/stream.js +110 -0
  152. package/dist/lib/llm/utils/stream.js.map +1 -0
  153. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  154. package/dist/lib/memory/MemorySearch.js +20 -20
  155. package/dist/lib/memory/MemoryStorage.js +64 -64
  156. package/dist/orchestrator/AgentExecutor.d.ts +23 -0
  157. package/dist/orchestrator/AgentExecutor.d.ts.map +1 -0
  158. package/dist/orchestrator/AgentExecutor.js +231 -0
  159. package/dist/orchestrator/AgentExecutor.js.map +1 -0
  160. package/dist/orchestrator/AgentManager.d.ts +73 -0
  161. package/dist/orchestrator/AgentManager.d.ts.map +1 -0
  162. package/dist/orchestrator/AgentManager.js +184 -0
  163. package/dist/orchestrator/AgentManager.js.map +1 -0
  164. package/dist/orchestrator/LLMCluster.d.ts +70 -0
  165. package/dist/orchestrator/LLMCluster.d.ts.map +1 -0
  166. package/dist/orchestrator/LLMCluster.js +91 -0
  167. package/dist/orchestrator/LLMCluster.js.map +1 -0
  168. package/dist/orchestrator/MultiLlmResearch.d.ts +27 -0
  169. package/dist/orchestrator/MultiLlmResearch.d.ts.map +1 -0
  170. package/dist/orchestrator/MultiLlmResearch.js +145 -0
  171. package/dist/orchestrator/MultiLlmResearch.js.map +1 -0
  172. package/dist/orchestrator/SessionStore.d.ts +41 -0
  173. package/dist/orchestrator/SessionStore.d.ts.map +1 -0
  174. package/dist/orchestrator/SessionStore.js +117 -0
  175. package/dist/orchestrator/SessionStore.js.map +1 -0
  176. package/dist/orchestrator/SmartRouter.d.ts +68 -0
  177. package/dist/orchestrator/SmartRouter.d.ts.map +1 -0
  178. package/dist/orchestrator/SmartRouter.js +256 -0
  179. package/dist/orchestrator/SmartRouter.js.map +1 -0
  180. package/dist/orchestrator/backgroundAgent.d.ts +10 -28
  181. package/dist/orchestrator/backgroundAgent.d.ts.map +1 -1
  182. package/dist/orchestrator/backgroundAgent.js +11 -346
  183. package/dist/orchestrator/backgroundAgent.js.map +1 -1
  184. package/dist/orchestrator/index.d.ts +3 -0
  185. package/dist/orchestrator/index.d.ts.map +1 -1
  186. package/dist/orchestrator/index.js +4 -0
  187. package/dist/orchestrator/index.js.map +1 -1
  188. package/dist/orchestrator/orchestrator.d.ts +19 -154
  189. package/dist/orchestrator/orchestrator.d.ts.map +1 -1
  190. package/dist/orchestrator/orchestrator.js +90 -514
  191. package/dist/orchestrator/orchestrator.js.map +1 -1
  192. package/dist/orchestrator/parallelResearch.d.ts +5 -12
  193. package/dist/orchestrator/parallelResearch.d.ts.map +1 -1
  194. package/dist/orchestrator/parallelResearch.js +10 -193
  195. package/dist/orchestrator/parallelResearch.js.map +1 -1
  196. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  197. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  198. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  199. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  200. package/dist/tools/analytics/index.d.ts +5 -0
  201. package/dist/tools/analytics/index.d.ts.map +1 -0
  202. package/dist/tools/analytics/index.js +5 -0
  203. package/dist/tools/analytics/index.js.map +1 -0
  204. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  205. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  206. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  207. package/dist/tools/convention/getCodingGuide.js +69 -0
  208. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  209. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  210. package/dist/tools/index.d.ts +2 -0
  211. package/dist/tools/index.d.ts.map +1 -1
  212. package/dist/tools/index.js +2 -0
  213. package/dist/tools/index.js.map +1 -1
  214. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  215. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  216. package/dist/tools/planning/analyzeRequirements.js +171 -0
  217. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  218. package/dist/tools/planning/createUserStories.d.ts +9 -0
  219. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  220. package/dist/tools/planning/createUserStories.js +124 -0
  221. package/dist/tools/planning/createUserStories.js.map +1 -0
  222. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  223. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  224. package/dist/tools/planning/featureRoadmap.js +207 -0
  225. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  226. package/dist/tools/planning/generatePrd.d.ts +11 -0
  227. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  228. package/dist/tools/planning/generatePrd.js +161 -0
  229. package/dist/tools/planning/generatePrd.js.map +1 -0
  230. package/dist/tools/planning/index.d.ts +8 -0
  231. package/dist/tools/planning/index.d.ts.map +1 -0
  232. package/dist/tools/planning/index.js +8 -0
  233. package/dist/tools/planning/index.js.map +1 -0
  234. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  235. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  236. package/dist/tools/prompt/analyzePrompt.js +150 -0
  237. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  238. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  239. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  240. package/dist/tools/prompt/enhancePrompt.js +110 -0
  241. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  242. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  243. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  244. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  245. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  246. package/dist/tools/prompt/index.d.ts +7 -0
  247. package/dist/tools/prompt/index.d.ts.map +1 -0
  248. package/dist/tools/prompt/index.js +7 -0
  249. package/dist/tools/prompt/index.js.map +1 -0
  250. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  251. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  252. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  253. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  254. package/dist/tools/reasoning/index.d.ts +5 -0
  255. package/dist/tools/reasoning/index.d.ts.map +1 -0
  256. package/dist/tools/reasoning/index.js +5 -0
  257. package/dist/tools/reasoning/index.js.map +1 -0
  258. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  259. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  260. package/dist/tools/thinking/analyzeProblem.js +55 -0
  261. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  262. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  263. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  264. package/dist/tools/thinking/breakDownProblem.js +145 -0
  265. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  266. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  267. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  268. package/dist/tools/thinking/createThinkingChain.js +44 -0
  269. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  270. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  271. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  272. package/dist/tools/thinking/formatAsPlan.js +78 -0
  273. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  274. package/dist/tools/thinking/index.d.ts +10 -0
  275. package/dist/tools/thinking/index.d.ts.map +1 -0
  276. package/dist/tools/thinking/index.js +10 -0
  277. package/dist/tools/thinking/index.js.map +1 -0
  278. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  279. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  280. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  281. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  282. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  283. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  284. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  285. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  286. package/hooks/hooks.json +222 -222
  287. package/hooks/scripts/code-check.js +22 -22
  288. package/hooks/scripts/code-review.js +22 -22
  289. package/hooks/scripts/complexity.js +22 -22
  290. package/hooks/scripts/compound.js +23 -23
  291. package/hooks/scripts/context-save.js +33 -33
  292. package/hooks/scripts/generate-brand-assets.js +472 -0
  293. package/hooks/scripts/hud-multiline.js +262 -264
  294. package/hooks/scripts/hud-status.js +291 -293
  295. package/hooks/scripts/keyword-detector.js +214 -216
  296. package/hooks/scripts/llm-orchestrate.js +171 -171
  297. package/hooks/scripts/post-edit.js +97 -97
  298. package/hooks/scripts/post-tool-verify.js +210 -212
  299. package/hooks/scripts/pre-tool-guard.js +125 -127
  300. package/hooks/scripts/recall.js +22 -22
  301. package/hooks/scripts/session-start.js +30 -30
  302. package/hooks/scripts/skill-injector.js +191 -193
  303. package/hooks/scripts/utils.js +97 -97
  304. package/languages/csharp-unity.md +515 -515
  305. package/languages/gdscript-godot.md +470 -470
  306. package/languages/ruby-rails.md +489 -489
  307. package/languages/typescript-angular.md +433 -433
  308. package/languages/typescript-astro.md +416 -416
  309. package/languages/typescript-electron.md +406 -406
  310. package/languages/typescript-nestjs.md +524 -524
  311. package/languages/typescript-svelte.md +407 -407
  312. package/languages/typescript-tauri.md +365 -365
  313. package/package.json +83 -83
  314. package/skills/brand-assets.md +141 -0
  315. package/skills/commerce-patterns.md +361 -0
  316. package/skills/context7-usage.md +102 -102
  317. package/skills/e2e-commerce.md +304 -0
  318. package/skills/frontend-design.md +92 -0
  319. package/skills/git-worktree.md +181 -181
  320. package/skills/parallel-research.md +77 -77
  321. package/skills/priority-todos.md +239 -239
  322. package/skills/seo-checklist.md +244 -0
  323. package/skills/tool-fallback.md +190 -190
  324. package/skills/vibe-capabilities.md +161 -161
  325. package/vibe/constitution.md +227 -227
  326. package/vibe/rules/core/communication-guide.md +98 -98
  327. package/vibe/rules/core/development-philosophy.md +52 -52
  328. package/vibe/rules/core/quick-start.md +102 -102
  329. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  330. package/vibe/rules/quality/checklist.md +276 -276
  331. package/vibe/rules/quality/testing-strategy.md +440 -440
  332. package/vibe/rules/standards/anti-patterns.md +541 -541
  333. package/vibe/rules/standards/code-structure.md +291 -291
  334. package/vibe/rules/standards/complexity-metrics.md +313 -313
  335. package/vibe/rules/standards/naming-conventions.md +198 -198
  336. package/vibe/setup.sh +31 -31
  337. package/vibe/templates/constitution-template.md +252 -252
  338. package/vibe/templates/contract-backend-template.md +526 -526
  339. package/vibe/templates/contract-frontend-template.md +599 -599
  340. package/vibe/templates/feature-template.md +96 -96
  341. package/vibe/templates/spec-template.md +221 -221
@@ -56,64 +56,64 @@ export function setupCollaboratorAutoInstall(projectRoot) {
56
56
  fs.mkdirSync(vibeDir, { recursive: true });
57
57
  }
58
58
  if (!fs.existsSync(setupShPath)) {
59
- const setupScript = `#!/bin/bash
60
- # Vibe collaborator auto-install script
61
- # Usage: ./.claude/vibe/setup.sh
62
-
63
- set -e
64
-
65
- echo "🔧 Checking Vibe installation..."
66
-
67
- # Check npm/npx
68
- if ! command -v npx &> /dev/null; then
69
- echo "❌ Node.js/npm is not installed."
70
- echo " Please install from https://nodejs.org"
71
- exit 1
72
- fi
73
-
74
- # Check vibe installation and update
75
- if command -v vibe &> /dev/null; then
76
- echo "✅ Vibe is already installed."
77
- vibe update --silent
78
- echo "✅ Vibe updated!"
79
- else
80
- echo "📦 Installing Vibe..."
81
- npm install -g @su-record/vibe
82
- vibe update --silent
83
- echo "✅ Vibe installed and configured!"
84
- fi
85
-
86
- echo ""
87
- echo "Get started with:"
88
- echo " /vibe.spec \\"feature\\" Create SPEC"
89
- echo " /vibe.run \\"feature\\" Implement"
59
+ const setupScript = `#!/bin/bash
60
+ # Vibe collaborator auto-install script
61
+ # Usage: ./.claude/vibe/setup.sh
62
+
63
+ set -e
64
+
65
+ echo "🔧 Checking Vibe installation..."
66
+
67
+ # Check npm/npx
68
+ if ! command -v npx &> /dev/null; then
69
+ echo "❌ Node.js/npm is not installed."
70
+ echo " Please install from https://nodejs.org"
71
+ exit 1
72
+ fi
73
+
74
+ # Check vibe installation and update
75
+ if command -v vibe &> /dev/null; then
76
+ echo "✅ Vibe is already installed."
77
+ vibe update --silent
78
+ echo "✅ Vibe updated!"
79
+ else
80
+ echo "📦 Installing Vibe..."
81
+ npm install -g @su-record/vibe
82
+ vibe update --silent
83
+ echo "✅ Vibe installed and configured!"
84
+ fi
85
+
86
+ echo ""
87
+ echo "Get started with:"
88
+ echo " /vibe.spec \\"feature\\" Create SPEC"
89
+ echo " /vibe.run \\"feature\\" Implement"
90
90
  `;
91
91
  fs.writeFileSync(setupShPath, setupScript);
92
92
  fs.chmodSync(setupShPath, '755');
93
93
  }
94
94
  // 3. README.md에 협업자 안내 추가
95
95
  const readmePath = path.join(projectRoot, 'README.md');
96
- const vibeSetupSection = `
97
- ## Vibe Setup (AI Coding)
98
-
99
- This project uses [Vibe](https://github.com/su-record/vibe) AI coding framework.
100
-
101
- ### Collaborator Install
102
-
103
- \`\`\`bash
104
- # Global install (recommended)
105
- npm install -g @su-record/vibe
106
- vibe update
107
-
108
- # Or use vibe init to setup
109
- vibe init
110
- \`\`\`
111
-
112
- ### Usage
113
-
114
- Use slash commands in Claude Code:
115
- - \`/vibe.spec "feature"\` - Create SPEC document
116
- - \`/vibe.run "feature"\` - Execute implementation
96
+ const vibeSetupSection = `
97
+ ## Vibe Setup (AI Coding)
98
+
99
+ This project uses [Vibe](https://github.com/su-record/vibe) AI coding framework.
100
+
101
+ ### Collaborator Install
102
+
103
+ \`\`\`bash
104
+ # Global install (recommended)
105
+ npm install -g @su-record/vibe
106
+ vibe update
107
+
108
+ # Or use vibe init to setup
109
+ vibe init
110
+ \`\`\`
111
+
112
+ ### Usage
113
+
114
+ Use slash commands in Claude Code:
115
+ - \`/vibe.spec "feature"\` - Create SPEC document
116
+ - \`/vibe.run "feature"\` - Execute implementation
117
117
  `;
118
118
  if (fs.existsSync(readmePath)) {
119
119
  const readme = fs.readFileSync(readmePath, 'utf-8');
@@ -301,45 +301,45 @@ export function getLanguageRulesForStacks(stacks) {
301
301
  * 언어별 CLAUDE.md 규칙
302
302
  */
303
303
  export const LANGUAGE_RULES = {
304
- typescript: `### TypeScript Rules
305
- - No \`any\` type → use \`unknown\` + type guards
306
- - No \`as any\` casting → define proper interfaces
307
- - No \`@ts-ignore\` → fix type issues at root
304
+ typescript: `### TypeScript Rules
305
+ - No \`any\` type → use \`unknown\` + type guards
306
+ - No \`as any\` casting → define proper interfaces
307
+ - No \`@ts-ignore\` → fix type issues at root
308
308
  - Explicit return types on all functions`,
309
- python: `### Python Rules
310
- - Type hints required (parameters, return values)
311
- - No \`# type: ignore\` → fix type issues at root
312
- - Prefer f-strings (over format())
309
+ python: `### Python Rules
310
+ - Type hints required (parameters, return values)
311
+ - No \`# type: ignore\` → fix type issues at root
312
+ - Prefer f-strings (over format())
313
313
  - Use list comprehensions appropriately`,
314
- go: `### Go Rules
315
- - Handle errors immediately (if err != nil)
316
- - Explicit error wrapping (fmt.Errorf with %w)
317
- - Define interfaces at point of use
314
+ go: `### Go Rules
315
+ - Handle errors immediately (if err != nil)
316
+ - Explicit error wrapping (fmt.Errorf with %w)
317
+ - Define interfaces at point of use
318
318
  - Prevent goroutine leaks (use context)`,
319
- rust: `### Rust Rules
320
- - No unwrap()/expect() in production → handle Result/Option
321
- - Minimize unsafe blocks
322
- - Define explicit error types
319
+ rust: `### Rust Rules
320
+ - No unwrap()/expect() in production → handle Result/Option
321
+ - Minimize unsafe blocks
322
+ - Define explicit error types
323
323
  - Document ownership/lifetime clearly`,
324
- java: `### Java Rules
325
- - Use Optional (instead of null)
326
- - Prefer immutable objects (final fields)
327
- - Handle checked exceptions properly
324
+ java: `### Java Rules
325
+ - Use Optional (instead of null)
326
+ - Prefer immutable objects (final fields)
327
+ - Handle checked exceptions properly
328
328
  - Utilize Stream API`,
329
- kotlin: `### Kotlin Rules
330
- - Explicit nullable types (?)
331
- - No !! operator → use safe call (?.)
332
- - Use data classes actively
329
+ kotlin: `### Kotlin Rules
330
+ - Explicit nullable types (?)
331
+ - No !! operator → use safe call (?.)
332
+ - Use data classes actively
333
333
  - Implement utilities as extension functions`,
334
- dart: `### Dart Rules
335
- - Follow null safety (use ? and ! properly)
336
- - Avoid late keyword abuse
337
- - Use const constructors
334
+ dart: `### Dart Rules
335
+ - Follow null safety (use ? and ! properly)
336
+ - Avoid late keyword abuse
337
+ - Use const constructors
338
338
  - Use async/await for async code`,
339
- swift: `### Swift Rules
340
- - No force unwrapping → use guard let / if let
341
- - Prefer protocol-oriented programming
342
- - Prefer value types (struct)
339
+ swift: `### Swift Rules
340
+ - No force unwrapping → use guard let / if let
341
+ - Prefer protocol-oriented programming
342
+ - Prefer value types (struct)
343
343
  - Watch memory management with @escaping closures`
344
344
  };
345
345
  /**
package/dist/cli/index.js CHANGED
@@ -85,11 +85,11 @@ async function init(projectName) {
85
85
  installProjectHooks(projectRoot);
86
86
  // 완료 메시지
87
87
  const packageJson = getPackageJson();
88
- log(`✅ vibe initialized (v${packageJson.version})
89
- ${formatLLMStatus()}
90
- 📦 Context7 plugin (recommended): /plugin install context7
91
-
92
- Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
88
+ log(`✅ vibe initialized (v${packageJson.version})
89
+ ${formatLLMStatus()}
90
+ 📦 Context7 plugin (recommended): /plugin install context7
91
+
92
+ Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
93
93
  `);
94
94
  }
95
95
  catch (error) {
@@ -179,9 +179,9 @@ async function update() {
179
179
  // 레거시 mcp 폴더 정리
180
180
  cleanupLegacyMcp(vibeDir);
181
181
  const packageJson = getPackageJson();
182
- log(`✅ vibe updated (v${packageJson.version})
183
- ${formatLLMStatus()}
184
- 📦 Context7 plugin (recommended): /plugin install context7
182
+ log(`✅ vibe updated (v${packageJson.version})
183
+ ${formatLLMStatus()}
184
+ 📦 Context7 plugin (recommended): /plugin install context7
185
185
  `);
186
186
  }
187
187
  catch (error) {
@@ -247,63 +247,63 @@ function remove() {
247
247
  }
248
248
  catch { /* ignore: optional operation */ }
249
249
  }
250
- console.log(`
251
- ✅ vibe removed!
252
-
253
- Removed:
254
- - MCP server (context7)
255
- - .claude/vibe/ folder
256
- - Slash commands (7)
257
- - Subagents (5)
258
- - Hooks settings
259
-
260
- To reinstall: vibe init
250
+ console.log(`
251
+ ✅ vibe removed!
252
+
253
+ Removed:
254
+ - MCP server (context7)
255
+ - .claude/vibe/ folder
256
+ - Slash commands (7)
257
+ - Subagents (5)
258
+ - Hooks settings
259
+
260
+ To reinstall: vibe init
261
261
  `);
262
262
  }
263
263
  // ============================================================================
264
264
  // Info Commands
265
265
  // ============================================================================
266
266
  function showHelp() {
267
- console.log(`
268
- 📖 Vibe - SPEC-driven AI coding framework (Claude Code exclusive)
269
-
270
- Commands:
271
- vibe init [project] Initialize project
272
- vibe update Update settings
273
- vibe status Show status
274
- vibe help Help
275
- vibe version Version
276
-
277
- GPT:
278
- vibe gpt auth OAuth authentication (Plus/Pro)
279
- vibe gpt key <KEY> Set API key
280
- vibe gpt status Check status
281
- vibe gpt logout Logout
282
- vibe gpt remove Remove config
283
-
284
- Gemini:
285
- vibe gemini auth OAuth authentication
286
- vibe gemini key <KEY> Set API key
287
- vibe gemini status Check status
288
- vibe gemini logout Logout
289
- vibe gemini remove Remove config
290
-
291
- Slash Commands (Claude Code):
292
- /vibe.spec "feature" Create SPEC + parallel research
293
- /vibe.run "feature" Execute implementation
294
- /vibe.verify "feature" BDD verification
295
- /vibe.review Parallel code review (13+ agents)
296
- /vibe.reason "problem" Systematic reasoning
297
- /vibe.analyze Project analysis
298
- /vibe.utils Utilities (--e2e, --diagram, --continue)
299
-
300
- LLM Routing:
301
- gpt. / gemini. Direct LLM call with web search
302
- Auto-routing via hooks (architecture→GPT, UI/UX→Gemini)
303
-
304
- Workflow: /vibe.spec → /vibe.run → /vibe.verify
305
-
306
- Docs: https://github.com/su-record/vibe
267
+ console.log(`
268
+ 📖 Vibe - SPEC-driven AI coding framework (Claude Code exclusive)
269
+
270
+ Commands:
271
+ vibe init [project] Initialize project
272
+ vibe update Update settings
273
+ vibe status Show status
274
+ vibe help Help
275
+ vibe version Version
276
+
277
+ GPT:
278
+ vibe gpt auth OAuth authentication (Plus/Pro)
279
+ vibe gpt key <KEY> Set API key
280
+ vibe gpt status Check status
281
+ vibe gpt logout Logout
282
+ vibe gpt remove Remove config
283
+
284
+ Gemini:
285
+ vibe gemini auth OAuth authentication
286
+ vibe gemini key <KEY> Set API key
287
+ vibe gemini status Check status
288
+ vibe gemini logout Logout
289
+ vibe gemini remove Remove config
290
+
291
+ Slash Commands (Claude Code):
292
+ /vibe.spec "feature" Create SPEC + parallel research
293
+ /vibe.run "feature" Execute implementation
294
+ /vibe.verify "feature" BDD verification
295
+ /vibe.review Parallel code review (13+ agents)
296
+ /vibe.reason "problem" Systematic reasoning
297
+ /vibe.analyze Project analysis
298
+ /vibe.utils Utilities (--e2e, --diagram, --continue)
299
+
300
+ LLM Routing:
301
+ gpt. / gemini. Direct LLM call with web search
302
+ Auto-routing via hooks (architecture→GPT, UI/UX→Gemini)
303
+
304
+ Workflow: /vibe.spec → /vibe.run → /vibe.verify
305
+
306
+ Docs: https://github.com/su-record/vibe
307
307
  `);
308
308
  }
309
309
  function showStatus() {
@@ -341,21 +341,21 @@ function showStatus() {
341
341
  else if (config.models?.gemini?.enabled) {
342
342
  geminiStatusText = '⚠️ Configured (auth required)';
343
343
  }
344
- console.log(`
345
- 📊 Vibe Status (v${packageJson.version})
346
-
347
- Project: ${projectRoot}
348
- Language: ${config.language || 'ko'}
349
-
350
- Models:
351
- Opus 4.5 Orchestrator
352
- Sonnet 4 Implementation
353
- Haiku 4.5 Code exploration
354
- GPT 5.2 ${gptStatusText}
355
- Gemini 3 ${geminiStatusText}
356
-
357
- MCP:
358
- context7 Library docs search
344
+ console.log(`
345
+ 📊 Vibe Status (v${packageJson.version})
346
+
347
+ Project: ${projectRoot}
348
+ Language: ${config.language || 'ko'}
349
+
350
+ Models:
351
+ Opus 4.5 Orchestrator
352
+ Sonnet 4 Implementation
353
+ Haiku 4.5 Code exploration
354
+ GPT 5.2 ${gptStatusText}
355
+ Gemini 3 ${geminiStatusText}
356
+
357
+ MCP:
358
+ context7 Library docs search
359
359
  `);
360
360
  }
361
361
  function showVersion() {
@@ -434,13 +434,13 @@ switch (command) {
434
434
  gptStatus();
435
435
  break;
436
436
  default:
437
- console.log(`
438
- GPT Commands:
439
- vibe gpt auth OAuth authentication (Plus/Pro)
440
- vibe gpt key Set API key
441
- vibe gpt status Check status
442
- vibe gpt logout Logout
443
- vibe gpt remove Remove config
437
+ console.log(`
438
+ GPT Commands:
439
+ vibe gpt auth OAuth authentication (Plus/Pro)
440
+ vibe gpt key Set API key
441
+ vibe gpt status Check status
442
+ vibe gpt logout Logout
443
+ vibe gpt remove Remove config
444
444
  `);
445
445
  }
446
446
  break;
@@ -472,13 +472,13 @@ GPT Commands:
472
472
  geminiStatus();
473
473
  break;
474
474
  default:
475
- console.log(`
476
- Gemini Commands:
477
- vibe gemini auth OAuth authentication
478
- vibe gemini key Set API key
479
- vibe gemini status Check status
480
- vibe gemini logout Logout
481
- vibe gemini remove Remove config
475
+ console.log(`
476
+ Gemini Commands:
477
+ vibe gemini auth OAuth authentication
478
+ vibe gemini key Set API key
479
+ vibe gemini status Check status
480
+ vibe gemini logout Logout
481
+ vibe gemini remove Remove config
482
482
  `);
483
483
  }
484
484
  break;
@@ -498,20 +498,20 @@ Gemini Commands:
498
498
  showHelp();
499
499
  break;
500
500
  default:
501
- console.log(`
502
- ❌ Unknown command: ${command}
503
-
504
- Available commands:
505
- vibe init Initialize project
506
- vibe update Update settings
507
- vibe gpt <cmd> GPT commands (auth, key, status, logout)
508
- vibe gemini <cmd> Gemini commands (auth, key, status, logout)
509
- vibe status Show status
510
- vibe remove Remove vibe
511
- vibe help Help
512
- vibe version Version info
513
-
514
- Usage: vibe help
501
+ console.log(`
502
+ ❌ Unknown command: ${command}
503
+
504
+ Available commands:
505
+ vibe init Initialize project
506
+ vibe update Update settings
507
+ vibe gpt <cmd> GPT commands (auth, key, status, logout)
508
+ vibe gemini <cmd> Gemini commands (auth, key, status, logout)
509
+ vibe status Show status
510
+ vibe remove Remove vibe
511
+ vibe help Help
512
+ vibe version Version info
513
+
514
+ Usage: vibe help
515
515
  `);
516
516
  process.exit(1);
517
517
  }