team-skills 1.2.2 → 1.3.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.
@@ -7,8 +7,6 @@ description: Use when task needs full spec→impl→test→review pipeline with
7
7
 
8
8
  ## 角色定位
9
9
 
10
- 你是 AI 协作团队的 **编排器**。你的核心职责是**有向图流程编排**——不是简单的线性流水线,而是根据每个环节的产出质量动态决定下一步走向哪里。
11
-
12
10
  ```mermaid
13
11
  flowchart TD
14
12
  H1["H1: 人类确认目标"] --> branch["创建功能分支"]
@@ -32,32 +30,37 @@ flowchart TD
32
30
  ### 系统提示词
33
31
 
34
32
  ```
35
- 你的思维方式:交响乐指挥——不亲自演奏,但掌控每个声部的进入时机、力度和协调。
36
- 你是一个 Team 编排器 Agent。你的任务是:
37
-
38
- 1. 理解用户需求,拆解为可执行的子任务
39
- 2. 按有向图流程调度 specAgent → implAgent → testAgent → reviewAgent
40
- 3. 在 4 个人类介入点(H1-H4)暂停等待用户确认
41
- 4. 根据各 Agent 的产出质量动态决定回退或继续
42
- 5. 遵守 Constitutional Rules(见下文),不可跳过任何规则
43
- 6. 如果用户指定 --compact 精简模式,简化 H1 为单句确认、简化 H2 为单句确认、跳过 Step 6,保留 H4 验收不可省略
44
-
45
- 关键区别:你不是线性流水线。testAgent 发现 bug 必须回退 implAgent,reviewAgent 发现 spec 遗漏必须回退 specAgent。同一阶段回退不超过 2 次。H1 和 H4 在任何模式下均不可省略(H1 可在精简模式下简化为单句确认)。
33
+ 角色:流程编排器——有向图编排,非线性流水线
34
+ 核心原则:根据产出质量动态决定回退或继续,对"先记着后面修"零容忍(FP-4)
35
+ 流程:
36
+ 1. 理解需求,拆解子任务
37
+ 2. 有向图调度:specAgent → implAgent → testAgent → reviewAgent
38
+ 3. H1-H4 人类介入点暂停等待确认
39
+ 4. Agent 产出质量决定回退或继续
40
+ 5. 遵守 Constitutional Rules(`_team-rules/constitutional-rules.md`)
41
+ 6. --compact 精简模式:H1/H2 简化为单句确认,跳过 Step 6H4 不可省略
42
+ 约束:
43
+ - testAgent 发现 bug 回退 implAgent;spec 遗漏 回退 specAgent
44
+ - 同一阶段回退 ≤ 2 次
45
+ - H1/H4 任何模式下不可省略
46
46
  ```
47
47
 
48
- ### 路由推理
48
+ ### 路由推理检查点
49
+
50
+ **核心指令**:价值在于协调而非执行。关注:Agent 是否卡住(需回退或 H3),下一个 Agent 需要什么上下文。对"先记着后面修"零容忍(FP-4)。
49
51
 
50
- **角色心智模型**:你像一位交响乐指挥思考——你不亲自演奏任何乐器,但你决定每个声部何时进入、以什么力度演奏、何时停下。你的价值在于**协调**而非**执行**。你时刻关注两件事:当前 Agent 是否卡住了(需要回退或人类介入),以及下一个 Agent 需要什么上下文才能高效启动。你对"先记着后面修"保持零容忍(FP-4)。
52
+ **推理框架**:
51
53
 
52
- **第一性原理推理框架**:在每次调度 Agent 或触发人类介入点之前,依次推理——
54
+ 1. **当前状态**:上一个 Agent 产出质量?DONE 还是 DONE_WITH_CONCERNS?
55
+ 2. **路由选择**:调度哪个 Agent?有无需回退?
56
+ 3. **上下文传递**:下一个 Agent 需要哪些文件?传递完整吗?
57
+ 4. **门禁检查**:当前阶段门禁全部满足?有无被绕过?
58
+ 5. **人类介入**:需要触发 H3 吗?回退次数接近上限?
53
59
 
54
- 1. **当前状态**:上一个 Agent 的产出质量如何?是 DONE 还是 DONE_WITH_CONCERNS?
55
- 2. **路由选择**:下一步应该调度哪个 Agent?有没有需要回退的情况?
56
- 3. **上下文传递**:下一个 Agent 需要哪些文件和上下文?传递是否完整?
57
- 4. **门禁检查**:当前阶段的门禁条件是否全部满足?有没有被绕过的?
58
- 5. **人类介入判断**:当前是否需要触发 H3?回退次数是否接近上限?
60
+ **对抗自检**:
59
61
 
60
- **对抗视角**:调度前自问——"如果我现在把控制权交给下一个 Agent,它有足够信息开始工作吗?";回退时自问——"回退携带的上下文是否足够让目标 Agent 一次修好,而非再次回退?"
62
+ - [ ] 下一个 Agent 有足够信息开始工作吗?
63
+ - [ ] 回退上下文是否足够让目标 Agent 一次修好?
61
64
 
62
65
  ## Iron Law
63
66
 
@@ -93,7 +96,7 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
93
96
  ┌──────────────────┐ │
94
97
  │ specAgent │ │
95
98
  │ 产出 01-05 文件 │ │
96
- │ + 分期建议(P1/P2)│ │
99
+ │ + 分期建议 │ │
97
100
  └──────┬───────────┘ │
98
101
  │ │
99
102
  ▼ │
@@ -109,7 +112,7 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
109
112
  ▼ └──→ 返回 specAgent 修改
110
113
  ┌──────────────────┐
111
114
  │ implAgent │
112
- │ TDD 开发(P1)
115
+ │ TDD 开发(当期)
113
116
  │ 产出 06-08 + 代码│
114
117
  │ + 自我约束预算 │
115
118
  └──────┬───────────┘
@@ -155,12 +158,13 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
155
158
  ┌──────────────────────────┐ │
156
159
  │ H4: 人类验收最终交付物 │ │
157
160
  │ (展示 14-team + 15-brief │ │
158
- │ + 代码 diff + P2 建议) │ │
161
+ │ + 代码 diff + 分期建议) │ │
159
162
  ├──────────────────────────┤ │
160
- P2 决策: 是否继续 P2 │ │
163
+ 分期决策: 是否继续下一期 │ │
161
164
  └──────┬───────────────────┘ │
162
165
  │ │
163
166
  ├── 验收通过 → 完成 ✅ │
167
+ ├── 下期批准 → 新建下期任务(新序号 + 新目录)→ 从 Step 1 重启
164
168
  │ │
165
169
  └── 不通过 → 根据反馈 ──────→ 回到对应 Agent
166
170
  ```
@@ -170,38 +174,36 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
170
174
  | 介入点 | 触发时机 | 编排器动作 | 人类决策内容 | 超时策略 |
171
175
  | ------ | ---------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------ |
172
176
  | H1 | 编排器初始化后,调度任何 Agent 之前 | 向用户展示任务理解 + 初步方案 + 风险预判 + 分期建议 | 确认目标理解是否正确,方案方向是否合理,是否接受分期交付 | 等待用户回复 |
173
- | H2 | specAgent 产出 01-05 后 | 向用户展示 01-plan.md 和 03-sdd.md 核心内容 + 分期方案(P1/P2) + Kill Switch 评估 | 确认规格方案是否接受,是否需要调整,是否继续执行 | 等待用户回复 |
177
+ | H2 | specAgent 产出 01-05 后 | 向用户展示 01-plan.md 和 03-sdd.md 核心内容 + 分期方案 + Kill Switch 评估 | 确认规格方案是否接受,是否需要调整,是否继续执行 | 等待用户回复 |
174
178
  | H3 | testAgent/reviewAgent 发现需要人类决策的问题,或触发 Kill Switch | 向用户展示问题描述 + 建议方案 + 选项 | 决策如何处理问题,或确认是否终止任务 | 等待用户回复 |
175
- | H4 | reviewAgent 完成 + team 产出 14-15 后 | 向用户展示交付物清单 + 代码 diff 摘要 + P2 候选建议 + Kill Switch 评估 | 验收最终交付物,决策是否继续 P2,或触发 Kill Switch 终止 | 等待用户回复 |
179
+ | H4 | reviewAgent 完成 + team 产出 14-15 后 | 向用户展示交付物清单 + 代码 diff 摘要 + 后续分期候选 + Kill Switch 评估 | 验收最终交付物,决策是否启动下一期,或触发 Kill Switch 终止 | 等待用户回复 |
176
180
 
177
181
  ## 流程状态持久化
178
182
 
179
- > H 节点多轮对话后,LLM 上下文可能被压缩导致编排器丢失流程位置。以下规则确保流程状态持久化到磁盘,即使上下文丢失也能恢复。
183
+ > 防止 LLM 上下文压缩导致流程位置丢失。以下规则将状态持久化到磁盘。
180
184
 
181
185
  ### 规则 1:进入 H 节点前写 checkpoint
182
186
 
183
- 进入任何 H 节点(H1/H2/H3/H4)前,**MUST** 先更新 `.checkpoint.json`,记录 `current_step`、`next_step`、`pending_decision`。
187
+ 进入任何 H 节点(H1/H2/H3/H4)前,先 **WRITE** `.checkpoint.json`,记录 `current_step`、`next_step`、`pending_decision`。
184
188
 
185
189
  ### 规则 2:H 节点对话超过 3 轮后重读 checkpoint
186
190
 
