speccore 8.3.158 → 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.
Files changed (85) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/analyze.d.ts.map +1 -1
  3. package/dist/commands/analyze.js +88 -96
  4. package/dist/commands/analyze.js.map +1 -1
  5. package/dist/commands/ask.d.ts.map +1 -1
  6. package/dist/commands/ask.js +0 -13
  7. package/dist/commands/ask.js.map +1 -1
  8. package/dist/commands/execute.d.ts.map +1 -1
  9. package/dist/commands/execute.js +67 -6
  10. package/dist/commands/execute.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +71 -216
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/iteration/split.d.ts.map +1 -1
  15. package/dist/commands/iteration/split.js +73 -9
  16. package/dist/commands/iteration/split.js.map +1 -1
  17. package/dist/commands/migrate.d.ts.map +1 -1
  18. package/dist/commands/migrate.js +1 -2
  19. package/dist/commands/migrate.js.map +1 -1
  20. package/dist/commands/update.d.ts.map +1 -1
  21. package/dist/commands/update.js +1 -4
  22. package/dist/commands/update.js.map +1 -1
  23. package/dist/core/agent-adapter.d.ts +81 -0
  24. package/dist/core/agent-adapter.d.ts.map +1 -0
  25. package/dist/core/agent-adapter.js +425 -0
  26. package/dist/core/agent-adapter.js.map +1 -0
  27. package/dist/core/agents/defaults/_INDEX.md +15 -15
  28. package/dist/core/agents/defaults/code-reviewer.md +9 -0
  29. package/dist/core/agents/defaults/compiler.md +12 -3
  30. package/dist/core/agents/defaults/dependency-analyst.md +7 -0
  31. package/dist/core/agents/defaults/doc-sync-agent.md +7 -0
  32. package/dist/core/agents/defaults/impact-analyst.md +7 -0
  33. package/dist/core/agents/defaults/interaction-designer.md +17 -0
  34. package/dist/core/agents/defaults/performance-expert.md +9 -0
  35. package/dist/core/agents/defaults/regression-tester.md +7 -0
  36. package/dist/core/agents/defaults/security-reviewer.md +9 -0
  37. package/dist/core/agents/defaults/test-engineer.md +10 -0
  38. package/dist/core/agents/defaults/test-reviewer.md +10 -0
  39. package/dist/core/lock-manager.d.ts.map +1 -1
  40. package/dist/core/lock-manager.js +2 -0
  41. package/dist/core/lock-manager.js.map +1 -1
  42. package/dist/core/pipeline-engine.d.ts +49 -8
  43. package/dist/core/pipeline-engine.d.ts.map +1 -1
  44. package/dist/core/pipeline-engine.js +221 -34
  45. package/dist/core/pipeline-engine.js.map +1 -1
  46. package/dist/core/prompt-builder.d.ts +4 -0
  47. package/dist/core/prompt-builder.d.ts.map +1 -1
  48. package/dist/core/prompt-builder.js +83 -10
  49. package/dist/core/prompt-builder.js.map +1 -1
  50. package/dist/core/rules/defaults/ANALYSIS_QUALITY.md +73 -0
  51. package/dist/core/rules/defaults/EXECUTION.md +20 -0
  52. package/dist/core/rules/defaults/ITERATION_QUALITY.md +49 -0
  53. package/dist/core/rules/defaults/TASK_SPLIT.md +16 -0
  54. package/dist/core/spec-paths.d.ts.map +1 -1
  55. package/dist/core/spec-paths.js +2 -1
  56. package/dist/core/spec-paths.js.map +1 -1
  57. package/package.json +4 -6
  58. package/templates/api-design-example.md +0 -338
  59. package/templates/ci/github-actions.yml +0 -44
  60. package/templates/dashboard.html +0 -425
  61. package/templates/database-example.md +0 -223
  62. package/templates/deploy-docker/README.md +0 -284
  63. package/templates/deploy-docker/deploy-remote.sh +0 -79
  64. package/templates/deploy-docker/docker-compose.yml +0 -113
  65. package/templates/deploy-docker/frontend.Dockerfile +0 -43
  66. package/templates/deploy-docker/nginx.conf +0 -30
  67. package/templates/deploy-examples.yaml +0 -436
  68. package/templates/deploy-java/Dockerfile +0 -50
  69. package/templates/deploy-java/README.md +0 -212
  70. package/templates/deploy-java/deploy.sh +0 -120
  71. package/templates/deploy-java/spring-boot.service +0 -35
  72. package/templates/html/speccore-ask-explain.html +0 -10
  73. package/templates/html/speccore-ask-guide.html +0 -10
  74. package/templates/html/speccore-ask-match.html +0 -10
  75. package/templates/html/speccore-ask-pipeline.html +0 -1
  76. package/templates/html/speccore-ask-result.html +0 -10
  77. package/templates/html/speccore-demo.html +0 -449
  78. package/templates/html/speccore-dev.html +0 -202
  79. package/templates/html/speccore-help.html +0 -1
  80. package/templates/html/speccore-knowledge-graph.html +0 -656
  81. package/templates/html/speccore-retro-T-001.html +0 -1
  82. package/templates/html/speccore-setup-guide.html +0 -289
  83. package/templates/html/speccore-welcome.html +0 -1
  84. package/templates/security-example.md +0 -226
  85. package/templates/verify-spec-example.yaml +0 -982
