@su-record/vibe 2.7.16 → 2.7.18

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 (249) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +153 -134
  3. package/LICENSE +21 -21
  4. package/README.md +449 -449
  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 -294
  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 -258
  54. package/commands/vibe.analyze.md +379 -379
  55. package/commands/vibe.review.md +607 -607
  56. package/commands/vibe.run.md +2124 -2124
  57. package/commands/vibe.spec.md +1195 -1195
  58. package/commands/vibe.spec.review.md +569 -569
  59. package/commands/vibe.utils.md +413 -413
  60. package/commands/vibe.verify.md +484 -484
  61. package/dist/cli/collaborator.js +52 -52
  62. package/dist/cli/commands/evolution.js +12 -12
  63. package/dist/cli/commands/info.js +51 -51
  64. package/dist/cli/commands/init.js +5 -5
  65. package/dist/cli/commands/remove.js +14 -14
  66. package/dist/cli/commands/sentinel.js +27 -27
  67. package/dist/cli/commands/skills.js +5 -5
  68. package/dist/cli/commands/slack.js +10 -10
  69. package/dist/cli/commands/telegram.js +12 -12
  70. package/dist/cli/commands/upgrade.d.ts +3 -3
  71. package/dist/cli/commands/upgrade.d.ts.map +1 -1
  72. package/dist/cli/commands/upgrade.js +24 -3
  73. package/dist/cli/commands/upgrade.js.map +1 -1
  74. package/dist/cli/detect.js +32 -32
  75. package/dist/cli/index.js +51 -51
  76. package/dist/cli/llm/claude-commands.js +16 -16
  77. package/dist/cli/llm/config.js +18 -18
  78. package/dist/cli/llm/gemini-commands.js +16 -16
  79. package/dist/cli/llm/gpt-commands.js +19 -19
  80. package/dist/cli/llm/help.js +21 -21
  81. package/dist/cli/postinstall/cursor-agents.js +32 -32
  82. package/dist/cli/postinstall/cursor-rules.js +83 -83
  83. package/dist/cli/postinstall/cursor-skills.js +743 -743
  84. package/dist/cli/setup/Provisioner.js +42 -42
  85. package/dist/infra/lib/DeepInit.js +24 -24
  86. package/dist/infra/lib/IterationTracker.js +11 -11
  87. package/dist/infra/lib/PythonParser.js +108 -108
  88. package/dist/infra/lib/ReviewRace.js +96 -96
  89. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  90. package/dist/infra/lib/SkillQualityGate.js +9 -9
  91. package/dist/infra/lib/SkillRepository.js +159 -159
  92. package/dist/infra/lib/UltraQA.js +99 -99
  93. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  94. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  95. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  96. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  97. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  98. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  99. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  100. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  101. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  102. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  103. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  104. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  105. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  106. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  107. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  108. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  109. package/dist/infra/lib/gemini/orchestration.js +5 -5
  110. package/dist/infra/lib/gpt/orchestration.js +4 -4
  111. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  112. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  113. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  114. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  115. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  116. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  117. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  118. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  119. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts +52 -0
  120. package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -0
  121. package/dist/infra/lib/telemetry/SkillTelemetry.js +117 -0
  122. package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -0
  123. package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts +2 -0
  124. package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts.map +1 -0
  125. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +91 -0
  126. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -0
  127. package/dist/infra/orchestrator/AgentManager.js +12 -12
  128. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  129. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  130. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  131. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  132. package/dist/test-helpers/index.d.ts +36 -0
  133. package/dist/test-helpers/index.d.ts.map +1 -0
  134. package/dist/test-helpers/index.js +85 -0
  135. package/dist/test-helpers/index.js.map +1 -0
  136. package/dist/test-helpers/index.test.d.ts +2 -0
  137. package/dist/test-helpers/index.test.d.ts.map +1 -0
  138. package/dist/test-helpers/index.test.js +92 -0
  139. package/dist/test-helpers/index.test.js.map +1 -0
  140. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  141. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  142. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  143. package/dist/tools/memory/getMemoryGraph.js +12 -12
  144. package/dist/tools/memory/getSessionContext.js +9 -9
  145. package/dist/tools/memory/linkMemories.js +14 -14
  146. package/dist/tools/memory/listMemories.js +4 -4
  147. package/dist/tools/memory/recallMemory.js +4 -4
  148. package/dist/tools/memory/saveMemory.js +4 -4
  149. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  150. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  151. package/dist/tools/semantic/astGrep.test.js +6 -6
  152. package/dist/tools/spec/prdParser.test.js +171 -171
  153. package/dist/tools/spec/specGenerator.js +169 -169
  154. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  155. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  156. package/hooks/gemini-hooks.json +73 -73
  157. package/hooks/hooks.json +137 -137
  158. package/hooks/scripts/code-check.js +77 -77
  159. package/hooks/scripts/context-save.js +212 -212
  160. package/hooks/scripts/hud-status.js +291 -291
  161. package/hooks/scripts/keyword-detector.js +214 -214
  162. package/hooks/scripts/llm-orchestrate.js +475 -475
  163. package/hooks/scripts/post-edit.js +32 -32
  164. package/hooks/scripts/pre-tool-guard.js +125 -125
  165. package/hooks/scripts/prompt-dispatcher.js +185 -185
  166. package/hooks/scripts/sentinel-guard.js +104 -104
  167. package/hooks/scripts/session-start.js +106 -106
  168. package/hooks/scripts/stop-notify.js +209 -209
  169. package/hooks/scripts/utils.js +100 -100
  170. package/languages/csharp-unity.md +515 -515
  171. package/languages/gdscript-godot.md +470 -470
  172. package/languages/ruby-rails.md +489 -489
  173. package/languages/typescript-angular.md +433 -433
  174. package/languages/typescript-astro.md +416 -416
  175. package/languages/typescript-electron.md +406 -406
  176. package/languages/typescript-nestjs.md +524 -524
  177. package/languages/typescript-svelte.md +407 -407
  178. package/languages/typescript-tauri.md +365 -365
  179. package/package.json +123 -121
  180. package/skills/agents-md/SKILL.md +120 -120
  181. package/skills/arch-guard/SKILL.md +180 -180
  182. package/skills/brand-assets/SKILL.md +146 -146
  183. package/skills/capability-loop/SKILL.md +167 -167
  184. package/skills/characterization-test/SKILL.md +206 -206
  185. package/skills/commerce-patterns/SKILL.md +63 -63
  186. package/skills/commit-push-pr/SKILL.md +75 -75
  187. package/skills/context7-usage/SKILL.md +105 -105
  188. package/skills/core-capabilities/SKILL.md +13 -13
  189. package/skills/e2e-commerce/SKILL.md +61 -61
  190. package/skills/exec-plan/SKILL.md +147 -147
  191. package/skills/frontend-design/SKILL.md +12 -12
  192. package/skills/git-worktree/SKILL.md +72 -72
  193. package/skills/handoff/SKILL.md +109 -109
  194. package/skills/parallel-research/SKILL.md +87 -87
  195. package/skills/priority-todos/SKILL.md +63 -63
  196. package/skills/seo-checklist/SKILL.md +57 -57
  197. package/skills/techdebt/SKILL.md +122 -122
  198. package/skills/tool-fallback/SKILL.md +103 -103
  199. package/skills/typescript-advanced-types/SKILL.md +66 -66
  200. package/skills/ui-ux-pro-max/SKILL.md +221 -221
  201. package/skills/vercel-react-best-practices/SKILL.md +59 -59
  202. package/skills/video-production/SKILL.md +51 -51
  203. package/vibe/config.json +29 -29
  204. package/vibe/constitution.md +227 -227
  205. package/vibe/rules/principles/communication-guide.md +98 -98
  206. package/vibe/rules/principles/development-philosophy.md +52 -52
  207. package/vibe/rules/principles/quick-start.md +102 -102
  208. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  209. package/vibe/rules/quality/checklist.md +276 -276
  210. package/vibe/rules/quality/performance.md +236 -236
  211. package/vibe/rules/quality/testing-strategy.md +440 -440
  212. package/vibe/rules/standards/anti-patterns.md +541 -541
  213. package/vibe/rules/standards/code-structure.md +291 -291
  214. package/vibe/rules/standards/complexity-metrics.md +313 -313
  215. package/vibe/rules/standards/git-workflow.md +237 -237
  216. package/vibe/rules/standards/naming-conventions.md +198 -198
  217. package/vibe/rules/standards/security.md +305 -305
  218. package/vibe/rules/writing/document-style.md +74 -74
  219. package/vibe/setup.sh +31 -31
  220. package/vibe/templates/constitution-template.md +252 -252
  221. package/vibe/templates/contract-backend-template.md +526 -526
  222. package/vibe/templates/contract-frontend-template.md +599 -599
  223. package/vibe/templates/feature-template.md +96 -96
  224. package/vibe/templates/spec-template.md +221 -221
  225. package/vibe/ui-ux-data/charts.csv +26 -26
  226. package/vibe/ui-ux-data/colors.csv +97 -97
  227. package/vibe/ui-ux-data/icons.csv +101 -101
  228. package/vibe/ui-ux-data/landing.csv +31 -31
  229. package/vibe/ui-ux-data/products.csv +96 -96
  230. package/vibe/ui-ux-data/react-performance.csv +45 -45
  231. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  232. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  233. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  234. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  235. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  236. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  237. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  238. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  239. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  240. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  241. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  242. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  243. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  244. package/vibe/ui-ux-data/styles.csv +68 -68
  245. package/vibe/ui-ux-data/typography.csv +57 -57
  246. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  247. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  248. package/vibe/ui-ux-data/version.json +31 -31
  249. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -56,64 +56,64 @@ export function setupCollaboratorAutoInstall(projectRoot) {
56
56
  fs.mkdirSync(coreDir, { recursive: true });
57
57
  }
