openfeel 1.1.7 → 1.2.1

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 (115) hide show
  1. package/README.en.md +35 -8
  2. package/README.md +29 -4
  3. package/README.zh-CN.md +35 -8
  4. package/bin/openfeel.js +3 -2
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +7 -4
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +29 -4
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/flow.d.ts.map +1 -1
  12. package/dist/commands/flow.js +385 -14
  13. package/dist/commands/flow.js.map +1 -1
  14. package/dist/commands/plan.d.ts.map +1 -1
  15. package/dist/commands/plan.js +19 -6
  16. package/dist/commands/plan.js.map +1 -1
  17. package/dist/commands/req.d.ts +15 -0
  18. package/dist/commands/req.d.ts.map +1 -0
  19. package/dist/commands/req.js +735 -0
  20. package/dist/commands/req.js.map +1 -0
  21. package/dist/commands/stage.d.ts.map +1 -1
  22. package/dist/commands/stage.js +7 -1
  23. package/dist/commands/stage.js.map +1 -1
  24. package/dist/core/config.d.ts +6 -4
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js +6 -5
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/flow-archive/archive-file.d.ts +35 -0
  29. package/dist/core/flow-archive/archive-file.d.ts.map +1 -0
  30. package/dist/core/flow-archive/archive-file.js +3 -0
  31. package/dist/core/flow-archive/archive-file.js.map +1 -0
  32. package/dist/core/flow-archive/archive-health.d.ts +34 -0
  33. package/dist/core/flow-archive/archive-health.d.ts.map +1 -0
  34. package/dist/core/flow-archive/archive-health.js +76 -0
  35. package/dist/core/flow-archive/archive-health.js.map +1 -0
  36. package/dist/core/flow-archive/archive-ops.d.ts +68 -0
  37. package/dist/core/flow-archive/archive-ops.d.ts.map +1 -0
  38. package/dist/core/flow-archive/archive-ops.js +184 -0
  39. package/dist/core/flow-archive/archive-ops.js.map +1 -0
  40. package/dist/core/flow-archive/grouping.d.ts +58 -0
  41. package/dist/core/flow-archive/grouping.d.ts.map +1 -0
  42. package/dist/core/flow-archive/grouping.js +153 -0
  43. package/dist/core/flow-archive/grouping.js.map +1 -0
  44. package/dist/core/flow-manager.d.ts +67 -9
  45. package/dist/core/flow-manager.d.ts.map +1 -1
  46. package/dist/core/flow-manager.js +243 -51
  47. package/dist/core/flow-manager.js.map +1 -1
  48. package/dist/core/i18n-data/en.d.ts +1 -0
  49. package/dist/core/i18n-data/en.d.ts.map +1 -1
  50. package/dist/core/i18n-data/en.js +174 -4
  51. package/dist/core/i18n-data/en.js.map +1 -1
  52. package/dist/core/i18n-data/zh-CN.d.ts +1 -0
  53. package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
  54. package/dist/core/i18n-data/zh-CN.js +175 -4
  55. package/dist/core/i18n-data/zh-CN.js.map +1 -1
  56. package/dist/core/i18n.js +4 -4
  57. package/dist/core/i18n.js.map +1 -1
  58. package/dist/core/managed-region.d.ts +16 -2
  59. package/dist/core/managed-region.d.ts.map +1 -1
  60. package/dist/core/managed-region.js +24 -3
  61. package/dist/core/managed-region.js.map +1 -1
  62. package/dist/core/metrics.d.ts +2 -0
  63. package/dist/core/metrics.d.ts.map +1 -1
  64. package/dist/core/metrics.js +15 -0
  65. package/dist/core/metrics.js.map +1 -1
  66. package/dist/core/model-config.d.ts +1 -1
  67. package/dist/core/model-config.d.ts.map +1 -1
  68. package/dist/core/model-config.js +2 -2
  69. package/dist/core/model-config.js.map +1 -1
  70. package/dist/core/opencode-config.js +1 -1
  71. package/dist/core/opencode-config.js.map +1 -1
  72. package/dist/core/pipeline-schema.d.ts +15 -0
  73. package/dist/core/pipeline-schema.d.ts.map +1 -1
  74. package/dist/core/pipeline-schema.js +17 -0
  75. package/dist/core/pipeline-schema.js.map +1 -1
  76. package/dist/core/plan/path.d.ts +17 -0
  77. package/dist/core/plan/path.d.ts.map +1 -1
  78. package/dist/core/plan/path.js +31 -0
  79. package/dist/core/plan/path.js.map +1 -1
  80. package/dist/core/plan/stage.d.ts +2 -1
  81. package/dist/core/plan/stage.d.ts.map +1 -1
  82. package/dist/core/plan/stage.js +7 -2
  83. package/dist/core/plan/stage.js.map +1 -1
  84. package/dist/core/req/aggregate.d.ts +62 -0
  85. package/dist/core/req/aggregate.d.ts.map +1 -0
  86. package/dist/core/req/aggregate.js +134 -0
  87. package/dist/core/req/aggregate.js.map +1 -0
  88. package/dist/core/req/body-file.d.ts +16 -0
  89. package/dist/core/req/body-file.d.ts.map +1 -0
  90. package/dist/core/req/body-file.js +84 -0
  91. package/dist/core/req/body-file.js.map +1 -0
  92. package/dist/core/req/requirement-ops.d.ts +116 -0
  93. package/dist/core/req/requirement-ops.d.ts.map +1 -0
  94. package/dist/core/req/requirement-ops.js +395 -0
  95. package/dist/core/req/requirement-ops.js.map +1 -0
  96. package/dist/core/req/types.d.ts +46 -0
  97. package/dist/core/req/types.d.ts.map +1 -0
  98. package/dist/core/req/types.js +7 -0
  99. package/dist/core/req/types.js.map +1 -0
  100. package/dist/core/runtime-log.d.ts +18 -0
  101. package/dist/core/runtime-log.d.ts.map +1 -1
  102. package/dist/core/runtime-log.js +72 -0
  103. package/dist/core/runtime-log.js.map +1 -1
  104. package/dist/core/session.d.ts +24 -0
  105. package/dist/core/session.d.ts.map +1 -0
  106. package/dist/core/session.js +107 -0
  107. package/dist/core/session.js.map +1 -0
  108. package/dist/core/setup.js +4 -4
  109. package/dist/core/template-loader.d.ts.map +1 -1
  110. package/dist/core/template-loader.js +3160 -6571
  111. package/dist/core/template-loader.js.map +1 -1
  112. package/dist/core/update.d.ts.map +1 -1
  113. package/dist/core/update.js +770 -26
  114. package/dist/core/update.js.map +1 -1
  115. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"flow-manager.d.ts","sourceRoot":"","sources":["../../src/core/flow-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-manager.d.ts","sourceRoot":"","sources":["../../src/core/flow-manager.ts"],"names":[],"mappings":"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"}
