UNPKG

requirements-analysis

Version:

简化的需求分析MCP服务 - 基于AI软件工程(优化版)6步流程

160 lines (128 loc) 5.49 kB
/** * Step 2: AI智能分析项目全貌 */ import { ProjectInfo, StepResult, STEP_DEFINITIONS, AnalysisSession } from '../types'; import { DocumentReferenceManager } from '../utils/document-reference-manager'; import { DocumentContentExtractor } from '../utils/document-content-extractor'; export class Step2 { /** * 生成第2步提示词(文档引用版) */ static async generatePrompt(session: AnalysisSession): Promise<string> { const projectInfo = session.projectInfo; // 使用文档引用管理器获取第1步内容 const docManager = new DocumentReferenceManager(projectInfo.projectName); const contentExtractor = new DocumentContentExtractor(); let step1Content = ''; try { const step1Doc = await docManager.getStepDocument(1); step1Content = contentExtractor.extractKeyContent(step1Doc, 'conclusions'); } catch (error) { console.warn('Step 1 document not available, proceeding without context'); step1Content = '第1步文档暂未生成,将基于项目基础信息进行分析'; } return `现在你需要向投资委员会和项目团队展示这个${projectInfo.industry}项目的全面战略分析。作为拥有深厚行业洞察的资深专家,请运用你的专业知识和市场敏感度,为这个项目提供具有前瞻性的深度分析。 让我们一起深入探讨这个项目的战略价值和实施路径。你的分析将直接影响项目的战略方向和投资决策,请确保每个观点都有充分的行业依据和数据支撑。 想象你正在与项目投资人和核心团队进行战略研讨,请以专业而富有洞察力的方式,为他们展示这个项目的全貌和价值。 **项目概况** - **项目名称**: ${projectInfo.projectName} - **目标行业**: ${projectInfo.industry} - **核心挑战**: ${projectInfo.background} - **期望成果**: ${projectInfo.objectives} **第1步验证结果** ${step1Content} **深度分析框架** 请从战略高度进行六维度分析,每个维度都要提供具体的洞察和可执行的建议: **1. 行业生态分析** - ${projectInfo.industry}行业的发展趋势和技术演进方向 - 主要痛点和未被满足的市场需求 - 竞争格局和市场机会窗口 - 行业监管环境和政策影响 **2. 用户价值分析** - 核心用户群体画像和需求层次分析 - 用户使用场景和行为路径设计 - 用户体验期望和满意度驱动因素 - 用户获取和留存策略建议 **3. 技术架构分析** - 技术选型的最佳实践和风险评估 - 系统架构设计的可扩展性和稳定性 - 技术实现的复杂度和资源需求 - 技术发展趋势对项目的长期影响 **4. 产品功能规划** - 核心功能模块的价值排序和依赖关系 - MVP功能定义和迭代路径规划 - 功能差异化和竞争优势构建 - 功能实现的技术难度和时间估算 **5. 实施策略建议** - 分阶段实施的里程碑和交付计划 - 关键成功因素和风险缓解措施 - 团队能力要求和资源配置建议 - 项目管理和质量保证机制 **6. 商业价值评估** - 投资回报率和财务模型分析 - 市场竞争优势和护城河构建 - 收入模式和盈利能力预测 - 长期价值创造和战略意义 **质量要求** - **深度洞察**: 基于行业经验提供独到见解,避免泛泛而谈 - **数据支撑**: 每个判断都要有逻辑依据或行业数据支持 - **可操作性**: 建议要具体可执行,有明确的行动指导 - **前瞻性**: 考虑未来3-5年的发展趋势和变化 **输出格式**: 请用专业但易懂的语言,结构清晰地呈现分析结果,确保每个维度都有明确的结论和建议。总篇幅控制在3500字以内,重点突出关键洞察和核心建议。`; } /** * 创建第2步结果 */ static async createStepResult(session: AnalysisSession, result: string): Promise<StepResult> { const stepDef = STEP_DEFINITIONS[1]; // 第2步 return { stepNumber: stepDef.number, stepName: stepDef.name, prompt: await this.generatePrompt(session), result, timestamp: new Date(), filePath: stepDef.fileName, status: 'completed' }; } /** * 验证第2步结果质量 */ static validateResult(result: string): { isValid: boolean; score: number; issues: string[] } { const issues: string[] = []; let score = 100; // 检查必要的分析维度 const requiredSections = [ '行业背景分析', '用户需求分析', '技术环境分析', '功能规划建议', '实施建议' ]; const missingSections = requiredSections.filter(section => !result.includes(section)); if (missingSections.length > 0) { issues.push(`缺少分析维度:${missingSections.join(', ')}`); score -= missingSections.length * 15; } // 检查内容深度 if (result.length < 2000) { issues.push('分析内容过于简单,缺乏深度'); score -= 20; } // 检查是否包含具体建议 if (!result.includes('建议') && !result.includes('推荐')) { issues.push('缺少具体的建议和推荐'); score -= 15; } // 检查是否包含风险分析 if (!result.includes('风险') && !result.includes('挑战')) { issues.push('缺少风险分析'); score -= 10; } return { isValid: score >= 70, score: Math.max(0, score), issues }; } }