speccore 6.79.0 → 6.80.0
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/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +201 -9
- package/dist/commands/analyze.js.map +1 -1
- package/dist/core/pipeline-engine.d.ts +2 -0
- package/dist/core/pipeline-engine.d.ts.map +1 -1
- package/dist/core/pipeline-engine.js +20 -0
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/requirement-clarifier.d.ts +32 -1
- package/dist/core/requirement-clarifier.d.ts.map +1 -1
- package/dist/core/requirement-clarifier.js +284 -1
- package/dist/core/requirement-clarifier.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ exports.parseClarifiedRequirement = parseClarifiedRequirement;
|
|
|
6
6
|
exports.writeClarifiedDoc = writeClarifiedDoc;
|
|
7
7
|
exports.assessRequirementDoc = assessRequirementDoc;
|
|
8
8
|
exports.buildClarifiedHeader = buildClarifiedHeader;
|
|
9
|
+
exports.assessRequirementQuality = assessRequirementQuality;
|
|
10
|
+
exports.writeClarifyReport = writeClarifyReport;
|
|
11
|
+
exports.hasValidClarifiedDocs = hasValidClarifiedDocs;
|
|
9
12
|
/**
|
|
10
13
|
* requirement-clarifier — 需求专业化模块
|
|
11
14
|
*
|
|
@@ -168,14 +171,294 @@ async function assessRequirementDoc(filePath) {
|
|
|
168
171
|
}
|
|
169
172
|
/**
|
|
170
173
|
* 生成澄清后的文档头部元信息
|
|
174
|
+
* v6.80.0+: 增加版本号和质量评分
|
|
171
175
|
*/
|
|
172
|
-
function buildClarifiedHeader(originalSource, clarifyTime = new Date().toISOString()) {
|
|
176
|
+
function buildClarifiedHeader(originalSource, clarifyTime = new Date().toISOString(), version = '1.0') {
|
|
173
177
|
return `---
|
|
174
178
|
source: "${originalSource}"
|
|
175
179
|
clarified-at: "${clarifyTime}"
|
|
176
180
|
status: "clarified"
|
|
181
|
+
version: "${version}"
|
|
177
182
|
---
|
|
178
183
|
|
|
179
184
|
`;
|
|
180
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* 多维度需求质量评价
|
|
188
|
+
* 评分维度:完整性 / 一致性 / 可测试性 / 可追溯性 / 专业度
|
|
189
|
+
*/
|
|
190
|
+
function assessRequirementQuality(content, filePath = '') {
|
|
191
|
+
const dimensions = [];
|
|
192
|
+
// 1. 完整性 (Completeness)
|
|
193
|
+
const completenessIssues = [];
|
|
194
|
+
const completenessSuggestions = [];
|
|
195
|
+
if (!/(背景|目标|目的|概述)/i.test(content)) {
|
|
196
|
+
completenessIssues.push('缺少背景与目标描述');
|
|
197
|
+
completenessSuggestions.push('补充「为什么要做这个功能」');
|
|
198
|
+
}
|
|
199
|
+
if (!/(用户故事|user story|作为.*我希望)/i.test(content)) {
|
|
200
|
+
completenessIssues.push('缺少用户故事');
|
|
201
|
+
completenessSuggestions.push('添加用户故事:作为[角色],我希望[目标],以便[价值]');
|
|
202
|
+
}
|
|
203
|
+
if (!/(功能清单|功能模块|特性|feature)/i.test(content)) {
|
|
204
|
+
completenessIssues.push('缺少功能清单');
|
|
205
|
+
completenessSuggestions.push('按模块列出功能清单');
|
|
206
|
+
}
|
|
207
|
+
if (!/(异常|错误|失败|边界|极端)/i.test(content)) {
|
|
208
|
+
completenessIssues.push('缺少异常场景和边界条件');
|
|
209
|
+
completenessSuggestions.push('补充异常流程和边界值处理');
|
|
210
|
+
}
|
|
211
|
+
if (!/(非功能|性能|安全|兼容|可用性)/i.test(content)) {
|
|
212
|
+
completenessIssues.push('缺少非功能需求');
|
|
213
|
+
completenessSuggestions.push('补充性能、安全、兼容性等要求(如适用)');
|
|
214
|
+
}
|
|
215
|
+
const completenessScore = Math.max(0, 100 - completenessIssues.length * 20);
|
|
216
|
+
dimensions.push({
|
|
217
|
+
name: '完整性',
|
|
218
|
+
score: completenessScore,
|
|
219
|
+
issues: completenessIssues,
|
|
220
|
+
suggestions: completenessSuggestions,
|
|
221
|
+
});
|
|
222
|
+
// 2. 一致性 (Consistency)
|
|
223
|
+
const consistencyIssues = [];
|
|
224
|
+
const consistencySuggestions = [];
|
|
225
|
+
// 检测同一概念的不同表述
|
|
226
|
+
const conceptVariations = detectConceptVariations(content);
|
|
227
|
+
if (conceptVariations.length > 0) {
|
|
228
|
+
consistencyIssues.push(...conceptVariations.map(v => `概念表述不一致: ${v}`));
|
|
229
|
+
consistencySuggestions.push('统一术语表述,建立术语表');
|
|
230
|
+
}
|
|
231
|
+
// 检测矛盾描述
|
|
232
|
+
const contradictions = detectContradictions(content);
|
|
233
|
+
if (contradictions.length > 0) {
|
|
234
|
+
consistencyIssues.push(...contradictions);
|
|
235
|
+
consistencySuggestions.push('消除矛盾描述,明确优先级');
|
|
236
|
+
}
|
|
237
|
+
const consistencyScore = Math.max(0, 100 - consistencyIssues.length * 15);
|
|
238
|
+
dimensions.push({
|
|
239
|
+
name: '一致性',
|
|
240
|
+
score: consistencyScore,
|
|
241
|
+
issues: consistencyIssues,
|
|
242
|
+
suggestions: consistencySuggestions,
|
|
243
|
+
});
|
|
244
|
+
// 3. 可测试性 (Testability)
|
|
245
|
+
const testabilityIssues = [];
|
|
246
|
+
const testabilitySuggestions = [];
|
|
247
|
+
const acMatches = content.match(/(验收标准|AC|acceptance criteria)/gi);
|
|
248
|
+
if (!acMatches || acMatches.length === 0) {
|
|
249
|
+
testabilityIssues.push('缺少验收标准');
|
|
250
|
+
testabilitySuggestions.push('为每个功能点编写可测试的验收标准');
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
// 检测 AC 是否量化
|
|
254
|
+
const acSection = content.split(/(验收标准|## AC|acceptance criteria)/i)[2] || '';
|
|
255
|
+
if (!/\d+(%|ms|秒|分|个|条)/.test(acSection)) {
|
|
256
|
+
testabilityIssues.push('验收标准缺少量化指标');
|
|
257
|
+
testabilitySuggestions.push('AC 应包含具体数值(如响应时间<200ms,成功率>99%)');
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (!/\[ \]|\[x\]/.test(content)) {
|
|
261
|
+
testabilityIssues.push('验收标准未使用勾选列表');
|
|
262
|
+
testabilitySuggestions.push('用 `- [ ]` 标记验收项,便于测试跟踪');
|
|
263
|
+
}
|
|
264
|
+
const testabilityScore = Math.max(0, 100 - testabilityIssues.length * 25);
|
|
265
|
+
dimensions.push({
|
|
266
|
+
name: '可测试性',
|
|
267
|
+
score: testabilityScore,
|
|
268
|
+
issues: testabilityIssues,
|
|
269
|
+
suggestions: testabilitySuggestions,
|
|
270
|
+
});
|
|
271
|
+
// 4. 可追溯性 (Traceability)
|
|
272
|
+
const traceabilityIssues = [];
|
|
273
|
+
const traceabilitySuggestions = [];
|
|
274
|
+
if (!/(需求编号|REQ-|ID:|R-\d+)/i.test(content)) {
|
|
275
|
+
traceabilityIssues.push('缺少需求编号/ID');
|
|
276
|
+
traceabilitySuggestions.push('为每个需求分配唯一编号(如 R-01, R-02)');
|
|
277
|
+
}
|
|
278
|
+
if (!/(来源|出处|引用|参见)/i.test(content)) {
|
|
279
|
+
traceabilityIssues.push('缺少需求来源标注');
|
|
280
|
+
traceabilitySuggestions.push('标注需求来源文档和章节');
|
|
281
|
+
}
|
|
282
|
+
const traceabilityScore = Math.max(0, 100 - traceabilityIssues.length * 30);
|
|
283
|
+
dimensions.push({
|
|
284
|
+
name: '可追溯性',
|
|
285
|
+
score: traceabilityScore,
|
|
286
|
+
issues: traceabilityIssues,
|
|
287
|
+
suggestions: traceabilitySuggestions,
|
|
288
|
+
});
|
|
289
|
+
// 5. 专业度 (Professionalism) - 复用已有逻辑
|
|
290
|
+
const profLevel = detectProfessionalLevel(content);
|
|
291
|
+
const profIssues = [];
|
|
292
|
+
const profSuggestions = [];
|
|
293
|
+
if (profLevel !== 'high') {
|
|
294
|
+
if (/(我要|我想|能不能|可不可以|帮忙|弄一个|搞一个)/g.test(content)) {
|
|
295
|
+
profIssues.push('存在口语化表述');
|
|
296
|
+
profSuggestions.push('使用专业术语替代口语化表达');
|
|
297
|
+
}
|
|
298
|
+
if (!/^#{2,3}\s+/m.test(content)) {
|
|
299
|
+
profIssues.push('缺少结构化标题');
|
|
300
|
+
profSuggestions.push('使用 ## 三级标题组织文档结构');
|
|
301
|
+
}
|
|
302
|
+
if (!/(业务规则|约束条件|校验规则)/i.test(content)) {
|
|
303
|
+
profIssues.push('缺少业务规则');
|
|
304
|
+
profSuggestions.push('明确业务规则和约束条件');
|
|
305
|
+
}
|
|
306
|
+
if (!/(功能范围|范围|边界|不涉及|不包含)/i.test(content)) {
|
|
307
|
+
profIssues.push('缺少功能边界');
|
|
308
|
+
profSuggestions.push('明确「做什么」和「不做什么」');
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
const profScore = profLevel === 'high' ? 90 : profLevel === 'medium' ? 60 : 30;
|
|
312
|
+
dimensions.push({
|
|
313
|
+
name: '专业度',
|
|
314
|
+
score: profScore,
|
|
315
|
+
issues: profIssues,
|
|
316
|
+
suggestions: profSuggestions,
|
|
317
|
+
});
|
|
318
|
+
// 综合评分
|
|
319
|
+
const overallScore = Math.round(dimensions.reduce((s, d) => s + d.score, 0) / dimensions.length);
|
|
320
|
+
const level = overallScore >= 80 ? 'high' : overallScore >= 50 ? 'medium' : 'low';
|
|
321
|
+
const totalIssues = dimensions.reduce((s, d) => s + d.issues.length, 0);
|
|
322
|
+
const summary = totalIssues === 0
|
|
323
|
+
? '需求文档质量良好,可直接进入技术方案生成。'
|
|
324
|
+
: `发现 ${totalIssues} 个问题,建议先澄清再分析。`;
|
|
325
|
+
return {
|
|
326
|
+
filePath,
|
|
327
|
+
overallScore,
|
|
328
|
+
level,
|
|
329
|
+
dimensions,
|
|
330
|
+
summary,
|
|
331
|
+
clarified: false,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
/** 检测同一概念的不同表述 */
|
|
335
|
+
function detectConceptVariations(content) {
|
|
336
|
+
const variations = [];
|
|
337
|
+
// 常见概念对:检测文档中是否同时出现不同的叫法
|
|
338
|
+
const pairs = [
|
|
339
|
+
[/用户/, /客户/],
|
|
340
|
+
[/订单/, /定单/],
|
|
341
|
+
[/账号/, /帐户/],
|
|
342
|
+
[/登录/, /登陆/],
|
|
343
|
+
[/权限/, /权利/],
|
|
344
|
+
];
|
|
345
|
+
for (const [a, b] of pairs) {
|
|
346
|
+
if (a.test(content) && b.test(content)) {
|
|
347
|
+
variations.push(`同时出现「${a.source}」和「${b.source}」`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return variations;
|
|
351
|
+
}
|
|
352
|
+
/** 检测矛盾描述(简单启发式) */
|
|
353
|
+
function detectContradictions(content) {
|
|
354
|
+
const contradictions = [];
|
|
355
|
+
// 检测 "必须" 和 "可选" 同时描述同一事物
|
|
356
|
+
const lines = content.split('\n');
|
|
357
|
+
for (let i = 0; i < lines.length; i++) {
|
|
358
|
+
const line = lines[i];
|
|
359
|
+
if (/必须.*可选|可选.*必须/.test(line)) {
|
|
360
|
+
contradictions.push(`第 ${i + 1} 行存在矛盾: ${line.trim().slice(0, 50)}...`);
|
|
361
|
+
}
|
|
362
|
+
if (/必填.*非必填|非必填.*必填/.test(line)) {
|
|
363
|
+
contradictions.push(`第 ${i + 1} 行存在矛盾: ${line.trim().slice(0, 50)}...`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return contradictions;
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* 生成 CLARIFY_REPORT.md
|
|
370
|
+
* v6.80.0+: 汇总所有需求文档的质量评价
|
|
371
|
+
*/
|
|
372
|
+
async function writeClarifyReport(iterDir, reports) {
|
|
373
|
+
const reportPath = (0, path_1.join)(iterDir, '010-requirements', 'CLARIFY_REPORT.md');
|
|
374
|
+
await (0, fs_extra_1.ensureDir)((0, path_1.join)(iterDir, '010-requirements'));
|
|
375
|
+
const now = new Date().toISOString().split('T')[0];
|
|
376
|
+
let md = `# 需求澄清报告\n\n> 生成时间: ${now}\n> 文档数: ${reports.length}\n\n`;
|
|
377
|
+
// 汇总表
|
|
378
|
+
md += `## 质量评分汇总\n\n`;
|
|
379
|
+
md += `| 文档 | 综合评分 | 等级 | 问题数 | 状态 |\n`;
|
|
380
|
+
md += `| :--- | :--- | :--- | :--- | :--- |\n`;
|
|
381
|
+
for (const r of reports) {
|
|
382
|
+
const name = r.filePath.split('/').pop() || '-';
|
|
383
|
+
const badge = r.level === 'high' ? '✅' : r.level === 'medium' ? '⚠️' : '❌';
|
|
384
|
+
const status = r.clarified ? '已澄清' : r.level === 'high' ? '无需澄清' : '待澄清';
|
|
385
|
+
md += `| ${name} | ${r.overallScore} | ${badge} ${r.level.toUpperCase()} | ${r.dimensions.reduce((s, d) => s + d.issues.length, 0)} | ${status} |\n`;
|
|
386
|
+
}
|
|
387
|
+
// 详细报告
|
|
388
|
+
for (const r of reports) {
|
|
389
|
+
const name = r.filePath.split('/').pop() || '-';
|
|
390
|
+
md += `\n## ${name}\n\n`;
|
|
391
|
+
md += `**综合评分**: ${r.overallScore}/100 | **等级**: ${r.level.toUpperCase()}\n\n`;
|
|
392
|
+
for (const dim of r.dimensions) {
|
|
393
|
+
const badge = dim.score >= 80 ? '🟢' : dim.score >= 50 ? '🟡' : '🔴';
|
|
394
|
+
md += `### ${badge} ${dim.name}: ${dim.score}/100\n\n`;
|
|
395
|
+
if (dim.issues.length > 0) {
|
|
396
|
+
md += `**问题**:\n`;
|
|
397
|
+
for (const issue of dim.issues) {
|
|
398
|
+
md += `- ❌ ${issue}\n`;
|
|
399
|
+
}
|
|
400
|
+
md += `\n**建议**:\n`;
|
|
401
|
+
for (const sug of dim.suggestions) {
|
|
402
|
+
md += `- 💡 ${sug}\n`;
|
|
403
|
+
}
|
|
404
|
+
md += '\n';
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
md += `✅ 该维度无问题\n\n`;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
md += `\n---\n\n`;
|
|
412
|
+
md += `## 下一步\n\n`;
|
|
413
|
+
const needClarify = reports.filter(r => r.level !== 'high' && !r.clarified);
|
|
414
|
+
if (needClarify.length > 0) {
|
|
415
|
+
md += `- ${needClarify.length} 个文档需要澄清,请执行: \`speccore analyze --prompt -I <迭代>\`\n`;
|
|
416
|
+
md += `- 或跳过澄清: \`speccore analyze --prompt -I <迭代> --skip-clarify\`\n`;
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
md += `- ✅ 所有文档质量达标,可直接执行技术方案生成\n`;
|
|
420
|
+
}
|
|
421
|
+
await (0, fs_extra_1.writeFile)(reportPath, md, 'utf-8');
|
|
422
|
+
return reportPath;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* 检测迭代是否已有有效的 clarified 文档
|
|
426
|
+
* v6.80.0+: 用于判断是否需要重新执行 clarify
|
|
427
|
+
*/
|
|
428
|
+
async function hasValidClarifiedDocs(iterDir) {
|
|
429
|
+
const convertedDir = (0, path_1.join)(iterDir, '010-requirements', 'converted');
|
|
430
|
+
if (!(await (0, fs_extra_1.pathExists)(convertedDir)))
|
|
431
|
+
return false;
|
|
432
|
+
const files = await (0, fs_extra_1.readdir)(convertedDir);
|
|
433
|
+
const clarifiedFiles = files.filter(f => f.startsWith('clarified-') && f.endsWith('.md'));
|
|
434
|
+
if (clarifiedFiles.length === 0)
|
|
435
|
+
return false;
|
|
436
|
+
// 检查是否有 source 文档比 clarified 更新
|
|
437
|
+
const sourcesDir = (0, path_1.join)(iterDir, '010-requirements', 'sources');
|
|
438
|
+
const featuresDir = (0, path_1.join)(iterDir, '010-requirements', 'features');
|
|
439
|
+
let latestSourceTime = 0;
|
|
440
|
+
for (const dir of [sourcesDir, featuresDir]) {
|
|
441
|
+
if (await (0, fs_extra_1.pathExists)(dir)) {
|
|
442
|
+
try {
|
|
443
|
+
const entries = await (0, fs_extra_1.readdir)(dir, { withFileTypes: true });
|
|
444
|
+
for (const e of entries) {
|
|
445
|
+
if (e.isFile() && e.name.endsWith('.md')) {
|
|
446
|
+
const st = await (0, fs_extra_1.stat)((0, path_1.join)(dir, e.name));
|
|
447
|
+
if (st.mtimeMs > latestSourceTime)
|
|
448
|
+
latestSourceTime = st.mtimeMs;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
catch { /* 忽略 */ }
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
// 如果 source 比 clarify 新,需要重新 clarify
|
|
456
|
+
let latestClarifyTime = 0;
|
|
457
|
+
for (const f of clarifiedFiles) {
|
|
458
|
+
const st = await (0, fs_extra_1.stat)((0, path_1.join)(convertedDir, f));
|
|
459
|
+
if (st.mtimeMs > latestClarifyTime)
|
|
460
|
+
latestClarifyTime = st.mtimeMs;
|
|
461
|
+
}
|
|
462
|
+
return latestClarifyTime >= latestSourceTime;
|
|
463
|
+
}
|
|
181
464
|
//# sourceMappingURL=requirement-clarifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requirement-clarifier.js","sourceRoot":"","sources":["../../src/core/requirement-clarifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"requirement-clarifier.js","sourceRoot":"","sources":["../../src/core/requirement-clarifier.ts"],"names":[],"mappings":"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"}
|