@@ -13,14 +13,16 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync, copyFileSync, readd
13
13
  import { resolve, dirname, basename } from 'node:path';
14
14
  import { execFileSync } from 'node:child_process';
15
15
  import { parse as parseYaml } from 'yaml';
16
- import { PipelineConfigSchema, PipelinePhaseSchema, PIPELINE_PHASES, MetaPhaseSchema, META_PHASES, transitionKeyMatches, FastTransitionsSchema, } from './pipeline-schema.js';
16
+ import { PipelineConfigSchema, PipelinePhaseSchema, PIPELINE_PHASES, MetaPhaseSchema, META_PHASES, transitionKeyMatches, parseTransitionKey, FastTransitionsSchema, TIER_PRUNED_PHASES, } from './pipeline-schema.js';
17
17
  import { PublicLogger, formatDate } from './public-logger.js';
18
18
  import { t, getCliLang } from './i18n.js';
19
- import { findStageStatusPath, findStageDirConflict, parseStageId, normalizeStageId } from './plan/path.js';
19
+ import { findStageStatusPath, findStageDirConflict, parseStageId, normalizeStageId, isArchivedVersionOf } from './plan/path.js';
20
20
  import { atomicWriteFileSync } from './fs/atomic-write.js';
21
21
  import { withFileLock, projectLockPath } from './fs/file-lock.js';
22
- import { DEFAULT_CONFIG, ConfigDefaultsSchema, STAGE_FIELD_BY_CONFIG_KEY } from './config.js';
22
+ import { DEFAULT_CONFIG, ConfigDefaultsSchema, STAGE_FIELD_BY_CONFIG_KEY, WORKFLOW_MODES } from './config.js';
23
23
  import { getGlobalProfilePath } from './global-paths.js';
24
+ import { syncRequirementStatus } from './req/aggregate.js'; // 需求聚合回写入口(stage-83 T2;纯内存)
25
+ import { getSessionId } from './session.js'; // 会话标识(stage-86 T4;core→core 零环)
24
26
  /** flow.json 乐观并发冲突:磁盘 revision 与本次加载时不一致(存在并发写入) */
