speccore 6.77.6 → 6.79.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.
Files changed (42) hide show
  1. package/dist/commands/analyze.js +50 -50
  2. package/dist/commands/analyze.js.map +1 -1
  3. package/dist/commands/audit.js +5 -5
  4. package/dist/commands/audit.js.map +1 -1
  5. package/dist/commands/execute.d.ts.map +1 -1
  6. package/dist/commands/execute.js +47 -104
  7. package/dist/commands/execute.js.map +1 -1
  8. package/dist/commands/iteration/split.js +83 -35
  9. package/dist/commands/iteration/split.js.map +1 -1
  10. package/dist/core/ai-context-generator.js +1 -1
  11. package/dist/core/ai-context-generator.js.map +1 -1
  12. package/dist/core/analyze-context-guard.js +5 -5
  13. package/dist/core/analyze-context-guard.js.map +1 -1
  14. package/dist/core/ask-engine.d.ts.map +1 -1
  15. package/dist/core/ask-engine.js +12 -3
  16. package/dist/core/ask-engine.js.map +1 -1
  17. package/dist/core/incremental-analyzer.js +6 -6
  18. package/dist/core/incremental-analyzer.js.map +1 -1
  19. package/dist/core/intent-recognition.d.ts.map +1 -1
  20. package/dist/core/intent-recognition.js +8 -0
  21. package/dist/core/intent-recognition.js.map +1 -1
  22. package/dist/core/module-analyzer.js +15 -15
  23. package/dist/core/module-analyzer.js.map +1 -1
  24. package/dist/core/next-steps.js +1 -1
  25. package/dist/core/next-steps.js.map +1 -1
  26. package/dist/core/platform-addition.js +6 -6
  27. package/dist/core/platform-addition.js.map +1 -1
  28. package/dist/core/prompt-builder.d.ts.map +1 -1
  29. package/dist/core/prompt-builder.js +48 -6
  30. package/dist/core/prompt-builder.js.map +1 -1
  31. package/dist/core/spec-paths.d.ts +8 -8
  32. package/dist/core/spec-paths.d.ts.map +1 -1
  33. package/dist/core/spec-paths.js +14 -9
  34. package/dist/core/spec-paths.js.map +1 -1
  35. package/dist/core/streaming-analyzer.d.ts.map +1 -1
  36. package/dist/core/streaming-analyzer.js +22 -19
  37. package/dist/core/streaming-analyzer.js.map +1 -1
  38. package/dist/core/verify-engine.d.ts +7 -0
  39. package/dist/core/verify-engine.d.ts.map +1 -1
  40. package/dist/core/verify-engine.js +57 -0
  41. package/dist/core/verify-engine.js.map +1 -1
  42. package/package.json +1 -1
@@ -872,7 +872,7 @@ async function analyzeCommand(options) {
872
872
  }
873
873
  }
874
874
  // v6.72.0+: FUNCTION_MAP.md 自检
875
- const fmContent = docs['FUNCTION_MAP.md'] || docs['global/FUNCTION_MAP.md'];
875
+ const fmContent = docs['FUNCTION_MAP.md'] || docs['overview/FUNCTION_MAP.md'] || docs['global/FUNCTION_MAP.md'];
876
876
  if (fmContent) {
877
877
  const platforms = Array.from(validPlatforms);
878
878
  const fmResult = validateFunctionMap(fmContent, platforms);
@@ -941,7 +941,7 @@ async function analyzeCommand(options) {
941
941
  }
942
942
  }
943
943
  else {
944
- // 迭代级:写 020-specs/global/(综合文档,v6.41.0+)
944
+ // 迭代级:写 020-specs/overview/(迭代综合文档,v6.78.0+)
945
945
  const specDir = (0, path_1.join)(iterDir, '020-specs');
946
946
  const globalDir = (0, path_1.join)(specDir, spec_paths_1.GLOBAL_SPECS_DIR);
947
947
  await (0, fs_extra_1.ensureDir)(globalDir);
@@ -953,7 +953,7 @@ async function analyzeCommand(options) {
953
953
  logger_1.logger.info(` 📦 旧版已备份: ${iterBackup.split('/').pop()}`);
954
954
  }
955
955
  await (0, fs_extra_1.writeFile)(iterAnalysisPath, options.apply);
956
- logger_1.logger.success(`✅ ANALYSIS.md 已写入 020-specs/global/`);
956
+ logger_1.logger.success(`✅ ANALYSIS.md 已写入 020-specs/overview/`);
957
957
  }
