@xulthekl/team-flow 0.43.1 → 0.45.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 (51) hide show
  1. package/.claude/always/phase-guard.md +1 -1
  2. package/.claude-plugin/marketplace.json +3 -3
  3. package/.claude-plugin/plugin.json +2 -2
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.cursor-plugin/marketplace.json +2 -2
  6. package/.cursor-plugin/plugin.json +2 -2
  7. package/.github/plugin/marketplace.json +3 -3
  8. package/AGENTS.md +13 -6
  9. package/CHANGELOG.md +31 -0
  10. package/GEMINI.md +1 -1
  11. package/INSTALL.md +26 -24
  12. package/README.md +6 -5
  13. package/agents/business-analysis.md +53 -0
  14. package/docs/README_en.md +1 -1
  15. package/docs/examples/add-dark-mode/specs/ui-theme/spec.md +15 -17
  16. package/docs/examples/refactor-auth-boundary/specs/auth-boundary/spec.md +15 -27
  17. package/docs/solutions/INDEX.md +2 -0
  18. package/docs/solutions/cross-phase/2026-08-17-no-summary.md +17 -0
  19. package/docs/solutions/cross-phase/2026-08-18-no-summary.md +17 -0
  20. package/docs/usage-guide.md +619 -0
  21. package/gemini-extension.json +2 -2
  22. package/hooks/session-start +2 -2
  23. package/llms.txt +1 -1
  24. package/package.json +2 -2
  25. package/plugin.json +2 -2
  26. package/scripts/guard/checks/delegation-status.mjs +56 -0
  27. package/scripts/guard/checks/test-gate-exemptions.mjs +13 -0
  28. package/scripts/guard/checks/test-matrix-complete.mjs +6 -0
  29. package/scripts/guard/checks/test-matrix-ready.mjs +6 -0
  30. package/scripts/guard/checks/tests-passing.mjs +6 -1
  31. package/scripts/guard/guard.mjs +3 -1
  32. package/scripts/lib/cmd-state.mjs +3 -0
  33. package/scripts/lib/config-loader.mjs +11 -0
  34. package/scripts/lib/conventions-generator.mjs +91 -0
  35. package/scripts/lib/execution-plan.mjs +2 -1
  36. package/scripts/lib/execution-recommendation.mjs +20 -3
  37. package/scripts/lib/glaf4-delegation.mjs +488 -0
  38. package/scripts/lib/glaf4-evidence-export.mjs +267 -0
  39. package/scripts/lib/state-loader.mjs +13 -0
  40. package/scripts/lib/test-matrix-export.mjs +151 -8
  41. package/scripts/team-flow.mjs +6 -0
  42. package/skills/business-analysis/SKILL.md +80 -0
  43. package/skills/business-analysis/references/interaction-rules.md +86 -0
  44. package/skills/business-analysis/references/output-schema.md +88 -0
  45. package/skills/business-analysis/references/qa-checklist.md +31 -0
  46. package/skills/business-analysis/references/version-resolution.md +41 -0
  47. package/skills/contract-builder/SKILL.md +2 -2
  48. package/skills/contract-builder/references/glaf4-delegation.md +130 -0
  49. package/skills/workflow-start/SKILL.md +1 -1
  50. package/skills/workflow-start/references/routing-rules.md +12 -12
  51. package/templates/execution-contract.md +13 -1