58
58
  if (!fs.existsSync(setupShPath)) {
59
- const setupScript = `#!/bin/bash
60
- # Core collaborator auto-install script
61
- # Usage: ./.claude/vibe/setup.sh
62
-
63
- set -e
64
-
65
- echo "🔧 Checking Core 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 core installation and update
75
- if command -v vibe &> /dev/null; then
76
- echo "✅ Core is already installed."
77
- vibe update --silent
78
- echo "✅ Core updated!"
79
- else
80
- echo "📦 Installing Core..."
81
- npm install -g @su-record/vibe
82
- vibe update --silent
83
- echo "✅ Core 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
+ # Core collaborator auto-install script
61
+ # Usage: ./.claude/vibe/setup.sh
62
+
63
+ set -e
64
+
65
+ echo "🔧 Checking Core 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 core installation and update
75
+ if command -v vibe &> /dev/null; then
76
+ echo "✅ Core is already installed."
77
+ vibe update --silent
78
+ echo "✅ Core updated!"
79
+ else
80
+ echo "📦 Installing Core..."
81
+ npm install -g @su-record/vibe
82
+ vibe update --silent
83
+ echo "✅ Core 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 coreSetupSection = `
97
- ## Core 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 coreSetupSection = `
97
+ ## Core 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');
@@ -193,18 +193,18 @@ export function evolutionGaps() {
193
193
  }
194
194
  }
