@su-record/vibe 2.6.13 → 2.6.15

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 (234) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +497 -497
  3. package/agents/architect-low.md +41 -41
  4. package/agents/architect-medium.md +59 -59
  5. package/agents/architect.md +80 -80
  6. package/agents/build-error-resolver.md +115 -115
  7. package/agents/compounder.md +261 -261
  8. package/agents/diagrammer.md +178 -178
  9. package/agents/e2e-tester.md +266 -266
  10. package/agents/explorer-low.md +42 -42
  11. package/agents/explorer-medium.md +59 -59
  12. package/agents/explorer.md +48 -48
  13. package/agents/implementer-low.md +43 -43
  14. package/agents/implementer-medium.md +52 -52
  15. package/agents/implementer.md +54 -54
  16. package/agents/refactor-cleaner.md +143 -143
  17. package/agents/research/best-practices-agent.md +199 -199
  18. package/agents/research/codebase-patterns-agent.md +157 -157
  19. package/agents/research/framework-docs-agent.md +188 -188
  20. package/agents/research/security-advisory-agent.md +213 -213
  21. package/agents/review/architecture-reviewer.md +107 -107
  22. package/agents/review/complexity-reviewer.md +116 -116
  23. package/agents/review/data-integrity-reviewer.md +88 -88
  24. package/agents/review/git-history-reviewer.md +103 -103
  25. package/agents/review/performance-reviewer.md +86 -86
  26. package/agents/review/python-reviewer.md +150 -150
  27. package/agents/review/rails-reviewer.md +139 -139
  28. package/agents/review/react-reviewer.md +144 -144
  29. package/agents/review/security-reviewer.md +80 -80
  30. package/agents/review/simplicity-reviewer.md +140 -140
  31. package/agents/review/test-coverage-reviewer.md +116 -116
  32. package/agents/review/typescript-reviewer.md +127 -127
  33. package/agents/searcher.md +54 -54
  34. package/agents/simplifier.md +120 -120
  35. package/agents/tester.md +49 -49
  36. package/agents/ui-previewer.md +268 -268
  37. package/commands/vibe.analyze.md +356 -356
  38. package/commands/vibe.reason.md +329 -329
  39. package/commands/vibe.review.md +412 -412
  40. package/commands/vibe.run.md +1266 -1266
  41. package/commands/vibe.spec.md +1054 -1054
  42. package/commands/vibe.spec.review.md +319 -319
  43. package/commands/vibe.trace.md +161 -161
  44. package/commands/vibe.utils.md +376 -376
  45. package/commands/vibe.verify.md +375 -375
  46. package/dist/cli/collaborator.js +52 -52
  47. package/dist/cli/detect.d.ts.map +1 -1
  48. package/dist/cli/detect.js +118 -44
  49. package/dist/cli/detect.js.map +1 -1
  50. package/dist/cli/hud.js +20 -20
  51. package/dist/cli/index.js +118 -118
  52. package/dist/cli/index.js.map +1 -1
  53. package/dist/cli/llm.js +144 -144
  54. package/dist/cli/mcp.d.ts +49 -0
  55. package/dist/cli/mcp.d.ts.map +1 -0
  56. package/dist/cli/mcp.js +169 -0
  57. package/dist/cli/mcp.js.map +1 -0
  58. package/dist/cli/postinstall.js +858 -858
  59. package/dist/cli/setup/ProjectSetup.d.ts +3 -0
  60. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  61. package/dist/cli/setup/ProjectSetup.js +28 -6
  62. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  63. package/dist/lib/DeepInit.js +24 -24
  64. package/dist/lib/IterationTracker.js +11 -11
  65. package/dist/lib/PythonParser.js +108 -108
  66. package/dist/lib/ReviewRace.js +96 -96
  67. package/dist/lib/SkillFrontmatter.js +28 -28
  68. package/dist/lib/SkillQualityGate.js +9 -9
  69. package/dist/lib/SkillRepository.js +159 -159
  70. package/dist/lib/UltraQA.js +77 -77
  71. package/dist/lib/gemini-api.js +5 -5
  72. package/dist/lib/gemini-mcp.d.ts +10 -0
  73. package/dist/lib/gemini-mcp.d.ts.map +1 -0
  74. package/dist/lib/gemini-mcp.js +353 -0
  75. package/dist/lib/gemini-mcp.js.map +1 -0
  76. package/dist/lib/gpt-api.js +4 -4
  77. package/dist/lib/gpt-mcp.d.ts +10 -0
  78. package/dist/lib/gpt-mcp.d.ts.map +1 -0
  79. package/dist/lib/gpt-mcp.js +352 -0
  80. package/dist/lib/gpt-mcp.js.map +1 -0
  81. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  82. package/dist/lib/memory/MemorySearch.js +20 -20
  83. package/dist/lib/memory/MemoryStorage.js +64 -64
  84. package/dist/orchestrator/AgentManager.js +12 -12
  85. package/dist/orchestrator/MultiLlmResearch.js +8 -8
  86. package/dist/orchestrator/SmartRouter.js +11 -11
  87. package/dist/orchestrator/parallelResearch.js +24 -24
  88. package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
  89. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
  90. package/dist/tools/analytics/getUsageAnalytics.js +246 -0
  91. package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
  92. package/dist/tools/analytics/index.d.ts +5 -0
  93. package/dist/tools/analytics/index.d.ts.map +1 -0
  94. package/dist/tools/analytics/index.js +5 -0
  95. package/dist/tools/analytics/index.js.map +1 -0
  96. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  97. package/dist/tools/convention/getCodingGuide.d.ts +7 -0
  98. package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
  99. package/dist/tools/convention/getCodingGuide.js +69 -0
  100. package/dist/tools/convention/getCodingGuide.js.map +1 -0
  101. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  102. package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
  103. package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
  104. package/dist/tools/planning/analyzeRequirements.js +171 -0
  105. package/dist/tools/planning/analyzeRequirements.js.map +1 -0
  106. package/dist/tools/planning/createUserStories.d.ts +9 -0
  107. package/dist/tools/planning/createUserStories.d.ts.map +1 -0
  108. package/dist/tools/planning/createUserStories.js +124 -0
  109. package/dist/tools/planning/createUserStories.js.map +1 -0
  110. package/dist/tools/planning/featureRoadmap.d.ts +10 -0
  111. package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
  112. package/dist/tools/planning/featureRoadmap.js +207 -0
  113. package/dist/tools/planning/featureRoadmap.js.map +1 -0
  114. package/dist/tools/planning/generatePrd.d.ts +11 -0
  115. package/dist/tools/planning/generatePrd.d.ts.map +1 -0
  116. package/dist/tools/planning/generatePrd.js +161 -0
  117. package/dist/tools/planning/generatePrd.js.map +1 -0
  118. package/dist/tools/planning/index.d.ts +8 -0
  119. package/dist/tools/planning/index.d.ts.map +1 -0
  120. package/dist/tools/planning/index.js +8 -0
  121. package/dist/tools/planning/index.js.map +1 -0
  122. package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
  123. package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
  124. package/dist/tools/prompt/analyzePrompt.js +150 -0
  125. package/dist/tools/prompt/analyzePrompt.js.map +1 -0
  126. package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
  127. package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
  128. package/dist/tools/prompt/enhancePrompt.js +110 -0
  129. package/dist/tools/prompt/enhancePrompt.js.map +1 -0
  130. package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
  131. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
  132. package/dist/tools/prompt/enhancePromptGemini.js +332 -0
  133. package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
  134. package/dist/tools/prompt/index.d.ts +7 -0
  135. package/dist/tools/prompt/index.d.ts.map +1 -0
  136. package/dist/tools/prompt/index.js +7 -0
  137. package/dist/tools/prompt/index.js.map +1 -0
  138. package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
  139. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
  140. package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
  141. package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
  142. package/dist/tools/reasoning/index.d.ts +5 -0
  143. package/dist/tools/reasoning/index.d.ts.map +1 -0
  144. package/dist/tools/reasoning/index.js +5 -0
  145. package/dist/tools/reasoning/index.js.map +1 -0
  146. package/dist/tools/spec/prdParser.test.js +171 -171
  147. package/dist/tools/spec/specGenerator.js +169 -169
  148. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  149. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  150. package/dist/tools/thinking/analyzeProblem.d.ts +7 -0
  151. package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
  152. package/dist/tools/thinking/analyzeProblem.js +55 -0
  153. package/dist/tools/thinking/analyzeProblem.js.map +1 -0
  154. package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
  155. package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
  156. package/dist/tools/thinking/breakDownProblem.js +145 -0
  157. package/dist/tools/thinking/breakDownProblem.js.map +1 -0
  158. package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
  159. package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
  160. package/dist/tools/thinking/createThinkingChain.js +44 -0
  161. package/dist/tools/thinking/createThinkingChain.js.map +1 -0
  162. package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
  163. package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
  164. package/dist/tools/thinking/formatAsPlan.js +78 -0
  165. package/dist/tools/thinking/formatAsPlan.js.map +1 -0
  166. package/dist/tools/thinking/index.d.ts +10 -0
  167. package/dist/tools/thinking/index.d.ts.map +1 -0
  168. package/dist/tools/thinking/index.js +10 -0
  169. package/dist/tools/thinking/index.js.map +1 -0
  170. package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
  171. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
  172. package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
  173. package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
  174. package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
  175. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
  176. package/dist/tools/thinking/thinkAloudProcess.js +80 -0
  177. package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
  178. package/hooks/hooks.json +222 -222
  179. package/hooks/scripts/code-check.js +22 -22
  180. package/hooks/scripts/code-review.js +22 -22
  181. package/hooks/scripts/complexity.js +22 -22
  182. package/hooks/scripts/compound.js +23 -23
  183. package/hooks/scripts/context-save.js +33 -33
  184. package/hooks/scripts/gemini-ui-gen.js +281 -281
  185. package/hooks/scripts/generate-brand-assets.js +474 -474
  186. package/hooks/scripts/hud-multiline.js +262 -262
  187. package/hooks/scripts/hud-status.js +291 -291
  188. package/hooks/scripts/keyword-detector.js +214 -214
  189. package/hooks/scripts/llm-orchestrate.js +171 -171
  190. package/hooks/scripts/post-edit.js +97 -97
  191. package/hooks/scripts/post-tool-verify.js +210 -210
  192. package/hooks/scripts/pre-tool-guard.js +125 -125
  193. package/hooks/scripts/recall.js +22 -22
  194. package/hooks/scripts/session-start.js +30 -30
  195. package/hooks/scripts/skill-injector.js +191 -191
  196. package/hooks/scripts/utils.js +97 -97
  197. package/languages/csharp-unity.md +515 -515
  198. package/languages/gdscript-godot.md +470 -470
  199. package/languages/ruby-rails.md +489 -489
  200. package/languages/typescript-angular.md +433 -433
  201. package/languages/typescript-astro.md +416 -416
  202. package/languages/typescript-electron.md +406 -406
  203. package/languages/typescript-nestjs.md +524 -524
  204. package/languages/typescript-svelte.md +407 -407
  205. package/languages/typescript-tauri.md +365 -365
  206. package/package.json +84 -84
  207. package/skills/brand-assets.md +141 -141
  208. package/skills/commerce-patterns.md +361 -361
  209. package/skills/context7-usage.md +102 -102
  210. package/skills/e2e-commerce.md +304 -304
  211. package/skills/frontend-design.md +92 -92
  212. package/skills/git-worktree.md +181 -181
  213. package/skills/parallel-research.md +77 -77
  214. package/skills/priority-todos.md +239 -239
  215. package/skills/seo-checklist.md +244 -244
  216. package/skills/tool-fallback.md +190 -190
  217. package/skills/vibe-capabilities.md +161 -161
  218. package/vibe/constitution.md +227 -227
  219. package/vibe/rules/core/communication-guide.md +98 -98
  220. package/vibe/rules/core/development-philosophy.md +52 -52
  221. package/vibe/rules/core/quick-start.md +102 -102
  222. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  223. package/vibe/rules/quality/checklist.md +276 -276
  224. package/vibe/rules/quality/testing-strategy.md +440 -440
  225. package/vibe/rules/standards/anti-patterns.md +541 -541
  226. package/vibe/rules/standards/code-structure.md +291 -291
  227. package/vibe/rules/standards/complexity-metrics.md +313 -313
  228. package/vibe/rules/standards/naming-conventions.md +198 -198
  229. package/vibe/setup.sh +31 -31
  230. package/vibe/templates/constitution-template.md +252 -252
  231. package/vibe/templates/contract-backend-template.md +526 -526
  232. package/vibe/templates/contract-frontend-template.md +599 -599
  233. package/vibe/templates/feature-template.md +96 -96
  234. package/vibe/templates/spec-template.md +221 -221
