speccore 8.3.166 → 8.3.167
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/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +59 -9
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +25 -0
- package/dist/commands/iteration/split.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 +44 -4
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +13 -2
- package/dist/core/prompt-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../src/commands/iteration/split.ts"],"names":[],"mappings":"AAwNA,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+ID,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../../src/commands/iteration/split.ts"],"names":[],"mappings":"AAwNA,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA+ID,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAolCzF"}
|
|
@@ -429,6 +429,30 @@ async function iterationSplitCommand(options) {
|
|
|
429
429
|
if (options.prompt) {
|
|
430
430
|
const iter = options.iteration || await (0, context_1.getDefaultIteration)() || '';
|
|
431
431
|
const prompt = await (0, prompt_builder_1.buildPrompt)('split', { iteration: iter });
|
|
432
|
+
// v8.3.167+: 检测功能模块数量,大项目启用分批拆分
|
|
433
|
+
let featureBatchHint = '';
|
|
434
|
+
try {
|
|
435
|
+
const iterDirForSplit = await (0, context_1.getIterationDir)(iter);
|
|
436
|
+
if (iterDirForSplit) {
|
|
437
|
+
const { parseFeatureList } = await Promise.resolve().then(() => __importStar(require('../../core/spec-paths')));
|
|
438
|
+
const featureList = await parseFeatureList(iterDirForSplit);
|
|
439
|
+
if (featureList.length > 2) {
|
|
440
|
+
logger_1.logger.info(`📦 检测到 ${featureList.length} 个功能模块,启用分批拆分模式`);
|
|
441
|
+
featureBatchHint = `\n\n## 📦 功能模块分批拆分(v8.3.167+)\n\n`;
|
|
442
|
+
featureBatchHint += `当前迭代包含 ${featureList.length} 个功能模块:${featureList.join('、')}\n\n`;
|
|
443
|
+
featureBatchHint += `**分批策略**:\n`;
|
|
444
|
+
featureBatchHint += `- 本次只拆分 **1-2 个功能模块**(优先拆分基础模块:认证/配置/数据库)\n`;
|
|
445
|
+
featureBatchHint += `- 确保每个模块的拆分质量(任务定义清晰、依赖关系明确)\n`;
|
|
446
|
+
featureBatchHint += `- 剩余模块在 JSON 输出后追加续批标记\n\n`;
|
|
447
|
+
featureBatchHint += `**续批标记格式**:\n`;
|
|
448
|
+
featureBatchHint += `\`\`\`\n[PENDING: 模块A, 模块B, 模块C]\n`;
|
|
449
|
+
featureBatchHint += `[SPECCORE_EXEC: speccore iteration split --prompt -I ${iter}]\n`;
|
|
450
|
+
featureBatchHint += `\`\`\`\n\n`;
|
|
451
|
+
featureBatchHint += `**重要**:不要一次性拆分所有模块,确保当前批次质量后再续批。\n`;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch { /* 忽略功能模块检测失败 */ }
|
|
432
456
|
// v8.3.166+: 输出 subagent 标记(task-decomposer)
|
|
433
457
|
const output = [
|
|
434
458
|
`[SPECCORE_SUBAGENT: task-decomposer]`,
|
|
@@ -436,6 +460,7 @@ async function iterationSplitCommand(options) {
|
|
|
436
460
|
`[SPECCORE_CONTEXT_TYPE: full]`,
|
|
437
461
|
``,
|
|
438
462
|
(0, prompt_builder_1.formatPrompt)(prompt),
|
|
463
|
+
featureBatchHint,
|
|
439
464
|
].join('\n');
|
|
440
465
|
process.stdout.write(output);
|
|
441
466
|
process.exitCode = 10;
|