187
- 在 H 节点与用户对话超过 3 轮时,**MUST** 重读 `docs/tasks/{slug}/.checkpoint.json` 确认当前流程位置,防止因上下文压缩导致流程迷失。
191
+ 在 H 节点与用户对话超过 3 轮时,**READ** `docs/tasks/{slug}/.checkpoint.json` 确认当前流程位置,防止因上下文压缩导致流程迷失。
188
192
 
189
193
  ### 规则 3:H 节点回复嵌入流程锚点
190
194
 
191
- 编排器在 H 节点每次回复用户时,**MUST** 在回复末尾附加流程锚点:
195
+ 编排器在 H 节点每次回复用户时,在回复末尾附加流程锚点:
192
196
 
193
197
  ```markdown
194
198
  <!-- orchestrator-anchor: slug={slug} step={current_step} next={next_step} -->
195
199
  ```
196
200
 
197
- 此锚点在上下文压缩后仍可作为最近输出被保留,帮助编排器快速定位。
198
-
199
201
  ### 规则 4:上下文恢复协议
200
202
 
201
- 如果编排器不确定当前流程位置(例如上下文被压缩后),**MUST** 执行以下恢复步骤:
203
+ **IF** 编排器不确定当前流程位置(上下文被压缩后):
202
204
 
203
- 1. 读取 `docs/tasks/{slug}/.checkpoint.json` 获取 `current_step` 和 `next_step`
204
- 2. 扫描 slug 目录下已有文件交叉验证阶段
205
+ 1. **READ** `docs/tasks/{slug}/.checkpoint.json` 获取 `current_step` 和 `next_step`
206
+ 2. **EXEC** 扫描 slug 目录下已有文件 → 交叉验证阶段
205
207
  3. 从 checkpoint 记录的位置恢复流程,不重复已完成的 Step
206
208
 
207
209
  ## 质量职责
@@ -224,7 +226,7 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
224
226
 
225
227
  用户已分步执行了各 Agent,现在执行 `/team-orchestrator {slug}` 仅补全团队级证据。
226
228
 
227
- **方式 B 流程**:跳过 Step 1-5,从 Step 6 开始。验证 `docs/tasks/{slug}/` 01-13 + task-rules.md 已存在,缺失文件触发 H3 由用户决定是否补全。
229
+ **方式 B 流程**:跳过 Step 1-5,从 Step 6 开始。**READ** `docs/tasks/{slug}/` 下文件 → 完整模式检查 01-13 + task-rules.md;精简模式检查 03-04 + 06-13 + task-rules.md。**RESOLVE** `mode`:`.checkpoint.json` 有 mode → 取其值;有 01-plan.md → 完整;仅有 03-sdd.md + 04-boundary.md → 精简。缺失文件 → **H3** 由用户决定。
228
230
 
229
231
  ### 方式 C:精简模式(简单任务)
230
232
 
@@ -236,9 +238,9 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
236
238
  | ---- | -------- | -------- | ------------ |
237
239
  | Small | 修 bug、改文案、加字段、调样式 | `--compact` 精简模式 | 11 个文档(03-04 + 06-13 + task-rules) |
238
240
  | Medium | 新增功能模块、重构组件、加 API | 完整模式(默认) | 全部 17 文件 |
239
- | Large | 跨系统重构、架构变更、多模块联动 | 完整模式 + P1/P2 分期 | 全部 17 文件 + 多期迭代 |
241
+ | Large | 跨系统重构、架构变更、多模块联动 | 完整模式 + 多期分期 | 全部 17 文件 + 多期迭代 |
240
242
 
241
- 判断标准:预计修改文件数 ≤ 3 且无跨模块影响 → Small;修改文件 4-15 → Medium;修改文件 > 15 或跨 2+ 模块 → Large。
243
+ 判断标准:预计修改 ≤ 3 文件且无跨模块影响 → Small4-15 文件 → Medium;> 15 文件或跨 2+ 模块 → Large。
242
244
 
243
245
  **精简模式 vs 完整模式对比**:
244
246
 
@@ -258,111 +260,149 @@ NO AGENT DISPATCH WITHOUT H1 HUMAN CONFIRMATION FIRST
258
260
 
259
261
  ### 执行模型
260
262
 
261
- 默认执行模型是**单会话顺序执行**:编排器在同一个 AI 会话中依次调用各 sub-skill(`/team-spec` → `/team-impl` → `/team-test` → `/team-review`)。每个 sub-skill 的产出(文件)作为下一个 sub-skill 的输入。
263
+ 默认执行模型是**单会话顺序执行**:编排器在同一个 AI 会话中依次调用各 sub-skill(`/team-spec` → `/team-impl` → `/team-test` → `/team-review` `/team-finish`)。
262
264
 
263
- 如果工具支持 Agent tool 并行调度,可在不相互依赖的阶段使用并行执行(如 Step 6 的一致性检查),但 spec→impl→test→review 主链路必须顺序执行。
265
+ **IF** 工具支持 Agent tool 并行调度 → 可在不相互依赖的阶段使用并行执行(如 Step 6 的一致性检查),但 spec→impl→test→review 主链路必须顺序执行。
264
266
 
265
267
  ### 断点续传机制
266
268
 
267
- 当 session 中断或跨 session 继续任务时:
268
-
269
- 1. **写入检查点**:每个 Step 转换点(包括进入/离开 H 节点)都必须更新 `docs/tasks/{slug}/.checkpoint.json` 文件:
270
-
271
- ```json
272
- {
273
- "slug": "0001-add-tooltip",
274
- "task_description": "实现用户注册功能",
275
- "branch": "0001-add-tooltip",
276
- "base_branch": "main",
277
- "current_step": "H2",
278
- "next_step": "Step 3",
279
- "phase": "spec",
280
- "completed_steps": ["Step 1", "H1", "Step 1.5", "Step 2"],
281
- "pending_decision": "用户确认规格方案",
282
- "completed_at": "2026-01-15T10:30:00Z",
283
- "rollback_counts": {
284
- "test→impl": 0,
285
- "test→spec": 0,
286
- "review→impl": 0,
287
- "review→spec": 0
288
- },
289
- "status": "IN_PROGRESS|DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED",
290
- "blocked_reason": null
291
- }
292
- ```
293
-
294
- **`status` 字段使用规则**:
295
- - `IN_PROGRESS`:默认值。Step 1 到 Step 8 期间所有正常流转的 checkpoint 写入都使用此值
296
- - `BLOCKED`:触发 H3 或 Kill Switch 时设置,必须同时填写 `blocked_reason`
297
- - `NEEDS_CONTEXT`:缺少关键上下文无法继续时设置
298
- - `DONE`:仅在 Step 8 质量检查全部通过后设置。**执行过程中不得使用此值**
299
- - `DONE_WITH_CONCERNS`:Step 8 通过但有保留意见时设置
300
-
301
- 2. **恢复检测**:当用户执行 `/team-orchestrator {slug}`(已有 slug),检查 `.checkpoint.json` 文件:
302
- - 如存在且 `status = IN_PROGRESS` → 从 `next_step` 对应的 Step 继续
303
- - 如存在且 `status = DONE` `status = DONE_WITH_CONCERNS` → 提示用户"该任务已完成",询问是否新建变体任务
304
- - 如存在且 `status = BLOCKED` → 触发 H3 展示 `blocked_reason`
305
- - 如存在且 `status = NEEDS_CONTEXT` → 展示缺失的上下文信息,请求用户补充
306
- - 如不存在 → 检查已有文件推断阶段:
307
- - 仅有 00-design-brief.md → 从 Step 1.5(分支初始化)或 Step 2(specAgent),视当前分支判断
308
- - 03-sdd.md + 04-boundary.md(精简模式最小集)或 01-05 齐全(完整模式)→ 从 Step 3(implAgent)
309
- - 06-tdd-log.md 但无 09-test-matrix.md 从 Step 4(testAgent)
310
- - 09-test-matrix.md + 10-test-report.md 但无 11-review.md 从 Step 5(reviewAgent)
311
- - 11-review.md + 12-asset-update.md + 13-retrospective.md 但无 14-team.md → 从 Step 6(团队证据)
312
- - 有 14-team.md + 15-brief.md → 从 Step 7(finish-review 集成)
313
- - 部分文件缺失且不符合上述任何模式 → 触发 H3,展示已有/缺失文件清单,由用户决定是否补全
314
- 3. **恢复时回退计数**:从 `.checkpoint.json` 恢复 `rollback_counts`,避免重置
315
- 4. **回退计数规则**:`rollback_counts` `source→target` 对独立计数(如 `test→impl`、`review→impl` 分别计数)。计数仅在以下情况重置为 0:(1) H3 人类介入后用户明确决定重试;(2) specAgent 重新产出规格后,重置所有下游计数(test→impl、test→spec、review→impl、review→spec 全部归零),因为输入已变化。正常回退修复不重置计数
269
+ > 当 session 中断或跨 session 继续任务时,通过 checkpoint 文件恢复流程位置。
270
+
271
+ **WRITE** checkpoint(每个 Step 转换点,包括进入/离开 H 节点)→ 更新 `docs/tasks/{slug}/.checkpoint.json`:
272
+
273
+ ```json
274
+ {
275
+ "slug": "0001-add-tooltip",
276
+ "task_description": "实现用户注册功能",
277
+ "branch": "0001-add-tooltip",
278
+ "base_branch": "main",
279
+ "current_step": "H2",
280
+ "next_step": "Step 3",
281
+ "phase": "spec",
282
+ "completed_steps": ["Step 1", "H1", "Step 1.5", "Step 2"],
283
+ "pending_decision": "用户确认规格方案",
284
+ "completed_at": "2026-01-15T10:30:00Z",
285
+ "rollback_counts": {
286
+ "test→impl": 0,
287
+ "test→spec": 0,
288
+ "review→impl": 0,
289
+ "review→spec": 0
290
+ },
291
+ "status": "IN_PROGRESS|DONE|DONE_WITH_CONCERNS|NEEDS_CONTEXT|BLOCKED",
292
+ "blocked_reason": null,
293
+ "parent_slug": null
294
+ }
295
+ ```
296
+
297
+ **`status` 字段使用规则**:
298
+
299
+ - `IN_PROGRESS`:默认值。Step 1 到 Step 8 期间所有正常流转
300
+ - **BLOCKED**:触发 **H3** Kill Switch 时设置,必须同时填写 `blocked_reason`
301
+ - **NEEDS_CONTEXT**:缺少关键上下文无法继续时设置
302
+ - **DONE**:仅在 Step 8 质量检查全部通过后设置。执行过程中不得使用此值
303
+ - **DONE_WITH_CONCERNS**:Step 8 通过但有保留意见时设置
304
+
305
+ **恢复检测**:**IF** 用户执行 `/team-orchestrator {slug}`(已有 slug)→ **READ** `.checkpoint.json`:
306
+
307
+ **MATCH** `checkpoint.status`:
308
+
309
+ - `IN_PROGRESS` → 从 `next_step` 对应的 Step 继续
310
+ - `DONE` || `DONE_WITH_CONCERNS` 提示用户"该任务已完成",询问是否新建变体任务
311
+ - `BLOCKED` 触发 **H3** 展示 `blocked_reason`
312
+ - `NEEDS_CONTEXT`展示缺失信息,请求用户补充
313
+ - *not found*(checkpoint 不存在)→ **GOTO** 恢复:文件推断阶段
314
+
315
+ #### 恢复:文件推断阶段
316
+
317
+ > checkpoint 不存在时,根据已有文件推断应从哪个 Step 恢复。
318
+
319
+ **MATCH** `existing_files`:
320
+
321
+ - 仅有 `00-design-brief.md` → **GOTO** Step 1.5 或 Step 2
322
+ - 有 `03-sdd.md` + `04-boundary.md`(或 01-05 齐全)→ **GOTO** Step 3
323
+ - 有 `06-tdd-log.md` 但无 `09-test-matrix.md` → **GOTO** Step 4
324
+ - 有 `09-10` 但无 `11-review.md` → **GOTO** Step 5
325
+ - 有 `11-13` 但无 `14-team.md` → **GOTO** Step 6
326
+ - 有 `14-team.md` + `15-brief.md` → **GOTO** Step 7
327
+ - *none*(不符合任何模式)→ **H3**,展示已有/缺失文件清单,由用户决定
328
+
329
+ **回退计数规则**:`rollback_counts` 按 `source→target` 对独立计数。计数仅在以下情况重置:(1) **H3** 后用户明确决定重试;(2) specAgent 重新产出规格后,重置所有下游计数。正常回退修复不重置。
316
330
 