@@ -0,0 +1,332 @@
1
+ // Enhance prompts using Gemini API prompting strategies
2
+ export const enhancePromptGeminiDefinition = {
3
+ name: 'enhance_prompt_gemini',
4
+ description: '프롬프트 개선|제미나이 전략|품질 향상|prompt enhancement|gemini strategies|quality improvement - Enhance prompts using Gemini API prompting strategies (Few-Shot, Output Format, Context)',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ prompt: {
9
+ type: 'string',
10
+ description: 'The original prompt to enhance'
11
+ },
12
+ agent_role: {
13
+ type: 'string',
14
+ description: 'The role of the agent that will receive this prompt (e.g., "Specification Agent", "Planning Agent")'
15
+ },
16
+ strategies: {
17
+ type: 'array',
18
+ items: {
19
+ type: 'string',
20
+ enum: ['few-shot', 'output-format', 'context-placement', 'decomposition', 'parameters']
21
+ },
22
+ description: 'Specific Gemini strategies to apply. If not provided, all strategies will be applied.'
23
+ }
24
+ },
25
+ required: ['prompt']
26
+ },
27
+ annotations: {
28
+ title: 'Enhance Prompt (Gemini Strategies)',
29
+ audience: ['user', 'assistant'],
30
+ readOnlyHint: true,
31
+ destructiveHint: false,
32
+ idempotentHint: true,
33
+ openWorldHint: false
34
+ }
35
+ };
36
+ export async function enhancePromptGemini(args) {
37
+ const { prompt, agent_role, strategies } = args;
38
+ const allStrategies = ['few-shot', 'output-format', 'context-placement', 'decomposition', 'parameters'];
39
+ const strategiesToApply = strategies && strategies.length > 0 ? strategies : allStrategies;
40
+ const enhancements = [];
41
+ // 1. Few-Shot Examples
42
+ if (strategiesToApply.includes('few-shot')) {
43
+ enhancements.push({
44
+ strategy: 'Few-Shot 예시 추가',
45
+ description: '2-3개의 고품질 예시를 추가하여 모델이 패턴을 학습하도록 유도',
46
+ applied: addFewShotExamples(prompt, agent_role),
47
+ improvement: '형식, 표현, 범위를 명확히 하여 일관성 향상'
48
+ });
49
+ }
50
+ // 2. Output Format Specification
51
+ if (strategiesToApply.includes('output-format')) {
52
+ enhancements.push({
53
+ strategy: '출력 형식 명시화',
54
+ description: 'XML 태그나 마크다운 헤더로 구조화된 형식 지정',
55
+ applied: specifyOutputFormat(prompt, agent_role),
56
+ improvement: '원하는 응답 구조를 명확히 하여 파싱 용이성 향상'
57
+ });
58
+ }
59
+ // 3. Context Placement
60
+ if (strategiesToApply.includes('context-placement')) {
61
+ enhancements.push({
62
+ strategy: '컨텍스트 배치 최적화',
63
+ description: '긴 컨텍스트를 특정 요청 전에 배치 (Gemini 3 최적화)',
64
+ applied: optimizeContextPlacement(prompt),
65
+ improvement: '모델이 컨텍스트를 더 효과적으로 활용'
66
+ });
67
+ }
68
+ // 4. Prompt Decomposition
69
+ if (strategiesToApply.includes('decomposition')) {
70
+ enhancements.push({
71
+ strategy: '프롬프트 분해',
72
+ description: '복잡한 작업을 여러 단계로 분해하여 체인화',
73
+ applied: decomposePrompt(prompt, agent_role),
74
+ improvement: '각 단계의 출력 품질 향상, 디버깅 용이'
75
+ });
76
+ }
77
+ // 5. Parameter Tuning Suggestions
78
+ if (strategiesToApply.includes('parameters')) {
79
+ enhancements.push({
80
+ strategy: '매개변수 튜닝 제안',
81
+ description: 'Temperature, Top-K, Top-P, Max Tokens 최적 값 제안',
82
+ applied: suggestParameters(prompt, agent_role),
83
+ improvement: '작업 유형에 맞는 모델 동작 최적화'
84
+ });
85
+ }
86
+ const result = {
87
+ original_prompt: prompt,
88
+ agent_role: agent_role || 'Generic Agent',
89
+ strategies_applied: strategiesToApply,
90
+ enhancements,
91
+ enhanced_prompt: combineEnhancements(prompt, enhancements),
92
+ summary: generateSummary(enhancements)
93
+ };
94
+ const output = formatOutput(result);
95
+ return {
96
+ content: [{ type: 'text', text: output }]
97
+ };
98
+ }
99
+ // Helper methods
100
+ function addFewShotExamples(prompt, agent_role) {
101
+ const examples = {
102
+ 'Specification Agent': `
103
+ **예시 1: 푸시 알림 설정**
104
+ 입력: "댓글, 좋아요, 팔로우 알림을 켜고 끌 수 있게 해주세요"
105
+ 출력:
106
+ - 알림 유형: 6개 (댓글, 좋아요, 팔로우, 공지, 이벤트, 마케팅)
107
+ - 설정 방식: ON/OFF 토글
108
+ - 디자인 참고: iOS Settings > Notifications
109
+ - 기술 스택: FCM (기존 사용 중)
110
+
111
+ **예시 2: 사용자 프로필 편집**
112
+ 입력: "프로필 사진이랑 자기소개를 바꿀 수 있게 해주세요"
113
+ 출력:
114
+ - 편집 항목: 프로필 사진, 자기소개, 표시 이름
115
+ - 검증: 이미지 크기 < 5MB, 자기소개 < 500자
116
+ - UI 패턴: 인라인 편집 (모달 아님)
117
+ - 저장 방식: 자동 저장 (debounce 500ms)`,
118
+ 'Planning Agent': `
119
+ **예시 1: API 엔드포인트 추가**
120
+ 입력: "사용자 팔로우/언팔로우 기능"
121
+ 출력:
122
+ - Phase 1: Backend (8시간)
123
+ - DB 스키마 (follows 테이블)
124
+ - API 엔드포인트 (POST /follows, DELETE /follows/:id)
125
+ - 비즈니스 로직 (중복 방지, 자기 팔로우 금지)
126
+ - Phase 2: Frontend (6시간)
127
+ - 팔로우 버튼 컴포넌트
128
+ - 팔로워/팔로잉 목록
129
+ - 비용 영향: +0원 (기존 인프라 활용)
130
+
131
+ **예시 2: 실시간 알림**
132
+ 입력: "댓글 달리면 실시간으로 알림"
133
+ 출력:
134
+ - Phase 1: WebSocket 서버 구축 (12시간)
135
+ - Phase 2: 클라이언트 구독 로직 (8시간)
136
+ - Phase 3: 알림 UI (6시간)
137
+ - 비용 영향: +$20/월 (Redis Pub/Sub)`
138
+ };
139
+ return examples[agent_role] || `
140
+ **Few-Shot 예시를 작업 유형에 맞게 추가**:
141
+ - 예시 1: [구체적인 입력] → [명확한 출력]
142
+ - 예시 2: [다른 형태의 입력] → [일관된 형식의 출력]
143
+ - 예시 3: [엣지 케이스] → [처리 방법]
144
+
145
+ **지침**:
146
+ - 2-3개 예시 (과적합 방지)
147
+ - 다양한 시나리오 포함
148
+ - 일관된 출력 형식 유지`;
149
+ }
150
+ function specifyOutputFormat(prompt, agent_role) {
151
+ const formats = {
152
+ 'Specification Agent': `
153
+ **출력 형식 (마크다운 + YAML frontmatter)**:
154
+
155
+ \`\`\`markdown
156
+ ---
157
+ title: [기능 이름]
158
+ priority: [HIGH/MEDIUM/LOW]
159
+ created: [날짜]
160
+ ---
161
+
162
+ # SPEC: [기능 이름]
163
+
164
+ ## REQ-001: [요구사항 제목]
165
+ **WHEN** [조건]
166
+ **THEN** [결과]
167
+
168
+ ### Acceptance Criteria
169
+ - [ ] [기준 1]
170
+ - [ ] [기준 2]
171
+ \`\`\`
172
+
173
+ **응답 접두사**: "# SPEC: "로 시작하여 모델이 올바른 형식으로 완성하도록 유도`,
174
+ 'Planning Agent': `
175
+ **출력 형식 (구조화된 마크다운)**:
176
+
177
+ \`\`\`markdown
178
+ # PLAN: [기능 이름]
179
+
180
+ ## Architecture
181
+ - Backend: [기술 스택]
182
+ - Frontend: [기술 스택]
183
+ - Database: [스키마 변경사항]
184
+
185
+ ## Timeline
186
+ | Phase | Tasks | Duration |
187
+ |-------|-------|----------|
188
+ | 1 | ... | 8h |
189
+
190
+ ## Cost Analysis
191
+ - Infrastructure: +$X/월
192
+ - Third-party: +$Y/월
193
+ - Total: +$Z/월
194
+ \`\`\`
195
+
196
+ **응답 접두사**: "# PLAN: "로 시작`
197
+ };
198
+ return formats[agent_role] || `
199
+ **출력 형식 명시**:
200
+ - 마크다운 헤더로 섹션 구분 (##, ###)
201
+ - 테이블, 불릿 포인트, 체크박스 활용
202
+ - XML 태그로 의미 구성요소 레이블링 (선택)
203
+ 예: <analysis>...</analysis>, <recommendation>...</recommendation>
204
+ - 응답 접두사로 완성 유도
205
+ 예: "분석 결과: "로 시작하면 모델이 분석 내용으로 완성`;
206
+ }
207
+ function optimizeContextPlacement(prompt) {
208
+ return `
209
+ **컨텍스트 배치 최적화 (Gemini 3 권장)**:
210
+
211
+ 1. **긴 컨텍스트를 앞에 배치**:
212
+ \`\`\`
213
+ [기술 스택 정보 (CLAUDE.md 내용)]
214
+ [기존 코드베이스 구조]
215
+ [관련 SPEC/PLAN 문서]
216
+
217
+ --- 이후 구체적 요청 ---
218
+
219
+ [사용자의 구체적 질문이나 작업]
220
+ \`\`\`
221
+
222
+ 2. **컨텍스트 구조화**:
223
+ - 카테고리별로 그룹화 (기술 스택, 아키텍처, 비즈니스 로직)
224
+ - 중요한 제약 조건은 반복해서 강조
225
+ - 참조 가능하도록 명확한 레이블링
226
+
227
+ 3. **명시적 지시사항 배치**:
228
+ - 컨텍스트 다음에 구체적 작업 지시
229
+ - 단계별 지침 (1, 2, 3...)
230
+ - 출력 형식 예시`;
231
+ }
232
+ function decomposePrompt(prompt, agent_role) {
233
+ const isComplex = prompt.length > 200 || prompt.includes('및') || prompt.includes('그리고') || prompt.includes('and');
234
+ if (!isComplex) {
235
+ return '**프롬프트 분해 불필요**: 단순한 작업이므로 단일 프롬프트로 충분합니다.';
236
+ }
237
+ return `
238
+ **프롬프트 분해 (순차적 체인)**:
239
+
240
+ **Step 1: 정보 수집**
241
+ \`\`\`
242
+ 프롬프트: "${prompt.slice(0, 100)}..."에 대한 필수 정보를 식별하세요.
243
+ 출력: 필요한 기술 스택, 제약 조건, 선행 작업 목록
244
+ \`\`\`
245
+
246
+ **Step 2: 분석 및 계획**
247
+ \`\`\`
248
+ 프롬프트: Step 1의 정보를 바탕으로 구현 계획을 작성하세요.
249
+ 입력: [Step 1의 출력]
250
+ 출력: Phase별 작업, 타임라인, 리스크
251
+ \`\`\`
252
+
253
+ **Step 3: 세부 작업 생성**
254
+ \`\`\`
255
+ 프롬프트: Step 2의 계획을 실행 가능한 작업으로 분해하세요.
256
+ 입력: [Step 2의 출력]
257
+ 출력: Task 목록 (의존성 포함)
258
+ \`\`\`
259
+
260
+ **장점**:
261
+ - 각 단계의 출력 품질 향상
262
+ - 중간 검증 가능
263
+ - 에러 발생 시 특정 단계만 재실행`;
264
+ }
265
+ function suggestParameters(prompt, agent_role) {
266
+ const isCreative = prompt.includes('디자인') || prompt.includes('아이디어') || prompt.includes('제안');
267
+ const isDeterministic = prompt.includes('분석') || prompt.includes('계산') || prompt.includes('검증');
268
+ let temperature = 1.0; // Gemini 3 default
269
+ let topP = 0.95;
270
+ let topK = 40;
271
+ if (isCreative) {
272
+ temperature = 1.0;
273
+ topP = 0.95;
274
+ }
275
+ else if (isDeterministic) {
276
+ temperature = 0.2;
277
+ topP = 0.8;
278
+ topK = 20;
279
+ }
280
+ return `
281
+ **권장 매개변수** (작업 특성 기반):
282
+
283
+ - **Temperature**: ${temperature}
284
+ ${temperature > 0.7 ? '창의적 작업에 적합 (다양한 옵션 탐색)' : '결정적 작업에 적합 (일관된 출력)'}
285
+
286
+ - **Top-P**: ${topP}
287
+ 누적 확률 ${topP * 100}%까지의 토큰만 선택
288
+
289
+ - **Top-K**: ${topK}
290
+ 상위 ${topK}개 토큰만 고려
291
+
292
+ - **Max Output Tokens**: ${agent_role === 'Specification Agent' ? '4000 (상세 문서)' : '2000 (일반)'}
293
+
294
+ - **Stop Sequences**: ["---END---", "\`\`\`"] (선택)
295
+
296
+ **주의**:
297
+ - Gemini 3는 temperature 기본값 1.0 유지 권장
298
+ - 예상치 못한 동작 방지를 위해 기본값에서 크게 벗어나지 않기`;
299
+ }
300
+ function combineEnhancements(prompt, enhancements) {
301
+ let enhanced = `# Enhanced Prompt\n\n`;
302
+ enhanced += `## Original Request\n${prompt}\n\n`;
303
+ enhanced += `---\n\n`;
304
+ enhancements.forEach((e, i) => {
305
+ enhanced += `## Enhancement ${i + 1}: ${e.strategy}\n\n`;
306
+ enhanced += `${e.applied}\n\n`;
307
+ });
308
+ return enhanced;
309
+ }
310
+ function generateSummary(enhancements) {
311
+ return `${enhancements.length}개의 Gemini 프롬프팅 전략을 적용하여 프롬프트 품질을 향상시켰습니다:
312
+ ${enhancements.map(e => `- ${e.strategy}: ${e.improvement}`).join('\n')}`;
313
+ }
314
+ function formatOutput(result) {
315
+ let output = `# Gemini 프롬프트 개선\n\n`;
316
+ output += `**원본 프롬프트**: ${result.original_prompt}\n`;
317
+ output += `**대상 에이전트**: ${result.agent_role}\n`;
318
+ output += `**적용 전략**: ${result.strategies_applied.join(', ')}\n\n`;
319
+ output += `---\n\n`;
320
+ result.enhancements.forEach((e, i) => {
321
+ output += `## ${i + 1}. ${e.strategy}\n\n`;
322
+ output += `**설명**: ${e.description}\n\n`;
323
+ output += `**적용 내용**:\n${e.applied}\n\n`;
324
+ output += `**개선 효과**: ${e.improvement}\n\n`;
325
+ output += `---\n\n`;
326
+ });
327
+ output += `## 개선된 프롬프트\n\n`;
328
+ output += '```markdown\n' + result.enhanced_prompt + '\n```\n\n';
329
+ output += `## 요약\n\n${result.summary}`;
330
+ return output;
331
+ }
332
+ //# sourceMappingURL=enhancePromptGemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancePromptGemini.js","sourceRoot":"","sources":["../../../src/tools/prompt/enhancePromptGemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Prompt Tools - 프롬프트 분석 및 개선
3
+ */
4
+ export { enhancePrompt } from './enhancePrompt.js';
5
+ export { analyzePrompt } from './analyzePrompt.js';
6
+ export { enhancePromptGemini } from './enhancePromptGemini.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/prompt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Prompt Tools - 프롬프트 분석 및 개선
3
+ */
4
+ export { enhancePrompt } from './enhancePrompt.js';
5
+ export { analyzePrompt } from './analyzePrompt.js';
6
+ export { enhancePromptGemini } from './enhancePromptGemini.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/prompt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
+ export declare const applyReasoningFrameworkDefinition: ToolDefinition;
3
+ export declare function applyReasoningFramework(args: {
4
+ problem: string;
5
+ context?: string;
6
+ focus_steps?: number[];
7
+ }): Promise<ToolResult>;
8
+ //# sourceMappingURL=applyReasoningFramework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyReasoningFramework.d.ts","sourceRoot":"","sources":["../../../src/tools/reasoning/applyReasoningFramework.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,eAAO,MAAM,iCAAiC,EAAE,cA8B/C,CAAC;AAUF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8HtB"}
@@ -0,0 +1,266 @@
1
+ // Apply 9-step reasoning framework to complex problems
2
+ export const applyReasoningFrameworkDefinition = {
3
+ name: 'apply_reasoning_framework',
4
+ description: '추론 프레임워크|체계적 분석|논리적 사고|reasoning framework|systematic analysis|logical thinking - Apply 9-step reasoning framework to analyze complex problems systematically',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ problem: {
9
+ type: 'string',
10
+ description: 'The problem or task to analyze using the reasoning framework'
11
+ },
12
+ context: {
13
+ type: 'string',
14
+ description: 'Additional context about the problem (project constraints, tech stack, etc.)'
15
+ },
16
+ focus_steps: {
17
+ type: 'array',
18
+ items: { type: 'number' },
19
+ description: 'Specific framework steps to focus on (1-9). If not provided, all steps will be applied.'
20
+ }
21
+ },
22
+ required: ['problem']
23
+ },
24
+ annotations: {
25
+ title: 'Apply Reasoning Framework',
26
+ audience: ['user', 'assistant'],
27
+ readOnlyHint: true,
28
+ destructiveHint: false,
29
+ idempotentHint: true,
30
+ openWorldHint: false
31
+ }
32
+ };
33
+ export async function applyReasoningFramework(args) {
34
+ const { problem, context, focus_steps } = args;
35
+ const allSteps = [
36
+ {
37
+ step: 1,
38
+ title: '논리적 종속성 및 제약 조건',
39
+ description: '정책, 작업 순서, 전제 조건, 사용자 제약을 중요도 순으로 분석',
40
+ questions: [
41
+ '어떤 정책이나 필수 규칙이 적용되는가?',
42
+ '작업 순서를 재정렬해야 하는가? (선행 작업 확인)',
43
+ '필요한 전제 조건이나 정보는?',
44
+ '명시적 사용자 제약 조건이 있는가?'
45
+ ],
46
+ output: analyzeConstraints(problem, context)
47
+ },
48
+ {
49
+ step: 2,
50
+ title: '위험 평가',
51
+ description: '행동의 결과와 향후 문제 가능성 평가',
52
+ questions: [
53
+ '이 행동이 미래에 문제를 일으킬 수 있는가?',
54
+ '탐색 작업인가, 구현 작업인가? (위험 수준 결정)',
55
+ '호환성, 보안, 성능 위험은?',
56
+ '롤백이 가능한가?'
57
+ ],
58
+ output: assessRisks(problem, context)
59
+ },
60
+ {
61
+ step: 3,
62
+ title: '귀납적 추론 및 가설 탐색',
63
+ description: '문제의 근본 원인에 대한 가설 생성 및 우선순위화',
64
+ questions: [
65
+ '즉각적 원인을 넘어선 근본 원인은?',
66
+ '각 가설을 어떻게 검증할 것인가?',
67
+ '가능성이 낮은 원인도 고려했는가?'
68
+ ],
69
+ output: generateHypotheses(problem, context)
70
+ },
71
+ {
72
+ step: 4,
73
+ title: '결과 평가 및 적응성',
74
+ description: '관찰 결과에 따라 계획 조정',
75
+ questions: [
76
+ '이전 관찰이 계획 변경을 요구하는가?',
77
+ '가설이 반증되었다면 새 가설을 생성했는가?',
78
+ '막다른 길에 도달했다면 백트래킹이 필요한가?'
79
+ ],
80
+ output: evaluateAdaptability(problem, context)
81
+ },
82
+ {
83
+ step: 5,
84
+ title: '정보 가용성',
85
+ description: '모든 정보 소스 식별 및 활용',
86
+ questions: [
87
+ '사용 가능한 도구는? (MCP, 파일 시스템, Git 등)',
88
+ '참조해야 할 정책/규칙 문서는? (CLAUDE.md, constitution.md)',
89
+ '이전 대화나 메모리에서 관련 정보를 찾았는가?',
90
+ '사용자에게 물어야 할 정보는?'
91
+ ],
92
+ output: identifyInformationSources(problem, context)
93
+ },
94
+ {
95
+ step: 6,
96
+ title: '정밀성 및 근거',
97
+ description: '주장에 대한 정확한 근거 제시',
98
+ questions: [
99
+ '정책 참조 시 정확히 인용했는가?',
100
+ '코드 참조 시 파일명:라인을 명시했는가?',
101
+ '숫자와 메트릭이 정확한가?'
102
+ ],
103
+ output: ensurePrecision(problem, context)
104
+ },
105
+ {
106
+ step: 7,
107
+ title: '완전성',
108
+ description: '모든 요구사항, 옵션, 선호도 통합',
109
+ questions: [
110
+ '충돌하는 요구사항을 중요도 순으로 해결했는가?',
111
+ '조기 결론을 내리지 않았는가? (여러 옵션 고려)',
112
+ '모든 관련 정보 소스를 검토했는가?'
113
+ ],
114
+ output: ensureCompleteness(problem, context)
115
+ },
116
+ {
117
+ step: 8,
118
+ title: '끈기와 인내',
119
+ description: '모든 추론을 소진할 때까지 포기하지 않기',
120
+ questions: [
121
+ '일시적 오류는 재시도했는가?',
122
+ '명확한 한계(재시도 제한, 타임아웃)에 도달했는가?',
123
+ '같은 실패를 반복하지 않고 전략을 변경했는가?'
124
+ ],
125
+ output: demonstratePersistence(problem, context)
126
+ },
127
+ {
128
+ step: 9,
129
+ title: '응답 억제',
130
+ description: '추론 완료 후에만 행동',
131
+ questions: [
132
+ '위의 모든 추론이 완료되었는가?',
133
+ '추론 과정을 문서화했는가?',
134
+ '한 번에 하나의 주요 행동만 수행하는가?'
135
+ ],
136
+ output: planExecution(problem, context)
137
+ }
138
+ ];
139
+ // Filter steps if focus_steps is provided
140
+ const stepsToApply = focus_steps && focus_steps.length > 0
141
+ ? allSteps.filter(s => focus_steps.includes(s.step))
142
+ : allSteps;
143
+ const result = {
144
+ problem,
145
+ context: context || 'No additional context provided',
146
+ steps_applied: stepsToApply.length,
147
+ framework_steps: stepsToApply,
148
+ summary: generateSummary(problem, stepsToApply)
149
+ };
150
+ const output = formatOutput(result);
151
+ return {
152
+ content: [{ type: 'text', text: output }]
153
+ };
154
+ }
155
+ // Helper methods
156
+ function analyzeConstraints(problem, context) {
157
+ return `**제약 조건 분석**:
158
+ - 정책/규칙: ${context ? '프로젝트 컨텍스트 확인 필요' : 'CLAUDE.md, constitution.md 확인 필요'}
159
+ - 작업 순서: 선행 작업 식별 필요 (DB → Backend → Frontend 패턴 고려)
160
+ - 전제 조건: ${problem}을(를) 위한 필수 정보/도구 확인
161
+ - 사용자 제약: 명시적 요청사항 우선 적용`;
162
+ }
163
+ function assessRisks(problem, context) {
164
+ const isExploration = problem.toLowerCase().includes('찾') ||
165
+ problem.toLowerCase().includes('분석') ||
166
+ problem.toLowerCase().includes('확인') ||
167
+ problem.toLowerCase().includes('find') ||
168
+ problem.toLowerCase().includes('analyze');
169
+ return `**위험 평가**:
170
+ - 작업 유형: ${isExploration ? '탐색 작업 (낮은 위험)' : '구현 작업 (높은 위험)'}
171
+ - 롤백 가능성: ${isExploration ? '높음' : '확인 필요'}
172
+ - 호환성 위험: 기존 코드와의 충돌 가능성 검토
173
+ - 보안 위험: SQL Injection, XSS, 민감 정보 노출 검토
174
+ - 성능 위험: N+1 쿼리, 메모리 누수, 불필요한 리렌더 검토`;
175
+ }
176
+ function generateHypotheses(problem, context) {
177
+ return `**가설 생성**:
178
+ 1. **가설 1** (가능성: 높음)
179
+ - 근거: ${problem}의 가장 직접적인 원인
180
+ - 검증: [도구/파일]을 통해 확인
181
+ 2. **가설 2** (가능성: 중간)
182
+ - 근거: 간접적 요인 또는 환경 차이
183
+ - 검증: 추가 정보 수집 필요
184
+ 3. **가설 3** (가능성: 낮음)
185
+ - 근거: 엣지 케이스 또는 드문 상황
186
+ - 검증: 다른 가설 반증 시 검토
187
+
188
+ **우선순위**: 가능성 높은 순으로 검증하되, 낮은 가능성도 완전히 배제하지 않음`;
189
+ }
190
+ function evaluateAdaptability(problem, context) {
191
+ return `**적응성 평가**:
192
+ - 관찰 결과 반영: 새로운 정보에 따라 계획 수정 필요 여부 확인
193
+ - 가설 업데이트: 반증된 가설 폐기, 새 가설 생성
194
+ - 백트래킹: 막다른 길 도달 시 이전 단계로 돌아가 다른 경로 탐색
195
+ - 계획 재평가: 전체 접근법이 유효한지 주기적으로 검토`;
196
+ }
197
+ function identifyInformationSources(problem, context) {
198
+ return `**정보 소스**:
199
+ 1. **도구**:
200
+ - vibe 내장 도구 (36개)
201
+ - 파일 시스템 (Read, Write, Edit, Glob, Grep)
202
+ - Git, 패키지 관리자
203
+ 2. **정책/규칙**:
204
+ - CLAUDE.md (기술 스택, 아키텍처)
205
+ - .claude/vibe/constitution.md (프로젝트 규칙)
206
+ - skills/ 폴더 (품질 기준, 코딩 표준)
207
+ 3. **메모리**:
208
+ - recall_memory (이전 세션 정보)
209
+ - restore_session_context (컨텍스트 복원)
210
+ 4. **사용자 확인**:
211
+ - 비즈니스 로직 세부사항
212
+ - 디자인 선호도
213
+ - 우선순위 결정`;
214
+ }
215
+ function ensurePrecision(problem, context) {
216
+ return `**정밀성 확보**:
217
+ - 정책 인용: "CLAUDE.md:12에 따르면..." 형식으로 명시
218
+ - 코드 참조: "users.py:45의 User 모델" 형식으로 파일명:라인 포함
219
+ - 숫자 정확성: 복잡도, 커버리지, 성능 지표를 정확한 수치로 표현
220
+ - 근거 제시: 모든 주장에 대해 출처와 근거 명확히`;
221
+ }
222
+ function ensureCompleteness(problem, context) {
223
+ return `**완전성 확보**:
224
+ - 충돌 해결: 정책 → 작업 순서 → 전제 조건 → 사용자 선호도 순
225
+ - 옵션 탐색: 단일 해결책에 조기 고정하지 않고 여러 대안 검토
226
+ - 정보 검토: 모든 관련 정보 소스(#5) 철저히 검토
227
+ - 사용자 확인: 불확실한 부분은 가정하지 말고 확인`;
228
+ }
229
+ function demonstratePersistence(problem, context) {
230
+ return `**끈기 전략**:
231
+ - 일시적 오류: 지수 백오프로 재시도 (예: 1초, 2초, 4초...)
232
+ - 한계 인식: 명확한 재시도 제한, 타임아웃 도달 시 중단
233
+ - 전략 변경: 같은 실패 반복 X → 다른 접근법 시도
234
+ - 철저한 분석: 시간이 걸리더라도 모든 추론 단계 완료`;
235
+ }
236
+ function planExecution(problem, context) {
237
+ return `**실행 계획**:
238
+ 1. **추론 문서화**: 복잡한 결정의 경우 추론 과정 간략히 설명
239
+ 2. **단계별 실행**: 한 번에 하나의 주요 행동만 수행
240
+ 3. **결과 확인**: 각 행동의 결과를 확인한 후 다음 단계로 진행
241
+ 4. **롤백 대비**: 문제 발생 시 이전 상태로 복구 가능하도록 준비`;
242
+ }
243
+ function generateSummary(problem, steps) {
244
+ return `9단계 추론 프레임워크를 "${problem}"에 적용했습니다.
245
+ 총 ${steps.length}개 단계를 체계적으로 분석하여 논리적 종속성, 위험, 가설, 정보 소스를 포괄적으로 검토했습니다.`;
246
+ }
247
+ function formatOutput(result) {
248
+ let output = `# 추론 프레임워크 분석\n\n`;
249
+ output += `**문제**: ${result.problem}\n`;
250
+ output += `**컨텍스트**: ${result.context}\n`;
251
+ output += `**적용 단계**: ${result.steps_applied}/9\n\n`;
252
+ output += `---\n\n`;
253
+ for (const step of result.framework_steps) {
254
+ output += `## ${step.step}. ${step.title}\n\n`;
255
+ output += `${step.description}\n\n`;
256
+ output += `**핵심 질문**:\n`;
257
+ step.questions.forEach((q) => {
258
+ output += `- ${q}\n`;
259
+ });
260
+ output += `\n${step.output}\n\n`;
261
+ output += `---\n\n`;
262
+ }
263
+ output += `## 요약\n\n${result.summary}`;
264
+ return output;
265
+ }
266
+ //# sourceMappingURL=applyReasoningFramework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyReasoningFramework.js","sourceRoot":"","sources":["../../../src/tools/reasoning/applyReasoningFramework.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Reasoning Tools - 체계적 추론
3
+ */
4
+ export { applyReasoningFramework } from './applyReasoningFramework.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/reasoning/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC"}