@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
@@ -0,0 +1,150 @@
1
+ // Prompt analysis tool - completely independent
2
+ export const analyzePromptDefinition = {
3
+ name: 'analyze_prompt',
4
+ description: '프롬프트 분석|평가|점수|얼마나 좋은지|analyze prompt|rate this|score|how good|prompt quality - Analyze prompt quality',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ prompt: { type: 'string', description: 'Prompt to analyze' },
9
+ criteria: {
10
+ type: 'array',
11
+ items: { type: 'string' },
12
+ description: 'Specific criteria to evaluate (default: all)'
13
+ }
14
+ },
15
+ required: ['prompt']
16
+ },
17
+ annotations: {
18
+ title: 'Analyze Prompt',
19
+ audience: ['user', 'assistant'],
20
+ readOnlyHint: true,
21
+ destructiveHint: false,
22
+ idempotentHint: true,
23
+ openWorldHint: false
24
+ }
25
+ };
26
+ export async function analyzePrompt(args) {
27
+ const { prompt, criteria = ['clarity', 'specificity', 'context', 'structure'] } = args;
28
+ // Initialize scores with explicit types
29
+ const scores = {};
30
+ const feedback = {};
31
+ // Analyze clarity (0-10)
32
+ if (criteria.includes('clarity')) {
33
+ let clarityScore = 5.0;
34
+ const clarityFeedback = [];
35
+ if (prompt.length < 20) {
36
+ clarityScore -= 2.0;
37
+ clarityFeedback.push('프롬프트가 너무 짧습니다');
38
+ }
39
+ if (prompt.includes('?') || /\b(해주세요|부탁|요청)\b/.test(prompt)) {
40
+ clarityScore += 2.0;
41
+ clarityFeedback.push('명확한 요청 형태 ✓');
42
+ }
43
+ if (prompt.split(',').length > 5 || prompt.split('.').length > 10) {
44
+ clarityScore -= 1.0;
45
+ clarityFeedback.push('문장이 너무 복잡합니다');
46
+ }
47
+ scores.clarity = Math.max(0, Math.min(10, clarityScore));
48
+ feedback.clarity = clarityFeedback;
49
+ }
50
+ // Analyze specificity (0-10)
51
+ if (criteria.includes('specificity')) {
52
+ let specificityScore = 5.0;
53
+ const specificityFeedback = [];
54
+ const specificKeywords = ['구체적', '정확히', '예시', '예를 들어'];
55
+ const hasSpecificWords = specificKeywords.some(word => prompt.includes(word));
56
+ if (hasSpecificWords) {
57
+ specificityScore += 2.0;
58
+ specificityFeedback.push('구체적인 표현 사용 ✓');
59
+ }
60
+ const techTerms = /\b(JavaScript|Python|React|Node\.js|API|데이터베이스)\b/i;
61
+ if (techTerms.test(prompt)) {
62
+ specificityScore += 2.0;
63
+ specificityFeedback.push('기술 용어 포함 ✓');
64
+ }
65
+ if (!prompt.match(/\d+/) && prompt.length > 50) {
66
+ specificityScore -= 1.0;
67
+ specificityFeedback.push('수치나 구체적 데이터 부족');
68
+ }
69
+ scores.specificity = Math.max(0, Math.min(10, specificityScore));
70
+ feedback.specificity = specificityFeedback;
71
+ }
72
+ // Analyze context (0-10)
73
+ if (criteria.includes('context')) {
74
+ let contextScore = 5.0;
75
+ const contextFeedback = [];
76
+ const contextKeywords = ['배경', '목적', '이유', '상황', '현재', '문제'];
77
+ const contextCount = contextKeywords.filter(word => prompt.includes(word)).length;
78
+ contextScore += contextCount * 1.5;
79
+ if (contextCount > 0) {
80
+ contextFeedback.push(`배경 정보 포함 (${contextCount}개 키워드) ✓`);
81
+ }
82
+ else {
83
+ contextFeedback.push('배경 정보 부족');
84
+ }
85
+ if (prompt.split('\n').length > 2) {
86
+ contextScore += 1.0;
87
+ contextFeedback.push('구조화된 설명 ✓');
88
+ }
89
+ scores.context = Math.max(0, Math.min(10, contextScore));
90
+ feedback.context = contextFeedback;
91
+ }
92
+ // Analyze structure (0-10)
93
+ if (criteria.includes('structure')) {
94
+ let structureScore = 5.0;
95
+ const structureFeedback = [];
96
+ if (prompt.includes('\n')) {
97
+ structureScore += 2.0;
98
+ structureFeedback.push('줄바꿈 사용 ✓');
99
+ }
100
+ if (/[1-9]\.|[-•]/.test(prompt)) {
101
+ structureScore += 2.0;
102
+ structureFeedback.push('목록 형식 사용 ✓');
103
+ }
104
+ if (prompt.includes('**') || prompt.includes('##')) {
105
+ structureScore += 1.0;
106
+ structureFeedback.push('마크다운 형식 사용 ✓');
107
+ }
108
+ scores.structure = Math.max(0, Math.min(10, structureScore));
109
+ feedback.structure = structureFeedback;
110
+ }
111
+ // Calculate total score
112
+ const totalScore = Object.values(scores).reduce((a, b) => a + b, 0) / Object.keys(scores).length;
113
+ // Generate recommendations
114
+ const recommendations = [];
115
+ if (scores.clarity < 6) {
116
+ recommendations.push('💡 질문이나 요청을 더 명확하게 표현하세요');
117
+ }
118
+ if (scores.specificity < 6) {
119
+ recommendations.push('💡 구체적인 예시나 기술 사양을 추가하세요');
120
+ }
121
+ if (scores.context < 6) {
122
+ recommendations.push('💡 작업의 배경과 목적을 설명하세요');
123
+ }
124
+ if (scores.structure < 6) {
125
+ recommendations.push('💡 번호나 불릿 포인트로 구조화하세요');
126
+ }
127
+ // Identify strengths and weaknesses
128
+ const strengths = Object.entries(scores)
129
+ .filter(([_, score]) => score >= 7)
130
+ .map(([category, score]) => `✨ ${category}: 우수함 (${score.toFixed(1)}/10)`);
131
+ const weaknesses = Object.entries(scores)
132
+ .filter(([_, score]) => score < 5)
133
+ .map(([category, score]) => `⚠️ ${category}: 개선 필요 (${score.toFixed(1)}/10)`);
134
+ const analysis = {
135
+ action: 'analyze_prompt',
136
+ prompt,
137
+ totalScore: parseFloat(totalScore.toFixed(1)),
138
+ scores: Object.fromEntries(Object.entries(scores).map(([k, v]) => [k, parseFloat(v.toFixed(1))])),
139
+ feedback,
140
+ strengths,
141
+ weaknesses,
142
+ recommendations,
143
+ grade: totalScore >= 8 ? 'A' : totalScore >= 6 ? 'B' : totalScore >= 4 ? 'C' : 'D',
144
+ status: 'success'
145
+ };
146
+ return {
147
+ content: [{ type: 'text', text: `Score: ${analysis.totalScore}/10 (Grade: ${analysis.grade})\n\nScores:\n${Object.entries(analysis.scores).map(([k, v]) => `- ${k}: ${v}/10`).join('\n')}\n\nStrengths:\n${analysis.strengths.length > 0 ? analysis.strengths.join('\n') : 'None identified'}\n\nWeaknesses:\n${analysis.weaknesses.length > 0 ? analysis.weaknesses.join('\n') : 'None identified'}\n\nRecommendations:\n${analysis.recommendations.map(r => `- ${r}`).join('\n')}` }]
148
+ };
149
+ }
150
+ //# sourceMappingURL=analyzePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyzePrompt.js","sourceRoot":"","sources":["../../../src/tools/prompt/analyzePrompt.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAIhD,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,uGAAuG;IACpH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;YAC5D,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,8CAA8C;aAC5D;SACF;QACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA6C;IAC/E,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;IAEvF,wCAAwC;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,yBAAyB;IACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,YAAY,IAAI,GAAG,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,YAAY,IAAI,GAAG,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClE,YAAY,IAAI,GAAG,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QACzD,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;IACrC,CAAC;IAED,6BAA6B;IAC7B,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,IAAI,gBAAgB,GAAG,GAAG,CAAC;QAC3B,MAAM,mBAAmB,GAAa,EAAE,CAAC;QAEzC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,IAAI,GAAG,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,SAAS,GAAG,oDAAoD,CAAC;QACvE,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,gBAAgB,IAAI,GAAG,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/C,gBAAgB,IAAI,GAAG,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACjE,QAAQ,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAC7C,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAClF,YAAY,IAAI,YAAY,GAAG,GAAG,CAAC;QAEnC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,aAAa,YAAY,UAAU,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,YAAY,IAAI,GAAG,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;QACzD,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;IACrC,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,IAAI,cAAc,GAAG,GAAG,CAAC;QACzB,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,cAAc,IAAI,GAAG,CAAC;YACtB,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,cAAc,IAAI,GAAG,CAAC;YACtB,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,cAAc,IAAI,GAAG,CAAC;YACtB,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACzC,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAEjG,2BAA2B;IAC3B,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC3B,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACvB,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,eAAe,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACrC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,UAAU,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,QAAQ,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,gBAAgB;QACxB,MAAM;QACN,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,EAAE,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtE;QACD,QAAQ;QACR,SAAS;QACT,UAAU;QACV,eAAe;QACf,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAClF,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,CAAC,UAAU,eAAe,QAAQ,CAAC,KAAK,iBAAiB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,oBAAoB,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,yBAAyB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;KACxd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
+ export declare const enhancePromptDefinition: ToolDefinition;
3
+ export declare function enhancePrompt(args: {
4
+ prompt: string;
5
+ context?: string;
6
+ enhancement_type?: string;
7
+ }): Promise<ToolResult>;
8
+ //# sourceMappingURL=enhancePrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancePrompt.d.ts","sourceRoot":"","sources":["../../../src/tools/prompt/enhancePrompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,eAAO,MAAM,uBAAuB,EAAE,cAwBrC,CAAC;AAEF,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAiG9H"}
@@ -0,0 +1,110 @@
1
+ // Prompt enhancement tool - completely independent
2
+ export const enhancePromptDefinition = {
3
+ name: 'enhance_prompt',
4
+ description: '구체적으로|자세히|명확하게|더 구체적으로|be specific|more detail|clarify|elaborate|vague - Transform vague requests',
5
+ inputSchema: {
6
+ type: 'object',
7
+ properties: {
8
+ prompt: { type: 'string', description: 'Original prompt to enhance' },
9
+ context: { type: 'string', description: 'Additional context or project information' },
10
+ enhancement_type: {
11
+ type: 'string',
12
+ enum: ['clarity', 'specificity', 'context', 'all'],
13
+ description: 'Type of enhancement (default: all)'
14
+ }
15
+ },
16
+ required: ['prompt']
17
+ },
18
+ annotations: {
19
+ title: 'Enhance Prompt',
20
+ audience: ['user', 'assistant'],
21
+ readOnlyHint: true,
22
+ destructiveHint: false,
23
+ idempotentHint: true,
24
+ openWorldHint: false
25
+ }
26
+ };
27
+ export async function enhancePrompt(args) {
28
+ const { prompt, context = '', enhancement_type = 'all' } = args;
29
+ // Enhancement logic
30
+ const enhancements = {
31
+ clarity: [],
32
+ specificity: [],
33
+ context: [],
34
+ structure: []
35
+ };
36
+ // Analyze original prompt
37
+ const promptLength = prompt.length;
38
+ const hasQuestion = prompt.includes('?');
39
+ const hasSpecificTerms = /\b(구현|개발|수정|분석|디버그|리팩토링)\b/i.test(prompt);
40
+ // Apply enhancements based on type
41
+ if (enhancement_type === 'clarity' || enhancement_type === 'all') {
42
+ if (promptLength < 20) {
43
+ enhancements.clarity.push('더 구체적인 설명 추가');
44
+ }
45
+ if (!hasQuestion && !hasSpecificTerms) {
46
+ enhancements.clarity.push('명확한 요청이나 질문 형태로 변환');
47
+ }
48
+ }
49
+ if (enhancement_type === 'specificity' || enhancement_type === 'all') {
50
+ if (!prompt.match(/\b(언어|프레임워크|라이브러리|버전)\b/)) {
51
+ enhancements.specificity.push('기술 스택 명시');
52
+ }
53
+ if (!prompt.match(/\b(입력|출력|결과|형식)\b/)) {
54
+ enhancements.specificity.push('예상 입출력 정의');
55
+ }
56
+ }
57
+ if (enhancement_type === 'context' || enhancement_type === 'all') {
58
+ if (!prompt.match(/\b(목적|이유|배경|상황)\b/)) {
59
+ enhancements.context.push('작업 목적과 배경 추가');
60
+ }
61
+ if (context) {
62
+ enhancements.context.push('제공된 컨텍스트 통합');
63
+ }
64
+ }
65
+ // Generate enhanced prompt
66
+ let enhancedPrompt = prompt;
67
+ // Build enhanced version
68
+ const components = [];
69
+ // Add objective
70
+ components.push(`**목표**: ${prompt}`);
71
+ // Add context if provided
72
+ if (context) {
73
+ components.push(`**배경**: ${context}`);
74
+ }
75
+ // Add specific requirements based on analysis
76
+ const requirements = [];
77
+ if (enhancements.specificity.includes('기술 스택 명시')) {
78
+ requirements.push('- 사용할 언어/프레임워크를 명시해주세요');
79
+ }
80
+ if (enhancements.specificity.includes('예상 입출력 정의')) {
81
+ requirements.push('- 예상되는 입력과 출력 형식을 설명해주세요');
82
+ }
83
+ if (requirements.length > 0) {
84
+ components.push(`**요구사항**:\n${requirements.join('\n')}`);
85
+ }
86
+ // Add quality considerations
87
+ const quality = [
88
+ '- 에러 처리 포함',
89
+ '- 테스트 가능한 구조',
90
+ '- 확장 가능한 설계'
91
+ ];
92
+ components.push(`**품질 기준**:\n${quality.join('\n')}`);
93
+ enhancedPrompt = components.join('\n\n');
94
+ const result = {
95
+ action: 'enhance_prompt',
96
+ original: prompt,
97
+ enhanced: enhancedPrompt,
98
+ enhancements,
99
+ improvements: [
100
+ enhancements.clarity.length > 0 ? `명확성 개선 (${enhancements.clarity.length}개)` : null,
101
+ enhancements.specificity.length > 0 ? `구체성 추가 (${enhancements.specificity.length}개)` : null,
102
+ enhancements.context.length > 0 ? `맥락 보강 (${enhancements.context.length}개)` : null
103
+ ].filter(Boolean),
104
+ status: 'success'
105
+ };
106
+ return {
107
+ content: [{ type: 'text', text: `Original: ${prompt}\n\nEnhanced:\n${enhancedPrompt}\n\nImprovements: ${result.improvements.join(', ')}` }]
108
+ };
109
+ }
110
+ //# sourceMappingURL=enhancePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancePrompt.js","sourceRoot":"","sources":["../../../src/tools/prompt/enhancePrompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ToolResult, ToolDefinition } from '../../types/tool.js';
2
+ export declare const enhancePromptGeminiDefinition: ToolDefinition;
3
+ export declare function enhancePromptGemini(args: {
4
+ prompt: string;
5
+ agent_role?: string;
6
+ strategies?: string[];
7
+ }): Promise<ToolResult>;
8
+ //# sourceMappingURL=enhancePromptGemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancePromptGemini.d.ts","sourceRoot":"","sources":["../../../src/tools/prompt/enhancePromptGemini.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,eAAO,MAAM,6BAA6B,EAAE,cAiC3C,CAAC;AASF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,OAAO,CAAC,UAAU,CAAC,CAwEtB"}
@@ -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"}