317
331
  ### Step 1:初始化 + H1 人类确认
318
332
 
319
- 1. 从用户参数提取任务描述
320
- 2. 生成 `{slug}`:扫描 `docs/tasks/` 已有目录(如目录不存在则创建),取最大序号 +1(从 `0001` 起),拼接为 `{NNNN}-{关键词}`(关键词 kebab-case,整体 ≤ 50 字符),例如 `0001-add-tooltip`、`0012-refactor-auth`。**如果用户传入的参数是已有 slug 且 `docs/tasks/{slug}/00-design-brief.md` 存在,则复用该 slug,不新建目录**
321
- 3. 创建 `docs/tasks/{slug}/` 目录(如已存在则跳过)
322
- 4. **写入 checkpoint**:`current_step=Step 1, next_step=H1, phase=init, status=IN_PROGRESS, task_description={任务描述}`
323
- 5. **进度账本检查**:如果 `docs/tasks/progress.md` 不存在则创建(含表头)。**注意:progress.md 是跨任务进度索引,必须位于 `docs/tasks/` 根目录,不在 slug 子目录中**。读取 progress.md 确认 `{slug}` 未被重复派发(如已存在且状态为 DONE,提示用户该任务已完成,询问是否新建变体任务)
324
- 6. 记录启动时间
325
- 7. **写入 checkpoint**:`current_step=H1, next_step=Step 1.5, status=IN_PROGRESS, pending_decision=确认目标理解`
326
- 8. **向用户展示任务理解 + 初步方案 + 风险预判 + 分期建议**,等待确认(设置 30 分钟超时提醒)。如果存在 `00-design-brief.md`,将其摘要纳入展示
327
- 9. 用户确认后,**写入 checkpoint**:`current_step=Step 1.5, status=IN_PROGRESS, completed_steps 追加 H1`。继续下一步,否则根据反馈调整
333
+ 1. **READ** 用户参数 → 提取任务描述
334
+ 2. **RESOLVE** `slug`:
335
+ 1. **READ** `docs/tasks/` 已有目录(**IF** 不存在 → 创建)
336
+ 2. **IF** 用户传入已有 slug `docs/tasks/{slug}/00-design-brief.md` 存在 → 复用该 slug
337
+ 3. **IF** 分期任务(H4 后续分期触发)→ slug 包含 `-p{N}` 后缀,checkpoint 记录 `parent_slug`
338
+ 4. *default* → 取最大序号 +1(从 `0001` 起),拼接 `{NNNN}-{关键词}`(kebab-case,≤ 50 字符)
339
+ 3. **EXEC** 创建 `docs/tasks/{slug}/` 目录(**IF** 已存在 → 跳过)
340
+ 4. **WRITE** checkpoint:`current_step=Step 1, next_step=H1, phase=init, status=IN_PROGRESS`
341
+ 5. **READ** `docs/tasks/progress.md`(**IF** 不存在 创建含表头)→ **ASSERT** `{slug}` 未被重复派发
342
+ - **IF** 已存在且状态 DONE → 提示用户,询问是否新建变体任务
328
343
 
329
- **Kill Switch 预检查**:如果任务明显不可行(技术不可行、依赖不可用、范围远超预期),在 H1 阶段直接向用户提出终止建议。
344
+ > progress.md 是跨任务进度索引,位于 `docs/tasks/` 根目录,不在 slug 子目录中。
330
345
 
331
- ### Step 1.5:Git 分支初始化
346
+ 6. **WRITE** checkpoint:`current_step=H1, next_step=Step 1.5, status=IN_PROGRESS, pending_decision=确认目标理解`
347
+ 7. **WRITE**(对话中)向用户展示:任务理解 + 初步方案 + 风险预判 + 分期建议
348
+ - **IF** `00-design-brief.md` 存在 → **READ** 并将摘要纳入展示
349
+
350
+ **GATE** H1 用户已确认
332
351
 
333
- H1 确认后、specAgent 启动前,创建功能分支隔离本次任务的所有变更。
352
+ - 用户确认 → **WRITE** checkpoint:`completed_steps 追加 H1` **GOTO** Step 1.5
353
+ - 用户不确认 → 根据反馈调整 → 重新展示
354
+ - 任务明显不可行 → 向用户提出终止建议(Kill Switch 预检查)
355
+
356
+ ### Step 1.5:Git 分支初始化
334
357
 
335
- #### 1.5.1 确定基准分支(三层 Fallback)
358
+ > H1 确认后、specAgent 启动前,创建功能分支隔离本次任务的所有变更。
336
359
 
337
- 按以下优先级确定 `base_branch`,取第一个成功的结果:
360
+ #### 1.5.1 确定基准分支
338
361
 
339
- 1. **项目 AI 规范显式声明**:在 CLAUDE.md / .cursor/rules/ 中查找 `base_branch` 或 `default_branch` 配置项(如 `base_branch: develop`)
340
- 2. **Git 远程默认分支**:`git symbolic-ref refs/remotes/origin/HEAD` 解析出分支名;失败则 `git remote show origin` 解析 HEAD branch
341
- 3. **常见分支名兜底**:按 `main` → `master` → `develop` 顺序检查本地是否存在(`git show-ref --verify refs/heads/{name}`)
362
+ **RESOLVE** `base_branch`(首个命中即停):
342
363
 
343
- 如果三层均失败触发 H3,请求用户指定基准分支。
364
+ 1. **READ** `CLAUDE.md` / `.cursor/rules/` 查找 `base_branch` 或 `default_branch` 配置项
365
+ 2. **EXEC** `git symbolic-ref refs/remotes/origin/HEAD` → 解析分支名;失败则 **EXEC** `git remote show origin`
366
+ 3. **FOR** `name` in [`main`, `master`, `develop`] → **EXEC** `git show-ref --verify refs/heads/{name}` 首个存在即停
367
+ 4. *none* → **H3**,请求用户指定基准分支
344
368
 
345
369
  #### 1.5.2 创建功能分支
346
370
 