@@ -0,0 +1,86 @@
1
+ # 业务分析多轮交互规则
2
+
3
+ 本规则约束业务分析 skill 与用户的对话方式、待办处理、确认机制和断点恢复。
4
+
5
+ ## 核心交互原则
6
+
7
+ ### 一次只问一个问题
8
+
9
+ - 每轮只向用户提出 **1 个** 清晰问题
10
+ - 等待用户回答后再决定下一个问题
11
+ - 禁止一次抛出 2 个及以上问题
12
+
13
+ ### 优先选择题
14
+
15
+ - 当答案有限时,给出 2–3 个选项并推荐其一
16
+ - 选项后简述每个选项的 trade-off
17
+ - 用户可自由选择或给出新答案
18
+
19
+ ### 开放题仅用于真正开放的场景
20
+
21
+ - 以下情况使用开放题:
22
+ - 用户首次输入极短,需要补充背景
23
+ - 询问 Acceptance 的具体阈值
24
+ - 确认业务角色名称
25
+
26
+ ## 待办(TODO)处理规则
27
+
28
+ ### 何时记录 TODO
29
+
30
+ - 用户明确表示 "不知道"、"需要确认"、"后续补充"
31
+ - 问题虽然重要,但当前无法获得可靠答案
32
+ - 继续追问会影响对话收敛效率
33
+
34
+ ### 如何记录 TODO
35
+
36
+ 1. 在 `## Open Questions / TODOs` 段落新增一行:
37
+ - `TODO-xxx`
38
+ - 问题原文
39
+ - 记录日期
40
+ - 状态 `pending`
41
+ - 关联的 `REQ-xxx` / `SC-xxx`(如有)
42
+ 2. 将相关 REQ/SC 的状态保持为 🔵 pending
43
+ 3. 向用户复述已记录的 TODO,确认无误后继续
44
+
45
+ ### TODO 后续回填
46
+
47
+ - 用户补充答案后,将 TODO 状态改为 `answered`
48
+ - 把答案回填到对应 REQ/SC 的缺失维度
49
+ - 重新运行 QA 检查
50
+
51
+ ## 确认机制
52
+
53
+ ### 增量确认(默认)
54
+
55
+ - 每轮提取的结构化内容先以 🔵 pending 写入 `business-analysis.md`
56
+ - 最终确认时统一把所有 🔵 翻转为 ✅ confirmed
57
+ - 最终确认前展示完整文档预览,让用户选择 **Confirm / Adjust / Abort**
58
+
59
+ ### 最终确认内容
60
+
61
+ 确认前必须展示:
62
+ - 当前 Requirements List 完整表格
63
+ - 当前 Scenario List 完整表格
64
+ - Open Questions / TODOs 列表
65
+ - 本轮回新增/修改的摘要
66
+
67
+ ### 用户选择
68
+
69
+ - **Confirm**:写入文件,pending → confirmed
70
+ - **Adjust**:指出需要调整的条目,返回对话循环
71
+ - **Abort**:保持当前 pending 状态,不翻转 confirmed,向用户说明已保存的 pending 内容
72
+
73
+ ## 终止条件
74
+
75
+ 正常终止需满足:
76
+ - QA 所有 Error 检查通过,或
77
+ - 用户明确说 "生成文档" / "确认输出"
78
+
79
+ 安全兜底:
80
+ - 单轮对话最多 10 个问题;达到上限时强制进入最终确认
81
+
82
+ ## 断点恢复
83
+
84
+ - `business-analysis.md` 本身就是断点载体
85
+ - 恢复时先读取现有文件,把 ✅ confirmed 条目作为基线,🔵 pending 条目作为待确认内容
86
+ - 向用户展示当前进度并询问 "继续完善 / 新建版本 / 覆盖"
@@ -0,0 +1,88 @@
1
+ # business-analysis.md 输出格式
2
+
3
+ 本文件定义 `requirement/vN/business-analysis.md` 的精确格式。业务分析 skill 只能输出此格式,不得写入 `ledger.md`、PRD、流程或架构等下游制品。
4
+
5
+ ## 文件定位
6
+
7
+ - 路径:`requirement/vN/business-analysis.md`
8
+ - 作用:承接对话沉淀,为 PRD 提供需求与场景数据
9
+ - 不直接写入 `requirement/ledger.md`;版本归档由 orchestrator 统一处理
10
+
11
+ ## Frontmatter
12
+
13
+ ```yaml
14
+ ---
15
+ version: vN
16
+ status: draft | confirmed
17
+ last_updated: YYYY-MM-DD
18
+ source: business-analysis skill
19
+ ---
20
+ ```
21
+
22
+ ## 必须包含的两大板块
23
+
24
+ 1. **需求列表(Requirements List)**
25
+ 2. **业务场景列表(Scenario List)**
26
+
27
+ 可选追加板块:
28
+
29
+ 3. **Open Questions / TODOs** —— 仅用于记录用户暂时无法回答的问题
30
+
31
+ ## 需求列表格式
32
+
33
+ 每个需求一行,字段如下:
34
+
35
+ | 字段 | 要求 |
36
+ |------|------|
37
+ | ID | `REQ-xxx`,版本内顺序编号 |
38
+ | Description | 一句话意图,用 SHALL/MUST 表达 |
39
+ | Related Scenarios | `SC-xxx` 列表,逗号分隔 |
40
+ | Status | 🔵 pending / ✅ confirmed |
41
+ | Change History | `[vN.M YYYY-MM-DD create/modify 摘要]` |
42
+
43
+ ## 业务场景格式
44
+
45
+ 每个场景一行,字段如下:
46
+
47
+ | 字段 | 要求 |
48
+ |------|------|
49
+ | ID | `SC-xxx` |
50
+ | Role | 具体角色,禁止泛化 "user" |
51
+ | Goal | 角色目标 |
52
+ | Trigger | 触发事件/条件 |
53
+ | Precondition | 前置条件 |
54
+ | Constraint | 规则/限制/策略 |
55
+ | Acceptance | 可测试成功条件,必须含具体阈值/字段/结果 |
56
+ | Related Requirements | `REQ-xxx` 列表 |
57
+ | Status | 🔵 pending / ✅ confirmed |
58
+ | Change History | `[vN.M YYYY-MM-DD create/modify 摘要]` |
59
+
60
+ ## Open Questions / TODOs 格式
61
+
62
+ | 字段 | 要求 |
63
+ |------|------|
64
+ | ID | `TODO-xxx` |
65
+ | Question | 未能回答的问题原文 |
66
+ | Recorded At | YYYY-MM-DD |
67
+ | Status | pending / answered / dropped |
68
+ | Related REQ/SC | 可选 |
69
+
70
+ ## 状态管理
71
+
72
+ - 仅两种状态:🔵 pending、✅ confirmed
73
+ - 状态转换只能经由用户阻塞确认
74
+ - 确认前必须先通过 QA 检查
75
+
76
+ ## 与 PRD 的映射
77
+
78
+ | PRD 章节 | 来源内容 |
79
+ |---------|---------|
80
+ | §7 D7.5_系统功能清单 | 需求列表 + 场景关联(REQ / SC) |
81
+ | §8 D7.6_系统功能处理说明书 | 按场景分组的功能模块 |
82
+
83
+ ## 禁止事项
84
+
85
+ - 禁止在 `business-analysis.md` 中直接写入 `ledger.md`
86
+ - 禁止用泛化角色如 "user" 替代具体业务角色
87
+ - 禁止 Acceptance 写成不可测试的模糊描述
88
+ - 禁止写入业务流程详情(L1-L4、Mermaid、活动表等)
@@ -0,0 +1,31 @@
1
+ # 业务分析 QA 检查清单
2
+
3
+ 业务分析 skill 在最终确认前必须执行以下 QA 检查。所有 Error 级别项必须全部通过,否则不得将条目标记为 ✅ confirmed。
4
+
5
+ ## Error 级别检查
6
+
7
+ - [ ] **C1 角色覆盖**:用户输入中提到的所有具体角色都有对应的场景(SC-xxx)覆盖
8
+ - [ ] **C2 六维度齐全**:每个场景都填满 Role / Goal / Trigger / Precondition / Constraint / Acceptance
9
+ - [ ] **C3 REQ 引用存在**:场景中引用的 `REQ-xxx` 必须出现在需求列表中
10
+ - [ ] **C4 对话证据可追溯**:每个场景都能在对话记录或输入中找到证据,禁止编造
11
+ - [ ] **C5 Acceptance 可测试**:验收标准必须具体、可验证,含明确阈值/字段/结果
12
+
13
+ ## Warning 级别检查
14
+
15
+ - [ ] **W1 角色具体化**:不存在 "user"、"管理员" 等泛化角色,除非已明确定义为业务角色
16
+ - [ ] **W2 需求表述**:需求描述使用 SHALL/MUST,避免 "should"、"可以" 等弱约束
17
+ - [ ] **W3 变更历史**:新增或修改的条目都含变更历史
18
+
19
+ ## QA 不通过时的处理
20
+
21
+ 1. 定位导致失败的条目和维度
22
+ 2. 向用户提出**一个**针对性的澄清问题
23
+ 3. 根据回答更新文档
24
+ 4. 重新运行 QA 检查
25
+ 5. 最多允许 3 轮内部自修正;仍无法通过则记录 TODO 并保持 pending
26
+
27
+ ## 待办(TODO)的 QA 规则
28
+
29
+ - TODO 问题可以暂时不阻塞其他已确认条目的确认
30
+ - 与 TODO 相关的 REQ/SC 必须保持 🔵 pending 状态
31
+ - 用户后续补充答案后,应更新 TODO 状态为 answered 并回填到对应条目
@@ -0,0 +1,41 @@
1
+ # 业务分析版本解析规则
2
+
3
+ 本规则定义业务分析 skill 如何确定目标版本 `vN`。
4
+
5
+ ## 解析顺序
6
+
7
+ 按以下优先级依次解析:
8
+
9
+ 1. **显式参数**:用户在调用 skill 时传入的版本,如 `business-analysis v2`
10
+ 2. **运行时配置**:`tf runtime config --get active.requirement`(若返回有效值)
11
+ 3. **目录扫描**:读取 `requirement/` 下已有的 `vN` 目录,取最大 N
12
+ 4. **默认回退**:以上皆无时使用 `v1`
13
+
14
+ ## 目录扫描规则
15
+
16
+ - 只识别 `requirement/vN/` 形式目录,其中 N 为正整数
17
+ - 忽略非版本目录(如 `archived/`、`draft/`)
18
+ - 若存在 `v1`、`v2`、`v3`,则取 `v3`
19
+
20
+ ## 模式判断
21
+
22
+ 解析出版本后,判断当前是 Create 还是 Update 模式:
23
+
24
+ | 条件 | 模式 | 行为 |
25
+ |---|---|---|
26
+ | `requirement/vN/business-analysis.md` 不存在 | Create | 新建文件 |
27
+ | 文件已存在 | Update | 读取现有条目,追加或修订 |
28
+
29
+ ## 已存在文件的处理
30
+
31
+ 检测到文件已存在时,必须向用户询问以下三者之一:
32
+
33
+ - **继续完善**:在当前版本基础上追加/修改条目
34
+ - **新建版本**:创建 `v(N+1)/business-analysis.md`,旧版本保持 archived
35
+ - **覆盖**:清空当前版本重新生成(不推荐,需用户明确确认)
36
+
37
+ ## 版本号输出
38
+
39
+ - 最终输出的 `business-analysis.md` frontmatter 中必须包含 `version: vN`
40
+ - Change History 中的版本号采用 `vN.M` 形式,其中 M 为本次编辑的次要版本(同一 vN 内递增)
41
+ - 首次创建使用 `vN.1`,后续补充依次递增
@@ -118,9 +118,9 @@ hotfix/tweak workflow 不生成 test-matrix.md(guard 豁免);full workflow
118
118
  tf state set <change-dir> test_matrix_skipped true && tf state set <change-dir> test_matrix_skip_reason "<一句话说明>"
