@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.
Files changed (98) hide show
  1. package/.claude/settings.json +35 -35
  2. package/.claude/settings.local.json +24 -25
  3. package/.claude/vibe/constitution.md +184 -184
  4. package/.claude/vibe/rules/core/communication-guide.md +104 -104
  5. package/.claude/vibe/rules/core/development-philosophy.md +52 -52
  6. package/.claude/vibe/rules/core/quick-start.md +120 -120
  7. package/.claude/vibe/rules/languages/dart-flutter.md +509 -509
  8. package/.claude/vibe/rules/languages/go.md +396 -396
  9. package/.claude/vibe/rules/languages/java-spring.md +586 -586
  10. package/.claude/vibe/rules/languages/kotlin-android.md +491 -491
  11. package/.claude/vibe/rules/languages/python-django.md +371 -371
  12. package/.claude/vibe/rules/languages/python-fastapi.md +386 -386
  13. package/.claude/vibe/rules/languages/rust.md +425 -425
  14. package/.claude/vibe/rules/languages/swift-ios.md +516 -516
  15. package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -441
  16. package/.claude/vibe/rules/languages/typescript-node.md +375 -375
  17. package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -521
  18. package/.claude/vibe/rules/languages/typescript-react-native.md +446 -446
  19. package/.claude/vibe/rules/languages/typescript-react.md +525 -525
  20. package/.claude/vibe/rules/languages/typescript-vue.md +353 -353
  21. package/.claude/vibe/rules/quality/bdd-contract-testing.md +388 -388
  22. package/.claude/vibe/rules/quality/checklist.md +276 -276
  23. package/.claude/vibe/rules/quality/testing-strategy.md +437 -437
  24. package/.claude/vibe/rules/standards/anti-patterns.md +369 -369
  25. package/.claude/vibe/rules/standards/code-structure.md +291 -291
  26. package/.claude/vibe/rules/standards/complexity-metrics.md +312 -312
  27. package/.claude/vibe/rules/standards/naming-conventions.md +198 -198
  28. package/.claude/vibe/setup.sh +31 -31
  29. package/.claude/vibe/templates/constitution-template.md +184 -184
  30. package/.claude/vibe/templates/contract-backend-template.md +517 -517
  31. package/.claude/vibe/templates/contract-frontend-template.md +594 -594
  32. package/.claude/vibe/templates/feature-template.md +96 -96
  33. package/.claude/vibe/templates/spec-template.md +199 -199
  34. package/CLAUDE.md +345 -323
  35. package/LICENSE +21 -21
  36. package/README.md +744 -724
  37. package/agents/compounder.md +261 -261
  38. package/agents/diagrammer.md +178 -178
  39. package/agents/e2e-tester.md +266 -266
  40. package/agents/explorer.md +48 -48
  41. package/agents/implementer.md +53 -53
  42. package/agents/research/best-practices-agent.md +139 -139
  43. package/agents/research/codebase-patterns-agent.md +147 -147
  44. package/agents/research/framework-docs-agent.md +181 -181
  45. package/agents/research/security-advisory-agent.md +167 -167
  46. package/agents/review/architecture-reviewer.md +107 -107
  47. package/agents/review/complexity-reviewer.md +116 -116
  48. package/agents/review/data-integrity-reviewer.md +88 -88
  49. package/agents/review/git-history-reviewer.md +103 -103
  50. package/agents/review/performance-reviewer.md +86 -86
  51. package/agents/review/python-reviewer.md +152 -152
  52. package/agents/review/rails-reviewer.md +139 -139
  53. package/agents/review/react-reviewer.md +144 -144
  54. package/agents/review/security-reviewer.md +80 -80
  55. package/agents/review/simplicity-reviewer.md +140 -140
  56. package/agents/review/test-coverage-reviewer.md +116 -116
  57. package/agents/review/typescript-reviewer.md +127 -127
  58. package/agents/searcher.md +54 -54
  59. package/agents/simplifier.md +119 -119
  60. package/agents/tester.md +49 -49
  61. package/agents/ui-previewer.md +137 -137
  62. package/commands/vibe.analyze.md +245 -180
  63. package/commands/vibe.reason.md +223 -183
  64. package/commands/vibe.review.md +200 -136
  65. package/commands/vibe.run.md +838 -836
  66. package/commands/vibe.spec.md +419 -383
  67. package/commands/vibe.utils.md +101 -101
  68. package/commands/vibe.verify.md +282 -241
  69. package/dist/cli/index.js +385 -385
  70. package/dist/lib/MemoryManager.d.ts.map +1 -1
  71. package/dist/lib/MemoryManager.js +119 -114
  72. package/dist/lib/MemoryManager.js.map +1 -1
  73. package/dist/lib/PythonParser.js +108 -108
  74. package/dist/lib/gemini-mcp.js +15 -15
  75. package/dist/lib/gemini-oauth.js +35 -35
  76. package/dist/lib/gpt-mcp.js +17 -17
  77. package/dist/lib/gpt-oauth.js +44 -44
  78. package/dist/tools/analytics/getUsageAnalytics.js +12 -12
  79. package/dist/tools/index.d.ts +50 -0
  80. package/dist/tools/index.d.ts.map +1 -0
  81. package/dist/tools/index.js +61 -0
  82. package/dist/tools/index.js.map +1 -0
  83. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  84. package/dist/tools/memory/getMemoryGraph.js +12 -12
  85. package/dist/tools/memory/getSessionContext.js +9 -9
  86. package/dist/tools/memory/linkMemories.js +14 -14
  87. package/dist/tools/memory/listMemories.js +4 -4
  88. package/dist/tools/memory/recallMemory.js +4 -4
  89. package/dist/tools/memory/saveMemory.js +4 -4
  90. package/dist/tools/memory/searchMemoriesAdvanced.js +22 -22
  91. package/dist/tools/planning/generatePrd.js +46 -46
  92. package/dist/tools/prompt/enhancePromptGemini.js +160 -160
  93. package/dist/tools/reasoning/applyReasoningFramework.js +56 -56
  94. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  95. package/hooks/hooks.json +121 -103
  96. package/package.json +73 -69
  97. package/skills/git-worktree.md +178 -178
  98. 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 }]