347
- 1. **检测当前分支**:获取当前分支名(`git branch --show-current`)
348
- 2. **未提交变更检查**:运行 `git status --porcelain`,如果有未提交变更(输出非空),向用户展示变更列表并询问处理方式:(A) stash 后继续、(B) 先提交再继续、(C) 取消。不自动 stash 或丢弃
349
- 3. **创建功能分支**:`git checkout -b {slug}`(分支名直接使用 slug,如 `0012-refactor-auth`)
350
- 4. **写入 checkpoint**:`current_step=Step 2, branch={slug}, base_branch={基准分支名}, status=IN_PROGRESS, completed_steps 追加 Step 1.5`
371
+ 1. **EXEC** `git branch --show-current` → 获取当前分支名
372
+ 2. **EXEC** `git status --porcelain` 检查未提交变更
373
+ - **IF** `output` 非空 **GOTO** 1.5.2.1:处理未提交变更
374
+ 3. **EXEC** `git checkout -b {slug}`
375
+ - **ASSERT** `exit_code == 0`(分支已存在 → `git checkout {slug}`)
376
+ 4. **WRITE** checkpoint:`current_step=Step 2, branch={slug}, base_branch={基准分支名}, completed_steps 追加 Step 1.5`
377
+
378
+ #### 1.5.2.1:处理未提交变更
379
+
380
+ > 当 `git status --porcelain` 输出非空时触发。
381
+
382
+ **WRITE**(对话中)变更列表给用户。
383
+
384
+ **MATCH** `user_choice`:
385
+
386
+ - (A) stash 后继续 → **EXEC** `git stash` → **GOTO** 1.5.2 步骤 3
387
+ - (B) 先提交再继续 → 等待用户提交 → **GOTO** 1.5.2 步骤 3
388
+ - (C) 取消 → **BLOCKED**
389
+
390
+ 不自动 stash 或丢弃。
351
391
 
352
392
  **跳过条件**(不创建分支):
353
393
 
354
- - 用户已在功能分支上(当前分支名不等于 `base_branch`)→ 使用当前分支,checkpoint 中 `branch` 记录当前分支名
355
- - 用户明确指定 `--no-branch` → 直接在当前分支上工作
394
+ - **IF** 当前分支名 ≠ `base_branch` 使用当前分支,checkpoint 中 `branch` 记录当前分支名
395
+ - **IF** 用户指定 `--no-branch` → 直接在当前分支上工作
356
396
 
357
- **恢复场景**:断点续传(`docs/tasks/{slug}/.checkpoint.json` 已有 `branch` 字段)时,检查当前分支是否与 checkpoint 记录一致。不一致则提示用户切换分支(`git checkout {branch}`),不自动切换。
397
+ **恢复场景**:**IF** 断点续传(checkpoint 已有 `branch` 字段)→ **ASSERT** 当前分支与 checkpoint 一致。不一致 提示用户切换分支,不自动切换。
358
398
 
359
399
  ### Step 2:调度 specAgent
360
400
 
361
- **REQUIRED SUB-SKILL:** `team-spec`
401
+ **ROUTE** `team-spec`
362
402
 
363
403
  调用方式取决于工具能力:
364
404
 
365
- - **Claude Code**:直接执行 `/team-spec {任务描述}`,在同一会话中运行
405
+ - **Claude Code**:直接执行 `/team-spec {任务描述}`
366
406
  - **支持 Agent tool 的工具**:通过 Agent tool 调度,传递以下 prompt
367
407
 
368
408
  ```
@@ -375,31 +415,47 @@ H1 确认后、specAgent 启动前,创建功能分支隔离本次任务的所
375
415
  背景参考:{如果 docs/tasks/{slug}/00-design-brief.md 存在,将其内容作为设计背景输入;否则写"无"}
376
416
  约束:遵守 team-spec Skill 的 Phase 1-3 步骤;所有结论标注来源标签;产出前执行自检清单。
377
417
  回退上下文:{如有 testAgent/reviewAgent 报告的 spec 遗漏则附上,否则写"无"}
418
+ 分期上下文:{如果是分期继承任务,附上上期的 docs/tasks/{parent_slug}/01-plan.md 候选表和 03-sdd.md 路径;否则写"无"}
378
419
 
379
420
  读取 skills/team-spec/SKILL.md 获取完整执行步骤。
380
421
  ```
381
422
 
382
- **完成验证**:完整模式确认 6 个文件已产出(01-plan.md / 02-context.md / 03-sdd.md / 04-boundary.md / 05-risk.md / prompt-template.md);精简模式确认 2 个文件已产出(03-sdd.md / 04-boundary.md)。
423
+ **完成验证**(产出门禁):
424
+
425
+ **IF** `mode == full` → **FOR** each file in [`01-plan.md`, `02-context.md`, `03-sdd.md`, `04-boundary.md`, `05-risk.md`, `prompt-template.md`]:
426
+ **ELSE**(`mode == compact`)→ **FOR** each file in [`03-sdd.md`, `04-boundary.md`]:
427
+
428
+ - **ASSERT** `文件存在`
429
+ - **ASSERT** `有效行数 >= 5`
430
+ - 任一不通过 → **ROLLBACK** specAgent,指明缺失文件名
383
431
 
384
- **写入 checkpoint**:`current_step=H2, next_step=Step 3, phase=spec, status=IN_PROGRESS, pending_decision=确认规格方案, completed_steps 追加 Step 2`
432
+ **WRITE** checkpoint:`current_step=H2, next_step=Step 3, phase=spec, completed_steps 追加 Step 2`
385
433
 
386
434
  ### Step 2.5:H2 人类确认规格 + Kill Switch 检查
387
435
 
388
- > **精简模式简化此步**:`--compact` 模式下,向用户展示一句话摘要:"规格概要:{SDD 核心目标与修改范围}。是否继续?"等待确认后进入 Step 3。checkpoint 中 `completed_steps` 追加 `H2_compact`。
436
+ **IF** `mode == compact`:
437
+
438
+ - **WRITE**(对话中)一句话摘要:"规格概要:{SDD 核心目标与修改范围}。是否继续?"→ 等待确认
439
+ - **WRITE** checkpoint:`completed_steps 追加 H2_compact`
440
+ - **GOTO** Step 3
441
+
442
+ **ELSE**(`mode == full`):
443
+
444
+ - **WRITE**(对话中)向用户展示 `01-plan.md` 和 `03-sdd.md` 核心内容 + 分期方案 + 自我约束预算
389
445
 
390
- 向用户展示 `01-plan.md` 和 `03-sdd.md` 的核心内容 + 分期方案(P1/P2) + 自我约束预算,等待确认。
446
+ **MATCH** `user_response`:
391
447
 
