speccore 8.3.159 → 8.3.160

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.
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
@@ -850,8 +850,8 @@ async function analyzeCommand(options) {
850
850
  engine = result.engine;
851
851
  steps = result.steps;
852
852
  pipelineKey = iter;
853
- // v6.80.0+: 默认从 clarify 开始,skipClarify 时从 phase1 开始
854
- initStep = options.skipClarify ? 'phase1-prompt' : 'clarify-prompt';
853
+ // v8.3.160+: clarify 拆分为 product → interaction → security 三个子步骤
854
+ initStep = options.skipClarify ? 'phase1-prompt' : 'clarify-product';
855
855
  }
856
856
  // 检查是否有活跃的 Pipeline(恢复模式)
857
857
  const hasActive = await pipeline_engine_1.PipelineEngine.hasActivePipeline(_projectRoot, pipelineKey);
@@ -896,8 +896,8 @@ async function analyzeCommand(options) {
896
896
  }, options);
897
897
  }
898
898
  }
899
- else if (currentStep === 'clarify-prompt') {
900
- // v6.80.0+: Phase 0 需求澄清
899
+ else if (currentStep === 'clarify-product' || currentStep === 'clarify-interaction' || currentStep === 'clarify-security') {
900
+ // v8.3.160+: Phase 0 需求澄清(拆分为 product / interaction / security 三个子步骤)
901
901
  prompt = await buildClarifyPhasePrompt(iter);
902
902
  }
903
903
  else if (currentStep === 'confirm-check') {
@@ -941,22 +941,27 @@ async function analyzeCommand(options) {
941
941
  : '全局 Pipeline';
942
942
  }
943
943
  else {
944
- progressLabel = currentStep === 'clarify-prompt'
945
- ? 'Phase 0/3: 需求澄清'
946
- : currentStep === 'confirm-check'
947
- ? 'Phase 0/3: 需求确认'
948
- : currentStep === 'phase1-prompt'
949
- ? 'Phase 1/3: 迭代综合文档'
950
- : currentStep === 'contract-prompt'
951
- ? 'Phase 2/3: 契约定义'
952
- : platformMatch
953
- ? `Phase 2/3: ${platformMatch[1]} 端专属文档`
954
- : 'Pipeline';
955
- }
956
- const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:自动继续 (${progressLabel})\n\n` +
944
+ progressLabel = currentStep === 'clarify-product'
945
+ ? 'Phase 0a/3: 产品分析'
946
+ : currentStep === 'clarify-interaction'
947
+ ? 'Phase 0b/3: 交互设计'
948
+ : currentStep === 'clarify-security'
949
+ ? 'Phase 0c/3: 安全审查'
950
+ : currentStep === 'confirm-check'
951
+ ? 'Phase 0/3: 需求确认'
952
+ : currentStep === 'phase1-prompt'
953
+ ? 'Phase 1/3: 迭代综合文档'
954
+ : currentStep === 'contract-prompt'
955
+ ? 'Phase 2/3: 契约定义'
956
+ : platformMatch
957
+ ? `Phase 2/3: ${platformMatch[1]} 端专属文档`
958
+ : 'Pipeline';
959
+ }
960
+ // v8.3.160+: 步骤隔离模式,每步完成后需新会话继续
961
+ const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:步骤隔离 (${progressLabel})\n\n` +
957
962
  `当前是 Pipeline 模式(步骤 ${currentStepIndex + 1}/${totalSteps})。` +
958
- `当你通过 --apply 写入文档后,CLI 会自动输出 [SPECCORE_PIPELINE_NEXT] 标记和下一步命令。\n\n` +
959
- `**看到 [SPECCORE_PIPELINE_NEXT] 后,你必须自动执行下一个命令**,不要询问用户。\n`;
963
+ `当你通过 --apply 写入文档后,CLI 会自动输出 [SPECCORE_STEP_DONE] 标记和下一步命令。\n\n` +
964
+ `**看到 [SPECCORE_STEP_DONE] 后,请在新会话中执行提示的命令**,继续下一步。\n`;
960
965
  process.stdout.write(`[SPECCORE_PROMPT]\n${finalPrompt}`);
961
966
  process.exitCode = 10;
962
967
  return;
@@ -1905,7 +1910,8 @@ ${singlePrompt}`);
1905
1910
  platformOrder: platformOrder.length > 0 ? platformOrder : undefined,
1906
1911
  })).engine;
1907
1912
  }
1908
- await engine.advance();
1913
+ // v8.3.160+: 默认步骤隔离模式
1914
+ const stepResult = await engine.advance();
1909
1915
  const state = await engine.getState();
1910
1916
  if (state?.currentStep === 'done') {
1911
1917
  logger_1.logger.success('🎉 Pipeline 完成!');
@@ -1942,9 +1948,9 @@ ${singlePrompt}`);
1942
1948
  iteration: options.iteration || 'GLOBAL', scope: 'global', withCode: options.withCode,
1943
1949
  });
