UNPKG

requirements-analysis

Version:

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

128 lines (115 loc) 5.56 kB
"use strict"; /** * Step 4: AI质量分析 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Step4 = void 0; const types_1 = require("../types"); const document_reference_manager_1 = require("../utils/document-reference-manager"); const document_content_extractor_1 = require("../utils/document-content-extractor"); class Step4 { /** * 生成第4步提示词(精简版) */ static async generatePrompt(session) { const projectInfo = session.projectInfo; // 使用文档引用管理器获取第3步需求文档 const docManager = new document_reference_manager_1.DocumentReferenceManager(projectInfo.projectName); const contentExtractor = new document_content_extractor_1.DocumentContentExtractor(); let step3Content = ''; try { const step3Doc = await docManager.getStepDocument(3); step3Content = contentExtractor.extractKeyContent(step3Doc, 'full'); // 质量分析需要完整内容 } catch (error) { console.warn('Step 3 document not available'); step3Content = '第3步需求文档暂未生成,无法进行质量分析'; } return `你是一位拥有20年经验的需求文档质量管理专家,曾审核过500+个大型项目的需求文档。现在,请运用你的专业眼光和严格标准,对这份需求分析文档进行全面的质量评估。 你的评估将直接影响项目的成功率和开发效率,请确保每个评分都有充分的依据,每个建议都具有实际指导价值。 **待评估需求分析文档** ${step3Content} **质量评估框架** 请按照行业最佳实践标准,从以下5个维度进行专业评估(总分100分): **1. 完整性分析 (20分)** - 文档结构、功能需求、非功能需求、支撑信息的完整度 **2. 准确性分析 (20分)** - 需求描述、技术可行性、业务逻辑的准确性 **3. 一致性分析 (20分)** - 内容一致、格式一致、术语一致性 **4. 可用性分析 (20分)** - 可读性、可操作性、可维护性 **5. 格式规范性分析 (20分)** - 文档格式、需求编写、内容组织规范性 **专业评估输出格式** **质量评分总览** - **总分**: [具体分数]/100分 - **等级**: [优秀(90+)/良好(80-89)/合格(70-79)/不合格(<70)] - **总体评价**: [一句话总结文档质量水平] **各维度详细评分** | 维度 | 得分 | 满分 | 评价 | 主要问题 | |------|------|------|------|----------| | 完整性 | [分数]/20 | 20 | [优秀/良好/合格/不合格] | [具体问题描述] | | 准确性 | [分数]/20 | 20 | [评价] | [具体问题描述] | | 一致性 | [分数]/20 | 20 | [评价] | [具体问题描述] | | 可用性 | [分数]/20 | 20 | [评价] | [具体问题描述] | | 格式规范 | [分数]/20 | 20 | [评价] | [具体问题描述] | **主要问题识别** 1. **高优先级问题** (影响项目成功): [具体问题,指出章节位置] 2. **中优先级问题** (影响开发效率): [具体问题,指出章节位置] 3. **低优先级问题** (影响文档质量): [具体问题,指出章节位置] **改进建议概要** - **立即改进** (必须解决): [具体建议,包含修改方向] - **优化建议** (建议改进): [具体建议,包含优化方向] - **长期提升** (持续改进): [具体建议,包含提升方向] **下一步行动建议**: 基于评估结果,提供3-5条具体的、可执行的改进行动计划。 **评估标准**: 90-100分(行业标杆),80-89分(良好),70-79分(合格),70分以下(需大幅改进) 请确保评估客观公正,既指出问题也肯定优点,为项目团队提供有价值的质量反馈。`; } /** * 创建第4步结果 */ static async createStepResult(session, result) { const stepDef = types_1.STEP_DEFINITIONS[3]; // 第4步 return { stepNumber: stepDef.number, stepName: stepDef.name, prompt: await this.generatePrompt(session), result, timestamp: new Date(), filePath: stepDef.fileName, status: 'completed' }; } /** * 验证第4步结果质量 */ static validateResult(result) { const issues = []; let score = 100; // 检查是否包含评分总览 if (!result.includes('质量评分总览') && !result.includes('总分')) { issues.push('缺少质量评分总览'); score -= 20; } // 检查是否包含各维度评分 const dimensions = ['完整性', '准确性', '一致性', '可用性', '格式规范']; const missingDimensions = dimensions.filter(dim => !result.includes(dim)); if (missingDimensions.length > 0) { issues.push(`缺少维度分析:${missingDimensions.join(', ')}`); score -= missingDimensions.length * 10; } // 检查是否包含问题识别 if (!result.includes('问题识别') && !result.includes('主要问题')) { issues.push('缺少问题识别'); score -= 15; } // 检查是否包含改进建议 if (!result.includes('改进建议') && !result.includes('建议')) { issues.push('缺少改进建议'); score -= 15; } return { isValid: score >= 70, score: Math.max(0, score), issues }; } } exports.Step4 = Step4; //# sourceMappingURL=step4.js.map