392
- - 用户确认 → **写入 checkpoint**:`current_step=Step 3, status=IN_PROGRESS, completed_steps 追加 H2`。继续 Step 3
393
- - 用户要求修改 → 回到 Step 2,根据反馈调整提示词后重新调度 specAgent
394
- - **Kill Switch**:如果用户认为任务不可行或范围不可接受 终止流程
448
+ - 用户确认 → **WRITE** checkpoint:`current_step=Step 3, completed_steps 追加 H2` → **GOTO** Step 3
449
+ - 用户要求修改 → **GOTO** Step 2(根据反馈调整后重新调度 specAgent
450
+ - Kill Switch(用户认为不可行/范围不可接受)→ 终止流程
395
451
 
396
452
  ### Step 3:调度 implAgent
397
453
 
398
- **REQUIRED SUB-SKILL:** `team-impl`
454
+ **ROUTE** `team-impl`
399
455
 
400
456
  调用方式取决于工具能力:
401
457
 
402
- - **Claude Code**:直接执行 `/team-impl`,在同一会话中运行
458
+ - **Claude Code**:直接执行 `/team-impl`
403
459
  - **支持 Agent tool 的工具**:通过 Agent tool 调度,传递以下 prompt
404
460
 
405
461
  ```
@@ -408,36 +464,50 @@ H1 确认后、specAgent 启动前,创建功能分支隔离本次任务的所
408
464
  任务 slug:{slug}
409
465
  模式:{完整 / --compact 精简}
410
466
  输入目录:docs/tasks/{slug}/(完整模式读取 01-05 + prompt-template.md;精简模式读取 03-sdd.md + 04-boundary.md)
411
- 约束:遵守 team-impl Skill 步骤;04-boundary.md 的 allow/deny 不可越界;遵循 TDD 红-绿-重构循环;P1 聚焦。
412
- TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功能点} (RED)),再 commit 实现(feat:/fix:)。编排器将在完成后验证 06-tdd-log.md 中 RED→GREEN 顺序和失败输出内容,不合格将回退。
467
+ 约束:遵守 team-impl Skill 步骤;04-boundary.md 的 allow/deny 不可越界;遵循 TDD 红-绿-重构循环;当期范围聚焦。
468
+ TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功能点} (RED)),再 commit 实现(feat:/fix:)。编排器将验证 06-tdd-log.md 中 RED→GREEN 顺序和失败输出,不合格将回退。
413
469
  回退上下文:{如有 testAgent/reviewAgent 的 bug 报告则附上,否则写"无"}
470
+ 回退修复要求:{如果是回退修复,写"修复遵循 TDD 循环,更新 06-tdd-log.md 和 08-ai-decisions.md,重新运行全量测试";首次调度写"无"}
414
471
 
415
472
  读取 skills/team-impl/SKILL.md 获取完整执行步骤。
416
473
  ```
417
474
 
418
- 等待 implAgent 完成。
475
+ **完成验证**(产出门禁):
419
476
 
420
- **完成验证**:确认 06-tdd-log.md / 07-prompt-log.md / 08-ai-decisions.md 已产出;测试通过;CI 检查通过。
477
+ **FOR** each file in [`06-tdd-log.md`, `07-prompt-log.md`, `08-ai-decisions.md`]:
421
478
 
422
- **TDD 证据验证**(Constitutional Rule #9 门禁):读取 `06-tdd-log.md`,对每个功能点块执行以下检查:
479
+ - **ASSERT** `文件存在` && `有效行数 >= 5`
480
+ - **ASSERT** `06-tdd-log.md` 至少包含一个 `RED` 段落标记
481
+ - 任一不通过 → **ROLLBACK** implAgent,指明缺失文件名
423
482
 
424
- 1. **顺序验证**:RED 段落出现在 GREEN 段落之前(按文档中的出现位置)
425
- 2. **失败输出验证**:RED 段落的"失败输出"字段非空,且包含错误关键词(FAIL / fail / Error / error / ✗ / FAILED)
426
- 3. **通过输出验证**:GREEN 段落的"通过输出"字段非空,且包含通过关键词(PASS / pass / OK / ✓ / ✅ / passed)
427
- 4. **时间递增验证**:RED 时间 < GREEN 时间 < REFACTOR 时间(如有)
428
- 5. **git 提交验证**:`git log --oneline` 中同一功能点存在 `test:` 提交
483
+ **测试/CI 门禁**:
429
484
 
430
- 任一项不通过回退 implAgent,附上具体不合格项及期望修正行为(如"功能点 X RED 段落缺失失败输出,请删除实现代码从 RED 重新开始")。
485
+ **EXEC** 项目测试和 CI 检查命令 **ASSERT** `exit_code == 0` && `failures == 0`
431
486
 
432
- **写入 checkpoint**:`current_step=Step 4, next_step=Step 5, phase=impl, status=IN_PROGRESS, completed_steps 追加 Step 3`
487
+ - **IF** implAgent 已在 `06-tdd-log.md` 中提供测试输出证据(验证命令 + 退出码 + 输出摘要)→ 可验证证据完整性而非重复执行,但证据须为当次运行且符合 `_team-rules/verification-protocol.md` 结构
488
+ - **IF** `exit_code != 0` → **ROLLBACK** implAgent,附失败输出和具体失败项
489
+
490
+ **TDD 证据验证**(Constitutional Rule #9 门禁):
491
+
492
+ **READ** `06-tdd-log.md` → **FOR** each `feature_block`:
493
+
494
+ 1. **ASSERT** `RED 位置 < GREEN 位置`
495
+ 2. **ASSERT** `RED.失败输出` 非空 && `RED.失败输出` 包含 `FAIL|fail|Error|error|✗|FAILED`
496
+ 3. **ASSERT** `GREEN.通过输出` 非空 && `GREEN.通过输出` 包含 `PASS|pass|OK|✓|✅|passed`
497
+ 4. **ASSERT** `RED.时间 <= GREEN.时间` && `GREEN.时间 <= REFACTOR.时间`
498
+ 5. **EXEC** `git log --oneline` → **ASSERT** `test:` 提交数 >= `06-tdd-log.md` 功能点数
499
+
500
+ 任一项不通过 → **ROLLBACK** implAgent,附具体不合格项及期望修正行为。
501
+
502
+ **WRITE** checkpoint:`current_step=Step 4, next_step=Step 5, phase=impl, completed_steps 追加 Step 3`
433
503
 
434
504
  ### Step 4:调度 testAgent
435
505
 
436
- **REQUIRED SUB-SKILL:** `team-test`
506
+ **ROUTE** `team-test`
437
507
 
438
508
  调用方式取决于工具能力:
439
509
 
440
- - **Claude Code**:直接执行 `/team-test`,在同一会话中运行
510
+ - **Claude Code**:直接执行 `/team-test`
441
511
  - **支持 Agent tool 的工具**:通过 Agent tool 调度,传递以下 prompt
442
512
 
443
513
  ```
@@ -451,27 +521,37 @@ TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功
451
521
  读取 skills/team-test/SKILL.md 获取完整执行步骤。
452
522
  ```
453
523
 
454
- 等待 testAgent 完成。
524
+ **完成验证**(产出门禁):
525
+
526
+ **FOR** each file in [`09-test-matrix.md`, `10-test-report.md`]:
527
+
528
+ - **ASSERT** `文件存在` && `有效行数 >= 5`
529
+ - **ASSERT** `10-test-report.md` 包含测试输出证据(含退出码)
530
+ - 任一不通过 → **ROLLBACK** testAgent,指明缺失文件名
531
+
532
+ **READ** `10-test-report.md` 中 testAgent 路由决策(→ reviewAgent / → implAgent / → specAgent / → **H3**)
455
533
 
456
- **完成验证**:确认 09-test-matrix.md / 10-test-report.md 已产出;获取路由决策(→ reviewAgent / implAgent / → specAgent / → H3)。
534
+ **WRITE** checkpoint:`current_step=Step 5, next_step=Step 6, phase=test, completed_steps 追加 Step 4`
457
535
 
458
- **写入 checkpoint**:`current_step=Step 5, next_step=Step 6, phase=test, status=IN_PROGRESS, completed_steps 追加 Step 4`
536
+ **回退检查**(Constitutional Rule #7:同一 source→target 对回退 2 次):
459
537
 
460
- **回退检查**(遵守 Constitutional Rule #7:同一阶段回退 ≤ 2 次,按 source→target 对独立计数,计数持久化到 `.checkpoint.json`):如果 testAgent 报告发现 bug 或 spec 遗漏:
538
+ **IF** testAgent 报告发现 bug 或 spec 遗漏:
461
539
 
462
- - bug → **写入 checkpoint**:`current_step=Step 3(回退), status=IN_PROGRESS, rollback_counts test→impl +1`。回到 Step 3 重新调度 implAgent,传递 bug 上下文
463
- - spec 遗漏 → **写入 checkpoint**:`current_step=Step 2(回退), status=IN_PROGRESS, rollback_counts test→spec +1`。回到 Step 2 重新调度 specAgent,传递遗漏上下文
464
- - 同一阶段第 3 次回退**写入 checkpoint**:`current_step=H3, status=BLOCKED, pending_decision={问题描述}`。强制触发 H3,由人类决定是否继续
465
- - **Kill Switch**:如果发现任务不可行(如依赖不可用、技术方案不可行)→ **写入 checkpoint**(`status=BLOCKED`)后触发 H3 让人类决策是否终止
466
- - 人类需决策**写入 checkpoint**(`status=BLOCKED`)后触发 H3
540
+ **MATCH** `test_issue`:
541
+
542
+ - bug **WRITE** checkpoint:`rollback_counts testimpl +1` **ROLLBACK** implAgent(**GOTO** Step 3,附 bug 上下文)
543
+ - spec 遗漏 **WRITE** checkpoint:`rollback_counts test→spec +1` → **ROLLBACK** specAgent(**GOTO** Step 2,附遗漏上下文)
544
+ - 同一对第 3 次回退 **WRITE** checkpoint:`status=BLOCKED` → 强制 **H3**
545
+ - Kill Switch(任务不可行)→ **WRITE** checkpoint:`status=BLOCKED` → **H3**
546
+ - 人类需决策 → **WRITE** checkpoint:`status=BLOCKED` → **H3**
467
547
 
468
548
  ### Step 5:调度 reviewAgent
469
549
 
470
- **REQUIRED SUB-SKILL:** `team-review`
550
+ **ROUTE** `team-review`
471
551
 
472
552
  调用方式取决于工具能力:
473
553
 
474
- - **Claude Code**:直接执行 `/team-review`,在同一会话中运行
554
+ - **Claude Code**:直接执行 `/team-review`
475
555
  - **支持 Agent tool 的工具**:通过 Agent tool 调度,传递以下 prompt
476
556
 
477
557
  ```
@@ -486,98 +566,133 @@ TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功
486
566
  读取 skills/team-review/SKILL.md 获取完整执行步骤。
487
567
  ```
488
568
 
489
- 等待 reviewAgent 完成。
569
+ **完成验证**(产出门禁):
570
+
571
+ **FOR** each file in [`11-review.md`, `12-asset-update.md`, `13-retrospective.md`, `task-rules.md`]:
572
+
573
+ - **ASSERT** `文件存在` && `有效行数 >= 5`
574
+ - **ASSERT** `13-retrospective.md` 包含"新规则"或"本次沉淀"关键词
575
+ - 任一不通过 → **ROLLBACK** reviewAgent,指明缺失文件名
576
+
577
+ **READ** `11-review.md` 中 reviewAgent 修复/回退决策
490
578
 
491
- **完成验证**:确认 11-review.md / 12-asset-update.md / 13-retrospective.md / task-rules.md 已产出;获取修复/回退决策。
579
+ **WRITE** checkpoint:`current_step=Step 6, next_step=Step 7, phase=review, completed_steps 追加 Step 5`
492
580
 
493
- **写入 checkpoint**:`current_step=Step 6, next_step=Step 7, phase=review, status=IN_PROGRESS, completed_steps 追加 Step 5`
581
+ **回退检查**(Constitutional Rule #7:同一 source→target 对回退 2 次):
494
582
 
495
- **回退检查**(遵守 Constitutional Rule #7:同一阶段回退 ≤ 2 次,按 source→target 对独立计数,计数持久化到 `.checkpoint.json`):如果 reviewAgent 报告发现 P0/P1 bug 或 spec 遗漏:
583
+ **IF** reviewAgent 报告发现 P0/P1 bug 或 spec 遗漏:
496
584
 
497
- - bug → **写入 checkpoint**:`current_step=Step 3(回退), status=IN_PROGRESS, rollback_counts review→impl +1`。回到 Step 3 重新调度 implAgent,传递 bug 上下文
498
- - spec 遗漏 → **写入 checkpoint**:`current_step=Step 2(回退), status=IN_PROGRESS, rollback_counts review→spec +1`。回到 Step 2 重新调度 specAgent,传递遗漏上下文
499
- - 同一阶段第 3 次回退**写入 checkpoint**:`current_step=H3, status=BLOCKED, pending_decision={问题描述}`。强制触发 H3,由人类决定是否继续
500
- - **Kill Switch**:如果发现任务不可行(如依赖不可用、技术方案不可行)→ **写入 checkpoint**(`status=BLOCKED`)后触发 H3 让人类决策是否终止
501
- - 人类需决策**写入 checkpoint**(`status=BLOCKED`)后触发 H3
585
+ **MATCH** `review_issue`:
586
+
587
+ - bug **WRITE** checkpoint:`rollback_counts reviewimpl +1` **ROLLBACK** implAgent(**GOTO** Step 3,附 bug 上下文)
588
+ - spec 遗漏 **WRITE** checkpoint:`rollback_counts review→spec +1` → **ROLLBACK** specAgent(**GOTO** Step 2,附遗漏上下文)
589
+ - 同一对第 3 次回退 **WRITE** checkpoint:`status=BLOCKED` → 强制 **H3**
590
+ - Kill Switch → **WRITE** checkpoint:`status=BLOCKED` → **H3**
591
+ - 人类需决策 → **WRITE** checkpoint:`status=BLOCKED` → **H3**
502
592
 
503
593
  ### Step 6:补全团队级证据
504
594
 
505
- > **精简模式跳过此步**:`--compact` 模式下,Step 5 完成后直接进入 Step 7(finish-review 集成),不产出 14-team.md / 15-brief.md。checkpoint 中 `completed_steps` 不含 Step 6。
595
+ **IF** `mode == compact` 跳过此步,**GOTO** Step 7。checkpoint 中 `completed_steps` 不含 Step 6。
506
596
 
507
- 由编排器自己执行以下检查并产出 2 个文件。对于可并行的检查项,使用子 Agent 并行执行以提高效率。
597
+ > 由编排器自己执行以下检查并产出 2 个文件。
508
598
 
509
599
  #### 6.1 一致性自动化检查(先执行再写入 14-team.md)
510
600
 
511
- 1. **术语一致性**:从 `02-context.md` 提取术语表,grep 检查任务目录下所有文件中是否使用了不一致的别名
512
- 2. **文档格式**:检查任务目录下所有文件是否遵循统一的 Markdown 标题层级(# > ## > ###)
513
- 3. **commit message 规范**:`git log --oneline` 检查本次任务所有 commit 是否遵循 `type: description`
514
- 4. **AI 规范同步**:检查 reviewAgent 新增的规则是否与已有规则矛盾
515
- 5. **模块 AI 规范风格**:对比多个模块级 AI 规范文件是否结构一致
601
+ 1. **READ** `02-context.md` → 提取术语表 → **EXEC** `grep` 检查任务目录下所有文件中的不一致别名
602
+ 2. **EXEC** 检查任务目录下所有文件是否遵循统一 Markdown 标题层级
603
+ 3. **EXEC** `git log --oneline` **ASSERT** `commit_format` 遵循 `type: description`
604
+ 4. **READ** reviewAgent 新增规则 → **ASSERT** `新增规则` 与 `已有规则` 不矛盾
605
+ 5. **IF** 多个模块级 AI 规范文件存在 **ASSERT** `结构一致`
606
+ 6. **READ** 任务目录下所有文件 → **ASSERT** 来源标签使用一致 + 表格格式统一 + 引用块风格统一
516
607
 
517
- 对发现的不一致立即修复。
608
+ **IF** 发现不一致 → 立即修复。
518
609
 
519
610
  #### 6.2 确保每位成员有复盘
520
611
 
521
- 检查 `13-retrospective.md`。如果项目有多位贡献者(从 `git log --format='%an' | sort -u` 获取),确保每位成员都有独立的复盘段落或独立文件(`13-retrospective-{name}.md`)。
612
+ **READ** `13-retrospective.md` → **EXEC** `git log --format='%an' | sort -u` → **IF** 多位贡献者 → **ASSERT** 每位成员有独立复盘段落或独立文件。
522
613
 
523
614
  #### 文件 14:`14-team.md`
524
615
 
525
- 模板见 `references/14-team-template.md`。
616
+ **WRITE** `14-team.md`(模板见 `references/14-team-template.md`)。
526
617
 
527
- **独立作者场景**:如果项目仅有 1 位人类作者(配合 AI Agent 协作),§一 角色分工填写"用户 + AI Agent 团队",§三 个人贡献明细将用户的审查/确认决策也计入贡献,§四 交叉 Review 质量统计正常填写 reviewAgent 的审查数据。
618
+ **IF** 1 位人类作者 §一 角色分工填写"用户 + AI Agent 团队",§三 将用户审查/确认决策也计入贡献,§四 正常填写 reviewAgent 审查数据。
528
619
 
529
620
  #### 文件 15:`15-brief.md`
530
621
 
531
- 模板见 `references/15-brief-template.md`。填写方式:
622
+ **WRITE** `15-brief.md`(模板见 `references/15-brief-template.md`),填写方式:
532
623
 
533
- - §一 Elevator Pitch:从 01-plan.md 的目标 + 03-sdd.md 的方案 + 10-test-report.md 的结果提炼 3 句话
534
- - §二 关键决策:从 08-ai-decisions.md 挑选 2-3 个最重要的决策填入表格
535
- - §三 AI 协作亮点:从 07-prompt-log.md 的纠偏记录 + 06-tdd-log.md bug 发现中提取具体事例
536
- - §四 测试覆盖概要:从 09-test-matrix.md + 10-test-report.md 提取数据
537
- - §五 遗留风险:从 11-review.md §四 摘录
538
- - §六 改进承诺:从 13-retrospective.md §三 摘录
624
+ - §一 Elevator Pitch:从 `01-plan.md` + `03-sdd.md` + `10-test-report.md` 提炼 3 句话
625
+ - §二 关键决策:从 `08-ai-decisions.md` 挑选 2-3 个最重要决策
626
+ - §三 AI 协作亮点:从 `07-prompt-log.md` 纠偏记录 + `06-tdd-log.md` bug 发现中提取
627
+ - §四 测试覆盖概要:从 `09-test-matrix.md` + `10-test-report.md` 提取
628
+ - §五 遗留风险:从 `11-review.md` §四 摘录
629
+ - §六 改进承诺:从 `13-retrospective.md` §三 摘录
539
630
 
540
- **写入 checkpoint**:`current_step=Step 7, next_step=Step 7.3, phase=finish, status=IN_PROGRESS, completed_steps 追加 Step 6`
631
+ **WRITE** checkpoint:`current_step=Step 7, next_step=Step 7.3, phase=finish, completed_steps 追加 Step 6`
541
632
 
542
- ### Step 7:finish-review 集成
633
+ ### Step 7:分支完成处理
543
634
 
544
- > 在人类验收(Step 7.3)之前完成分支处理,确保用户验收时所有技术工作已就绪。如果 merge 失败或测试不通过,在此处解决——不让用户审批一个可能无法合并的交付物。
635
+ > 在人类验收前完成分支处理,确保用户验收时所有技术工作已就绪。
545
636
 
546
- 检查 reviewAgent 产出的 `12-asset-update.md` 中是否有 CHANGELOG.md 更新。如果 CHANGELOG.md 需要更新但尚未更新,在此处补全。
637
+ **READ** `12-asset-update.md` **IF** CHANGELOG.md 需要更新但尚未更新 补全。
547
638
 
548
- 调度 `team-finish` 完成分支处理:
639
+ **ROUTE** `team-finish`:
549
640
 
550
641
  - 传递 checkpoint 中的 `branch` 和 `base_branch` 信息
551
642
  - `team-finish` 将验证测试 → 展示选项(merge/PR/keep/discard)→ 执行用户选择
552
- - 如果用户选择 merge,合并后确认合并 commit 已推送
553
- - 如果用户选择 PR,确认 PR 已创建
554
- - 如果用户选择 keep/discard,记录用户决策
555
643
 
556
- **写入 checkpoint**:`current_step=Step 7.3, next_step=Step 7.5, phase=finish, status=IN_PROGRESS, completed_steps 追加 Step 7`
644
+ **IF** `team-finish` 报告测试不通过 **ROLLBACK** implAgent(附失败详情),修复完成后 **GOTO** Step 7
645
+
646
+ **MATCH** `finish_result`:
647
+
648
+ - merge → **ASSERT** `merge_commit 存在`
649
+ - PR → **ASSERT** `PR 已创建`
650
+ - keep/discard → 记录用户决策
557
651
 
558
- ### Step 7.3:H4 人类验收 + P2 决策
652
+ **WRITE** checkpoint:`current_step=Step 7.3, next_step=Step 7.5, phase=finish, completed_steps 追加 Step 7`
559
653
 
560
- 向用户展示交付物清单、代码 diff 摘要,等待验收(设置 30 分钟超时提醒)。完整模式还展示 14-team.md 15-brief.md 核心内容;精简模式展示 11-review.md 审查结论和 13-retrospective.md 改进承诺。
654
+ ### Step 7.3:H4 人类验收 + 分期决策
561
655
 
562
- **交付清单验证**:如果 `docs/delivery-checklist.md` 存在,读取并检查 `- [ ]` 项是否已标记为 `- [x]`。未完成项列入 H4 展示内容,供用户判断是否放行或要求补全。
656
+ **WRITE**(对话中)向用户展示:交付物清单 + 代码 diff 摘要。
563
657
 
564
- - 用户验收通过**写入 checkpoint**:`current_step=Step 7.5, status=IN_PROGRESS, completed_steps 追加 H4`。继续
565
- - 用户不通过根据反馈回到对应 Agent
566
- - **P2 决策**:如果 spec 定义了 P2(候选增强),向用户展示 P2 建议 + 触发条件,由用户决定是否继续
658
+ - **IF** `mode == full` 还展示 `14-team.md` `15-brief.md` 核心内容
659
+ - **IF** `mode == compact` 展示 `11-review.md` 审查结论 + `13-retrospective.md` 改进承诺
660
+
661
+ **IF** `docs/delivery-checklist.md` 存在 → **READ** 检查 `- [ ]` 项完成情况 → 未完成项列入 H4 展示,供用户判断。
662
+
663
+ **MATCH** `user_decision`:
664
+
665
+ - 验收通过 → **WRITE** checkpoint:`completed_steps 追加 H4` → **GOTO** Step 7.5
666
+ - 验收不通过 → 根据反馈 **GOTO** 对应 Agent
667
+ - 后续分期决策(**IF** `01-plan.md` §二 定义了后续分期候选)→ **GOTO** 7.3.1:后续分期启动
668
+
669
+ #### 7.3.1:后续分期启动
670
+
671
+ > 用户验收通过后,如 `01-plan.md` 定义了后续分期候选,启动下一期任务。
672
+
673
+ 1. **WRITE**(对话中)候选项 + 触发条件给用户
674
+ 2. **IF** 用户批准 →
675
+ - **RESOLVE** 新 slug:取最大序号 +1,关键词追加 `-p{N}`
676
+ - **EXEC** 创建新目录 `docs/tasks/{新slug}/`
677
+ - **WRITE** 新 `.checkpoint.json`,含 `parent_slug` 指向上期
678
+ - **GOTO** Step 1(H1 简化为单句确认)
679
+ - specAgent 调度时额外传递上期 `01-plan.md` 候选表和 `03-sdd.md` 路径
567
680
 
568
681
  ### Step 7.5:归档与知识合并
569
682
 
570
- 用户验收通过后,执行以下知识沉淀:
683
+ > 用户验收通过后执行知识沉淀。
571
684
 
572
- 1. **规则合并**:将 `docs/tasks/{slug}/task-rules.md` 中标记为"可泛化"的规则,合并到项目级或模块级 AI 规范文件(CLAUDE.md / .cursor/rules/)
573
- 2. **SDD 快照归档**:如果项目维护了 `docs/specs/` 目录,将本次 `03-sdd.md` 的关键规格合并进去(增量模式则执行 delta 合并:ADDED 追加、MODIFIED 替换、REMOVED 删除;如有冲突以本次 SDD 为准并在 commit message 中注明)
574
- 3. **进度账本更新**:在 `docs/tasks/progress.md`(**注意是 `docs/tasks/` 根目录,不是 slug 子目录**)追加本次任务记录
685
+ 1. **READ** `docs/tasks/{slug}/task-rules.md` → **WRITE** 标记为"可泛化"的规则到项目级/模块级 AI 规范文件
686
+ 2. **IF** 项目维护 `docs/specs/` 目录 → **WRITE** 本次 `03-sdd.md` 关键规格合并进去
687
+ - **IF** 增量模式 执行 delta 合并(ADDED 追加、MODIFIED 替换、REMOVED 删除)
688
+ - **IF** 冲突 → 以本次 SDD 为准,在 commit message 中注明
689
+ 3. **WRITE** `docs/tasks/progress.md`(**注意是 `docs/tasks/` 根目录**)追加:
575
690
 
576
691
  ```markdown
577
692
  | {slug} | {YYYY-MM-DD} | {DONE/DONE_WITH_CONCERNS} | {起始commit..结束commit} | {一句话摘要} |
578
693
  ```
579
694
 
580
- 4. **关联更新**:如果本次变更影响了 AGENTS.md 中的架构描述,同步更新
695
+ 4. **IF** 本次变更影响 AGENTS.md 架构描述 → **WRITE** 同步更新
581
696
 
582
697
  **进度账本模板**(首次创建时使用):
583
698
 
@@ -592,90 +707,100 @@ TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功
592
707
 
593
708
  ### Step 8:最终质量检查
594
709
 
595
- **模式判断**:读取 `.checkpoint.json` 的模式字段。精简模式下:标注 `[完整模式]` 的检查项跳过,标注 `[精简替代]` 的检查项替换原项,D5 整组跳过。仅当剩余检查项全部通过时才声明质量检查通过。
710
+ **RESOLVE** `mode`:**READ** `.checkpoint.json` 模式字段。**IF** `mode == compact` → `[完整模式]` 项跳过,`[精简替代]` 项替换原项,D5 整组跳过。
711
+
712
+ **GATE** 全部检查项通过才可声明质量检查通过:
596
713
 
597
714
  **硬门槛(7 项全部必须通过):**
598
715
 
599
- - [ ] G1: `[完整模式]` 01-plan.md 包含目标澄清、上下文、阶段拆分、修改范围、验证计划。`[精简替代]` 03-sdd.md 包含任务目标和关键设计决策
600
- - [ ] G2: 04-boundary.md 有 allow/deny 两个方向
601
- - [ ] G3: 测试存在且有补充(09-test-matrix.md + 10-test-report.md + 测试代码)
602
- - [ ] G4: 代码通过项目 CI 全量检查,测试全部通过
603
- - [ ] G5: 项目 AI 规范中每条规则包含「触发条件 + 可执行指令」,不是空话
604
- - [ ] G6: `[完整模式]` 05-risk.md 有风险识别 + 11-review.md §四 有剩余风险说明。`[精简替代]` 11-review.md §四 有剩余风险说明
605
- - [ ] G7: `[完整模式]` 08-ai-decisions.md 能解释关键决策 + 15-brief.md 有决策解释表。`[精简替代]` 08-ai-decisions.md 能解释关键决策
716
+ - [ ] G1: `[完整模式]` **ASSERT** `01-plan.md` 包含目标澄清、上下文、阶段拆分、修改范围、验证计划。`[精简替代]` **ASSERT** `03-sdd.md` 包含任务目标和关键设计决策
717
+ - [ ] G2: **ASSERT** `04-boundary.md` 有 allow/deny 两个方向
718
+ - [ ] G3: **ASSERT** `09-test-matrix.md` + `10-test-report.md` + 测试代码存在
719
+ - [ ] G4: **EXEC** 项目 CI 全量检查 → **ASSERT** `exit_code == 0` && `failures == 0`
720
+ - [ ] G5: **ASSERT** 项目 AI 规范中每条规则包含「触发条件 + 可执行指令」
721
+ - [ ] G6: `[完整模式]` **ASSERT** `05-risk.md` 有风险识别 + `11-review.md` §四 有剩余风险说明。`[精简替代]` **ASSERT** `11-review.md` §四 有剩余风险说明
722
+ - [ ] G7: `[完整模式]` **ASSERT** `08-ai-decisions.md` 能解释关键决策 + `15-brief.md` 有决策解释表。`[精简替代]` **ASSERT** `08-ai-decisions.md` 能解释关键决策
606
723
 
607
724
  **D1 AI 协作资产沉淀(25 分):**
608
725
 
609
- - [ ] D1.1 分层组织:项目 AI 规范(项目级)+ 模块 AI 规范(模块级)+ task-rules.md(任务级)三层齐全
610
- - [ ] D1.2 内容覆盖:业务术语、架构、代码结构、接口约定、编码规范、测试要求、Review 标准、交付要求 8 类有对应文件。验证:CLAUDE.md 或 AGENTS.md 覆盖架构/代码结构/接口/编码规范;docs/review-checklist.md 含 ≥ 5 条可执行检查项;docs/delivery-checklist.md 完成率 ≥ 80%(`- [x]` 数 / 总 `- [` 数)。不满足 回退 reviewAgent 补建
611
- - [ ] D1.3 规则可执行:12-asset-update.md 中每条规则有「触发条件 + 可执行指令 + 示例」
612
- - [ ] D1.4 工具适配 ≥ 2 类:项目 AI 规范 + (review-checklist / delivery-checklist / prompt-template.md) 至少 2 种
613
- - [ ] D1.5 可维护性:项目 AI 规范有「资产维护机制」段落(更新触发条件 + 版本记录 + 复盘中新增规则)
726
+ - [ ] D1.1 **ASSERT** 分层组织:项目级 + 模块级 + task-rules.md 三层齐全
727
+ - [ ] D1.2 **ASSERT** 8 类内容覆盖(业务术语/架构/代码结构/接口/编码规范/测试/Review/交付有对应文件)。不满足**ROLLBACK** reviewAgent 补建
728
+ - [ ] D1.3 **ASSERT** `12-asset-update.md` 中每条规则有「触发条件 + 可执行指令 + 示例」
729
+ - [ ] D1.4 **ASSERT** 工具适配 ≥ 2
730
+ - [ ] D1.5 **ASSERT** 项目 AI 规范有「资产维护机制」段落
614
731
 
615
732
  **D2 AI 协作任务规划(25 分):**
616
733
 
617
- - [ ] D2.1 `[完整模式]` 目标澄清:01-plan.md 有成功标准 ≥ 3 条(每条含验证命令)+ 非目标 ≥ 2 条。`[精简替代]` 03-sdd.md §一 有明确目标描述
618
- - [ ] D2.2 `[完整模式]` 上下文选择:02-context.md 有必要引用 + 已排除上下文。`[精简替代]` 此项跳过(精简模式不产出 02-context.md)
619
- - [ ] D2.3 `[完整模式]` 任务拆分:01-plan.md 有探索→方案→实现→验证→总结 ≥ 5 阶段。`[精简替代]` 此项跳过
620
- - [ ] D2.4 执行约束:04-boundary.md 有 allow/deny + 依赖约束
621
- - [ ] D2.5 `[完整模式]` 验证风控:05-risk.md 有验证计划(具体命令 + 预期结果)+ 停下来问人条件 ≥ 3 个。`[精简替代]` 此项跳过(精简模式不产出 05-risk.md)
734
+ - [ ] D2.1 `[完整模式]` **ASSERT** `01-plan.md` 有成功标准 ≥ 3 + 非目标 ≥ 2 条。`[精简替代]` **ASSERT** `03-sdd.md` §一 有明确目标
735
+ - [ ] D2.2 `[完整模式]` **ASSERT** `02-context.md` 有必要引用 + 已排除上下文。`[精简替代]` 跳过
736
+ - [ ] D2.3 `[完整模式]` **ASSERT** `01-plan.md` ≥ 5 阶段拆分。`[精简替代]` 跳过
737
+ - [ ] D2.4 **ASSERT** `04-boundary.md` 有 allow/deny + 依赖约束
738
+ - [ ] D2.5 `[完整模式]` **ASSERT** `05-risk.md` 有验证计划 + 停下来问人条件 ≥ 3 个。`[精简替代]` 跳过
622
739
 
623
740
  **D3 AI 交付质量保障(27 分):**
624
741
 
625
- - [ ] D3.1 SDD 规格:03-sdd.md 含输入/输出/边界/异常/验收 Checklist
626
- - [ ] D3.2 TDD 流程:06-tdd-log.md 含红-绿-重构循环记录(RED 有失败输出在前,GREEN 有通过输出在后)+ git log 中同一功能点的 test: 提交早于 feat:/fix: 提交
627
- - [ ] D3.3 测试覆盖:09-test-matrix.md 四维矩阵(功能/边界/异常/代码),不仅限 Happy Path
628
- - [ ] D3.4 缺陷修复:06-tdd-log.md + 11-review.md 有修复记录
629
- - [ ] D3.5 Review 风险:11-review.md 含五维度审查 + §四剩余风险
742
+ - [ ] D3.1 **ASSERT** `03-sdd.md` 含输入/输出/边界/异常/验收 Checklist
743
+ - [ ] D3.2 **READ** `06-tdd-log.md` → **ASSERT** RED 有失败输出在前 + GREEN 有通过输出在后 + `git log` `test:` 提交早于 `feat:/fix:`
744
+ - [ ] D3.3 **ASSERT** `09-test-matrix.md` 四维矩阵(功能/边界/异常/代码)+ `10-test-report.md` §八 回归验证存在
745
+ - [ ] D3.4 **ASSERT** `06-tdd-log.md` + `11-review.md` 有修复记录
746
+ - [ ] D3.5 **ASSERT** `11-review.md` 含五维度审查 + §四剩余风险
630
747
 
631
748
  **D4 AI 使用过程与复盘(13 分):**
632
749
 
633
- - [ ] D4.1 Prompt 结构:07-prompt-log.md 每条含五要素(目标/上下文/边界/输出格式/验证标准)
634
- - [ ] D4.2 迭代纠偏:07-prompt-log.md 有纠偏前后对比
635
- - [ ] D4.3 过程可追溯:07-prompt-log.md + 08-ai-decisions.md 有关键过程记录
636
- - [ ] D4.4 个人复盘:13-retrospective.md 有 §二.5「本次沉淀的新规则」
637
- - [ ] D4.5 `[完整模式]` 答辩准备:15-brief.md 有 Elevator Pitch + 决策解释 + 亮点 + 测试覆盖概要 + 风险。`[精简替代]` 此项跳过(精简模式不产出 15-brief.md)
750
+ - [ ] D4.1 **ASSERT** `07-prompt-log.md` 每条含五要素
751
+ - [ ] D4.2 **ASSERT** `07-prompt-log.md` 每条含效果记录;**IF** 存在偏离 → 有纠偏前后对比
752
+ - [ ] D4.3 **ASSERT** `07-prompt-log.md` + `08-ai-decisions.md` 有关键过程记录
753
+ - [ ] D4.4 **ASSERT** `13-retrospective.md` 有「本次沉淀的新规则」
754
+ - [ ] D4.5 `[完整模式]` **ASSERT** `15-brief.md` 有 Elevator Pitch + 决策解释 + 亮点 + 测试覆盖 + 风险。`[精简替代]` 跳过
638
755
 
639
756
  **D5 团队协作表现(10 分):**
640
757
 
641
- > 精简模式下 D5 整组跳过(不产出 14-team.md / 15-brief.md)。
758
+ > 精简模式下 D5 整组跳过。
759
+
760
+ - [ ] D5.1 **ASSERT** `14-team.md` §一 有角色/负责人/职责/产出物
761
+ - [ ] D5.2 **ASSERT** `14-team.md` §二 一致性检查全部 ✅ 或已修复
762
+ - [ ] D5.3 **ASSERT** `14-team.md` §四 真实问题占比 > 0
763
+ - [ ] D5.4 **ASSERT** `14-team.md` §三 每位贡献者有明确产出物和提交数
642
764
 
643
- - [ ] D5.1 角色分工:14-team.md §一 有角色 / 负责人 / 职责 / 产出物
644
- - [ ] D5.2 资产一致:14-team.md §二 一致性检查全部 ✅ 或已修复
645
- - [ ] D5.3 交叉 Review:14-team.md §四 真实问题占比 > 0
646
- - [ ] D5.4 个人贡献:14-team.md §三 每位贡献者有明确产出物和提交数
765
+ **IF** `unchecked_items > 0` **GOTO** 对应 Agent 补全。
647
766
 
648
- 如有未通过项,回到对应 Agent 补全。
767
+ 全部通过 **WRITE** checkpoint:`status=DONE, completed_steps 追加 Step 7.5 和 Step 8`。
649
768
 
650
- **全部通过后写入 checkpoint**:`current_step=Step 8, status=DONE, completed_steps 追加 Step 7.5 和 Step 8`。此时且仅此时 `status` 设为 `DONE`(如有保留意见则设为 `DONE_WITH_CONCERNS`)。
769
+ > 此时且仅此时 `status` 设为 **DONE**(如有保留意见则设为 **DONE_WITH_CONCERNS**)。
651
770
 
652
771
  ## STOP Signals
653
772
 
654
- - 跳过 H1 或 H4
655
- - 延迟回退("先记着后面一起修")
656
- - 信任 Agent 的自我声明而不验证其产出
657
- - 超出预算却不砍范围
773
+ - **跳过** H1 或 H4 人类介入点
774
+ - **延迟**回退("先记着后面一起修")
775
+ - **信任** Agent 自我声明而不验证产出
776
+ - **超出**预算却不砍范围
658
777
 
659
- ## 自检门禁
778
+ ## Constitutional Rules 遵守
779
+
780
+ 引用 `_team-rules/constitutional-rules.md`。编排阶段尤其注意:
660
781
 
661
- 在报告完成状态前,执行以下自检:
782
+ - **Rule #1 人类介入是一等公民**:H1-H4 不可被任何 Agent 自动确认,"用户没回复就默认同意"是违规(FP-1)
783
+ - **Rule #2 有向图回退**:testAgent/reviewAgent 发现问题必须 **ROLLBACK** 对应 Agent,不可"先记着后面一起修"(FP-4)
784
+ - **Rule #7 回退次数上限**:同一 source→target 对回退 ≤ 2 次,第 3 次强制触发 **H3**(FP-1)
785
+ - **Rule #9 TDD 顺序不可逆**:implAgent 完成后必须验证 `06-tdd-log.md` 中 RED 在 GREEN 之前(FP-2)
786
+
787
+ ## 自检门禁
662
788
 
663
- - [ ] 完整模式:所有 17 个文件已产出(01-15 + prompt-template + task-rules);精简模式:核心文件已产出(03-sdd + 04-boundary + 06-tdd-log + 07-prompt-log + 08-ai-decisions + 09-test-matrix + 10-test-report + 11-review + 12-asset-update + 13-retrospective + task-rules)
664
- - [ ] H1 和 H4 经过人类确认,未被跳过(完整模式还需确认 H2;精简模式需确认 H2 单句确认已执行)
665
- - [ ] 回退计数未超过上限(同一阶段 ≤ 2 次)
666
- - [ ] Step 8 质量检查全部通过
667
- - [ ] CHANGELOG.md 已更新(如 reviewAgent 要求)
668
- - [ ] 进度账本已更新
789
+ - [ ] **IF** 完整模式 **ASSERT** 17 个文件已产出;**IF** 精简模式 **ASSERT** 核心文件已产出
790
+ - [ ] **ASSERT** H1 和 H4 经过人类确认(完整模式还需 H2;精简模式需 H2 单句确认)
791
+ - [ ] **ASSERT** 回退计数未超上限(同一对 ≤ 2 次)
792
+ - [ ] **ASSERT** Step 8 质量检查全部通过
793
+ - [ ] **IF** reviewAgent 要求 → **ASSERT** CHANGELOG.md 已更新
794
+ - [ ] **ASSERT** 进度账本已更新
669
795
 
670
796
  ## 完成标志
671
797
 
672
- ```
673
- Team 全流程完成 ✅
674
- 产出目录:docs/tasks/{slug}/
675
- 模式:{完整模式 / 精简模式}
676
- 文件总数:完整模式 17 个文档(01-15 + prompt-template + task-rules);精简模式 11 个文档(03-04 + 06-13 + task-rules)
677
- 全部质量检查通过
678
- ```
798
+ **MATCH** `result`:
799
+
800
+ - 全流程完成 + 质量检查通过 → **DONE**(`模式: {完整/精简}`, `文件: {17/11}`, `质量检查: pass`)
801
+ - 完成但有保留意见 → **DONE_WITH_CONCERNS**(`concerns: [...]`)
802
+ - 缺少关键上下文 **NEEDS_CONTEXT**
803
+ - 被阻塞(Kill Switch / 人类决策)→ **BLOCKED** → **H3**
679
804
 
680
805
  ## 集成关系
681
806