958
958
  else {
959
959
  logger_1.logger.info(` ⏭️ 用户取消覆盖`);
@@ -1085,11 +1085,11 @@ async function analyzeCommand(options) {
1085
1085
  // 检查是否有多个端
1086
1086
  const platforms = await (0, spec_paths_1.parsePlatformList)();
1087
1087
  // 只有多端项目(≥2 个端)才需要分两阶段:
1088
- // - Phase 1: 生成综合文档(global/REQUIREMENT.md、ANALYSIS.md、DEPS.md)
1088
+ // - Phase 1: 生成综合文档(overview/REQUIREMENT.md、ANALYSIS.md、DEPS.md)
1089
1089
  // - Phase 2: 生成各端专属文档({端}/TECH.md、TEST.md、UI_SPEC.md)
1090
1090
  //
1091
1091
  // 单端项目(=1 个端)不需要分阶段:
1092
- // - Phase 1 生成的 global/TECH.md 本身就是该端的专属文档
1092
+ // - Phase 1 生成的 overview/TECH.md 本身就是该端的专属文档
1093
1093
  // - 不需要再生成 {端}/TECH.md(会重复)
1094
1094
  if (platforms.length >= 2) {
1095
1095
  logger_1.logger.info('');
@@ -1788,7 +1788,7 @@ async function buildMultiDocPrompt(command, ctx, options) {
1788
1788
  - 缓存策略/并发与事务/消息队列(如涉及)
1789
1789
  - 安全:SQL注入防护/接口鉴权/数据脱敏
1790
1790
  - 性能:QPS预估/慢查询优化/连接池配置
1791
- - **不要写**用户旅程、业务场景、页面清单(这些在 global/REQUIREMENT.md 中)
1791
+ - **不要写**用户旅程、业务场景、页面清单(这些在 overview/REQUIREMENT.md 中)
1792
1792
 
1793
1793
  ### 前端端(h5 / admin-web / miniapp)— 产品+技术双视角
1794
1794
  - **产品视角(主要)**:
@@ -1976,7 +1976,7 @@ sequenceDiagram
1976
1976
 
1977
1977
  ## 写作要求
1978
1978
 
1979
- ### 全局级 DEV_GUIDE.md(020-specs/global/)
1979
+ ### 迭代级 DEV_GUIDE.md(020-specs/overview/)
1980
1980
  - **技术栈与选型决策**:每个技术点的选型理由、替代方案对比
1981
1981
  - **代码分层规范**:目录结构、各层职责、代码组织方式
1982
1982
  - **通用设计模式**:Repository 模式、Service 模式、策略模式等具体实现
@@ -2011,7 +2011,7 @@ sequenceDiagram
2011
2011
  ];
2012
2012
  // 任务类型 × 文档矩阵: 每种类型生成哪些文档
2013
2013
  const DOC_MATRIX = {
2014
- feature: ['REQUIREMENT.md', 'ANALYSIS.md', 'TECH.md', 'TEST.md', 'REVIEW.md', 'RISK.md', 'DEPS.md', 'MONITOR.md', 'UI_SPEC.md', 'FUNCTION_MAP.md', 'INTERACTION_MAP.md'],
2014
+ feature: ['REQUIREMENT.md', 'ANALYSIS.md', 'TECH.md', 'TEST.md', 'REVIEW.md', 'RISK.md', 'DEPS.md', 'MONITOR.md', 'UI_SPEC.md', 'FUNCTION_MAP.md', 'INTERACTION_MAP.md', 'DEV_GUIDE.md'],
2015
2015
  refactor: ['ANALYSIS.md', 'TECH.md', 'TEST.md', 'REVIEW.md', 'RISK.md'],
2016
2016
  bugfix: ['ANALYSIS.md', 'TECH.md', 'TEST.md'],
2017
2017
  research: ['ANALYSIS.md'],
@@ -2023,12 +2023,12 @@ sequenceDiagram
2023
2023
  performance: ['ANALYSIS.md', 'TECH.md', 'TEST.md', 'MONITOR.md'],
2024
2024
  };
2025
2025
  let includeDocs = isTask ? (DOC_MATRIX[taskType] || DOC_MATRIX['feature']) : DOC_MATRIX['feature'];
2026
- // v6.76.0+: --dev-guide 模式下增加 DEV_GUIDE.md
2027
- if (options?.devGuide) {
2028
- includeDocs = [...includeDocs, 'DEV_GUIDE.md'];
2026
+ // v6.78.0+: DEV_GUIDE.md 默认生成(--dev-guide 向后兼容,--no-dev-guide 可禁用)
2027
+ if (options?.devGuide === false) {
2028
+ includeDocs = includeDocs.filter(d => d !== 'DEV_GUIDE.md');
2029
2029
  }
2030
2030
  // ── v6.61.0+: 恢复 Phase 1/Phase 2 分步逻辑,但 CLI 自动触发 Phase 2 ──
2031
- // Phase 1: 生成综合文档(global/REQUIREMENT.md、ANALYSIS.md、DEPS.md 等)
2031
+ // Phase 1: 生成综合文档(overview/REQUIREMENT.md、ANALYSIS.md、DEPS.md 等)
2032
2032
  // Phase 2: 生成各端专属文档({端}/TECH.md、TEST.md、UI_SPEC.md 等)
2033
2033
  const GLOBAL_DOCS = ['REQUIREMENT.md', 'ANALYSIS.md', 'TECH.md', 'RISK.md', 'DEPS.md', 'REVIEW.md', 'MONITOR.md', 'FUNCTION_MAP.md', 'INTERACTION_MAP.md'];
2034
2034
  const PLATFORM_DOCS = ['TECH.md', 'TEST.md', 'UI_SPEC.md'];
@@ -2067,7 +2067,7 @@ sequenceDiagram
2067
2067
  doc[1] = `# \u672c\u4efb\u52a1\u9700\u6c42\u89c4\u683c\n\n> ${iter} | ${ctx.task} | ${now}\n\n## \u5199\u4f5c\u8981\u6c42\n\u6839\u636e split \u4ea7\u51fa\u7684\u9700\u6c42\u5207\u7247\uff0c\u7ed3\u5408\u5168\u5c40\u4e0a\u4e0b\u6587\uff0c\u91cd\u65b0\u7ec4\u7ec7\u672c\u4efb\u52a1\u7684\u9700\u6c42\u89c4\u683c\uff1a\n- \u660e\u786e\u672c\u4efb\u52a1\u7684\u9a8c\u6536\u6807\u51c6\uff08\u53ef\u6d4b\u8bd5\u7684\u3001\u5177\u4f53\u7684\uff09\n- \u7ec6\u5316\u4e1a\u52a1\u89c4\u5219\u548c\u8fb9\u754c\u6761\u4ef6\n- \u5217\u51fa\u5f02\u5e38\u573a\u666f\u548c\u5904\u7406\u65b9\u5f0f\n- \u6807\u6ce8\u4e0e\u5176\u4ed6 Task \u7684\u4f9d\u8d56\u5173\u7cfb\n`;
2068
2068
  }
2069
2069
  else if (doc[0] === 'TECH.md') {
2070
- doc[1] = `# \u672c\u4efb\u52a1\u6280\u672f\u65b9\u6848\n\n> ${iter} | ${ctx.task} | ${now}\n\n## \u5199\u4f5c\u8981\u6c42\n\u57fa\u4e8e global/TECH.md \u7684\u6574\u4f53\u67b6\u6784\uff0c\u7ec6\u5316\u5230\u51fd\u6570/\u63a5\u53e3\u7ea7\u522b\uff1a\n- \u5177\u4f53\u7684\u63a5\u53e3\u5b9a\u4e49\uff08\u8def\u5f84/\u53c2\u6570/\u54cd\u5e94\uff09\n- \u6570\u636e\u6a21\u578b\u8bbe\u8ba1\uff08Entity/DTO/VO \u5b57\u6bb5\u6620\u5c04\uff09\n- \u6838\u5fc3\u4e1a\u52a1\u903b\u8f91\u7684\u4f2a\u4ee3\u7801\u6216\u6d41\u7a0b\u63cf\u8ff0\n- \u524d\u7aef\u7ec4\u4ef6\u62c6\u5206\u548c\u72b6\u6001\u8bbe\u8ba1\n- \u5fc5\u987b\u4e0e global/TECH.md \u7684\u6574\u4f53\u67b6\u6784\u4fdd\u6301\u4e00\u81f4\n`;
2070
+ doc[1] = `# \u672c\u4efb\u52a1\u6280\u672f\u65b9\u6848\n\n> ${iter} | ${ctx.task} | ${now}\n\n## \u5199\u4f5c\u8981\u6c42\n\u57fa\u4e8e overview/TECH.md \u7684\u6574\u4f53\u67b6\u6784\uff0c\u7ec6\u5316\u5230\u51fd\u6570/\u63a5\u53e3\u7ea7\u522b\uff1a\n- \u5177\u4f53\u7684\u63a5\u53e3\u5b9a\u4e49\uff08\u8def\u5f84/\u53c2\u6570/\u54cd\u5e94\uff09\n- \u6570\u636e\u6a21\u578b\u8bbe\u8ba1\uff08Entity/DTO/VO \u5b57\u6bb5\u6620\u5c04\uff09\n- \u6838\u5fc3\u4e1a\u52a1\u903b\u8f91\u7684\u4f2a\u4ee3\u7801\u6216\u6d41\u7a0b\u63cf\u8ff0\n- \u524d\u7aef\u7ec4\u4ef6\u62c6\u5206\u548c\u72b6\u6001\u8bbe\u8ba1\n- \u5fc5\u987b\u4e0e overview/TECH.md \u7684\u6574\u4f53\u67b6\u6784\u4fdd\u6301\u4e00\u81f4\n`;
2071
2071
  }
2072
2072
  else if (doc[0] === 'TASK.md') {
2073
2073
  doc[1] = `# \u5b9e\u65bd\u8ba1\u5212\n\n> ${iter} | ${ctx.task} | ${now}\n\n## \u5199\u4f5c\u8981\u6c42\n\u6839\u636e\u672c\u4efb\u52a1\u7684\u9700\u6c42\u548c\u6280\u672f\u65b9\u6848\uff0c\u5236\u5b9a\u5177\u4f53\u5b9e\u65bd\u6b65\u9aa4\uff1a\n- \u6309\u5f00\u53d1\u987a\u5e8f\u5217\u51fa\u5177\u4f53\u6b65\u9aa4\n- \u6bcf\u4e2a\u6b65\u9aa4\u6709\u660e\u786e\u7684\u5b8c\u6210\u6807\u51c6\n- \u6807\u6ce8\u6b65\u9aa4\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\n- \u4f30\u7b97\u6bcf\u6b65\u7684\u5de5\u4f5c\u91cf\n`;
@@ -2098,7 +2098,7 @@ sequenceDiagram
2098
2098
  // ── v6.60.0+: TECH.md 模板:global/ 侧重整体架构,{端}/ 侧重端专属方案 ──
2099
2099
  const techDoc = taskDocs.find(([n]) => n === 'TECH.md');
2100
2100
  if (techDoc) {
2101
- // global/TECH.md: 整体架构
2101
+ // overview/TECH.md: 整体架构
2102
2102
  techDoc[1] = `# 技术架构(跨端全局)\n\n> ${iter}\n\n## 写作要求\n撰写整体技术架构,覆盖所有端的交互关系:\n- 系统整体分层设计(各端在架构中的位置)\n- 跨端交互协议(前端↔后端通信方式、数据流向)\n- 中间件选型(缓存、消息队列、网关等)\n- 数据库整体设计(核心表结构、ER 关系)\n- 技术栈选型及理由\n`;
2103
2103
  }
2104
2104
  let prompt = `\n# 任务: ${command}${task} (${taskDocs.length}个文档 · ${isTask ? `类型:${taskType}` : '迭代全量'}${ctx.phase ? ` · Phase ${ctx.phase}` : ''})\n\n`;
@@ -2108,7 +2108,7 @@ sequenceDiagram
2108
2108
  if (platforms.length >= 2) {
2109
2109
  prompt += `## 📋 完整工作流程(两阶段分析)\n\n`;
2110
2110
  prompt += `本项目检测到有 ${platforms.length} 个端(${platforms.join('、')}),需要分两阶段执行:\n\n`;
2111
- prompt += `**Phase 1(当前阶段)**: 生成综合文档(global/REQUIREMENT.md、ANALYSIS.md、DEPS.md 等)\n`;
2111
+ prompt += `**Phase 1(当前阶段)**: 生成综合文档(overview/REQUIREMENT.md、ANALYSIS.md、DEPS.md 等)\n`;
2112
2112
  prompt += `**Phase 2(下一阶段)**: 生成各端专属文档({端}/TECH.md、TEST.md、UI_SPEC.md 等)\n\n`;
2113
2113
  prompt += `## ⚠️ 强制要求:Phase 1 完成后立即执行 Phase 2\n\n`;
2114
2114
  prompt += `当你通过 --apply 写入所有综合文档后,**必须立即执行**以下命令进入 Phase 2:\n\n`;
@@ -2126,8 +2126,8 @@ sequenceDiagram
2126
2126
  prompt += `- ✅ **正确行为**:只使用 CLI 预创建的 global/ 和 {端名}/ 目录,不要手动 mkdir 或 Write 到不存在的目录\n`;
2127
2127
  prompt += `- ⚠️ **后果**:如果创建额外目录,会导致后续 split/execute 命令找不到文件,整个工作流失败\n\n`;
2128
2128
  prompt += `### 绝对禁止直接用 Write 工具写文件\n`;
2129
- prompt += `- ❌ **错误行为**:Write("020-specs/global/ANALYSIS.md", content) 或直接 Write 到任何路径\n`;
2130
- prompt += `- ✅ **正确行为**:必须通过 \`speccore analyze --apply '{"global/ANALYSIS.md":"...","admin-web/TECH.md":"..."}' -I ${iter}\` 写入\n`;
2129
+ prompt += `- ❌ **错误行为**:Write("020-specs/overview/ANALYSIS.md", content) 或直接 Write 到任何路径\n`;
2130
+ prompt += `- ✅ **正确行为**:必须通过 \`speccore analyze --apply '{"overview/ANALYSIS.md":"...","admin-web/TECH.md":"..."}' -I ${iter}\` 写入\n`;
2131
2131
  prompt += `- 💡 **Windows 兼容**:如果 JSON 在命令行中转义困难,先将 JSON 写入文件(如 result.json),然后执行 \`speccore analyze --apply @result.json -I ${iter}\`\n`;
2132
2132
  prompt += `- ⚠️ **原因**:--apply 会让 CLI 自动路由文件到正确的子目录,直接 Write 会绕过这个机制,导致所有文件扁平在根目录\n\n`;
2133
2133
  prompt += `### ✅ 正确的目录结构\n`;
@@ -2166,12 +2166,12 @@ sequenceDiagram
2166
2166
  prompt += `### Step 2: 读取全局上下文(作为参考)\n`;
2167
2167
  prompt += `- Read .speccore/CONSTITUTION.md → 项目配置\n`;
2168
2168
  prompt += `- Read 020-specs/PLATFORMS.md → 端列表\n`;
2169
- prompt += `- Read 020-specs/global/REQUIREMENT.md → 全局需求规格\n`;
2170
- prompt += `- Read 020-specs/global/TECH.md → 整体技术架构\n`;
2171
- prompt += `- Read 020-specs/global/ANALYSIS.md → 全局分析报告\n`;
2169
+ prompt += `- Read 020-specs/overview/REQUIREMENT.md → 迭代综合需求规格\n`;
2170
+ prompt += `- Read 020-specs/overview/TECH.md → 迭代综合技术架构\n`;
2171
+ prompt += `- Read 020-specs/overview/ANALYSIS.md → 迭代综合分析报告\n`;
2172
2172
  prompt += `- Read 020-specs/{本任务端名}/TECH.md → 该端专属技术方案\n\n`;
2173
2173
  prompt += `### Step 3: 撰写任务级深度分析文档\n\n`;
2174
- prompt += `**REQ.md** — 本任务的需求规格(不是 global/REQUIREMENT.md 的复制):\n`;
2174
+ prompt += `**REQ.md** — 本任务的需求规格(不是 overview/REQUIREMENT.md 的复制):\n`;
2175
2175
  prompt += `- 明确本任务的验收标准(可测试的、具体的)\n`;
2176
2176
  prompt += `- 细化业务规则和边界条件\n`;
2177
2177
  prompt += `- 列出本任务涉及的异常场景\n\n`;
@@ -2180,7 +2180,7 @@ sequenceDiagram
2180
2180
  prompt += `- 数据模型设计(Entity/DTO/VO 字段映射)\n`;
2181
2181
  prompt += `- 核心业务逻辑的伪代码或流程描述\n`;
2182
2182
  prompt += `- 前端组件拆分和状态设计\n`;
2183
- prompt += `- 必须与 global/TECH.md 的整体架构保持一致\n\n`;
2183
+ prompt += `- 必须与 overview/TECH.md 的整体架构保持一致\n\n`;
2184
2184
  prompt += `**TASK.md** — 本任务的实施步骤:\n`;
2185
2185
  prompt += `- 按开发顺序列出具体步骤\n`;
2186
2186
  prompt += `- 每个步骤有明确的完成标准\n`;
@@ -2197,7 +2197,7 @@ sequenceDiagram
2197
2197
  if (ctx.platform) {
2198
2198
  prompt += `- **只分析 ${ctx.platform} 端**:从 CONSTITUTION.md 读取端列表,但只生成 ${ctx.platform} 端的专属文档\n`;
2199
2199
  prompt += `- 在 020-specs/${ctx.platform}/ 下写入该端专属文档(ANALYSIS.md、TECH.md、TEST.md 等)\n`;
2200
- prompt += `- 全局跨端文档写入 020-specs/global/(REQUIREMENT.md、DEPS.md、RISK.md 等)\n`;
2200
+ prompt += `- 迭代综合文档写入 020-specs/overview/(REQUIREMENT.md、DEPS.md、RISK.md 等)\n`;
2201
2201
  prompt += `- **不要生成**其他端的子目录和文档\n`;
2202
2202
  }
2203
2203
  // ── v6.61.0+: 阶段专属指令(Phase 2)──
@@ -2207,13 +2207,13 @@ sequenceDiagram
2207
2207
  prompt += `依次 Read 以下文件,建立全局技术架构认知:\n`;
2208
2208
  prompt += `- Read .speccore/CONSTITUTION.md\n`;
2209
2209
  prompt += `- Read 020-specs/PLATFORMS.md → 获取端列表\n`;
2210
- prompt += `- Read 020-specs/global/REQUIREMENT.md → 需求规格\n`;
2211
- prompt += `- Read 020-specs/global/ANALYSIS.md → 分析报告\n`;
2212
- prompt += `- Read 020-specs/global/TECH.md → 整体技术架构\n`;
2213
- prompt += `- Read 020-specs/global/RISK.md、DEPS.md、REVIEW.md、MONITOR.md(如存在)\n\n`;
2210
+ prompt += `- Read 020-specs/overview/REQUIREMENT.md → 需求规格\n`;
2211
+ prompt += `- Read 020-specs/overview/ANALYSIS.md → 分析报告\n`;
2212
+ prompt += `- Read 020-specs/overview/TECH.md → 整体技术架构\n`;
2213
+ prompt += `- Read 020-specs/overview/RISK.md、DEPS.md、REVIEW.md、MONITOR.md(如存在)\n\n`;
2214
2214
  prompt += `### Step 2: 为每个端撰写专属文档\n`;
2215
2215
  prompt += `根据全局上下文,为 PLATFORMS.md 中的**每个端**分别撰写:\n`;
2216
- prompt += `- **{端}/TECH.md**:该端专属技术方案(必须对齐 global/TECH.md 架构)\n`;
2216
+ prompt += `- **{端}/TECH.md**:该端专属技术方案(必须对齐 overview/TECH.md 架构)\n`;
2217
2217
  prompt += ` - ⚠️ **必须包含「业务-代码映射」章节**:在 TECH.md 末尾添加表格,列出本端涉及的业务模块及其对应的代码实体(文件/表/API/组件等),关系类型由你根据技术栈自主决定(如 api_controller、uses_table、page、component、route、middleware、interceptor、gateway 等)\n`;
2218
2218
  prompt += ` - 表格格式:| 业务模块 | 代码实体 | 关系类型 | 说明 |\n`;
2219
2219
  prompt += ` - 示例:| 会议室档案 | backend/RoomController.java | api_controller | REST 控制器 |\n`;
@@ -2221,7 +2221,7 @@ sequenceDiagram
2221
2221
  prompt += `- **{端}/TEST.md**:该端专属测试计划\n`;
2222
2222
  prompt += `- **{端}/UI_SPEC.md**:该端专属 UI 规格(仅前端端需要)\n\n`;
2223
2223
  prompt += `### Step 3: 一致性检查\n`;
2224
- prompt += `- 各端 TECH.md 的技术选型必须与 global/TECH.md 一致\n`;
2224
+ prompt += `- 各端 TECH.md 的技术选型必须与 overview/TECH.md 一致\n`;
2225
2225
  prompt += `- UI_SPEC.md 的字段映射必须与后端 API 响应字段一一对应\n`;
2226
2226
  prompt += `- TEST.md 必须覆盖 REQUIREMENT.md 中该端的验收标准\n\n`;
2227
2227
  prompt += `### 写入方式\n`;
@@ -2285,7 +2285,7 @@ sequenceDiagram
2285
2285
  prompt += ` - 端的信息只在「功能模块清单」表格中标注,正文不区分端\n`;
2286
2286
  // v6.49.14+: 功能模块清单必须含涉及端列 + 来源链接
2287
2287
  // v6.71.3+: 增加「与全局层对比」列
2288
- prompt += `9. **功能模块清单(重要)**:写入 global/REQUIREMENT.md 时,功能模块清单表格必须包含以下列\n`;
2288
+ prompt += `9. **功能模块清单(重要)**:写入 overview/REQUIREMENT.md 时,功能模块清单表格必须包含以下列\n`;
2289
2289
  prompt += ` - 表格格式:| # | 功能模块 | 涉及端 | 全局对比 | 来源 | 说明 |\n`;
2290
2290
  prompt += ` - 「涉及端」:每个模块标注需要**新开发工作**的端(标准端名,逗号分隔)\n`;
2291
2291
  prompt += ` - 「涉及」= 该端需要写新接口/新页面/新逻辑\n`;
@@ -2311,7 +2311,7 @@ sequenceDiagram
2311
2311
  prompt += ` - 标注每个功能模块的「全局对比」类型(新增/扩展/重构/复用)\n`;
2312
2312
  prompt += ` - 识别冲突:如迭代需求修改了全局层已有接口的字段/路径 → 在 RISK.md 中标注\n`;
2313
2313
  prompt += ` - 识别依赖:如迭代的新功能依赖全局层的某个功能 → 在 FUNCTION_MAP.md「依赖任务」中标注\n\n`;
2314
- prompt += `7b. **跨端功能映射表(重要)**:在 REQUIREMENT.md 完成后,必须生成 global/FUNCTION_MAP.md\n`;
2314
+ prompt += `7b. **跨端功能映射表(重要)**:在 REQUIREMENT.md 完成后,必须生成 overview/FUNCTION_MAP.md\n`;
2315
2315
  prompt += ` - 这是 split 阶段的核心输入,决定任务如何按功能单元拆分\n`;
2316
2316
  prompt += ` - 表格格式:| # | 功能单元 | 涉及端 | 全局对比 | 共享能力 | 依赖任务 | 说明 |\n`;
2317
2317
  prompt += ` - 「功能单元」必须与 REQUIREMENT.md 功能模块清单一一对应,不允许合并\n`;
@@ -2324,7 +2324,7 @@ sequenceDiagram
2324
2324
  prompt += ` - **错误示例**(禁止):将"审批流程"和"定时任务"合并为一行\n`;
2325
2325
  prompt += ` - FUNCTION_MAP.md 生成后,split 将**严格按此表**创建任务目录,不再由 AI 推断\n`;
2326
2326
  // v6.70.0+: 跨端交互图谱(INTERACTION_MAP.md)
2327
- prompt += `7c. **跨端交互图谱(重要)**:在 FUNCTION_MAP.md 完成后,必须生成 global/INTERACTION_MAP.md\n`;
2327
+ prompt += `7c. **跨端交互图谱(重要)**:在 FUNCTION_MAP.md 完成后,必须生成 overview/INTERACTION_MAP.md\n`;
2328
2328
  prompt += ` - 按功能单元组织,每个功能单元一个 Mermaid sequenceDiagram\n`;
2329
2329
  prompt += ` - 展示完整的业务交互时序:用户操作 → 前端处理 → 后端调用 → 数据返回\n`;
2330
2330
  prompt += ` - 明确标出后端服务之间的内部调用(产品文档写"系统处理"的地方)\n`;
@@ -2356,7 +2356,7 @@ sequenceDiagram
2356
2356
  }
2357
2357
  const dirStepNum = platformTypes.size > 0 ? 9 : 8;
2358
2358
  prompt += `${dirStepNum}. **目录结构(严格遵循,禁止自创目录)**:\n`;
2359
- prompt += ` - **综合文档**(跨端通用)→ 通过 --apply 写入,CLI 自动路由到 \`020-specs/global/{文件名}\`\n`;
2359
+ prompt += ` - **综合文档**(跨端通用)→ 通过 --apply 写入,CLI 自动路由到 \`020-specs/overview/{文件名}\`\n`;
2360
2360
  prompt += ` - REQUIREMENT.md(需求文档,含功能模块清单+涉及端列)\n`;
2361
2361
  prompt += ` - ANALYSIS.md(需求分析)\n`;
2362
2362
  prompt += ` - DEPS.md(依赖清单)\n`;
@@ -2383,7 +2383,7 @@ sequenceDiagram
2383
2383
  prompt += `- 缓存策略/并发与事务/消息队列(如涉及)\n`;
2384
2384
  prompt += `- 安全:SQL 注入防护/接口鉴权/数据脱敏\n`;
2385
2385
  prompt += `- 性能:QPS 预估/慢查询优化/连接池配置\n`;
2386
- prompt += `- **不需要**产品视角的需求描述(用户故事、业务场景已在 global/REQUIREMENT.md 中)\n\n`;
2386
+ prompt += `- **不需要**产品视角的需求描述(用户故事、业务场景已在 overview/REQUIREMENT.md 中)\n\n`;
2387
2387
  prompt += `### 前端端(h5 / admin-web / miniapp)必含内容 — 产品+技术双视角\n`;
2388
2388
  prompt += `- **产品视角(主要)**:\n`;
2389
2389
  prompt += ` - 用户旅程:该端用户如何完成核心任务(步骤流程图)\n`;
@@ -2401,11 +2401,11 @@ sequenceDiagram
2401
2401
  // v6.60.0+: 文档与端的对应关系(不再分 Phase)
2402
2402
  // v6.71.0+: 前后端文档差异化
2403
2403
  prompt += `### 文档与端的对应关系\n`;
2404
- prompt += `- **global/REQUIREMENT.md**:整体需求(产品视角,按业务场景组织)\n`;
2405
- prompt += `- **global/ANALYSIS.md**:整体需求分析\n`;
2406
- prompt += `- **global/DEPS.md**:整体依赖清单\n`;
2407
- prompt += `- **global/FUNCTION_MAP.md**:功能单元 × 端映射表\n`;
2408
- prompt += `- **global/INTERACTION_MAP.md**:跨端交互时序图\n`;
2404
+ prompt += `- **overview/REQUIREMENT.md**:整体需求(产品视角,按业务场景组织)\n`;
2405
+ prompt += `- **overview/ANALYSIS.md**:整体需求分析\n`;
2406
+ prompt += `- **overview/DEPS.md**:整体依赖清单\n`;
2407
+ prompt += `- **overview/FUNCTION_MAP.md**:功能单元 × 端映射表\n`;
2408
+ prompt += `- **overview/INTERACTION_MAP.md**:跨端交互时序图\n`;
2409
2409
  prompt += `- **后端端(*service)/{端}/TECH.md**:纯技术视角 — 接口设计+数据模型+架构+性能\n`;
2410
2410
  prompt += `- **前端端(h5/admin/miniapp)/{端}/TECH.md**:产品+技术双视角 — 用户旅程+页面清单+交互流程+API调用链\n`;
2411
2411
  prompt += `- **前端端/{端}/UI_SPEC.md**:UI 规格(字段映射、组件设计、交互细节)\n`;
@@ -2526,11 +2526,11 @@ sequenceDiagram
2526
2526
  prompt += `### 4. 跨文档引用一致性\n`;
2527
2527
  prompt += `- [ ] 检查 UI_SPEC.md 中的字段映射是否与后端 API 响应字段一一对应\n`;
2528
2528
  prompt += `- [ ] 检查 TEST.md 中的测试场景是否覆盖了 REQUIREMENT.md 中的所有验收标准\n`;
2529
- prompt += `- [ ] 检查各端 TECH.md 的技术选型是否与 global/TECH.md 的整体架构一致\n\n`;
2529
+ prompt += `- [ ] 检查各端 TECH.md 的技术选型是否与 overview/TECH.md 的整体架构一致\n\n`;
2530
2530
  prompt += `### 5. 目录结构合法性\n`;
2531
2531
  prompt += `- [ ] 确认 --apply 的 JSON 键名只包含合法文件名或「合法端名/文件名」格式\n`;
2532
2532
  prompt += `- [ ] **禁止**包含数字编号目录(如 1001/、1002/)、中文目录(如 错误码/)、特殊符号目录(如 .../)\n`;
2533
- prompt += `- [ ] 合法格式示例:\`global/ANALYSIS.md\`、\`admin-web/TECH.md\`、\`REQUIREMENT.md\`\n\n`;
2533
+ prompt += `- [ ] 合法格式示例:\`overview/ANALYSIS.md\`、\`admin-web/TECH.md\`、\`REQUIREMENT.md\`\n\n`;
2534
2534
  prompt += `### 自检通过标准\n`;
2535
2535
  prompt += `以上 5 项全部勾选通过后,方可执行 --apply 写入。如果任何一项未通过,先修正问题,重新自检,直到全部通过。\n`;
2536
2536
  return prompt;
@@ -2560,11 +2560,11 @@ async function buildStreamingGlobalPrompt(command, ctx, options) {
2560
2560
  prompt += `| :--- | :--- | :--- | :--- |\n`;
2561
2561
  prompt += `| Phase 0 | 快速全局扫描 | 所有端并行索引 | platforms/{端}/_INDEX.md |\n`;
2562
2562
  prompt += `| Phase 1 | 后端深度分析 | 拓扑排序,从依赖源头开始 | platforms/{后端端}/API_INVENTORY.md, DATA_MODEL.md, ... |\n`;
2563
- prompt += `| Phase 2 | 全局实时更新 | 后端完成后更新全局文档 | global/API_CONTRACT.yaml, ARCHITECTURE.md, ... |\n`;
2563
+ prompt += `| Phase 2 | 迭代综合实时更新 | 后端完成后更新迭代综合文档 | overview/API_CONTRACT.yaml, ARCHITECTURE.md, ... |\n`;
2564
2564
  prompt += `| Phase 3 | 前端深度分析 | 对齐后端契约 | platforms/{前端端}/FEATURES.md, UI_SPEC.md, ... |\n`;
2565
- prompt += `| Phase 4 | 横向关联检查 | 前后端字段/接口一致性 | global/CROSS_CHECK.md |\n`;
2566
- prompt += `| Phase 5 | 纵向关联检查 | 功能模块跨端完整性 | global/VERTICAL_CHECK.md |\n`;
2567
- prompt += `| Phase 6 | 最终核对检查 | 完整性+一致性+遗漏检测 | global/FINAL_AUDIT.md |\n\n`;
2565
+ prompt += `| Phase 4 | 横向关联检查 | 前后端字段/接口一致性 | overview/CROSS_CHECK.md |\n`;
2566
+ prompt += `| Phase 5 | 纵向关联检查 | 功能模块跨端完整性 | overview/VERTICAL_CHECK.md |\n`;
2567
+ prompt += `| Phase 6 | 最终核对检查 | 完整性+一致性+遗漏检测 | overview/FINAL_AUDIT.md |\n\n`;
2568
2568
  prompt += `## ⚠️ 实时关联调整机制\n\n`;
2569
2569
  prompt += `分析过程中,如果当前阶段发现与前期文档冲突或不一致:\n`;
2570
2570
  prompt += `1. **在当前阶段文档中标注冲突点**\n`;
@@ -2648,10 +2648,10 @@ async function buildContractFirstPrompt(iteration) {
2648
2648
  prompt += `Phase 1 迭代分析已完成。现在需要在各端开始专属技术方案分析之前,**先定义跨端 API 契约**。\n\n`;
2649
2649
  prompt += `## 读取内容\n\n`;
2650
2650
  prompt += `1. Read .speccore/CONSTITUTION.md → 获取端列表和项目配置\n`;
2651
- prompt += `2. Read 020-specs/global/REQUIREMENT.md → 全局需求规格\n`;
2652
- prompt += `3. Read 020-specs/global/ANALYSIS.md → 全局分析报告\n`;
2653
- prompt += `4. Read 020-specs/global/TECH.md → 整体技术架构\n`;
2654
- prompt += `5. Read 020-specs/global/DEPS.md → 依赖关系(如存在)\n\n`;
2651
+ prompt += `2. Read 020-specs/overview/REQUIREMENT.md → 迭代综合需求规格\n`;
2652
+ prompt += `3. Read 020-specs/overview/ANALYSIS.md → 迭代综合分析报告\n`;
2653
+ prompt += `4. Read 020-specs/overview/TECH.md → 迭代综合技术架构\n`;
2654
+ prompt += `5. Read 020-specs/overview/DEPS.md → 依赖关系(如存在)\n\n`;
2655
2655
  prompt += `## 输出要求\n\n`;
2656
2656
  prompt += `基于上述文档,生成一份 **API_CONTRACT.yaml**,使用标准 YAML 格式:\n\n`;
2657
2657
  prompt += `### 格式要求\n`;
@@ -2714,7 +2714,7 @@ async function buildContractFirstPrompt(iteration) {
2714
2714
  prompt += `## 写入方式\n\n`;
2715
2715
  prompt += `speccore analyze --apply '{"API_CONTRACT.yaml":"..."}' -I ${iteration}\n\n`;
2716
2716
  prompt += `⚠️ **注意**:\n`;
2717
- prompt += `- 契约文件写入 020-specs/global/API_CONTRACT.yaml(全局共享)\n`;
2717
+ prompt += `- 契约文件写入 020-specs/overview/API_CONTRACT.yaml(迭代综合共享)\n`;
2718
2718
  prompt += `- 这是各端技术方案分析的**前置输入**,后续各端分析必须遵循此契约\n`;
2719
2719
  prompt += `- 契约应**精确且完整**,避免后续各端分析时出现接口不一致\n\n`;
2720
2720
  return prompt;