requirements-analysis
Version:
简化的需求分析MCP服务 - 基于AI软件工程(优化版)6步流程
128 lines (115 loc) • 5.56 kB
JavaScript
;
/**
* 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