119
119
  ```
120
120
 
121
- ### GLAF4 Java 路由
121
+ ### GLAF4 Java 路由(v2.1 §6 实施委托交接)
122
122
 
123
- 当项目技术栈为 GLAF4 Java(Spring Boot / JUnit 5 / Mockito)时,提示用户是否调用 `glaf4-test:glaf4-tests` 做精细矩阵设计。用户同意后:`glaf4-tests-design` 生成 `test-matrix.json` `glaf4-tests-validate` 校验 `tf test-matrix-export <test-matrix.json> <change-dir>/test-matrix.md` 转换为 team-flow 格式。完整 7 步协议见 workflow-start `references/routing-rules.md`「Route to glaf4-tests」。
123
+ 当项目技术栈为 GLAF4 Java(pom.xml/build.gradle + Spring Boot/JUnit5/Mockito)时,运行时探测 glaf4-dev 插件(`detectGlaf4Delegation`)。若 `is_glaf4_java && glaf4_dev_available && delegation_mode !== 'off'`,产出 `## GLAF4 Delegation` 段(mode + write_set_boundary + 权限位),作为**实施委托交接**——GLAF4 change 的生产+测试整体委托 glaf4-dev 七模式流,build-executor 退为兜底。完整协议见 `references/glaf4-delegation.md`(§6.1-§6.7)。矩阵设计委托(glaf4-test)已统一到 glaf4-dev(v2.1 §1.3)。**GLAF4 委托 change 例外**:上方 Hotfix/Tweak 的显式 skip 豁免不适用——委托路径下 test-matrix 是审计基线,`test_matrix_skipped` 被委托协议禁止(唯一例外 TEST_BOOTSTRAP 零测试,v2.1 §6.3 skip 禁令)。
124
124
 