25
27
  export class FlowConcurrentModificationError extends Error {
26
28
  /** 本次实例加载时的 revision */
@@ -180,6 +182,17 @@ const FAST_TRANSITIONS = {
180
182
  archiving: ['done'],
181
183
  done: [],
182
184
  };
185
+ /**
186
+ * 工作流模式 → 派生的审查档位(**单源常量**;stage-92 D-92-3)。
187
+ * 仅用于「展示 / 提示」(`flow phases` 档位分节行与 `--json.reviewTier`);**不参与推进语义**
188
+ * (`flow advance` 的有效档位 = 显式声明 ?? full,缺省恒零裁剪 ⟹ 既有流程零回归)。
189
+ * general(无流水线)恒全量语义,不特判。
190
+ */
191
+ export const MODE_DERIVED_TIER = {
192
+ full: 'full',
193
+ fast: 'lean',
194
+ general: 'full',
195
+ };
183
196
  // ── 核心类 ──
184
197
  export class FlowManager {
185
198
  projectPath;
@@ -1049,14 +1062,48 @@ export class FlowManager {
1049
1062
  }
1050
1063
  return synced;
1051
1064
  }
1065
+ /**
1066
+ * T4:跨会话恢复判定。从 log 尾部回扫(本次条目尚未写入)取该 stage 最近一条
1067
+ * advance_stage_phase / reset_stage_phase 条目(要求 detail.to === exitedPhase);
1068
+ * 任一侧不可信 / 缺失 → 返回 null(调用方省略 resumed 字段,不臆断;proc: 级不参与跨会话判定)。
1069
+ * @param log 审计日志(本次条目尚未 append)
1070
+ * @param stageKey 阶段键(完整 stageId)
1071
+ * @param exitedPhase 本次转换退出的 phase(= 上一次转换进入的 phase)
1072
+ * @param currentId 本次会话标识(含来源前缀)
1073
+ * @returns true = 异会话恢复;false = 同会话;null = 不可判定(省略字段)
1074
+ */
1075
+ computeResumed(log, stageKey, exitedPhase, currentId) {
1076
+ // 可信判定:仅 env: / project: 前缀参与跨会话判定;proc: → 不可判定
1077
+ if (!(currentId.startsWith('env:') || currentId.startsWith('project:'))) {
1078
+ return null;
1079
+ }
1080
+ for (let k = log.length - 1; k >= 0; k--) {
1081
+ const e = log[k];
1082
+ if (e.action !== 'advance_stage_phase' && e.action !== 'reset_stage_phase') {
1083
+ continue;
1084
+ }
1085
+ const detail = e.detail;
1086
+ if (detail.stageName !== stageKey || detail.to !== exitedPhase) {
1087
+ continue;
1088
+ }
1089
+ const prevId = typeof detail.session_id === 'string' ? detail.session_id : '';
1090
+ // 旧条目无 session_id / 值非法 / 上一侧不可信 → 不可判定
1091
+ if (!(prevId.startsWith('env:') || prevId.startsWith('project:'))) {
1092
+ return null;
1093
+ }
1094
+ return prevId !== currentId; // 同值 → 同会话(false);异值 → 跨会话恢复(true)
1095
+ }
1096
+ return null; // 无历史转换条目 → 不可判定
1097
+ }
1052
1098
  /**
1053
1099
  * 推进指定阶段到目标流水线阶段(新 API)
1054
1100
  * @param stageName 阶段名(如 stage-01)
1055
1101
  * @param phase 目标流水线阶段(PipelinePhase)
1056
1102
  * @param triggeredBy 触发者标识(如 'cli' / 'Feel'),默认 'flow-manager'
1103
+ * @param opts.reviewTier 本次调用的审查档位(**仅显式声明时写审计键** `review_tier`;缺省不写 ⟹ 既有条目逐字不变)
1057
1104
  * @returns 是否触发 done 归档(true = 本次推进将阶段变为 done 且之前非 done,需在 save 后执行归档 commit)
1058
1105
  */
1059
- advanceStagePhase(stageName, phase, triggeredBy) {
1106
+ advanceStagePhase(stageName, phase, triggeredBy, opts) {
1060
1107
  if (!this.data) {
1061
1108
  return false;
1062
1109
  }
@@ -1122,12 +1169,21 @@ export class FlowManager {
1122
1169
  const allDone = Object.keys(this.data.stages).length > 0
1123
1170
  && Object.values(this.data.stages).every((s) => s.phase === 'done');
1124
1171
  this.data.pipeline.phase = (allDone ? 'done' : 'active');
1172
+ // T4:跨会话恢复标注(可选字段;任一侧不可信 / 缺失 → 省略 resumed,不臆断)
1173
+ // 计算在 appendLog 之前 → 回扫天然排除本次条目
1174
+ const sessionId = getSessionId({ projectPath: this.projectPath });
1175
+ const resumed = this.computeResumed(this.data.log, key, fromPhase, sessionId);
1125
1176
  // 追加日志(使用实际触发者名,而非硬编码 'flow-manager')
1177
+ // 审查档位留痕(stage-92 D-92-4):review_tier **仅显式声明时**追加(既有键逐字保留,缺省条目字节级不变)
1126
1178
  this.appendLog({
1127
1179
  time: '',
1128
1180
  agent: actualTrigger,
1129
1181
  action: 'advance_stage_phase',
1130
- detail: { stageName: key, from: fromPhase, to: targetPhase },
1182
+ detail: {
1183
+ stageName: key, from: fromPhase, to: targetPhase, session_id: sessionId,
1184
+ ...(resumed === null ? {} : { resumed }),
1185
+ ...(opts?.reviewTier === undefined ? {} : { review_tier: opts.reviewTier }),
1186
+ },
1131
1187
  });
1132
1188
  // REV-003: advance_stage_phase 改为 endStage 时批量聚合,取消逐条写入
1133
1189
  // this.publicLogger.logPhaseChange({...});
@@ -1142,6 +1198,9 @@ export class FlowManager {
1142
1198
  // 阶段完成时自动结束计时
1143
1199
  if (targetPhase === 'done' && prevStatus !== 'done') {
1144
1200
  this.endStage(key);
1201
+ // 需求聚合回写(T2):仅 done 分支触发(非 done 推进不触发——REV-83-005);
1202
+ // 纯内存,落盘由命令层既有单次 save() 承担(同事务,不新增写盘点);不改控制流与返回值。
1203
+ syncRequirementStatus(this.data, key);
1145
1204
  // 归档 git commit 移出本方法:必须在 flow.json save 之后执行(否则 commit 不含本次 phase 变更)。
1146
1205
  // 返回 true 由命令层在 save 后调用 autoCommitOnDone。
1147
1206
  return true;
@@ -1200,12 +1259,18 @@ export class FlowManager {
1200
1259
  stage.phase = targetPhase;
1201
1260
  stage.status = projectedStatus;
1202
1261
  // 审计日志:reset 为修复而非里程碑推进
1262
+ // T4:跨会话恢复标注(与 advanceStagePhase 同款;计算在 appendLog 之前)
1263
+ const resetSessionId = getSessionId({ projectPath: this.projectPath });
1264
+ const resetResumed = this.computeResumed(this.data.log, key, fromPhase, resetSessionId);
1203
1265
  this.appendLog({
1204
1266
  time: '',
1205
1267
  agent: 'flow-manager',
1206
1268
  action: 'reset_stage_phase',
1207
- detail: { stageName: key, from: fromPhase, to: targetPhase },
1269
+ detail: { stageName: key, from: fromPhase, to: targetPhase, session_id: resetSessionId, ...(resetResumed === null ? {} : { resumed: resetResumed }) },
1208
1270
  });
1271
+ // 需求聚合对称回退(T2):聚合视图重算——聚合 ≠ done ∧ 需求 status === done → 回退 in_progress;
1272
+ // 纯内存;dryRun / no-op 已在 :1585 早退(本点不可达);不新增写盘点。
1273
+ syncRequirementStatus(this.data, key);
1209
1274
  // 仅当 current 指向该阶段时同步 op 指针(其它阶段的 current 不被动)
1210
1275
  const curStage = this.data.pipeline.current.stage;
1211
1276
  const normCur = curStage ? (normalizeStageId(curStage) ?? curStage) : '';
@@ -1497,10 +1562,11 @@ export class FlowManager {
1497
1562
  * 无 '|' 的简单 key 保持单条件原行为(精确相等)。
1498
1563
  * @param fromPhase 当前源 phase
1499
1564
  * @param mode 工作流模式(**必传**;由调用点经 resolveStageWorkflowMode 从 stage 派生——禁止默认 mode)
1565
+ * @param tier 审查档位(可选,缺省 'full' = 零裁剪 ⟹ 既有调用逐字零回归)
1500
1566
  * @returns 去重后的可达目标 phase 列表
1501
1567
  */
1502
- getValidTargets(fromPhase, mode) {
1503
- const transitions = this.resolveTransitionsForMode(mode);
1568
+ getValidTargets(fromPhase, mode, tier = 'full') {
1569
+ const transitions = this.resolveTransitionsForMode(mode, tier);
1504
1570
  const result = new Set();
1505
1571
  for (const [key, targets] of Object.entries(transitions)) {
1506
1572
  if (transitionKeyMatches(key, fromPhase)) {
@@ -1530,8 +1596,9 @@ export class FlowManager {
1530
1596
  * 获取当前阶段的所有可达下一阶段(基于 transitions 表,支持组合条件)
1531
1597
  * 供 flow wizard 交互模式使用
1532
1598
  * @param stageName 可选阶段名,提供时使用该阶段 phase 进行查找;否则使用 current.stage 的 phase
1599
+ * @param tier 审查档位(可选,缺省 'full' = 零裁剪)
1533
1600
  */
1534
- getAvailablePhases(stageName) {
1601
+ getAvailablePhases(stageName, tier = 'full') {
1535
1602
  if (!this.data) {
1536
1603
  return [];
1537
1604
  }
@@ -1542,7 +1609,7 @@ export class FlowManager {
1542
1609
  if (!currentPhase)
1543
1610
  return [];
1544
1611
  const mode = this.resolveStageWorkflowMode(stageName).value;
1545
- return this.getValidTargets(currentPhase, mode);
1612
+ return this.getValidTargets(currentPhase, mode, tier);
1546
1613
  }
1547
1614
  /**
1548
1615
  * 在运行时 transitions 上求 stageName 当前 phase → to 的**唯一**可达路径(B5-1)。
@@ -1550,9 +1617,10 @@ export class FlowManager {
1550
1617
  * 纯只读:不写盘、不改内存。
1551
1618
  * @param stageName 阶段 ID
1552
1619
  * @param to 目标 phase
1620
+ * @param tier 审查档位(可选,缺省 'full' = 零裁剪;显式声明时按裁剪表求路径)
1553
1621
  * @returns 路径与原因(no-path/ambiguous/depth-exceeded 供命令层报错;already-at-target 按 no-op)
1554
1622
  */
1555
- findPhasePath(stageName, to) {
1623
+ findPhasePath(stageName, to, tier = 'full') {
1556
1624
  // REV-005:归一化 stageId(短名 → 全名),与 setStageDeps / plan scheme * 同范式
1557
1625
  // 双键回退:兼容以短名建键的存量 / 测试数据(归一化键不存在时回退原始键)
1558
1626
  const normalized = normalizeStageId(stageName) ?? stageName;
@@ -1578,7 +1646,7 @@ export class FlowManager {
1578
1646
  if (node.path.length >= PHASE_PATH_MAX_DEPTH) {
1579
1647
  continue;
1580
1648
  }
1581
- for (const target of this.getValidTargets(node.phase, mode)) {
1649
+ for (const target of this.getValidTargets(node.phase, mode, tier)) {
1582
1650
  const path = [...node.path, target];
1583
1651
  if (target === to) {
1584
1652
  hits.push(path);
@@ -1615,24 +1683,85 @@ export class FlowManager {
1615
1683
  const phases = this.pipelineConfig?.phases ?? this.getDefaultPipelineConfig().phases;
1616
1684
  return [...phases];
1617
1685
  }
1686
+ /**
1687
+ * ═══ 审查档位裁剪(stage-92 D-92-2 / D-92-3;**唯一调用点** = resolveTransitionsForMode)═══
1688
+ * 纯函数:不改入参(不污染 FAST_TRANSITIONS 常量 / pipelineConfig),恒返回新对象 + 新数组。
1689
+ * 算法:
1690
+ * ① `tier === 'full'` → 深拷贝原样返回(零裁剪 ⟹ 既有调用逐字零回归);
1691
+ * ② 各 key 的 targets 过滤被裁剪相位(目标侧裁剪 = 跳过该审查关);
1692
+ * ③ **边收缩回退**——若某 key 过滤后 targets 为空且原 targets 非空,则并入「被删目标的 targets」
1693
+ * (再过滤被裁剪项与自身)后去重。该回退保证 fast 基表裁 `plan_review` 后 `plan_pending` 非空集
1694
+ * (`['plan_review']` → 收缩 `plan_review` 的 targets → `plan_pending → ['plan_passed']`)。
1695
+ * **裁剪只作用于入边 / 目标侧**:被裁剪相位保留出边(阶段已处于被裁剪关时可向该档位下游推进);
1696
+ * 「**进入**被裁剪关」仍被目标侧过滤裁掉。
1697
+ * 边界(登记):含被裁剪相位的**组合 key**(如 `'scheme_review|x'`)按 ② 过滤 targets(不再整键删除);
1698
+ * 内置 full/fast 表与本仓运行时表均无此类键(唯一组合键 `'review_passed|test_passed'` 不含被裁剪相位)。
1699
+ * @param table 模式基表(由 resolveTransitionsForMode 按既有三分支解析所得)
1700
+ * @param tier 审查档位
1701
+ * @returns 裁剪后的新表
1702
+ */
1703
+ pruneTransitionsByTier(table, tier) {
1704
+ // 全量档:零裁剪(深拷贝返回,防调用方改内存污染基表)
1705
+ if (tier === 'full') {
1706
+ return Object.fromEntries(Object.entries(table).map(([k, v]) => [k, [...v]]));
1707
+ }
1708
+ const pruned = TIER_PRUNED_PHASES[tier];
1709
+ const isPruned = (p) => pruned.includes(p);
1710
+ const result = {};
1711
+ for (const [key, targets] of Object.entries(table)) {
1712
+ const keyConds = parseTransitionKey(key);
1713
+ // ② 目标侧过滤被裁剪相位(裁剪只作用于入边 / 目标侧——被裁剪相位作源键时保留,其出边可推进)
1714
+ let filtered = targets.filter((t) => !isPruned(t));
1715
+ // ③ 边收缩回退:过滤后为空且原 targets 非空 → 并入被删目标的 targets(过滤被裁剪项与自身后去重)
1716
+ if (filtered.length === 0 && targets.length > 0) {
1717
+ const merged = new Set();
1718
+ for (const dropped of targets) {
1719
+ if (!isPruned(dropped)) {
1720
+ continue;
1721
+ }
1722
+ for (const cascaded of table[dropped] ?? []) {
1723
+ if (!isPruned(cascaded) && !keyConds.includes(cascaded)) {
1724
+ merged.add(cascaded);
1725
+ }
1726
+ }
1727
+ }
1728
+ filtered = [...merged];
1729
+ }
1730
+ result[key] = filtered;
1731
+ }
1732
+ return result;
1733
+ }
1618
1734
  /**
1619
1735
  * 按模式解析运行时转移表(唯一取表法则;校验/推进/路径 与 展示 同经本函数 ⇒ 单一信源)。
1620
1736
  * full → 运行时 pipelineConfig.transitions(pipeline.yaml 覆盖线);fast → fast_transitions ?? 内置快线表。
1737
+ * general → 空表(无流水线;模式语义本身,非「缺省回落」)。
1738
+ * 审查档位为**第二参延伸**(stage-92 D-92-3):末尾统一经 pruneTransitionsByTier 裁剪;
1739
+ * 缺省 tier='full' = 零裁剪 ⟹ 与原逻辑等价(唯一取表点不变,禁第二份层序 / 取表)。
1621
1740
  * 说明:pipelineConfig 构造期恒已加载(constructor 无条件调用),`?? 内置` 保留既有访问器回退语义。
1622
1741
  */
1623
- resolveTransitionsForMode(mode) {
1742
+ resolveTransitionsForMode(mode, tier = 'full') {
1743
+ let raw;
1624
1744
  if (mode === 'fast') {
1625
- return this.fastTransitions ?? this.getDefaultPipelineConfig('fast').transitions;
1745
+ raw = this.fastTransitions ?? this.getDefaultPipelineConfig('fast').transitions;
1746
+ }
1747
+ else if (mode === 'general') {
1748
+ // general(无流水线):空表为**模式语义**的忠实表达(D-90-3;与 pipeline.yaml fast_transitions:{} 的「配置层空值回落」路径 / 语义均不同)
1749
+ raw = {};
1750
+ }
1751
+ else {
1752
+ raw = this.pipelineConfig?.transitions ?? this.getDefaultPipelineConfig().transitions;
1626
1753
  }
1627
- return this.pipelineConfig?.transitions ?? this.getDefaultPipelineConfig().transitions;
1754
+ // 档位裁剪统一落此处(唯一取表点的单一裁剪入口;general 空表裁剪后仍空表)
1755
+ return this.pruneTransitionsByTier(raw, tier);
1628
1756
  }
1629
1757
  /**
1630
1758
  * 获取运行时生效的 phase 转移表(key 可含 '|' 组合条件)。
1631
1759
  * 缺省/解析失败时回退内置默认配置。返回浅拷贝。
1632
1760
  * **无参 = full**(零回归既有消费点);fast 供 stage-75 `flow phases` 模式分节消费。
1761
+ * @param tier 审查档位(可选,缺省 'full' = 零裁剪)
1633
1762
  */
1634
- getPipelineTransitions(mode = 'full') {
1635
- const transitions = this.resolveTransitionsForMode(mode);
1763
+ getPipelineTransitions(mode = 'full', tier = 'full') {
1764
+ const transitions = this.resolveTransitionsForMode(mode, tier);
1636
1765
  return Object.fromEntries(Object.entries(transitions).map(([k, v]) => [k, [...v]]));
1637
1766
  }
1638
1767
  /**
@@ -1802,7 +1931,8 @@ export class FlowManager {
1802
1931
  // 匹配执行模式、自动推进、工作流模式
1803
1932
  const execMatch = content.match(/\*\*执行模式\*\*[::]\s*(manual|auto)/);
1804
1933
  const autoMatch = content.match(/\*\*自动推进\*\*[::]\s*(disabled|enabled)/);
1805
- const modeMatch = content.match(/\*\*工作流模式\*\*[::]\s*(full|fast)/);
1934
+ // 值域自 WORKFLOW_MODES 派生(单源;stage-90——漏改本行即第 1 层丢弃、静默回落 config)
1935
+ const modeMatch = content.match(new RegExp(`\\*\\*工作流模式\\*\\*[::]\\s*(${WORKFLOW_MODES.join('|')})`));
1806
1936
  if (execMatch) {
1807
1937
  statusOverrides['execution_mode'] = execMatch[1];
1808
1938
  }
@@ -1832,6 +1962,11 @@ export class FlowManager {
1832
1962
  const cascade = this.buildCascadeConfig();
1833
1963
  const result = {};
1834
1964
  for (const key of EFFECTIVE_CONFIG_KEYS) {
1965
+ if (key === 'workflow_mode') {
1966
+ // Q4 定稿(D-90-6):委托单点层级函数(无参 = 当前阶段域,与 config effective 语义域一致);禁第二份层序判定
1967
+ result[key] = this.resolveStageWorkflowMode();
1968
+ continue;
1969
+ }
1835
1970
  if (cascade.statusOverrides[key] !== undefined) {
1836
1971
  result[key] = { value: cascade.statusOverrides[key], source: 'status.md' };
1837
1972
  }
@@ -1851,11 +1986,11 @@ export class FlowManager {
1851
1986
  /**
1852
1987
  * 解析指定阶段的工作流模式(裁定 E:「stage → mode」表选择解析入口;stage-75 `flow mode` 契约)。
1853
1988
  * 带 stage 形参独立解析(REV-74-001):该阶段 status.md(findStatusPath(stageId))
1854
- * > config.yaml defaults > profile.yaml(**有意不承载**,实际不产出)> builtin(DEFAULT_CONFIG.workflow_mode = fast)。
1989
+ * > 需求级(关联需求携带的 workflow_mode)> config.yaml defaults > profile.yaml(**有意不承载**,实际不产出)> builtin(DEFAULT_CONFIG.workflow_mode = fast)。
1855
1990
  * 语义边界:`config effective` / `flow status --verbose` = **当前阶段域**(无参);
1856
1991
  * 本方法显式 stageId = **任意阶段域**(flow mode --stage / 表选择)。
1857
1992
  * @param stageId 目标阶段 ID(缺省 = pipeline.current.stage;无该阶段 status.md → 自然回落下一层)
1858
- * @returns { value, source },source ∈ status.md | config.yaml | profile.yaml | builtin
1993
+ * @returns { value, source },source ∈ status.md | requirement | config.yaml | profile.yaml | builtin
1859
1994
  */
1860
1995
  resolveStageWorkflowMode(stageId) {
1861
1996
  const cascade = this.buildCascadeConfig(stageId);
@@ -1863,6 +1998,18 @@ export class FlowManager {
1863
1998
  if (cascade.statusOverrides[key] !== undefined) {
1864
1999
  return { value: cascade.statusOverrides[key], source: 'status.md' };
1865
2000
  }
2001
+ // ── 需求级层(stage-90 T2.2):阶段关联需求携带的模式属性 ──
2002
+ // 读侧宽容:缺失 / 悬空 / 非法 → 自然回落下一层(零报错);阶段定位与 status.md 层同域(归一 + 键回退)
2003
+ const reqTarget = stageId ?? this.data?.pipeline.current.stage;
2004
+ const reqStageRec = reqTarget ? this.data?.stages?.[normalizeStageId(reqTarget) ?? reqTarget] : undefined;
2005
+ const reqId = reqStageRec?.requirement_id ?? null;
2006
+ if (reqId) {
2007
+ const reqRec = (Array.isArray(this.data?.requirements) ? this.data.requirements : []).find((r) => r?.id === reqId);
2008
+ const reqMode = reqRec?.workflow_mode;
2009
+ if (reqMode !== undefined && WORKFLOW_MODES.includes(reqMode)) {
2010
+ return { value: reqMode, source: 'requirement' };
2011
+ }
2012
+ }
1866
2013
  if (cascade.configDefaults[key] !== undefined) {
1867
2014
  return { value: cascade.configDefaults[key], source: 'config.yaml' };
1868
2015
  }
@@ -1998,6 +2145,9 @@ export class FlowManager {
1998
2145
  const stageIdOfOp = this.parseOpId(opId)?.stageId;
1999
2146
  if (result === 'pass') {
2000
2147
  op.state = 'done';
2148
+ // T3:op 级埋点(唯一写入点 = recordAttempt;pass 同时进入 done 终态)
2149
+ op.attempted_at = new Date().toISOString();
2150
+ op.completed_at = op.attempted_at;
2001
2151
  if (stageIdOfOp) {
2002
2152
  this.syncCurrentOp(stageIdOfOp);
2003
2153
  }
@@ -2019,6 +2169,8 @@ export class FlowManager {
2019
2169
  // result === 'fail'
2020
2170
  if (op.attempts < op.max_attempts) {
2021
2171
  op.state = 'pending'; // 回到 pending 等待重试
2172
+ // T3:仅记 attempted_at(未进入终态 → completed_at 缺省)
2173
+ op.attempted_at = new Date().toISOString();
2022
2174
  if (stageIdOfOp) {
2023
2175
  this.syncCurrentOp(stageIdOfOp);
2024
2176
  }
@@ -2039,6 +2191,9 @@ export class FlowManager {
2039
2191
  }
2040
2192
  // 重试耗尽
2041
2193
  op.state = 'failed';
2194
+ // T3:重试耗尽 = 进入 failed 终态 → 双写
2195
+ op.attempted_at = new Date().toISOString();
2196
+ op.completed_at = op.attempted_at;
2042
2197
  this.data.pipeline.retry += 1;
2043
2198
  this.appendLog({
2044
2199
  time: '',
@@ -3049,11 +3204,33 @@ export class FlowManager {
3049
3204
  const targets = options?.onlyStages;
3050
3205
  // 冗余写入标记:仅实际写入(updated / inserted)时置位,循环后 save 一次(D6)
3051
3206
  let flowJsonDirty = false;
3052
- for (const stageId of Object.keys(this.data.stages)) {
3053
- // --stage 作用域限定:归一化比较兼容存量短名键(D5;未注册 id 自然落 skipped-no-status)
3054
- if (targets && !targets.includes(normalizeStageId(stageId) ?? stageId)) {
3055
- continue;
3207
+ // 遍历集构造(REV-80-009):仅 targets 时 = 命中 targets 的活跃键(既有 filter 语义逐字保留,顺序 = stages 键序)
3208
+ // + 未被任何活跃键覆盖的 off-set 目标(已归档/未注册——status.md 仍照常同步,flow.json 冗余跳过)
3209
+ // 注(REV-80-015):纯 off-set 运行不置 flowJsonDirty → 不 save;appendLog(status.md 写审计)仅内存态、无 flow.json 写入
3210
+ const loopIds = [];
3211
+ if (targets) {
3212
+ const covered = new Set();
3213
+ for (const stageId of Object.keys(this.data.stages)) {
3214
+ const norm = normalizeStageId(stageId) ?? stageId;
3215
+ if (!targets.includes(norm)) {
3216
+ continue;
3217
+ }
3218
+ loopIds.push(stageId);
3219
+ covered.add(norm);
3220
+ }
3221
+ // off-set 目标(未命中任何活跃键):仅 status.md 同步,冗余写入跳过
3222
+ for (const t of targets) {
3223
+ if (!covered.has(t)) {
3224
+ loopIds.push(t);
3225
+ }
3056
3226
  }
3227
+ }
3228
+ else {
3229
+ loopIds.push(...Object.keys(this.data.stages));
3230
+ }
3231
+ for (const stageId of loopIds) {
3232
+ // 注册守卫(REV-80-009):off-set 目标无 data.stages 条目 → 冗余写入三点须跳过(防越界解引用)
3233
+ const registered = Object.prototype.hasOwnProperty.call(this.data.stages, stageId);
3057
3234
  // 错误路径:该 config 键无阶段级字段 → 跳过并报告
3058
3235
  if (!field) {
3059
3236
  out.push({ stage: stageId, result: 'skipped-no-field' });
@@ -3074,8 +3251,11 @@ export class FlowManager {
3074
3251
  if (r === 'inserted') {
3075
3252
  this.appendLog({ time: '', agent: 'cli', action: 'config_sync_stage', detail: { stage: stageId, field, value } });
3076
3253
  out.push({ stage: stageId, result: 'inserted' });
3077
- this.data.stages[stageId].workflow_mode = value;
3078
- flowJsonDirty = true;
3254
+ // 冗余写入点①:注册守卫(REV-80-009)——off-set 目标不新建冗余键、不置 dirty
3255
+ if (registered) {
3256
+ this.data.stages[stageId].workflow_mode = value;
3257
+ flowJsonDirty = true;
3258
+ }
3079
3259
  continue;
3080
3260
  }
3081
3261
  if (r === 'exists') {
@@ -3083,8 +3263,11 @@ export class FlowManager {
3083
3263
  this.writeStatusField(statusPath, field, value);
3084
3264
  this.appendLog({ time: '', agent: 'cli', action: 'config_sync_stage', detail: { stage: stageId, field, value } });
3085
3265
  out.push({ stage: stageId, result: 'updated' });
3086
- this.data.stages[stageId].workflow_mode = value;
3087
- flowJsonDirty = true;
3266
+ // 冗余写入点②:注册守卫(REV-80-009)
3267
+ if (registered) {
3268
+ this.data.stages[stageId].workflow_mode = value;
3269
+ flowJsonDirty = true;
3270
+ }
3088
3271
  continue;
3089
3272
  }
3090
3273
  // 锚点链均缺失 → 跳过类(不写盘、不审计)
@@ -3102,8 +3285,8 @@ export class FlowManager {
3102
3285
  this.writeStatusField(statusPath, field, value);
3103
3286
  this.appendLog({ time: '', agent: 'cli', action: 'config_sync_stage', detail: { stage: stageId, field, value } });
3104
3287
  out.push({ stage: stageId, result: 'updated' });
3105
- // 冗余写入点③:仅实际写入时同步(noop / skipped 不写)
3106
- if (configKey === 'workflow_mode') {
3288
+ // 冗余写入点③:仅实际写入时同步(noop / skipped 不写);注册守卫(REV-80-009)——off-set 目标跳过
3289
+ if (configKey === 'workflow_mode' && registered) {
3107
3290
  this.data.stages[stageId].workflow_mode = value;
3108
3291
  flowJsonDirty = true;
3109
3292
  }
@@ -3129,9 +3312,15 @@ export class FlowManager {
3129
3312
  for (const [stageId, stage] of Object.entries(this.data.stages)) {
3130
3313
  const deps = Array.isArray(stage.deps) ? stage.deps : [];
3131
3314
  for (const d of deps) {
3132
- if (!known.has(normalizeStageId(d) ?? d)) {
3133
- dangling.push(`${stageId} → ${d}`);
3315
+ if (known.has(normalizeStageId(d) ?? d)) {
3316
+ continue; // 已注册优先
3134
3317
  }
3318
+ // 读侧与写侧同口径(REV-80-002):显式版本前缀 ∧ 已归档 → 视为已满足,不报悬空;
3319
+ // 恒传原始 d(短名不参与归档判定——REV-80-001)
3320
+ if (isArchivedVersionOf(d, this.data.meta?.archived_versions)) {
3321
+ continue;
3322
+ }
3323
+ dangling.push(`${stageId} → ${d}`);
3135
3324
  }
3136
3325
  }
3137
3326
  if (dangling.length > 0) {
@@ -3583,6 +3772,7 @@ export class FlowManager {
3583
3772
  * 当 pipeline.yaml 不存在或解析失败时使用。
3584
3773
  * @param mode 工作流模式;**无参 = full**(内置 full 表逐字等于历史现状,零回归既有消费点);
3585
3774
  * 'fast' 返回快线表(FAST_TRANSITIONS 常量引用)。phases / checkpoint_mapping / phase_corrections 两模式共用。
3775
+ * 'general' 返回空转移表(无流水线;phases 仍 15 项)。
3586
3776
  */
3587
3777
  getDefaultPipelineConfig(mode = 'full') {
3588
3778
  return {
@@ -3595,25 +3785,27 @@ export class FlowManager {
3595
3785
  ],
3596
3786
  transitions: mode === 'fast'
3597
3787
  ? FAST_TRANSITIONS
3598
- : {
3599
- plan_pending: ['plan_review', 'plan_passed'],
3600
- plan_review: ['plan_passed', 'plan_pending'],
3601
- plan_passed: ['scheme_pending'],
3602
- scheme_pending: ['scheme_review', 'scheme_passed'],
3603
- scheme_review: ['scheme_passed', 'scheme_pending'],
3604
- scheme_passed: ['exec_running'],
3605
- exec_running: ['review_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3606
- review_pending: ['review_failed', 'review_passed'],
3607
- review_failed: ['review_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3608
- review_passed: ['test_pending'],
3609
- test_pending: ['test_failed', 'test_passed'],
3610
- test_failed: ['test_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3611
- test_passed: ['archiving'],
3612
- // 组合条件示例:审查通过 或 测试通过 任一即可推进到 archiving(多 Agent 并行场景,任一完成即推进)
3613
- 'review_passed|test_passed': ['archiving'],
3614
- archiving: ['done'],
3615
- done: [],
3616
- },
3788
+ : mode === 'general'
3789
+ ? {} // general:无流水线(空表;phases 仍 15 项,不新增 phase)
3790
+ : {
3791
+ plan_pending: ['plan_review', 'plan_passed'],
3792
+ plan_review: ['plan_passed', 'plan_pending'],
3793
+ plan_passed: ['scheme_pending'],
3794
+ scheme_pending: ['scheme_review', 'scheme_passed'],
3795
+ scheme_review: ['scheme_passed', 'scheme_pending'],
3796
+ scheme_passed: ['exec_running'],
3797
+ exec_running: ['review_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3798
+ review_pending: ['review_failed', 'review_passed'],
3799
+ review_failed: ['review_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3800
+ review_passed: ['test_pending'],
3801
+ test_pending: ['test_failed', 'test_passed'],
3802
+ test_failed: ['test_pending', 'scheme_pending'], // BUG 修复:增加 scheme_pending
3803
+ test_passed: ['archiving'],
3804
+ // 组合条件示例:审查通过 或 测试通过 任一即可推进到 archiving(多 Agent 并行场景,任一完成即推进)
3805
+ 'review_passed|test_passed': ['archiving'],
3806
+ archiving: ['done'],
3807
+ done: [],
3808
+ },
3617
3809
  checkpoint_mapping: {
3618
3810
  plan: 'plan',
3619
3811
  scheme: 'scheme',