195
195
  export function evolutionHelp() {
196
- console.log(`
197
- Evolution Commands:
198
- vibe evolution status Show overall status
199
- vibe evolution list List all generations
200
- vibe evolution approve <id> Approve draft → testing
201
- vibe evolution reject <id> Reject draft
202
- vibe evolution disable <id> Disable a generation
203
- vibe evolution rollback <id> Rollback to previous version
204
- vibe evolution disable-all Emergency disable all
205
- vibe evolution run Manual evolution cycle
206
- vibe evolution insights Show confirmed insights
207
- vibe evolution gaps Show detected skill gaps
196
+ console.log(`
197
+ Evolution Commands:
198
+ vibe evolution status Show overall status
199
+ vibe evolution list List all generations
200
+ vibe evolution approve <id> Approve draft → testing
201
+ vibe evolution reject <id> Reject draft
202
+ vibe evolution disable <id> Disable a generation
203
+ vibe evolution rollback <id> Rollback to previous version
204
+ vibe evolution disable-all Emergency disable all
205
+ vibe evolution run Manual evolution cycle
206
+ vibe evolution insights Show confirmed insights
207
+ vibe evolution gaps Show detected skill gaps
208
208
  `);
209
209
  }
210
210
  //# sourceMappingURL=evolution.js.map
@@ -10,41 +10,41 @@ import { detectCodexCli, detectGeminiCli } from '../utils/cli-detector.js';
10
10
  * 도움말 표시
11
11
  */
12
12
  export function showHelp() {
13
- console.log(`
14
- VIBE - Personalized AI Agent (Claude Code exclusive)
15
-
16
- Commands:
17
- vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
18
- vibe init [project] 프로젝트 초기화
19
- vibe update 설정 업데이트
20
- vibe upgrade 최신 버전으로 업그레이드
21
- vibe remove 프로젝트에서 제거
22
- vibe status 전체 상태 확인
23
-
24
- LLM:
25
- vibe claude <cmd> Claude (key, status, logout)
26
- vibe gpt <cmd> GPT (auth, key, status, logout)
27
- vibe gemini <cmd> Gemini (auth, key, status, logout)
28
- vibe env import [path] .env → ~/.vibe/config.json 가져오기
29
-
30
- Skills:
31
- vibe skills add <pkg> Install skill from skills.sh
32
-
33
- Channels:
34
- vibe telegram <cmd> Telegram (setup, chat, status)
35
- vibe slack <cmd> Slack (setup, channel, status)
36
-
37
- Slash Commands (Claude Code):
38
- /vibe.spec "feature" SPEC 작성 + 리서치
39
- /vibe.run "feature" 구현 실행
40
- /vibe.verify "feature" BDD 검증
41
- /vibe.review 병렬 코드 리뷰 (13+ agents)
42
- /vibe.reason "problem" 체계적 추론
43
- /vibe.analyze 프로젝트 분석
44
- /vibe.trace "feature" 요구사항 추적 매트릭스
45
- /vibe.utils 유틸리티 (--e2e, --diagram, --continue)
46
-
47
- Docs: https://github.com/su-record/vibe
13
+ console.log(`
14
+ VIBE - Personalized AI Agent (Claude Code exclusive)
15
+
16
+ Commands:
17
+ vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
18
+ vibe init [project] 프로젝트 초기화
19
+ vibe update 설정 업데이트
20
+ vibe upgrade 최신 버전으로 업그레이드
21
+ vibe remove 프로젝트에서 제거
22
+ vibe status 전체 상태 확인
23
+
24
+ LLM:
25
+ vibe claude <cmd> Claude (key, status, logout)
26
+ vibe gpt <cmd> GPT (auth, key, status, logout)
27
+ vibe gemini <cmd> Gemini (auth, key, status, logout)
28
+ vibe env import [path] .env → ~/.vibe/config.json 가져오기
29
+
30
+ Skills:
31
+ vibe skills add <pkg> Install skill from skills.sh
32
+
33
+ Channels:
34
+ vibe telegram <cmd> Telegram (setup, chat, status)
35
+ vibe slack <cmd> Slack (setup, channel, status)
36
+
37
+ Slash Commands (Claude Code):
38
+ /vibe.spec "feature" SPEC 작성 + 리서치
39
+ /vibe.run "feature" 구현 실행
40
+ /vibe.verify "feature" BDD 검증
41
+ /vibe.review 병렬 코드 리뷰 (13+ agents)
42
+ /vibe.reason "problem" 체계적 추론
43
+ /vibe.analyze 프로젝트 분석
44
+ /vibe.trace "feature" 요구사항 추적 매트릭스
45
+ /vibe.utils 유틸리티 (--e2e, --diagram, --continue)
46
+
47
+ Docs: https://github.com/su-record/vibe
48
48
  `);
49
49
  }
50
50
  /**
@@ -100,22 +100,22 @@ export function showStatus() {
100
100
  }
101
101
  }
102
102
  catch { /* DB not available */ }