125
125
  ## Approval Model (DP-3)
126
126
 
@@ -0,0 +1,130 @@
1
+ # GLAF4 Delegation 段产出协议(v2.1 §6.1/§6.2)
2
+
3
+ > 设计溯源(工作区开发期文档,非运行时加载路径):`docs/plan/glaf4-dev-integration-design.md` v2.1(glaf4-dev 集成增强方案,位于 team-flow-workspace 工作区根)。
4
+ > 职责:contract-builder 在产出 execution-contract.md 时,对 GLAF4 Java change 追加 `## GLAF4 Delegation` 段,
5
+ > 作为**实施委托交接**(非矩阵设计委托)。经 DP-4 批准后生效。
6
+
7
+ ## 1. 运行时探测(v2.1 §4 接口①)
8
+
9
+ contract-builder 产出 execution-contract 时(DP-4 前)实时探测——**显式运行 CLI 命令**(第三轮复评接线统一:探测必须写 config,纯库函数不落盘):
10
+
11
+ ```bash
12
+ tf glaf4-delegation detect <target_root> [--delegation-mode <auto|manual|off>]
13
+ ```
14
+
15
+ `detect` 内部调用 `conventions-generator.mjs` 的 `detectGlaf4Delegation(root)` 解析 `~/.claude/plugins/installed_plugins.json`(glaf4-dev 条目含 installPath + version),产出三态:
16
+
17
+ - `is_glaf4_java`(技术栈命中:pom.xml/build.gradle + Spring Boot/JUnit5/Mockito)
18
+ - `glaf4_dev_available`(插件可用,含 version)
19
+ - `delegation_mode`(auto/manual/off,用户可开关)
20
+
21
+ 探测结果写 `team-flow.config.json` 的 `glaf4_dev: {enabled, version, delegation_mode}` 段
22
+ (git root ≠ target_root 时写 git root 冗余副本,monorepo 下多服务 OR 聚合;未传 `--delegation-mode` 保留已有值)。
23
+
24
+ **判定**:`is_glaf4_java && glaf4_dev_available && delegation_mode !== 'off'` → 产出 GLAF4 Delegation 段。
25
+ **依赖**:`recommendExecutionModesForChange` 读 `config.glaf4_dev.enabled` 决定是否注入 glaf4-delegation——**必须**先跑 detect 写 config,否则委托链不可达。
26
+
27
+ ## 2. change 性质 → 委托模式映射(v2.1 §6.1)
28
+
29
+ | change 性质 | glaf4-dev 模式 | 权限位 |
30
+ |---|---|---|
31
+ | 新功能 / 新增接口 / 新增模块 | FEATURE_TDD | after-red |
32
+ | 缺陷修复 | BUGFIX_REGRESSION | after-red |
33
+ | 行为不变重构 | REFACTOR_PROTECTED | allowed + baseline_green_required |
34
+ | 补单元测试(存量) | COMPLETE_UNIT_TESTS | none(test-only) |
35
+ | 补集成测试(存量) | COMPLETE_INTEGRATION_TESTS | none(test-only) |
36
+ | 测试环境冷启动(零测试) | TEST_BOOTSTRAP | none(test-only) |
37
+
38
+ > REFACTOR 委托前置:存量基线不绿时委托必 NEEDS_INPUT → 先走 TEST_BOOTSTRAP/COMPLETE_UNIT_TESTS 补基线。
39
+
40
+ ## 3. GLAF4 Delegation 段结构
41
+
42
+ execution-contract.md 追加段(write_set_boundary 权威源,不落 state YAML):
43
+
44
+ ```markdown
45
+ ## GLAF4 Delegation
46
+
47
+ - mode: FEATURE_TDD
48
+ - permission: after-red
49
+ - write_set_boundary:
50
+ - src/main/java/com/example/OrderService.java
51
+ - src/main/java/com/example/OrderRepository.java
52
+ - target_root: <工程根绝对路径>
53
+ - delegation_mode: auto
54
+ - glaf4_dev_version: 0.3.0
55
+ ```
56
+
57
+ ## 4. DP-4 委托方案确认(v2.1 §6.6)
58
+
59
+ 先走 S1 执行模式选择(v2.1 §6.6),选 `glaf4-delegation` 产单 wave 计划:
60
+
61
+ ```bash
62
+ # 0. 选模式(DP-4 决策门;单 wave = 委托 glaf4-dev 完成 change)
63
+ tf execution plan <change-dir> --mode glaf4-delegation --wave w1:serial:delegate --confirm --reason "<委托理由>"
64
+ ```
65
+
66
+ 模式选定后,确认 5 项并写状态:
67
+
68
+ ```bash
69
+ # 1. 写 write-set.json(边界文件清单)+ dp_4_glaf4_mode + dp_4_write_set_hash
70
+ tf glaf4-delegation confirm <change-dir> --mode FEATURE_TDD --write-set <write-set.json>
71
+
72
+ # 2. 置 delegation_status(委托进行中)
73
+ tf state set <change-dir> delegation_status in_progress
74
+ ```
75
+
76
+ 5 项确认:① change→mode 映射 ② write_set_boundary ③ 串行特征 ④ 两级门预期 ⑤ 授权委托。
77
+ `dp_4_glaf4_mode` 入 state;`dp_4_write_set_boundary`(文件清单)不落 state YAML(writeState 硬编码字段列表 +
78
+ parseYaml 仅标量),落 `.superpowers/glaf4/write-set.json`,state 只存 `dp_4_write_set_hash` 引用 hash。
79
+ `dp_4_result` 由 `tf execution plan --confirm` 程序化写入,手工 set 会被覆写。
80
+
81
+ ## 5. 委托 run 后对账(v2.1 §6.3)
82
+
83
+ ```bash
84
+ # write-set 对账(门禁级 FAIL,阻断 closing)
85
+ tf glaf4-delegation verify-write-set <change-dir> --run-dir <run-dir>
86
+
87
+ # task 完成度审计(WARN,人工核对)
88
+ tf glaf4-delegation verify-tasks <change-dir>
89
+ ```
90
+
91
+ 允许集(change 边界之外允许写入):pom.xml/build.gradle、src/test/java/**、src/test/resources/**、
92
+ .glaf4-dev/runs/**、test-environment.json。这是唯一约束 change 边界的机械机制。
93
+
94
+ ## 6. 委托失败恢复(v2.1 §6.7)
95
+
96
+ - delegation_status=failed → guard 阻断 closing 直到人工重置(三选一)
97
+ - ① 重试(retry_count 封顶 3,达上限禁止继续重试)② 降级(reset 删 plan 重走 DP-4)③ 标记阻塞转人工
98
+ - 环境错误(environment_error=true)直接转 ②/③,不浪费重试
99
+ - BLOCKED 残留 partial writes:`tf glaf4-delegation record-partial <change-dir> --run-dir <run-dir>` 落 `delegation_partial_writes` 清单,人工核对从"扫盘"降为"确认清单"
100
+
101
+ ## 7. 骨架矩阵先行时序(v2.1 §5,I6 固化防 H1 死锁复发)
102
+
103
+ **顺序写死,不可颠倒**——否则骨架矩阵缺失 → GLAF4 change 进不了 executing(原 H1 死锁复发):
104
+
105
+ ```
106
+ bridging:contract-builder 产非空骨架矩阵 test-matrix.md(过 test-matrix-ready 入口门)
107
+ → tf state rebuild(捕获骨架矩阵 hash)
108
+ → 委托 run(glaf4-dev 七模式流)
109
+ → run 终局 → 矩阵回灌覆盖骨架(test-matrix-export v2 转 MD)
110
+ → tf state rebuild(过 test-matrix-complete 出口门)
111
+ ```
112
+
113
+ ## 8. closing 时序协议(v2.1 §6.3,I5 固化防 plan 过期卡死)
114
+
115
+ **顺序不可乱**——tasks.md 翻转/矩阵回灌改变 artifacts_hash → plan 过期(receipt 失效);必须先 refresh-hash 再记录 review:
116
+
117
+ ```
118
+ run 终局 PASS
119
+ → 矩阵回灌(test-matrix-export v2 + 覆盖 test-matrix.md)
120
+ → tf state rebuild(只改 state 文件,不动 plan JSON)
121
+ → tf execution refresh-hash(更新 plan.artifacts_hash,防 plan 过期)
122
+ → 委托代理 commit glaf4-dev 产物
123
+ → code-reviewer 独立审查 base..head(报告落 .superpowers/sdd/reviews/)
124
+ → tf execution review --wave w1 --verdict pass
125
+ → tf glaf4-delegation verify-write-set(门禁级对账,FAIL 阻断)
126
+ → tf state set delegation_status success
127
+ → tf state transition ... closing
128
+ ```
129
+
130
+ > `tf state rebuild` 不能替代 `refresh-hash`(前者不动 plan JSON);review 需真实 git base≠head,必须 commit 后取 SHA。
@@ -88,7 +88,7 @@ Full protocol in `references/routing-rules.md`「Route to architecture-design」
88
88
  Guard: `tf runtime guard check <dir> exploring specifying --json` → fail = BLOCK. **arch_design_decision must not be null** → fail = BLOCK (v0.9 §26). User knows what they want, artifacts missing/incomplete.
89
89
 
90
90
  ### Route to contract-builder (dispatch sub-agent)
91
- Guard: `... check <dir> specifying bridging --json` → fail = BLOCK. Artifacts exist, implementation requested, contract missing/stale. Include `DP-3: 契约批准`. **full workflow 必产 test-matrix.md(v0.13 §52 B1)**:契约 `## Test Matrix` 段 + 非空矩阵文件 + `tf state rebuild` 捕获 hash;确无测试需求只能显式 skip + 理由(`test_matrix_skipped=true` + `test_matrix_skip_reason`)。GLAF4 Java 项目矩阵生成的工具选择见 `references/routing-rules.md`「Route to glaf4-tests」。
91
+ Guard: `... check <dir> specifying bridging --json` → fail = BLOCK. Artifacts exist, implementation requested, contract missing/stale. Include `DP-3: 契约批准`. **full workflow 必产 test-matrix.md(v0.13 §52 B1)**:契约 `## Test Matrix` 段 + 非空矩阵文件 + `tf state rebuild` 捕获 hash;确无测试需求只能显式 skip + 理由(`test_matrix_skipped=true` + `test_matrix_skip_reason`)。GLAF4 Java 项目实施委托(glaf4-dev)与矩阵工具选择见 `references/routing-rules.md`「Route to glaf4-dev 实施委托」。
92
92
 
93
93
  ### Route to build-executor (dispatch sub-agent)
94
94
  Contract exists and approved, contract matches artifacts. Include `DP-4: 执行模式选择`: propose waves, run `tf execution recommend <change-dir> [--wave ...]`, show the user every available mode plus evidence and the recommendation, then obtain a clear selection. The command saves a current receipt; before the first implementation edit, `build-executor` must run `tf execution plan <change-dir> --mode <selected> --confirm ...` (and `--acknowledge-recommendation` when the selected mode differs from the recommendation) using matching artifacts, contract, and waves, then `tf execution show <change-dir> --json`; report the saved revision, selected mode, recommendation alignment, ordered waves, and actual concurrent-dispatch capability. A revision must repeat recommend and confirmation. Do not transition to `executing` until `show` reports `current: true`; then run `... check <dir> approved-for-build executing --json` → fail = BLOCK. **v0.13 §49 门禁前移**:该 guard 含 `test-matrix-ready` 维度——full 模式非存量 change 必须"带着矩阵开工"(矩阵存在非空 OR 显式 skip 附理由);FAIL 时回 bridging 让 contract-builder 补矩阵,或按指引显式 skip,禁止绕过。
@@ -313,23 +313,23 @@ Inference: **hotfix** (≤2 tasks, ≤2 files, no schema/API/new modules), **twe
313
313
  ## Post-transition
314
314
  💡 `tf inject <change-dir>` to update phase-guard artifacts.
315
315
 
316
- ## Route to glaf4-tests (v0.12 §46, v0.31.0, v0.13 §52 B3 归位)
316
+ ## Route to glaf4-dev 实施委托 (v0.12 §46, v0.31.0, v0.13 §52 B3 归位; v2.1 §1.3 统一到 glaf4-dev)
317
317
 
318
- **归位说明(v0.13)**:本段的触发主体是 **bridging 阶段的 contract-builder 子代理**(矩阵生成者),workflow-start 主路由表不包含 glaf4-tests 条目——放在本文件仅作 bridging 期参考。
318
+ **归位说明**:本段的触发主体是 **bridging 阶段的 contract-builder 子代理**(矩阵生成者 + GLAF4 Delegation 段产出者)。glaf4-test 已统一到 glaf4-dev(v2.1 §1.3),矩阵设计委托改为 glaf4-dev 实施委托全链路。
319
319
 
320
- **强制性澄清(v0.13 §52 B1)**:full workflow 生成 test-matrix.md 本身是**必选动作**(`test-matrix-ready`/`test-matrix-complete` 门禁强制);**可选的是工具选择**——GLAF4 Java 项目可选用 glaf4-tests 流水线做精细矩阵设计,非 GLAF4 项目用内置 test-strategy skill。两条路都必须产出非空 `test-matrix.md` + contract `## Test Matrix` 段 + `tf state rebuild`。
320
+ **强制性澄清(v0.13 §52 B1 + v2.1)**:full workflow 生成 test-matrix.md 本身是**必选动作**(`test-matrix-ready`/`test-matrix-complete` 门禁强制);GLAF4 Java change glaf4-dev 实施委托(生产+测试整体委托七模式流),team-flow 矩阵骨架定位为**审计基线**(回灌后对比 vNext 覆盖)。
321
321
 
322
- **触发条件**:`project_type == glaf4-java`(Spring Boot / JUnit 5 / Mockito)。
322
+ **触发条件**:`project_type == glaf4-java`(pom.xml/build.gradle + Spring Boot/JUnit5/Mockito)∧ glaf4-dev 插件可用(运行时探测 delegation_mode ≠ off)。
323
323
 
324
324
  **协议**:
325
- 1. contract-builder 检测项目技术栈(读取 `pom.xml` / `build.gradle` 判断是否 GLAF4 Java
326
- 2. GLAF4 项目提示用户:「检测到 GLAF4 Java 项目,是否调用 `glaf4-test:glaf4-tests` 做精细测试矩阵设计?」
327
- 3. 用户同意调用 `glaf4-test:glaf4-tests-design` 生成 `test-matrix.json`
328
- 4. `glaf4-tests-validate` 校验矩阵完整性
329
- 5. `tf test-matrix-export <test-matrix.json> <change-dir>/test-matrix.md` 转换为 team-flow 格式
330
- 6. 用户确认(轻量版 DP-A)
331
- 7. contract 中添加 `## Test Matrix` 段引用 + `tf state rebuild` 捕获 test_matrix_hash
325
+ 1. contract-builder 运行时探测(`detectGlaf4Delegation`,v2.1 §4
326
+ 2. 命中 GLAF4 Java产出 `## GLAF4 Delegation` 段(mode + write_set_boundary + 权限位,v2.1 §6.1/§6.2),**实施委托交接**——完整协议见 contract-builder `references/glaf4-delegation.md`
327
+ 3. 委托 run 回灌 `tf test-matrix-export`(v2,支持 vNext)转 team-flow 12 列 MD 作为**审计基线**(v2.1 §5)
328
+ 4. 证据回灌:`tf glaf4-evidence-export` → `tf test record --from`(v2.1 §7)
329
+ 5. `tf glaf4-delegation confirm`(DP-4 委托确认 5 项)+ `verify-write-set`/`verify-tasks`(双层对账,v2.1 §6.3/§6.6)
330
+
331
+ **混合栈串行承接(v2.1 §6.8,L1 明确)**:委托仅限 Java 文件边界(src/main/**、src/test/** Java 面);change 内非 Java 文件(SQL DDL / src/main/resources / 前端)由 build-executor 在委托 run 终局后、closing 前**串行承接**(S1 单 wave 计划不新增 wave)。这是与 glaf4-dev 租约模型唯一兼容的选项——委托 run 期间主线程零写入,非 Java 承接必须在 run 终局释放租约后。
332
332
 
333
333
  **非 GLAF4 项目**:contract-builder 使用预加载的 test-strategy skill 直接生成 `test-matrix.md`(同等强制)。
334
334
 
335
- **用户拒绝 glaf4-tests 时**:回退内置 test-strategy 生成(不是跳过矩阵)。确无测试需求的特例走显式 skip + 理由。
335
+ **委托不可用(glaf4-dev 未装 / delegation_mode=off / 用户拒绝)**:回退 build-executor 实施 + 内置 test-strategy 生成矩阵(不是跳过矩阵)。**两类 skip 区分**:① 委托路径(glaf4-delegation 模式)矩阵是审计基线,`test_matrix_skipped` 被禁止(v2.1 §6.3 skip 禁令,唯一例外 TEST_BOOTSTRAP 零测试);② 非委托路径确无测试需求(纯文档/纯配置)才走显式 skip + 理由(v0.13 §48.2 可审计豁免)。
@@ -69,13 +69,25 @@ wave 才可以开始。`parallel` 只表示允许在宿主支持并发派发时
69
69
  ## Execution Mode
70
70
 
71
71
  - **可用方式与推荐**:`tf execution recommend <change-dir> [--wave <id>:<parallel|serial>:<task,...>[:<depends-on,...>]]`
72
- - **用户确认的模式**:`sdd` | `inline` | `batch-inline`
72
+ - **用户确认的模式**:`sdd` | `inline` | `batch-inline` | `glaf4-delegation`
73
73
  - **推荐理由 / 项目事实**:
74
74
  - **非推荐选择的风险确认**:`--acknowledge-recommendation`(若适用)
75
75
  - **执行计划命令**:`tf execution plan <change-dir> --mode <mode> --confirm --reason <text> --wave <id>:<parallel|serial>:<task,...>[:<depends-on,...>] [--acknowledge-recommendation]`
76
76
  - **允许的修订**:将已有计划保留/升级为 `sdd`;先重新 recommend,并以 `--confirm` 生成新 revision 和清除旧 receipt;不允许降级:`tf execution revise <change-dir> --mode sdd --confirm --reason <text> --wave <id>:<parallel|serial>:<task,...>[:<depends-on,...>] [--acknowledge-recommendation]`
77
77
  - **计划 revision / artifact hash**:
78
78
 
79
+ ## GLAF4 Delegation(v2.1 §6.1/§6.2,GLAF4 Java change 实施委托时填写)
80
+
81
+ > 运行时探测(`tf glaf4-delegation detect <root>`)命中 GLAF4 Java 且 glaf4-dev 可用时产出本段。write_set_boundary 权威源 = 本段;机械对账读 `.superpowers/glaf4/write-set.json`(`tf glaf4-delegation confirm` 写入)。
82
+
83
+ - mode: FEATURE_TDD | BUGFIX_REGRESSION | REFACTOR_PROTECTED | COMPLETE_UNIT_TESTS | COMPLETE_INTEGRATION_TESTS | TEST_BOOTSTRAP
84
+ - permission: after-red | none(test-only) | allowed+baseline_green_required
85
+ - write_set_boundary:
86
+ - <相对 target_root 的 Java 文件路径,如 src/main/java/com/example/OrderService.java>
87
+ - target_root: <工程根绝对路径>
88
+ - delegation_mode: auto | manual | off
89
+ - glaf4_dev_version: <运行时探测的插件版本,如 0.3.0>
90
+
79
91
  ## Verification Dimensions
80
92
 
81
93
  | 维度 | 状态 | 发现 |