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.
Files changed (43) hide show
  1. package/.agents/skills/spec-analyze/SKILL.md +2 -1
  2. package/.agents/skills/spec-from-source/SKILL.md +4 -2
  3. package/.agents/skills/speccore-router/SKILL.md +10 -9
  4. package/dist/cli.js +36 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/analyze.d.ts.map +1 -1
  7. package/dist/commands/analyze.js +32 -28
  8. package/dist/commands/analyze.js.map +1 -1
  9. package/dist/commands/change.d.ts.map +1 -1
  10. package/dist/commands/change.js +6 -15
  11. package/dist/commands/change.js.map +1 -1
  12. package/dist/commands/execute.js +2 -2
  13. package/dist/commands/execute.js.map +1 -1
  14. package/dist/commands/global.d.ts +35 -0
  15. package/dist/commands/global.d.ts.map +1 -0
  16. package/dist/commands/global.js +35 -0
  17. package/dist/commands/global.js.map +1 -0
  18. package/dist/commands/init.js +1 -1
  19. package/dist/commands/iteration/taskify.d.ts.map +1 -1
  20. package/dist/commands/iteration/taskify.js +11 -13
  21. package/dist/commands/iteration/taskify.js.map +1 -1
  22. package/dist/commands/rag-index.d.ts.map +1 -1
  23. package/dist/commands/rag-index.js +1 -3
  24. package/dist/commands/rag-index.js.map +1 -1
  25. package/dist/commands/task/new.js +2 -8
  26. package/dist/commands/task/new.js.map +1 -1
  27. package/dist/core/ai-impact-analyzer.js +5 -5
  28. package/dist/core/ai-impact-analyzer.js.map +1 -1
  29. package/dist/core/ask-engine.js +2 -2
  30. package/dist/core/ask-engine.js.map +1 -1
  31. package/dist/core/change-impact-global.js +5 -5
  32. package/dist/core/change-impact-global.js.map +1 -1
  33. package/dist/core/doc-quality-gate.js +1 -1
  34. package/dist/core/doc-quality-gate.js.map +1 -1
  35. package/dist/core/intent-recognition.js +2 -2
  36. package/dist/core/intent-recognition.js.map +1 -1
  37. package/dist/core/next-steps.js +1 -1
  38. package/dist/core/next-steps.js.map +1 -1
  39. package/dist/core/spec-merger.d.ts +5 -4
  40. package/dist/core/spec-merger.d.ts.map +1 -1
  41. package/dist/core/spec-merger.js +5 -4
  42. package/dist/core/spec-merger.js.map +1 -1
  43. 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"}
@@ -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 --scope global --layer N]\` 后必须立即执行,不能等待用户指令
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,CAmsC7F"}
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 对每个 Task 执行 analyze --task
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 对每个 Task 执行 analyze --task
3945
- * split 完成后调用,生成任务级 00-specs/ 文档
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## 🧠 下一步:任务级 Spec 分析\n\n`;
3952
- md += `拆分完成!每个 Task 需要执行 AI 分析,生成任务级 00-specs/ 文档(REQ.md、TECH.md、TASK.md、SCHEMA.md)。\n\n`;
3953
- md += `AI 会 Read global/ 和 {端}/ 的全局 spec 作为参考,根据本 Task 的原子范围生成针对性分析。\n\n`;
3954
- md += `### 执行命令\n\n`;
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 += `\`\`\`bash
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 += `> 自动模式可逐个执行,或告诉 AI:“对所有新建 Task 执行 analyze --task”\n`;
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');