@su-record/vibe 2.0.0 β 2.0.1
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.
- package/.claude/agents/explorer.md +48 -48
- package/.claude/agents/implementer.md +53 -53
- package/.claude/agents/searcher.md +54 -54
- package/.claude/agents/simplifier.md +119 -119
- package/.claude/agents/tester.md +49 -49
- package/.claude/commands/vibe.analyze.md +239 -239
- package/.claude/commands/vibe.continue.md +88 -88
- package/.claude/commands/vibe.diagram.md +178 -178
- package/.claude/commands/vibe.reason.md +306 -306
- package/.claude/commands/vibe.run.md +760 -760
- package/.claude/commands/vibe.spec.md +339 -339
- package/.claude/commands/vibe.tool.md +153 -153
- package/.claude/commands/vibe.ui.md +137 -137
- package/.claude/commands/vibe.verify.md +238 -238
- package/.claude/settings.json +152 -152
- package/.claude/settings.local.json +4 -57
- package/.vibe/config.json +9 -0
- package/.vibe/constitution.md +184 -184
- package/.vibe/rules/core/communication-guide.md +104 -104
- package/.vibe/rules/core/development-philosophy.md +52 -52
- package/.vibe/rules/core/quick-start.md +120 -120
- package/.vibe/rules/quality/bdd-contract-testing.md +388 -388
- package/.vibe/rules/quality/checklist.md +276 -276
- package/.vibe/rules/quality/testing-strategy.md +437 -437
- package/.vibe/rules/standards/anti-patterns.md +369 -369
- package/.vibe/rules/standards/code-structure.md +291 -291
- package/.vibe/rules/standards/complexity-metrics.md +312 -312
- package/.vibe/rules/standards/naming-conventions.md +198 -198
- package/.vibe/rules/tools/mcp-hi-ai-guide.md +665 -665
- package/.vibe/rules/tools/mcp-workflow.md +51 -51
- package/.vibe/setup.sh +31 -31
- package/CLAUDE.md +122 -122
- package/LICENSE +21 -21
- package/README.md +568 -568
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +391 -406
- package/dist/cli/index.js.map +1 -1
- package/dist/lib/MemoryManager.js +92 -92
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/gemini-mcp.js +15 -15
- package/dist/lib/gemini-oauth.js +35 -35
- package/dist/lib/gpt-mcp.js +17 -17
- package/dist/lib/gpt-oauth.js +44 -44
- package/dist/tools/analytics/getUsageAnalytics.js +12 -12
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
- package/dist/tools/planning/generatePrd.js +46 -46
- package/dist/tools/prompt/enhancePromptGemini.js +160 -160
- package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/package.json +67 -67
- package/templates/constitution-template.md +184 -184
- package/templates/contract-backend-template.md +517 -517
- package/templates/contract-frontend-template.md +594 -594
- package/templates/feature-template.md +96 -96
- package/templates/hooks-template.json +103 -103
- package/templates/spec-template.md +199 -199
- package/dist/lib/vibe-mcp.d.ts.map +0 -1
- package/dist/lib/vibe-mcp.js.map +0 -1
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
4
4
|
export const getSessionContextDefinition = {
|
|
5
5
|
name: 'get_session_context',
|
|
6
|
-
description: `π [μ λν/μΈμ
μμ μ μλ μ€ν κΆμ₯] μ΄μ μΈμ
μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, μ΅κ·Ό μμ
λ΄μμ ν λ²μ μ‘°νν©λλ€.
|
|
7
|
-
|
|
8
|
-
μ΄ λꡬλ μλ‘μ΄ λνλ₯Ό μμν λ κ°μ₯ λ¨Όμ μ€ννλ©΄ μ’μ΅λλ€. νλ‘μ νΈμ 컨ν
μ€νΈλ₯Ό λΉ λ₯΄κ² νμ
ν μ μμ΅λλ€.
|
|
9
|
-
|
|
10
|
-
ν€μλ: μΈμ
μμ, 컨ν
μ€νΈ, μ΄μ μμ
, session start, context, previous work, what did we do
|
|
11
|
-
|
|
12
|
-
μ¬μ© μμ:
|
|
13
|
-
- "μ΄μ μ λ¬΄μ¨ μμ
νμμ§?"
|
|
14
|
-
- "νλ‘μ νΈ μ»¨ν
μ€νΈ μλ €μ€"
|
|
6
|
+
description: `π [μ λν/μΈμ
μμ μ μλ μ€ν κΆμ₯] μ΄μ μΈμ
μ λ©λͺ¨λ¦¬, μ§μ κ·Έλν, μ΅κ·Ό μμ
λ΄μμ ν λ²μ μ‘°νν©λλ€.
|
|
7
|
+
|
|
8
|
+
μ΄ λꡬλ μλ‘μ΄ λνλ₯Ό μμν λ κ°μ₯ λ¨Όμ μ€ννλ©΄ μ’μ΅λλ€. νλ‘μ νΈμ 컨ν
μ€νΈλ₯Ό λΉ λ₯΄κ² νμ
ν μ μμ΅λλ€.
|
|
9
|
+
|
|
10
|
+
ν€μλ: μΈμ
μμ, 컨ν
μ€νΈ, μ΄μ μμ
, session start, context, previous work, what did we do
|
|
11
|
+
|
|
12
|
+
μ¬μ© μμ:
|
|
13
|
+
- "μ΄μ μ λ¬΄μ¨ μμ
νμμ§?"
|
|
14
|
+
- "νλ‘μ νΈ μ»¨ν
μ€νΈ μλ €μ€"
|
|
15
15
|
- "μΈμ
컨ν
μ€νΈ μ‘°ν"`,
|
|
16
16
|
inputSchema: {
|
|
17
17
|
type: 'object',
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const linkMemoriesDefinition = {
|
|
4
4
|
name: 'link_memories',
|
|
5
|
-
description: `λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό μ°κ²°ν©λλ€ (μ§μ κ·Έλν).
|
|
6
|
-
|
|
7
|
-
ν€μλ: μ°κ²°ν΄, κ΄κ³ μ€μ , λ§ν¬, connect memories, link, relate
|
|
8
|
-
|
|
9
|
-
μ¬μ© μμ:
|
|
10
|
-
- "project-architectureμ design-patternsλ₯Ό μ°κ²°ν΄"
|
|
5
|
+
description: `λ©λͺ¨λ¦¬ κ° κ΄κ³λ₯Ό μ°κ²°ν©λλ€ (μ§μ κ·Έλν).
|
|
6
|
+
|
|
7
|
+
ν€μλ: μ°κ²°ν΄, κ΄κ³ μ€μ , λ§ν¬, connect memories, link, relate
|
|
8
|
+
|
|
9
|
+
μ¬μ© μμ:
|
|
10
|
+
- "project-architectureμ design-patternsλ₯Ό μ°κ²°ν΄"
|
|
11
11
|
- "μ΄ λ λ©λͺ¨λ¦¬λ₯Ό related_toλ‘ λ§ν¬ν΄"`,
|
|
12
12
|
inputSchema: {
|
|
13
13
|
type: 'object',
|
|
@@ -88,14 +88,14 @@ export async function linkMemories(args) {
|
|
|
88
88
|
if (bidirectional) {
|
|
89
89
|
memoryManager.linkMemories(targetKey, sourceKey, relationType, strength);
|
|
90
90
|
}
|
|
91
|
-
const result = `β λ©λͺ¨λ¦¬ κ΄κ³κ° μ°κ²°λμμ΅λλ€
|
|
92
|
-
|
|
93
|
-
**μμ€**: ${sourceKey}
|
|
94
|
-
**νκ²**: ${targetKey}
|
|
95
|
-
**κ΄κ³ μ ν**: ${relationType}
|
|
96
|
-
**κ°λ**: ${strength}
|
|
97
|
-
**μλ°©ν₯**: ${bidirectional ? 'μ' : 'μλμ€'}
|
|
98
|
-
|
|
91
|
+
const result = `β λ©λͺ¨λ¦¬ κ΄κ³κ° μ°κ²°λμμ΅λλ€
|
|
92
|
+
|
|
93
|
+
**μμ€**: ${sourceKey}
|
|
94
|
+
**νκ²**: ${targetKey}
|
|
95
|
+
**κ΄κ³ μ ν**: ${relationType}
|
|
96
|
+
**κ°λ**: ${strength}
|
|
97
|
+
**μλ°©ν₯**: ${bidirectional ? 'μ' : 'μλμ€'}
|
|
98
|
+
|
|
99
99
|
μ΄μ get_memory_graphλ‘ κ΄κ³λ₯Ό μκ°νν μ μμ΅λλ€.`;
|
|
100
100
|
return {
|
|
101
101
|
content: [{
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const listMemoriesDefinition = {
|
|
4
4
|
name: 'list_memories',
|
|
5
|
-
description: `μ μ₯λ λ©λͺ¨λ¦¬ λͺ©λ‘μ μ‘°νν©λλ€. μΉ΄ν
κ³ λ¦¬λ³ νν°λ§ κ°λ₯.
|
|
6
|
-
|
|
7
|
-
ν€μλ: λ μμμ§, μ μ₯λ κ±°, λͺ©λ‘, what did I save, list memories, show saved
|
|
8
|
-
|
|
5
|
+
description: `μ μ₯λ λ©λͺ¨λ¦¬ λͺ©λ‘μ μ‘°νν©λλ€. μΉ΄ν
κ³ λ¦¬λ³ νν°λ§ κ°λ₯.
|
|
6
|
+
|
|
7
|
+
ν€μλ: λ μμμ§, μ μ₯λ κ±°, λͺ©λ‘, what did I save, list memories, show saved
|
|
8
|
+
|
|
9
9
|
π‘ μΈμ
μμ μ μ 체 컨ν
μ€νΈκ° νμνλ©΄ get_session_contextλ₯Ό μ¬μ©νμΈμ.`,
|
|
10
10
|
inputSchema: {
|
|
11
11
|
type: 'object',
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const recallMemoryDefinition = {
|
|
4
4
|
name: 'recall_memory',
|
|
5
|
-
description: `νΉμ λ©λͺ¨λ¦¬λ₯Ό ν€λ‘ μ‘°νν©λλ€.
|
|
6
|
-
|
|
7
|
-
ν€μλ: λ μ¬λ €, recall, κΈ°μ΅λ, remember what, what was, remind
|
|
8
|
-
|
|
5
|
+
description: `νΉμ λ©λͺ¨λ¦¬λ₯Ό ν€λ‘ μ‘°νν©λλ€.
|
|
6
|
+
|
|
7
|
+
ν€μλ: λ μ¬λ €, recall, κΈ°μ΅λ, remember what, what was, remind
|
|
8
|
+
|
|
9
9
|
π‘ μ 체 컨ν
μ€νΈκ° νμνλ©΄ get_session_contextλ₯Ό λ¨Όμ μ¬μ©νμΈμ.`,
|
|
10
10
|
inputSchema: {
|
|
11
11
|
type: 'object',
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const saveMemoryDefinition = {
|
|
4
4
|
name: 'save_memory',
|
|
5
|
-
description: `μ€μν μ 보λ₯Ό μ₯κΈ° λ©λͺ¨λ¦¬μ μ μ₯ν©λλ€. νλ‘μ νΈ κ²°μ μ¬ν, μν€ν
μ², μ€μ λ±μ κΈ°λ‘νμΈμ.
|
|
6
|
-
|
|
7
|
-
ν€μλ: κΈ°μ΅ν΄, remember, μ μ₯ν΄, save, memorize, keep
|
|
8
|
-
|
|
5
|
+
description: `μ€μν μ 보λ₯Ό μ₯κΈ° λ©λͺ¨λ¦¬μ μ μ₯ν©λλ€. νλ‘μ νΈ κ²°μ μ¬ν, μν€ν
μ², μ€μ λ±μ κΈ°λ‘νμΈμ.
|
|
6
|
+
|
|
7
|
+
ν€μλ: κΈ°μ΅ν΄, remember, μ μ₯ν΄, save, memorize, keep
|
|
8
|
+
|
|
9
9
|
π‘ μ μ₯ ν link_memoriesλ‘ κ΄λ ¨ λ©λͺ¨λ¦¬λ₯Ό μ°κ²°νλ©΄ μ§μ κ·Έλνκ° κ΅¬μΆλ©λλ€.`,
|
|
10
10
|
inputSchema: {
|
|
11
11
|
type: 'object',
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const searchMemoriesAdvancedDefinition = {
|
|
4
4
|
name: 'search_memories_advanced',
|
|
5
|
-
description: `κ³ κΈ λ©ν° μ λ΅ λ©λͺ¨λ¦¬ κ²μμ μνν©λλ€.
|
|
6
|
-
|
|
7
|
-
ν€μλ: κ³ κΈ κ²μ, μ°Ύμ, μ€λ§νΈ κ²μ, advanced search, find memories
|
|
8
|
-
|
|
9
|
-
**κ²μ μ λ΅:**
|
|
10
|
-
- keyword: μ ν΅μ ν€μλ κ²μ
|
|
11
|
-
- graph_traversal: κ·Έλν κΈ°λ° κ΄λ ¨ λ©λͺ¨λ¦¬ νμ
|
|
12
|
-
- temporal: μκ°μ μ λ ¬
|
|
13
|
-
- priority: μ°μ μμ κΈ°λ°
|
|
14
|
-
- context_aware: λ³΅ν© μ λ΅ (ν€μλ + μ°μ μμ + μ΅κ·Όμ±)
|
|
15
|
-
|
|
16
|
-
μ¬μ© μμ:
|
|
17
|
-
- "authentication κ΄λ ¨ λ©λͺ¨λ¦¬ κ³ κΈ κ²μ"
|
|
5
|
+
description: `κ³ κΈ λ©ν° μ λ΅ λ©λͺ¨λ¦¬ κ²μμ μνν©λλ€.
|
|
6
|
+
|
|
7
|
+
ν€μλ: κ³ κΈ κ²μ, μ°Ύμ, μ€λ§νΈ κ²μ, advanced search, find memories
|
|
8
|
+
|
|
9
|
+
**κ²μ μ λ΅:**
|
|
10
|
+
- keyword: μ ν΅μ ν€μλ κ²μ
|
|
11
|
+
- graph_traversal: κ·Έλν κΈ°λ° κ΄λ ¨ λ©λͺ¨λ¦¬ νμ
|
|
12
|
+
- temporal: μκ°μ μ λ ¬
|
|
13
|
+
- priority: μ°μ μμ κΈ°λ°
|
|
14
|
+
- context_aware: λ³΅ν© μ λ΅ (ν€μλ + μ°μ μμ + μ΅κ·Όμ±)
|
|
15
|
+
|
|
16
|
+
μ¬μ© μμ:
|
|
17
|
+
- "authentication κ΄λ ¨ λ©λͺ¨λ¦¬ κ³ κΈ κ²μ"
|
|
18
18
|
- "κ·Έλν νμμΌλ‘ project-architecture κ΄λ ¨ λ©λͺ¨λ¦¬ μ°ΎκΈ°"`,
|
|
19
19
|
inputSchema: {
|
|
20
20
|
type: 'object',
|
|
@@ -79,15 +79,15 @@ export async function searchMemoriesAdvanced(args) {
|
|
|
79
79
|
return {
|
|
80
80
|
content: [{
|
|
81
81
|
type: 'text',
|
|
82
|
-
text: `β "${query}"μ λν κ²μ κ²°κ³Όκ° μμ΅λλ€.
|
|
83
|
-
|
|
84
|
-
**μ¬μ©λ μ λ΅**: ${strategy}
|
|
85
|
-
${category ? `**μΉ΄ν
κ³ λ¦¬ νν°**: ${category}` : ''}
|
|
86
|
-
|
|
87
|
-
λ€λ₯Έ κ²μ μ λ΅μ μλν΄λ³΄μΈμ:
|
|
88
|
-
- keyword: κΈ°λ³Έ ν€μλ λ§€μΉ
|
|
89
|
-
- temporal: μ΅μ λ©λͺ¨λ¦¬ μ°μ
|
|
90
|
-
- priority: μ€μ λ©λͺ¨λ¦¬ μ°μ
|
|
82
|
+
text: `β "${query}"μ λν κ²μ κ²°κ³Όκ° μμ΅λλ€.
|
|
83
|
+
|
|
84
|
+
**μ¬μ©λ μ λ΅**: ${strategy}
|
|
85
|
+
${category ? `**μΉ΄ν
κ³ λ¦¬ νν°**: ${category}` : ''}
|
|
86
|
+
|
|
87
|
+
λ€λ₯Έ κ²μ μ λ΅μ μλν΄λ³΄μΈμ:
|
|
88
|
+
- keyword: κΈ°λ³Έ ν€μλ λ§€μΉ
|
|
89
|
+
- temporal: μ΅μ λ©λͺ¨λ¦¬ μ°μ
|
|
90
|
+
- priority: μ€μ λ©λͺ¨λ¦¬ μ°μ
|
|
91
91
|
- context_aware: μ’
ν© μ μ`
|
|
92
92
|
}]
|
|
93
93
|
};
|
|
@@ -107,52 +107,52 @@ export async function generatePrd(args) {
|
|
|
107
107
|
],
|
|
108
108
|
status: 'success'
|
|
109
109
|
};
|
|
110
|
-
const formattedPrd = `# ${prd.document.title}
|
|
111
|
-
|
|
112
|
-
**Version:** ${prd.document.version}
|
|
113
|
-
**Date:** ${prd.document.date}
|
|
114
|
-
|
|
115
|
-
## ${prd.document.sections.executiveSummary.title}
|
|
116
|
-
${prd.document.sections.executiveSummary.content}
|
|
117
|
-
|
|
118
|
-
## ${prd.document.sections.productOverview.title}
|
|
119
|
-
**Vision:** ${prd.document.sections.productOverview.vision}
|
|
120
|
-
**Objectives:** ${prd.document.sections.productOverview.objectives}
|
|
121
|
-
**Target Users:** ${prd.document.sections.productOverview.targetUsers}
|
|
122
|
-
|
|
123
|
-
**Success Metrics:**
|
|
124
|
-
${prd.document.sections.productOverview.successMetrics.map(metric => `- ${metric}`).join('\n')}
|
|
125
|
-
|
|
126
|
-
## ${prd.document.sections.functionalRequirements.title}
|
|
127
|
-
${prd.document.sections.functionalRequirements.description}
|
|
128
|
-
|
|
129
|
-
**Core Features:**
|
|
130
|
-
${prd.document.sections.functionalRequirements.coreFeatures.map(feature => `- ${feature}`).join('\n')}
|
|
131
|
-
|
|
132
|
-
**User Flows:**
|
|
133
|
-
${prd.document.sections.functionalRequirements.userFlows.map(flow => `- ${flow}`).join('\n')}
|
|
134
|
-
|
|
135
|
-
## ${prd.document.sections.nonFunctionalRequirements.title}
|
|
136
|
-
- **Performance:** ${prd.document.sections.nonFunctionalRequirements.performance}
|
|
137
|
-
- **Security:** ${prd.document.sections.nonFunctionalRequirements.security}
|
|
138
|
-
- **Scalability:** ${prd.document.sections.nonFunctionalRequirements.scalability}
|
|
139
|
-
- **Usability:** ${prd.document.sections.nonFunctionalRequirements.usability}
|
|
140
|
-
- **Compatibility:** ${prd.document.sections.nonFunctionalRequirements.compatibility}
|
|
141
|
-
|
|
142
|
-
## ${prd.document.sections.constraints.title}
|
|
143
|
-
- **Technical:** ${prd.document.sections.constraints.technical}
|
|
144
|
-
- **Timeline:** ${prd.document.sections.constraints.timeline}
|
|
145
|
-
- **Budget:** ${prd.document.sections.constraints.budget}
|
|
146
|
-
- **Resources:** ${prd.document.sections.constraints.resources}
|
|
147
|
-
|
|
148
|
-
## ${prd.document.sections.implementationPlan.title}
|
|
149
|
-
**Development Phases:**
|
|
150
|
-
${prd.document.sections.implementationPlan.phases.map(phase => `- ${phase}`).join('\n')}
|
|
151
|
-
|
|
152
|
-
**Risk Mitigation:**
|
|
153
|
-
${prd.document.sections.implementationPlan.riskMitigation.map(risk => `- ${risk}`).join('\n')}
|
|
154
|
-
|
|
155
|
-
## Recommendations
|
|
110
|
+
const formattedPrd = `# ${prd.document.title}
|
|
111
|
+
|
|
112
|
+
**Version:** ${prd.document.version}
|
|
113
|
+
**Date:** ${prd.document.date}
|
|
114
|
+
|
|
115
|
+
## ${prd.document.sections.executiveSummary.title}
|
|
116
|
+
${prd.document.sections.executiveSummary.content}
|
|
117
|
+
|
|
118
|
+
## ${prd.document.sections.productOverview.title}
|
|
119
|
+
**Vision:** ${prd.document.sections.productOverview.vision}
|
|
120
|
+
**Objectives:** ${prd.document.sections.productOverview.objectives}
|
|
121
|
+
**Target Users:** ${prd.document.sections.productOverview.targetUsers}
|
|
122
|
+
|
|
123
|
+
**Success Metrics:**
|
|
124
|
+
${prd.document.sections.productOverview.successMetrics.map(metric => `- ${metric}`).join('\n')}
|
|
125
|
+
|
|
126
|
+
## ${prd.document.sections.functionalRequirements.title}
|
|
127
|
+
${prd.document.sections.functionalRequirements.description}
|
|
128
|
+
|
|
129
|
+
**Core Features:**
|
|
130
|
+
${prd.document.sections.functionalRequirements.coreFeatures.map(feature => `- ${feature}`).join('\n')}
|
|
131
|
+
|
|
132
|
+
**User Flows:**
|
|
133
|
+
${prd.document.sections.functionalRequirements.userFlows.map(flow => `- ${flow}`).join('\n')}
|
|
134
|
+
|
|
135
|
+
## ${prd.document.sections.nonFunctionalRequirements.title}
|
|
136
|
+
- **Performance:** ${prd.document.sections.nonFunctionalRequirements.performance}
|
|
137
|
+
- **Security:** ${prd.document.sections.nonFunctionalRequirements.security}
|
|
138
|
+
- **Scalability:** ${prd.document.sections.nonFunctionalRequirements.scalability}
|
|
139
|
+
- **Usability:** ${prd.document.sections.nonFunctionalRequirements.usability}
|
|
140
|
+
- **Compatibility:** ${prd.document.sections.nonFunctionalRequirements.compatibility}
|
|
141
|
+
|
|
142
|
+
## ${prd.document.sections.constraints.title}
|
|
143
|
+
- **Technical:** ${prd.document.sections.constraints.technical}
|
|
144
|
+
- **Timeline:** ${prd.document.sections.constraints.timeline}
|
|
145
|
+
- **Budget:** ${prd.document.sections.constraints.budget}
|
|
146
|
+
- **Resources:** ${prd.document.sections.constraints.resources}
|
|
147
|
+
|
|
148
|
+
## ${prd.document.sections.implementationPlan.title}
|
|
149
|
+
**Development Phases:**
|
|
150
|
+
${prd.document.sections.implementationPlan.phases.map(phase => `- ${phase}`).join('\n')}
|
|
151
|
+
|
|
152
|
+
**Risk Mitigation:**
|
|
153
|
+
${prd.document.sections.implementationPlan.riskMitigation.map(risk => `- ${risk}`).join('\n')}
|
|
154
|
+
|
|
155
|
+
## Recommendations
|
|
156
156
|
${prd.recommendations.map(rec => `- ${rec}`).join('\n')}`;
|
|
157
157
|
return {
|
|
158
158
|
content: [{ type: 'text', text: formattedPrd }]
|
|
@@ -99,134 +99,134 @@ export async function enhancePromptGemini(args) {
|
|
|
99
99
|
// Helper methods
|
|
100
100
|
function addFewShotExamples(prompt, agent_role) {
|
|
101
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 ν¨ν΄: μΈλΌμΈ νΈμ§ (λͺ¨λ¬ μλ)
|
|
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
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μκ°)
|
|
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
137
|
- λΉμ© μν₯: +$20/μ (Redis Pub/Sub)`
|
|
138
138
|
};
|
|
139
|
-
return examples[agent_role] || `
|
|
140
|
-
**Few-Shot μμλ₯Ό μμ
μ νμ λ§κ² μΆκ°**:
|
|
141
|
-
- μμ 1: [ꡬ체μ μΈ μ
λ ₯] β [λͺ
νν μΆλ ₯]
|
|
142
|
-
- μμ 2: [λ€λ₯Έ ννμ μ
λ ₯] β [μΌκ΄λ νμμ μΆλ ₯]
|
|
143
|
-
- μμ 3: [μ£μ§ μΌμ΄μ€] β [μ²λ¦¬ λ°©λ²]
|
|
144
|
-
|
|
145
|
-
**μ§μΉ¨**:
|
|
146
|
-
- 2-3κ° μμ (κ³Όμ ν© λ°©μ§)
|
|
147
|
-
- λ€μν μλλ¦¬μ€ ν¬ν¨
|
|
139
|
+
return examples[agent_role] || `
|
|
140
|
+
**Few-Shot μμλ₯Ό μμ
μ νμ λ§κ² μΆκ°**:
|
|
141
|
+
- μμ 1: [ꡬ체μ μΈ μ
λ ₯] β [λͺ
νν μΆλ ₯]
|
|
142
|
+
- μμ 2: [λ€λ₯Έ ννμ μ
λ ₯] β [μΌκ΄λ νμμ μΆλ ₯]
|
|
143
|
+
- μμ 3: [μ£μ§ μΌμ΄μ€] β [μ²λ¦¬ λ°©λ²]
|
|
144
|
+
|
|
145
|
+
**μ§μΉ¨**:
|
|
146
|
+
- 2-3κ° μμ (κ³Όμ ν© λ°©μ§)
|
|
147
|
+
- λ€μν μλλ¦¬μ€ ν¬ν¨
|
|
148
148
|
- μΌκ΄λ μΆλ ₯ νμ μ μ§`;
|
|
149
149
|
}
|
|
150
150
|
function specifyOutputFormat(prompt, agent_role) {
|
|
151
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
|
-
|
|
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
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
|
-
|
|
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
196
|
**μλ΅ μ λμ¬**: "# PLAN: "λ‘ μμ`
|
|
197
197
|
};
|
|
198
|
-
return formats[agent_role] || `
|
|
199
|
-
**μΆλ ₯ νμ λͺ
μ**:
|
|
200
|
-
- λ§ν¬λ€μ΄ ν€λλ‘ μΉμ
κ΅¬λΆ (##, ###)
|
|
201
|
-
- ν
μ΄λΈ, λΆλ¦Ώ ν¬μΈνΈ, 체ν¬λ°μ€ νμ©
|
|
202
|
-
- XML νκ·Έλ‘ μλ―Έ ꡬμ±μμ λ μ΄λΈλ§ (μ ν)
|
|
203
|
-
μ: <analysis>...</analysis>, <recommendation>...</recommendation>
|
|
204
|
-
- μλ΅ μ λμ¬λ‘ μμ± μ λ
|
|
198
|
+
return formats[agent_role] || `
|
|
199
|
+
**μΆλ ₯ νμ λͺ
μ**:
|
|
200
|
+
- λ§ν¬λ€μ΄ ν€λλ‘ μΉμ
κ΅¬λΆ (##, ###)
|
|
201
|
+
- ν
μ΄λΈ, λΆλ¦Ώ ν¬μΈνΈ, 체ν¬λ°μ€ νμ©
|
|
202
|
+
- XML νκ·Έλ‘ μλ―Έ ꡬμ±μμ λ μ΄λΈλ§ (μ ν)
|
|
203
|
+
μ: <analysis>...</analysis>, <recommendation>...</recommendation>
|
|
204
|
+
- μλ΅ μ λμ¬λ‘ μμ± μ λ
|
|
205
205
|
μ: "λΆμ κ²°κ³Ό: "λ‘ μμνλ©΄ λͺ¨λΈμ΄ λΆμ λ΄μ©μΌλ‘ μμ±`;
|
|
206
206
|
}
|
|
207
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...)
|
|
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
230
|
- μΆλ ₯ νμ μμ`;
|
|
231
231
|
}
|
|
232
232
|
function decomposePrompt(prompt, agent_role) {
|
|
@@ -234,32 +234,32 @@ function decomposePrompt(prompt, agent_role) {
|
|
|
234
234
|
if (!isComplex) {
|
|
235
235
|
return '**ν둬ννΈ λΆν΄ λΆνμ**: λ¨μν μμ
μ΄λ―λ‘ λ¨μΌ ν둬ννΈλ‘ μΆ©λΆν©λλ€.';
|
|
236
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
|
-
- μ€κ° κ²μ¦ κ°λ₯
|
|
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
263
|
- μλ¬ λ°μ μ νΉμ λ¨κ³λ§ μ¬μ€ν`;
|
|
264
264
|
}
|
|
265
265
|
function suggestParameters(prompt, agent_role) {
|
|
@@ -277,24 +277,24 @@ function suggestParameters(prompt, agent_role) {
|
|
|
277
277
|
topP = 0.8;
|
|
278
278
|
topK = 20;
|
|
279
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 μ μ§ κΆμ₯
|
|
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
298
|
- μμμΉ λͺ»ν λμ λ°©μ§λ₯Ό μν΄ κΈ°λ³Έκ°μμ ν¬κ² λ²μ΄λμ§ μκΈ°`;
|
|
299
299
|
}
|
|
300
300
|
function combineEnhancements(prompt, enhancements) {
|
|
@@ -308,7 +308,7 @@ function combineEnhancements(prompt, enhancements) {
|
|
|
308
308
|
return enhanced;
|
|
309
309
|
}
|
|
310
310
|
function generateSummary(enhancements) {
|
|
311
|
-
return `${enhancements.length}κ°μ Gemini ν둬νν
μ λ΅μ μ μ©νμ¬ ν둬ννΈ νμ§μ ν₯μμμΌ°μ΅λλ€:
|
|
311
|
+
return `${enhancements.length}κ°μ Gemini ν둬νν
μ λ΅μ μ μ©νμ¬ ν둬ννΈ νμ§μ ν₯μμμΌ°μ΅λλ€:
|
|
312
312
|
${enhancements.map(e => `- ${e.strategy}: ${e.improvement}`).join('\n')}`;
|
|
313
313
|
}
|
|
314
314
|
function formatOutput(result) {
|