@@ -309,6 +309,7 @@ async function iterationSplitCommand(options) {
309
309
  if (hasPipeline) {
310
310
  const { createSplitPipeline } = await Promise.resolve().then(() => __importStar(require('../../core/pipeline-engine')));
311
311
  const { engine } = await createSplitPipeline(iter);
312
+ // v8.3.160+: 默认步骤隔离模式
312
313
  const result = await engine.advance();
313
314
  if (result.isComplete) {
314
315
  logger_1.logger.success('🎉 Split Pipeline 完成!');
@@ -319,14 +320,47 @@ async function iterationSplitCommand(options) {
319
320
  logger_1.logger.info('');
320
321
  logger_1.logger.info(`🔄 Split Pipeline 推进到: ${result.nextStepName || result.nextStepId}`);
321
322
  logger_1.logger.info('');
323
+ // v8.3.160+: 步骤隔离模式输出标记 + 子 Agent 激活
324
+ const nextCmd = `speccore iteration split -I ${iter} --resume --pipeline`;
325
+ const prompt = await (0, prompt_builder_1.buildPrompt)('split', {
326
+ iteration: iter,
327
+ // v8.3.160+: 传递步骤级上下文控制
328
+ contextType: result.contextType,
329
+ contextBudget: result.contextBudget,
330
+ });
331
+ const output = [
332
+ `[SPECCORE_STEP_DONE]`,
333
+ `步骤 "${result.nextStepName || result.nextStepId}" 已完成。`,
334
+ ``,
335
+ `[SPECCORE_NEXT_STEP]`,
336
+ `下一步: ${result.nextStepName || result.nextStepId}`,
337
+ `请在新的对话中执行: ${nextCmd}`,
338
+ ``,
339
+ `[SPECCORE_CONTEXT_SNAPSHOT]`,
340
+ JSON.stringify(result.contextSnapshot || {}),
341
+ ``,
342
+ // v8.3.160+: 子 Agent 激活标记
343
+ ...(result.subagent ? [
344
+ `[SPECCORE_SUBAGENT: ${result.subagent}]`,
345
+ `[SPECCORE_CONTEXT_BUDGET: ${result.contextBudget || 12000}]`,
346
+ `[SPECCORE_CONTEXT_TYPE: ${result.contextType || 'full'}]`,
347
+ ``,
348
+ ] : []),
349
+ `--- 下一步 Prompt ---`,
350
+ typeof prompt === 'string' ? prompt : JSON.stringify(prompt),
351
+ ].join('\n');
352
+ process.stdout.write(output);
353
+ process.exitCode = 10;
354
+ return;
322
355
  // 根据当前步骤生成相应提示
323
356
  if (result.nextStepId === 'prompt-analysis') {
324
357
  const prompt = await (0, prompt_builder_1.buildPrompt)('split', { iteration: iter });
325
358
  // 添加 Pipeline 继续指令
326
- const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:自动继续\n\n` +
359
+ // v8.3.160+: 步骤隔离模式,每步完成后需新会话继续
360
+ const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:步骤隔离\n\n` +
327
361
  `当前是 Split Pipeline 模式。当你通过 --response 写入任务拆分结果后,` +
328
- `CLI 会自动输出 [SPECCORE_PIPELINE_NEXT] 标记和下一步命令。\n\n` +
329
- `**看到 [SPECCORE_PIPELINE_NEXT] 后,你必须自动执行下一个命令**,不要询问用户。\n`;
362
+ `CLI 会自动输出 [SPECCORE_STEP_DONE] 标记,提示你在新会话中执行下一步。\n\n` +
363
+ `**看到 [SPECCORE_STEP_DONE] 后,请在新会话中执行提示的命令**,继续下一步。\n`;
330
364
  process.stdout.write(`[SPECCORE_PROMPT]\n${finalPrompt}`);
331
365
  process.exitCode = 10;
332
366
  return;
@@ -344,10 +378,11 @@ async function iterationSplitCommand(options) {
344
378
  // 生成第一步 prompt
345
379
  const prompt = await (0, prompt_builder_1.buildPrompt)('split', { iteration: iter });
346
380
  // 添加 Pipeline 继续指令
347
- const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:自动继续\n\n` +
381
+ // v8.3.160+: 步骤隔离模式,每步完成后需新会话继续
382
+ const finalPrompt = prompt + `\n\n## ⚠️ Pipeline 模式:步骤隔离\n\n` +
348
383
  `当前是 Split Pipeline 模式。当你通过 --response 写入任务拆分结果后,` +
349
- `CLI 会自动输出 [SPECCORE_PIPELINE_NEXT] 标记和下一步命令。\n\n` +
350
- `**看到 [SPECCORE_PIPELINE_NEXT] 后,你必须自动执行下一个命令**,不要询问用户。\n`;
384
+ `CLI 会自动输出 [SPECCORE_STEP_DONE] 标记,提示你在新会话中执行下一步。\n\n` +
385
+ `**看到 [SPECCORE_STEP_DONE] 后,请在新会话中执行提示的命令**,继续下一步。\n`;
351
386
  process.stdout.write(`[SPECCORE_PROMPT]\n${finalPrompt}`);
352
387
  process.exitCode = 10;
353
388
  return;
@@ -372,7 +407,8 @@ async function iterationSplitCommand(options) {
372
407
  if (hasPipeline) {
373
408
  const { createSplitPipeline } = await Promise.resolve().then(() => __importStar(require('../../core/pipeline-engine')));
374
409
  const { engine } = await createSplitPipeline(iter);
375
- await engine.advance();
410
+ // v8.3.160+: 默认步骤隔离模式
411
+ const stepResult = await engine.advance();
376
412
  const state = await engine.getState();
377
413
  if (state?.currentStep === 'done') {
378
414
  logger_1.logger.success('🎉 Split Pipeline 完成!');
@@ -389,10 +425,38 @@ async function iterationSplitCommand(options) {
389
425
  nextPrompt = `任务拆分已完成,正在创建任务目录结构...\n\n请继续执行后续操作。`;
390
426
  }
391
427
  else {
392
- const promptResult = await (0, prompt_builder_1.buildPrompt)('split', { iteration: iter });
428
+ // v8.3.160+: 传递步骤级上下文控制,确保 Pipeline 配置的 budget/type 生效
429
+ const promptResult = await (0, prompt_builder_1.buildPrompt)('split', {
430
+ iteration: iter,
431
+ contextType: stepResult.contextType,
432
+ contextBudget: stepResult.contextBudget,
433
+ });
393
434
  nextPrompt = typeof promptResult === 'string' ? promptResult : JSON.stringify(promptResult);
394
435
  }
395
- process.stdout.write(`[SPECCORE_PIPELINE_NEXT]\n${nextPrompt}`);
436
+ // v8.3.160+: 步骤隔离模式输出标记 + 子 Agent 激活
437
+ const nextCmd = `speccore iteration split -I ${iter} --resume --pipeline`;
438
+ const output = [
439
+ `[SPECCORE_STEP_DONE]`,
440
+ `步骤 "${state.currentStep}" 已完成。`,
441
+ ``,
442
+ `[SPECCORE_NEXT_STEP]`,
443
+ `下一步: ${state.currentStep}`,
444
+ `请在新的对话中执行: ${nextCmd}`,
445
+ ``,
446
+ `[SPECCORE_CONTEXT_SNAPSHOT]`,
447
+ JSON.stringify(stepResult.contextSnapshot || {}),
448
+ ``,
449
+ // v8.3.160+: 子 Agent 激活标记
450
+ ...(stepResult.subagent ? [
451
+ `[SPECCORE_SUBAGENT: ${stepResult.subagent}]`,
452
+ `[SPECCORE_CONTEXT_BUDGET: ${stepResult.contextBudget || 12000}]`,
453
+ `[SPECCORE_CONTEXT_TYPE: ${stepResult.contextType || 'full'}]`,
454
+ ``,
455
+ ] : []),
456
+ `--- 下一步 Prompt ---`,
457
+ nextPrompt,
458
+ ].join('\n');
459
+ process.stdout.write(output);
396
460
  process.exitCode = 10;
397
461
  }
398
462
  return;