103
- console.log(`
104
- VIBE Status (v${packageJson.version})
105
-
106
- Project: ${projectStatus}
107
- ${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
108
-
109
- LLM:
110
- Claude ${claudeStatusText}
111
- GPT ${gptStatusText}
112
- Gemini ${geminiStatusText}
113
-
114
- Agent:
115
- Autonomy ${autonomyMode} mode
116
- Sentinel ${sentinelOn ? 'ON' : 'OFF'}
117
- Proactive ${proactiveOn ? 'ON' : 'OFF'}
118
- ${dbStats}
103
+ console.log(`
104
+ VIBE Status (v${packageJson.version})
105
+
106
+ Project: ${projectStatus}
107
+ ${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
108
+
109
+ LLM:
110
+ Claude ${claudeStatusText}
111
+ GPT ${gptStatusText}
112
+ Gemini ${geminiStatusText}
113
+
114
+ Agent:
115
+ Autonomy ${autonomyMode} mode
116
+ Sentinel ${sentinelOn ? 'ON' : 'OFF'}
117
+ Proactive ${proactiveOn ? 'ON' : 'OFF'}
118
+ ${dbStats}
119
119
  `);
120
120
  }
121
121
  /**
@@ -264,11 +264,11 @@ export async function init(projectName) {
264
264
  const packageJson = getPackageJson();
265
265
  const authStatus = getLLMAuthStatus();
266
266
  const claudeStatus = getClaudeCodeStatus(true);
267
- log(`✅ vibe initialized (v${packageJson.version})
268
- ${formatLLMStatus(claudeStatus)}
269
- 📦 Context7 plugin (recommended): /plugin install context7
270
-
271
- Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
267
+ log(`✅ vibe initialized (v${packageJson.version})
268
+ ${formatLLMStatus(claudeStatus)}
269
+ 📦 Context7 plugin (recommended): /plugin install context7
270
+
271
+ Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
272
272
  `);
273
273
  }
274
274
  catch (error) {
@@ -123,20 +123,20 @@ export function remove() {
123
123
  console.log(` ✅ Cursor rules template removed (${removedRules})\n`);
124
124
  }
125
125
  }
126
- console.log(`
127
- ✅ vibe removed!
128
-
129
- Removed:
130
- - MCP server (context7)
131
- - .claude/vibe/ folder
132
- - Slash commands (7)
133
- - Subagents (5)
134
- - Hooks settings
135
- - Cursor agents (12)
136
- - Cursor skills (7)
137
- - Cursor rules template (5)
138
-
139
- To reinstall: vibe init
126
+ console.log(`
127
+ ✅ vibe removed!
128
+
129
+ Removed:
130
+ - MCP server (context7)
131
+ - .claude/vibe/ folder
132
+ - Slash commands (7)
133
+ - Subagents (5)
134
+ - Hooks settings
135
+ - Cursor agents (12)
136
+ - Cursor skills (7)
137
+ - Cursor rules template (5)
138
+
139
+ To reinstall: vibe init
140
140
  `);
141
141
  }
142
142
  //# sourceMappingURL=remove.js.map
@@ -65,17 +65,17 @@ export function sentinelStatus() {
65
65
  catch {
66
66
  // Table may not exist
67
67
  }
68
- console.log(`
69
- Security Sentinel Status
70
- ========================
71
- Policies: ${policyCount} active
72
- Confirmations: ${pendingConfirmations} pending
73
- Suggestions: ${pendingSuggestions} pending
74
-
75
- Last 24h:
76
- Total actions: ${totalActions}
77
- Allowed: ${allowedActions}
78
- Blocked: ${blockedActions}
68
+ console.log(`
69
+ Security Sentinel Status
70
+ ========================
71
+ Policies: ${policyCount} active
72
+ Confirmations: ${pendingConfirmations} pending
73
+ Suggestions: ${pendingSuggestions} pending
74
+
75
+ Last 24h:
76
+ Total actions: ${totalActions}
77
+ Allowed: ${allowedActions}
78
+ Blocked: ${blockedActions}
79
79
  `);
80
80
  }
81
81
  export function sentinelAudit(type, risk, days, deadLetter, retryId, discardId) {
@@ -301,22 +301,22 @@ export function sentinelSuggestions(action, id) {
301
301
  }
302
302
  }
303
303
  export function sentinelHelp() {
304
- console.log(`
305
- Sentinel Commands:
306
- vibe sentinel status Show sentinel status
307
- vibe sentinel audit [--type X] [--risk Y] [--days N]
308
- Query audit log
309
- vibe sentinel audit --dead-letter List dead letter events
310
- vibe sentinel audit --retry <id> Retry dead letter event
311
- vibe sentinel audit --discard <id> Discard dead letter event
312
- vibe sentinel approve <id> Approve confirmation
313
- vibe sentinel reject <id> Reject confirmation
314
- vibe sentinel policy list List policies
315
- vibe sentinel policy enable <name> Enable policy
316
- vibe sentinel policy disable <name> Disable policy
317
- vibe sentinel suggestions List pending suggestions
318
- vibe sentinel suggestions accept <id> Accept suggestion
319
- vibe sentinel suggestions dismiss <id> Dismiss suggestion
304
+ console.log(`
305
+ Sentinel Commands:
306
+ vibe sentinel status Show sentinel status
307
+ vibe sentinel audit [--type X] [--risk Y] [--days N]
308
+ Query audit log
309
+ vibe sentinel audit --dead-letter List dead letter events
310
+ vibe sentinel audit --retry <id> Retry dead letter event
311
+ vibe sentinel audit --discard <id> Discard dead letter event
312
+ vibe sentinel approve <id> Approve confirmation
313
+ vibe sentinel reject <id> Reject confirmation
314
+ vibe sentinel policy list List policies
315
+ vibe sentinel policy enable <name> Enable policy
316
+ vibe sentinel policy disable <name> Disable policy
317
+ vibe sentinel suggestions List pending suggestions
318
+ vibe sentinel suggestions accept <id> Accept suggestion
319
+ vibe sentinel suggestions dismiss <id> Dismiss suggestion
320
320
  `);
321
321
  }
322
322
  //# sourceMappingURL=sentinel.js.map
@@ -11,11 +11,11 @@ import { resolveExternalSkills } from '../postinstall/constants.js';
11
11
  */
12
12
  export function skillsAdd(target) {
13
13
  if (!target) {
14
- console.log(`
15
- Usage: vibe skills add <owner/repo>
16
-
17
- Install skills from skills.sh ecosystem.
18
- Example: vibe skills add vercel-labs/skills
14
+ console.log(`
15
+ Usage: vibe skills add <owner/repo>
16
+
17
+ Install skills from skills.sh ecosystem.
18
+ Example: vibe skills add vercel-labs/skills
19
19
  `);
20
20
  return;
21
21
  }
@@ -67,16 +67,16 @@ export function slackStatus() {
67
67
  console.log(`Allowed channels: ${channelIds.length > 0 ? channelIds.join(', ') : 'none'}`);
68
68
  }
69
69
  export function slackHelp() {
70
- console.log(`
71
- Vibe Slack Commands:
72
- vibe slack setup <bot-token> <app-token> Set Slack tokens
73
- vibe slack channel <id> Add allowed channel ID
74
- vibe slack status Show configuration
75
- vibe slack help Show this help
76
-
77
- Get tokens from https://api.slack.com/apps
78
- Bot Token: OAuth & Permissions > Bot User OAuth Token (xoxb-)
79
- App Token: Basic Information > App-Level Tokens (xapp-)
70
+ console.log(`
71
+ Vibe Slack Commands:
72
+ vibe slack setup <bot-token> <app-token> Set Slack tokens
73
+ vibe slack channel <id> Add allowed channel ID
74
+ vibe slack status Show configuration
75
+ vibe slack help Show this help
76
+
77
+ Get tokens from https://api.slack.com/apps
78
+ Bot Token: OAuth & Permissions > Bot User OAuth Token (xoxb-)
79
+ App Token: Basic Information > App-Level Tokens (xapp-)
80
80
  `);
81
81
  }
82
82
  //# sourceMappingURL=slack.js.map
@@ -218,18 +218,18 @@ export function telegramStop() {
218
218
  }, 500);
219
219
  }
220
220
  export function telegramHelp() {
221
- console.log(`
222
- Vibe Telegram Commands:
223
- vibe telegram setup <token> Set bot token
224
- vibe telegram chat <id> Add allowed chat ID
225
- vibe telegram status Show configuration
226
- vibe telegram help Show this help
227
-
228
- Start/Stop:
229
- vibe start Start daemon + all interfaces
230
- vibe interface enable telegram Enable telegram only
231
-
232
- Get a bot token from @BotFather on Telegram.
221
+ console.log(`
222
+ Vibe Telegram Commands:
223
+ vibe telegram setup <token> Set bot token
224
+ vibe telegram chat <id> Add allowed chat ID
225
+ vibe telegram status Show configuration
226
+ vibe telegram help Show this help
227
+
228
+ Start/Stop:
229
+ vibe start Start daemon + all interfaces
230
+ vibe interface enable telegram Enable telegram only
231
+
232
+ Get a bot token from @BotFather on Telegram.
233
233
  `);
234
234
  }
235
235
  //# sourceMappingURL=telegram.js.map
@@ -3,8 +3,8 @@
3
3
  */
4
4
  import { CliOptions } from '../types.js';
5
5
  /**
6
- * 전역 패키지를 최신 버전으로 업그레이드
7
- * npm install -g 실행 → postinstall 전역 설정 자동 처리
6
+ * Upgrade global package to latest version
7
+ * npm install -g → postinstall handles global config
8
8
  */
9
- export declare function upgrade(options?: CliOptions): void;
9
+ export declare function upgrade(_options?: CliOptions): void;
10
10
  //# sourceMappingURL=upgrade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,UAA8B,GAAG,IAAI,CAerE"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,GAAE,UAA8B,GAAG,IAAI,CAiBtE"}
@@ -2,15 +2,36 @@
2
2
  * upgrade 명령어 — 전역 패키지 최신 버전으로 업그레이드
3
3
  */
4
4
  import { execSync } from 'child_process';
5
+ import { readdirSync, rmSync } from 'fs';
6
+ import { join } from 'path';
5
7
  import { log, getPackageJson } from '../utils.js';
6
8
  import { formatLLMStatus } from '../auth.js';
7
9
  /**
8
- * 전역 패키지를 최신 버전으로 업그레이드
9
- * npm install -g 실행 → postinstall이 전역 설정 자동 처리
10
+ * Remove stale npm temp directories that cause ENOTEMPTY errors
10
11
  */
11
- export function upgrade(options = { silent: false }) {
12
+ function cleanStaleTempDirs() {
13
+ try {
14
+ const parentDir = execSync('npm root -g', { encoding: 'utf-8' }).trim();
15
+ const scopeDir = join(parentDir, '@su-record');
16
+ const entries = readdirSync(scopeDir, { withFileTypes: true });
17
+ for (const entry of entries) {
18
+ if (entry.isDirectory() && entry.name.startsWith('.vibe-')) {
19
+ rmSync(join(scopeDir, entry.name), { recursive: true, force: true });
20
+ }
21
+ }
22
+ }
23
+ catch {
24
+ // Scope dir may not exist yet — ignore
25
+ }
26
+ }
27
+ /**
28
+ * Upgrade global package to latest version
29
+ * npm install -g → postinstall handles global config
30
+ */
31
+ export function upgrade(_options = { silent: false }) {
12
32
  try {
13
33
  log('⬆️ Upgrading to latest version...\n');
34
+ cleanStaleTempDirs();
14
35
  execSync('npm install -g @su-record/vibe@latest', {
15
36
  stdio: 'pipe',
16
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,UAAsB,EAAE,MAAM,EAAE,KAAK,EAAE;IAC7D,IAAI,CAAC;QACH,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAE3C,QAAQ,CAAC,uCAAuC,EAAE;YAChD,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,GAAG,CAAC,uBAAuB,WAAW,CAAC,OAAO,QAAQ,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,WAAuB,EAAE,MAAM,EAAE,KAAK,EAAE;IAC9D,IAAI,CAAC;QACH,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAE3C,kBAAkB,EAAE,CAAC;QAErB,QAAQ,CAAC,uCAAuC,EAAE;YAChD,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,GAAG,CAAC,uBAAuB,WAAW,CAAC,OAAO,QAAQ,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -539,45 +539,45 @@ export function getLanguageRulesForStacks(stacks) {
539
539
  * 언어별 CLAUDE.md 규칙
540
540
  */
541
541
  export const LANGUAGE_RULES = {
542
- typescript: `### TypeScript Rules
543
- - No \`any\` type → use \`unknown\` + type guards
544
- - No \`as any\` casting → define proper interfaces
545
- - No \`@ts-ignore\` → fix type issues at root
542
+ typescript: `### TypeScript Rules
543
+ - No \`any\` type → use \`unknown\` + type guards
544
+ - No \`as any\` casting → define proper interfaces
545
+ - No \`@ts-ignore\` → fix type issues at root
546
546
  - Explicit return types on all functions`,
547
- python: `### Python Rules
548
- - Type hints required (parameters, return values)
549
- - No \`# type: ignore\` → fix type issues at root
550
- - Prefer f-strings (over format())
547
+ python: `### Python Rules
548
+ - Type hints required (parameters, return values)
549
+ - No \`# type: ignore\` → fix type issues at root
550
+ - Prefer f-strings (over format())
551
551
  - Use list comprehensions appropriately`,
552
- go: `### Go Rules
553
- - Handle errors immediately (if err != nil)
554
- - Explicit error wrapping (fmt.Errorf with %w)
555
- - Define interfaces at point of use
552
+ go: `### Go Rules
553
+ - Handle errors immediately (if err != nil)
554
+ - Explicit error wrapping (fmt.Errorf with %w)
555
+ - Define interfaces at point of use
556
556
  - Prevent goroutine leaks (use context)`,
557
- rust: `### Rust Rules
558
- - No unwrap()/expect() in production → handle Result/Option
559
- - Minimize unsafe blocks
560
- - Define explicit error types
557
+ rust: `### Rust Rules
558
+ - No unwrap()/expect() in production → handle Result/Option
559
+ - Minimize unsafe blocks
560
+ - Define explicit error types
561
561
  - Document ownership/lifetime clearly`,
562
- java: `### Java Rules
563
- - Use Optional (instead of null)
564
- - Prefer immutable objects (final fields)
565
- - Handle checked exceptions properly
562
+ java: `### Java Rules
563
+ - Use Optional (instead of null)
564
+ - Prefer immutable objects (final fields)
565
+ - Handle checked exceptions properly
566
566
  - Utilize Stream API`,
567
- kotlin: `### Kotlin Rules
568
- - Explicit nullable types (?)
569
- - No !! operator → use safe call (?.)
570
- - Use data classes actively
567
+ kotlin: `### Kotlin Rules
568
+ - Explicit nullable types (?)
569
+ - No !! operator → use safe call (?.)
570
+ - Use data classes actively
571
571
  - Implement utilities as extension functions`,
572
- dart: `### Dart Rules
573
- - Follow null safety (use ? and ! properly)
574
- - Avoid late keyword abuse
575
- - Use const constructors
572
+ dart: `### Dart Rules
573
+ - Follow null safety (use ? and ! properly)
574
+ - Avoid late keyword abuse
575
+ - Use const constructors
576
576
  - Use async/await for async code`,
577
- swift: `### Swift Rules
578
- - No force unwrapping → use guard let / if let
579
- - Prefer protocol-oriented programming
580
- - Prefer value types (struct)
577
+ swift: `### Swift Rules
578
+ - No force unwrapping → use guard let / if let
579
+ - Prefer protocol-oriented programming
580
+ - Prefer value types (struct)
581
581
  - Watch memory management with @escaping closures`
582
582
  };
583
583
  /**