@su-record/vibe 2.3.0 → 2.3.2
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/settings.json +35 -35
- package/.claude/settings.local.json +24 -25
- package/.claude/vibe/constitution.md +184 -184
- package/.claude/vibe/rules/core/communication-guide.md +104 -104
- package/.claude/vibe/rules/core/development-philosophy.md +52 -52
- package/.claude/vibe/rules/core/quick-start.md +120 -120
- package/.claude/vibe/rules/languages/dart-flutter.md +509 -509
- package/.claude/vibe/rules/languages/go.md +396 -396
- package/.claude/vibe/rules/languages/java-spring.md +586 -586
- package/.claude/vibe/rules/languages/kotlin-android.md +491 -491
- package/.claude/vibe/rules/languages/python-django.md +371 -371
- package/.claude/vibe/rules/languages/python-fastapi.md +386 -386
- package/.claude/vibe/rules/languages/rust.md +425 -425
- package/.claude/vibe/rules/languages/swift-ios.md +516 -516
- package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -441
- package/.claude/vibe/rules/languages/typescript-node.md +375 -375
- package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -521
- package/.claude/vibe/rules/languages/typescript-react-native.md +446 -446
- package/.claude/vibe/rules/languages/typescript-react.md +525 -525
- package/.claude/vibe/rules/languages/typescript-vue.md +353 -353
- package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
- package/.claude/vibe/rules/quality/checklist.md +276 -276
- package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
- package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
- package/.claude/vibe/rules/standards/code-structure.md +291 -291
- package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
- package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
- package/.claude/vibe/setup.sh +31 -31
- package/.claude/vibe/templates/constitution-template.md +184 -184
- package/.claude/vibe/templates/contract-backend-template.md +517 -517
- package/.claude/vibe/templates/contract-frontend-template.md +594 -594
- package/.claude/vibe/templates/feature-template.md +96 -96
- package/.claude/vibe/templates/spec-template.md +199 -199
- package/CLAUDE.md +345 -323
- package/LICENSE +21 -21
- package/README.md +744 -724
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/e2e-tester.md +266 -266
- package/agents/explorer.md +48 -48
- package/agents/implementer.md +53 -53
- package/agents/research/best-practices-agent.md +139 -139
- package/agents/research/codebase-patterns-agent.md +147 -147
- package/agents/research/framework-docs-agent.md +181 -181
- package/agents/research/security-advisory-agent.md +167 -167
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +152 -152
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +119 -119
- package/agents/tester.md +49 -49
- package/agents/ui-previewer.md +137 -137
- package/commands/vibe.analyze.md +245 -180
- package/commands/vibe.reason.md +223 -183
- package/commands/vibe.review.md +200 -136
- package/commands/vibe.run.md +838 -836
- package/commands/vibe.spec.md +419 -383
- package/commands/vibe.utils.md +101 -101
- package/commands/vibe.verify.md +282 -241
- package/dist/cli/index.js +385 -385
- package/dist/lib/MemoryManager.d.ts.map +1 -1
- package/dist/lib/MemoryManager.js +119 -114
- package/dist/lib/MemoryManager.js.map +1 -1
- 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/index.d.ts +50 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +61 -0
- package/dist/tools/index.js.map +1 -0
- 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/hooks/hooks.json +121 -103
- package/package.json +73 -69
- package/skills/git-worktree.md +178 -178
- package/skills/priority-todos.md +236 -236
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vibe Tools - CLI 없이 도구만 export
|
|
3
|
+
*
|
|
4
|
+
* 사용법:
|
|
5
|
+
* node -e "require('@su-record/vibe/tools').startSession({}).then(console.log)"
|
|
6
|
+
*/
|
|
7
|
+
// Memory tools
|
|
8
|
+
export { startSession } from './memory/startSession.js';
|
|
9
|
+
export { autoSaveContext } from './memory/autoSaveContext.js';
|
|
10
|
+
export { saveMemory } from './memory/saveMemory.js';
|
|
11
|
+
export { recallMemory } from './memory/recallMemory.js';
|
|
12
|
+
export { listMemories } from './memory/listMemories.js';
|
|
13
|
+
export { deleteMemory } from './memory/deleteMemory.js';
|
|
14
|
+
export { updateMemory } from './memory/updateMemory.js';
|
|
15
|
+
export { searchMemoriesHandler as searchMemories } from './memory/searchMemories.js';
|
|
16
|
+
export { searchMemoriesAdvanced } from './memory/searchMemoriesAdvanced.js';
|
|
17
|
+
export { linkMemories } from './memory/linkMemories.js';
|
|
18
|
+
export { getMemoryGraph } from './memory/getMemoryGraph.js';
|
|
19
|
+
export { createMemoryTimeline } from './memory/createMemoryTimeline.js';
|
|
20
|
+
export { restoreSessionContext } from './memory/restoreSessionContext.js';
|
|
21
|
+
export { prioritizeMemory } from './memory/prioritizeMemory.js';
|
|
22
|
+
export { getSessionContext } from './memory/getSessionContext.js';
|
|
23
|
+
// Semantic tools
|
|
24
|
+
export { findSymbol } from './semantic/findSymbol.js';
|
|
25
|
+
export { findReferences } from './semantic/findReferences.js';
|
|
26
|
+
export { analyzeDependencyGraph } from './semantic/analyzeDependencyGraph.js';
|
|
27
|
+
// Convention tools
|
|
28
|
+
export { analyzeComplexity } from './convention/analyzeComplexity.js';
|
|
29
|
+
export { validateCodeQuality } from './convention/validateCodeQuality.js';
|
|
30
|
+
export { checkCouplingCohesion } from './convention/checkCouplingCohesion.js';
|
|
31
|
+
export { suggestImprovements } from './convention/suggestImprovements.js';
|
|
32
|
+
export { applyQualityRules } from './convention/applyQualityRules.js';
|
|
33
|
+
export { getCodingGuide } from './convention/getCodingGuide.js';
|
|
34
|
+
// Thinking tools
|
|
35
|
+
export { createThinkingChain } from './thinking/createThinkingChain.js';
|
|
36
|
+
export { analyzeProblem } from './thinking/analyzeProblem.js';
|
|
37
|
+
export { stepByStepAnalysis } from './thinking/stepByStepAnalysis.js';
|
|
38
|
+
export { formatAsPlan } from './thinking/formatAsPlan.js';
|
|
39
|
+
export { breakDownProblem } from './thinking/breakDownProblem.js';
|
|
40
|
+
export { thinkAloudProcess } from './thinking/thinkAloudProcess.js';
|
|
41
|
+
// Planning tools
|
|
42
|
+
export { generatePrd } from './planning/generatePrd.js';
|
|
43
|
+
export { createUserStories } from './planning/createUserStories.js';
|
|
44
|
+
export { analyzeRequirements } from './planning/analyzeRequirements.js';
|
|
45
|
+
export { featureRoadmap } from './planning/featureRoadmap.js';
|
|
46
|
+
// Prompt tools
|
|
47
|
+
export { enhancePrompt } from './prompt/enhancePrompt.js';
|
|
48
|
+
export { analyzePrompt } from './prompt/analyzePrompt.js';
|
|
49
|
+
// UI tools
|
|
50
|
+
export { previewUiAscii } from './ui/previewUiAscii.js';
|
|
51
|
+
// Time tools
|
|
52
|
+
export { getCurrentTime } from './time/getCurrentTime.js';
|
|
53
|
+
// Reasoning tools
|
|
54
|
+
export { applyReasoningFramework } from './reasoning/applyReasoningFramework.js';
|
|
55
|
+
// Analytics tools
|
|
56
|
+
export { getUsageAnalytics } from './analytics/getUsageAnalytics.js';
|
|
57
|
+
// Lib exports (for advanced usage)
|
|
58
|
+
export { MemoryManager } from '../lib/MemoryManager.js';
|
|
59
|
+
export { ProjectCache } from '../lib/ProjectCache.js';
|
|
60
|
+
export { ContextCompressor } from '../lib/ContextCompressor.js';
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const createMemoryTimelineDefinition = {
|
|
4
4
|
name: 'create_memory_timeline',
|
|
5
|
-
description: `메모리 타임라인을 생성합니다.
|
|
6
|
-
|
|
7
|
-
키워드: 타임라인, 시간순, 히스토리, timeline, history, chronological
|
|
8
|
-
|
|
9
|
-
사용 예시:
|
|
10
|
-
- "최근 메모리 타임라인 보여줘"
|
|
5
|
+
description: `메모리 타임라인을 생성합니다.
|
|
6
|
+
|
|
7
|
+
키워드: 타임라인, 시간순, 히스토리, timeline, history, chronological
|
|
8
|
+
|
|
9
|
+
사용 예시:
|
|
10
|
+
- "최근 메모리 타임라인 보여줘"
|
|
11
11
|
- "지난 7일간 메모리 히스토리"`,
|
|
12
12
|
inputSchema: {
|
|
13
13
|
type: 'object',
|
|
@@ -61,10 +61,10 @@ export async function createMemoryTimeline(args) {
|
|
|
61
61
|
return {
|
|
62
62
|
content: [{
|
|
63
63
|
type: 'text',
|
|
64
|
-
text: `✗ 지정된 기간에 메모리가 없습니다.
|
|
65
|
-
|
|
66
|
-
${startDate ? `**시작일**: ${startDate}` : ''}
|
|
67
|
-
${endDate ? `**종료일**: ${endDate}` : ''}
|
|
64
|
+
text: `✗ 지정된 기간에 메모리가 없습니다.
|
|
65
|
+
|
|
66
|
+
${startDate ? `**시작일**: ${startDate}` : ''}
|
|
67
|
+
${endDate ? `**종료일**: ${endDate}` : ''}
|
|
68
68
|
${category ? `**카테고리**: ${category}` : ''}`
|
|
69
69
|
}]
|
|
70
70
|
};
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { MemoryManager } from '../../lib/MemoryManager.js';
|
|
3
3
|
export const getMemoryGraphDefinition = {
|
|
4
4
|
name: 'get_memory_graph',
|
|
5
|
-
description: `메모리 지식 그래프를 조회합니다.
|
|
6
|
-
|
|
7
|
-
키워드: 그래프, 관계도, 연결 보기, memory graph, relations, connections
|
|
8
|
-
|
|
9
|
-
사용 예시:
|
|
10
|
-
- "project-architecture의 관계 그래프 보여줘"
|
|
5
|
+
description: `메모리 지식 그래프를 조회합니다.
|
|
6
|
+
|
|
7
|
+
키워드: 그래프, 관계도, 연결 보기, memory graph, relations, connections
|
|
8
|
+
|
|
9
|
+
사용 예시:
|
|
10
|
+
- "project-architecture의 관계 그래프 보여줘"
|
|
11
11
|
- "전체 메모리 그래프 조회"`,
|
|
12
12
|
inputSchema: {
|
|
13
13
|
type: 'object',
|
|
@@ -79,12 +79,12 @@ export async function getMemoryGraph(args) {
|
|
|
79
79
|
output = generateTreeFormat(key, graph.nodes, filteredEdges);
|
|
80
80
|
}
|
|
81
81
|
// Add statistics
|
|
82
|
-
const stats = `
|
|
83
|
-
---
|
|
84
|
-
**통계**
|
|
85
|
-
- 노드 수: ${graph.nodes.length}
|
|
86
|
-
- 관계 수: ${filteredEdges.length}
|
|
87
|
-
- 클러스터 수: ${graph.clusters.length}
|
|
82
|
+
const stats = `
|
|
83
|
+
---
|
|
84
|
+
**통계**
|
|
85
|
+
- 노드 수: ${graph.nodes.length}
|
|
86
|
+
- 관계 수: ${filteredEdges.length}
|
|
87
|
+
- 클러스터 수: ${graph.clusters.length}
|
|
88
88
|
${graph.clusters.length > 0 ? `- 클러스터: ${graph.clusters.map(c => `[${c.join(', ')}]`).join(', ')}` : ''}`;
|
|
89
89
|
return {
|
|
90
90
|
content: [{
|
|
@@ -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 }]
|