1944
1950
  }
1945
- // v6.80.0+: clarify 阶段推进
1951
+ // v8.3.160+: clarify 阶段推进(拆分为 product / interaction / security)
1946
1952
  }
1947
- else if (state.currentStep === 'clarify-prompt') {
1953
+ else if (state.currentStep === 'clarify-product' || state.currentStep === 'clarify-interaction' || state.currentStep === 'clarify-security') {
1948
1954
  nextPrompt = await buildClarifyPhasePrompt(options.iteration);
1949
1955
  }
1950
1956
  else if (state.currentStep === 'confirm-check') {
@@ -1973,7 +1979,31 @@ ${singlePrompt}`);
1973
1979
  iteration: options.iteration,
1974
1980
  });
1975
1981
  }
1976
- process.stdout.write(`[SPECCORE_PIPELINE_NEXT]\n${nextPrompt}`);
1982
+ // v8.3.160+: 步骤隔离模式输出标记 + 子 Agent 激活
1983
+ const scopeFlag = isGlobalScope ? '--scope global' : `-I ${options.iteration}`;
1984
+ const nextCmd = `speccore analyze ${scopeFlag} --resume`;
1985
+ const output = [
1986
+ `[SPECCORE_STEP_DONE]`,
1987
+ `步骤 "${state.currentStep}" 已完成。`,
1988
+ ``,
1989
+ `[SPECCORE_NEXT_STEP]`,
1990
+ `下一步: ${state.currentStep}`,
1991
+ `请在新的对话中执行: ${nextCmd}`,
1992
+ ``,
1993
+ `[SPECCORE_CONTEXT_SNAPSHOT]`,
1994
+ JSON.stringify(stepResult.contextSnapshot || {}),
1995
+ ``,
1996
+ // v8.3.160+: 子 Agent 激活标记
1997
+ ...(stepResult.subagent ? [
1998
+ `[SPECCORE_SUBAGENT: ${stepResult.subagent}]`,
1999
+ `[SPECCORE_CONTEXT_BUDGET: ${stepResult.contextBudget || 12000}]`,
2000
+ `[SPECCORE_CONTEXT_TYPE: ${stepResult.contextType || 'full'}]`,
2001
+ ``,
2002
+ ] : []),
2003
+ `--- 下一步 Prompt ---`,
2004
+ nextPrompt,
2005
+ ].join('\n');
2006
+ process.stdout.write(output);
1977
2007
  process.exitCode = 10;
1978
2008
  }
1979
2009
  return;
@@ -5603,7 +5633,7 @@ async function buildConfirmCheckPrompt(iteration) {
5603
5633
  prompt += `\`\`\`bash\n`;
5604
5634
  prompt += `speccore analyze --prompt -I ${iteration} --pipeline --skip-clarify=false\n`;
5605
5635
  prompt += `\`\`\`\n`;
5606
- prompt += `> 重新进入 clarify-prompt 阶段,AI 会基于已有 draft 继续迭代。\n\n`;
5636
+ prompt += `> 重新进入 clarify-product 阶段,AI 会基于已有 draft 继续迭代。\n\n`;
5607
5637
  prompt += `**选项 C:跳过确认,直接进入分析(风险自负)**\n`;
5608
5638
  prompt += `\`\`\`bash\n`;
5609
5639
  prompt += `speccore analyze --prompt -I ${iteration} --pipeline --skip-clarify\n`;