speccore 8.3.254 → 8.3.256
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/.agents/skills/spec-analyze/SKILL.md +2 -1
- package/.agents/skills/spec-from-source/SKILL.md +4 -2
- package/.agents/skills/speccore-router/SKILL.md +10 -9
- package/dist/cli.js +36 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +32 -28
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +6 -15
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/execute.js +2 -2
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/global.d.ts +35 -0
- package/dist/commands/global.d.ts.map +1 -0
- package/dist/commands/global.js +35 -0
- package/dist/commands/global.js.map +1 -0
- package/dist/commands/init.js +1 -1
- package/dist/commands/iteration/taskify.d.ts.map +1 -1
- package/dist/commands/iteration/taskify.js +11 -13
- package/dist/commands/iteration/taskify.js.map +1 -1
- package/dist/commands/rag-index.d.ts.map +1 -1
- package/dist/commands/rag-index.js +1 -3
- package/dist/commands/rag-index.js.map +1 -1
- package/dist/commands/task/new.js +2 -8
- package/dist/commands/task/new.js.map +1 -1
- package/dist/core/ai-impact-analyzer.js +5 -5
- package/dist/core/ai-impact-analyzer.js.map +1 -1
- package/dist/core/ask-engine.js +2 -2
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/change-impact-global.js +5 -5
- package/dist/core/change-impact-global.js.map +1 -1
- package/dist/core/doc-quality-gate.js +1 -1
- package/dist/core/doc-quality-gate.js.map +1 -1
- package/dist/core/intent-recognition.js +2 -2
- package/dist/core/intent-recognition.js.map +1 -1
- package/dist/core/next-steps.js +1 -1
- package/dist/core/next-steps.js.map +1 -1
- package/dist/core/spec-merger.d.ts +5 -4
- package/dist/core/spec-merger.d.ts.map +1 -1
- package/dist/core/spec-merger.js +5 -4
- package/dist/core/spec-merger.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.globalAnalyzeCommand = globalAnalyzeCommand;
|
|
4
|
+
exports.globalFromSourceCommand = globalFromSourceCommand;
|
|
5
|
+
exports.globalRulesCommand = globalRulesCommand;
|
|
6
|
+
exports.globalPatternsCommand = globalPatternsCommand;
|
|
7
|
+
const logger_1 = require("../utils/logger");
|
|
8
|
+
const analyze_1 = require("./analyze");
|
|
9
|
+
/** 源码→技术文档(Layer 1→4 推进) */
|
|
10
|
+
async function globalAnalyzeCommand(options) {
|
|
11
|
+
await (0, analyze_1.analyzeCommand)({ ...options, scope: 'global', _fromGlobal: true });
|
|
12
|
+
}
|
|
13
|
+
/** 源码→需求文档(反推候选需求) */
|
|
14
|
+
async function globalFromSourceCommand(options) {
|
|
15
|
+
await (0, analyze_1.analyzeCommand)({ ...options, fromCode: true, scope: 'global', _fromGlobal: true });
|
|
16
|
+
}
|
|
17
|
+
/** 规则生成指引(全局分析产物自动沉淀 RULES/ 候选,此处给出路径) */
|
|
18
|
+
async function globalRulesCommand() {
|
|
19
|
+
logger_1.logger.info('');
|
|
20
|
+
logger_1.logger.info('📐 规则生成(global rules)');
|
|
21
|
+
logger_1.logger.info(' 全局分析会把规则候选沉淀到 .speccore/GLOBAL/RULES/');
|
|
22
|
+
logger_1.logger.info(' 立即执行全局分析: speccore global analyze --layer 1');
|
|
23
|
+
logger_1.logger.info(' 项目规则入口: .speccore/RULES/(appliesTo 匹配技术栈后自动注入 Prompt)');
|
|
24
|
+
logger_1.logger.info('');
|
|
25
|
+
}
|
|
26
|
+
/** 模式沉淀指引(复用 pattern 命令保存可复用模式) */
|
|
27
|
+
async function globalPatternsCommand() {
|
|
28
|
+
logger_1.logger.info('');
|
|
29
|
+
logger_1.logger.info('🧩 模式沉淀(global patterns)');
|
|
30
|
+
logger_1.logger.info(' 保存可复用模式模板: speccore pattern -n <名称> -c <内容>');
|
|
31
|
+
logger_1.logger.info(' 自动扫描候选: speccore pattern --auto-detect <目录>');
|
|
32
|
+
logger_1.logger.info(' 已有模式库: .speccore/GLOBAL/PATTERNS/');
|
|
33
|
+
logger_1.logger.info('');
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/commands/global.ts"],"names":[],"mappings":";;AAgCA,oDAEC;AAGD,0DAEC;AAGD,gDAOC;AAGD,sDAOC;AA3DD,4CAAyC;AACzC,uCAA2C;AA8B3C,4BAA4B;AACrB,KAAK,UAAU,oBAAoB,CAAC,OAA6B;IACtE,MAAM,IAAA,wBAAc,EAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAW,CAAC,CAAC;AACpF,CAAC;AAED,sBAAsB;AACf,KAAK,UAAU,uBAAuB,CAAC,OAA6B;IACzE,MAAM,IAAA,wBAAc,EAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAW,CAAC,CAAC;AACpG,CAAC;AAED,0CAA0C;AACnC,KAAK,UAAU,kBAAkB;IACtC,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrC,eAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACxD,eAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC9D,eAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACxE,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,mCAAmC;AAC5B,KAAK,UAAU,qBAAqB;IACzC,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxC,eAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC9D,eAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC9D,eAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACpD,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1420,7 +1420,7 @@ SpecCore 规范驱动开发项目。
|
|
|
1420
1420
|
6. **禁止直接用 Write 工具写 020-specs/ 或 .speccore/GLOBAL/ 下的文件** — 必须通过 \`speccore analyze --apply\` 写入,CLI 自动路由到正确子目录
|
|
1421
1421
|
7. **不要自己解析需求** — 用 \`speccore analyze\`
|
|
1422
1422
|
8. **端名必须使用 CONSTITUTION.md 标准端名** — 禁止用 \`api\`/\`web\`/\`backend\`/\`frontend\`/\`admin\`/\`h5\` 等简写或中文
|
|
1423
|
-
9. **全局分析每层完成后必须自动推进下一层** — 看到 \`[SPECCORE_EXEC: speccore analyze --
|
|
1423
|
+
9. **全局分析每层完成后必须自动推进下一层** — 看到 \`[SPECCORE_EXEC: speccore global analyze --layer N]\` 后必须立即执行,不能等待用户指令
|
|
1424
1424
|
10. **步骤隔离模式** — v8.3.160+ 默认步骤隔离,每步完成后输出 \`[SPECCORE_STEP_DONE]\` + \`[SPECCORE_NEXT_STEP]\`,新会话通过 \`--resume\` 继续。看到 \`[SPECCORE_EXEC]\` 后自动执行
|
|
1425
1425
|
11. **质量门禁拦截后必须修复所有 error** — 不能跳过质量门禁继续推进
|
|
1426
1426
|
12. **PATTERNS 只提取真正独特且可复用的模式** — 严禁为每个项目都生成 JWT/Redis/拦截器等框架自带的标准用法说明
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskify.d.ts","sourceRoot":"","sources":["../../../src/commands/iteration/taskify.ts"],"names":[],"mappings":"AA0KA,MAAM,WAAW,uBAAuB;IACtC,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;AAqLD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"taskify.d.ts","sourceRoot":"","sources":["../../../src/commands/iteration/taskify.ts"],"names":[],"mappings":"AA0KA,MAAM,WAAW,uBAAuB;IACtC,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;AAqLD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqsC7F"}
|
|
@@ -1015,7 +1015,7 @@ async function iterationTaskifyCommand(options) {
|
|
|
1015
1015
|
process.stdout.write('\n[SPECCORE_TASK_SUMMARY]\n');
|
|
1016
1016
|
process.stdout.write(summaryMd);
|
|
1017
1017
|
process.stdout.write('\n[/SPECCORE_TASK_SUMMARY]\n');
|
|
1018
|
-
// 输出下一步操作标记:引导宿主 AI
|
|
1018
|
+
// 输出下一步操作标记:引导宿主 AI 填充任务级 00-specs/ 文档(analyze --task 已删除)
|
|
1019
1019
|
outputAnalyzeTaskHints(iter, createdSections);
|
|
1020
1020
|
}
|
|
1021
1021
|
logger_1.logger.success(`✅ 创建了 ${createdSections.length}/${sections.length} 个任务(${sections.length - createdSections.length} 个跳过)`);
|
|
@@ -1125,6 +1125,8 @@ async function iterationTaskifyCommand(options) {
|
|
|
1125
1125
|
if (!options.prompt && !options.response) {
|
|
1126
1126
|
const moduleDrivenResult = await tryModuleDrivenSplit(iteration, iterationDir, options);
|
|
1127
1127
|
if (moduleDrivenResult) {
|
|
1128
|
+
// v8.3.256: spinner 未 stop 会导致 ora interval 保持事件循环存活、进程挂起
|
|
1129
|
+
spinner.stop('✅ 模块驱动拆分完成');
|
|
1128
1130
|
return;
|
|
1129
1131
|
}
|
|
1130
1132
|
}
|
|
@@ -3941,26 +3943,22 @@ async function generateTaskSummary(iterationDir, tasks, createdSections) {
|
|
|
3941
3943
|
return md;
|
|
3942
3944
|
}
|
|
3943
3945
|
/**
|
|
3944
|
-
* 输出 [SPECCORE_NEXT_STEPS] 标记,引导宿主 AI
|
|
3945
|
-
*
|
|
3946
|
+
* 输出 [SPECCORE_NEXT_STEPS] 标记,引导宿主 AI 填充任务级 00-specs/ 文档
|
|
3947
|
+
* v8.3.256: 任务层 analyze(--task)已删除,任务级规格由 taskify 预创建骨架 + 宿主 AI 填充
|
|
3946
3948
|
*/
|
|
3947
3949
|
function outputAnalyzeTaskHints(iteration, sections) {
|
|
3948
3950
|
if (sections.length === 0)
|
|
3949
3951
|
return;
|
|
3950
3952
|
const iterFlag = iteration ? ` -I ${iteration}` : '';
|
|
3951
|
-
let md = `\n## 🧠
|
|
3952
|
-
md += `拆分完成!每个 Task
|
|
3953
|
-
md +=
|
|
3954
|
-
md += `###
|
|
3953
|
+
let md = `\n## 🧠 下一步:填充任务级 00-specs/ 文档\n\n`;
|
|
3954
|
+
md += `拆分完成!每个 Task 的 00-specs/ 骨架已由 CLI 预创建(REQ.md、TECH.md、TASK.md),请宿主 AI 直接 Read 对应端目录下的骨架并用 Write 填充专业内容。\n\n`;
|
|
3955
|
+
md += `参考上下文:020-specs/overview/ 全局规格 + 020-specs/{功能单元}/ 单元规格。\n\n`;
|
|
3956
|
+
md += `### 待填充任务\n\n`;
|
|
3955
3957
|
for (const sec of sections) {
|
|
3956
3958
|
const taskId = sec._taskId || sec.name;
|
|
3957
|
-
md +=
|
|
3958
|
-
speccore analyze --task ${taskId}${iterFlag}
|
|
3959
|
-
\`\`\`
|
|
3960
|
-
|
|
3961
|
-
`;
|
|
3959
|
+
md += `- ${taskId}:Read 030-tasks/**/${taskId}/{端}/ 下子任务目录的 00-specs/REQ.md 与 TECH.md,填充需求规格与技术方案\n`;
|
|
3962
3960
|
}
|
|
3963
|
-
md +=
|
|
3961
|
+
md += `\n> 填充完成后运行 \`speccore execute --resume\` 或 \`speccore plan${iterFlag}\` 制定执行计划。\n`;
|
|
3964
3962
|
process.stdout.write('\n[SPECCORE_NEXT_STEPS]\n');
|
|
3965
3963
|
process.stdout.write(md);
|
|
3966
3964
|
process.stdout.write('\n[/SPECCORE_NEXT_STEPS]\n');
|