team-skills 1.2.0 → 1.2.2

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.
package/README.md CHANGED
@@ -149,7 +149,7 @@ npx team-skills@latest update
149
149
  /team-orchestrator 实现用户登录功能
150
150
  ```
151
151
 
152
- 编排器自动完成:H1 确认目标 → specAgent 产出 SDD → H2 确认规格 → implAgent TDD 实现 → testAgent 四维测试 → reviewAgent 五维审查 → H4 验收交付
152
+ 编排器自动完成:H1 确认目标 → specAgent 产出 SDD → H2 确认规格 → implAgent TDD 实现 → testAgent 四维测试 → reviewAgent 五维审查 → 分支完成处理 → H4 验收交付
153
153
 
154
154
  简单任务可用精简模式:
155
155
 
@@ -180,22 +180,26 @@ npx team-skills@latest update
180
180
  flowchart TD
181
181
  classDef human fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:#1565c0;
182
182
  classDef agent fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c;
183
+ classDef git fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1b5e20;
183
184
  classDef kill fill:#ffebee,stroke:#c62828,stroke-width:2px,stroke-dasharray: 5 5,color:#b71c1c;
184
185
 
185
186
  START(("用户提出需求"))
186
187
  H1["H1: 人类确认目标理解<br/>← 人类介入点 #1"]:::human
188
+ BRANCH["创建功能分支<br/>{slug} 分支"]:::git
187
189
  SPEC["specAgent — 规格制定<br/>产出 01-05 + prompt-template<br/>Socratic 提问 → SDD 规格"]:::agent
188
190
  H2["H2: 人类确认规格方案<br/>← 人类介入点 #2"]:::human
189
191
  IMPL["implAgent — TDD 实现<br/>红-绿-重构循环<br/>增量提交 + 决策记录"]:::agent
190
192
  TEST["testAgent — 四维测试<br/>功能/边界/异常/代码分支"]:::agent
191
193
  REVIEW["reviewAgent — 五维审查<br/>资产沉淀 + 复盘"]:::agent
194
+ FINISH["team-finish — 分支完成<br/>merge / PR / keep"]:::git
192
195
  H4["H4: 人类验收交付物<br/>← 人类介入点 #4"]:::human
193
196
  H3("H3: 人类介入 #3<br/>阻塞 / 决策 / Kill Switch"):::human
194
197
 
195
198
  START --> H1
196
- H1 -->|确认| SPEC
199
+ H1 -->|确认| BRANCH
197
200
  H1 -->|不确认| START
198
201
 
202
+ BRANCH --> SPEC
199
203
  SPEC --> H2
200
204
  H2 -->|确认| IMPL
201
205
  H2 -->|不确认| SPEC
@@ -208,16 +212,18 @@ flowchart TD
208
212
  TEST -->|spec 遗漏| SPEC
209
213
  TEST -.->|不可行| H3
210
214
 
211
- REVIEW -->|无问题| H4
215
+ REVIEW -->|无问题| FINISH
212
216
  REVIEW -->|P0/P1| IMPL
213
217
  REVIEW -->|spec 遗漏| SPEC
214
218
  REVIEW -.->|不可行| H3
215
219
 
220
+ FINISH --> H4
216
221
  H4 -->|验收通过| DONE(("完成 ✅"))
217
222
  H4 -->|不通过| IMPL
218
223
  ```
219
224
 
220
225
  > H3 可在**任何阶段**触发,包括:发现任务不可行(Kill Switch)、回退超限、或需要人类决策的复杂问题。
226
+ > 功能分支在 H1 确认后自动创建,在 Review 通过后由 team-finish 处理(merge/PR/keep/discard)。
221
227
 
222
228
  ---
223
229
 
@@ -250,9 +256,7 @@ graph TD
250
256
  ORCH -.->|自动调度| IMPL
251
257
  ORCH -.->|自动调度| TEST
252
258
  ORCH -.->|自动调度| REVIEW
253
- ORCH -.->|自动调度| FB
254
259
  ORCH -.->|自动调度| FINISH
255
- ORCH -.->|自动调度| VERIFY
256
260
  ```
257
261
 
258
262
  **使用说明:**
@@ -272,7 +276,7 @@ graph TD
272
276
  | `team-impl` | TDD 红-绿-重构循环实现 | "规格有了,开始写代码" |
273
277
  | `team-test` | 四维测试矩阵 + 补充测试 | "测试覆盖够吗?" |
274
278
  | `team-review` | 五维审查 + 资产沉淀 + 复盘 | "代码质量如何?" |
275
- | `team-orchestrator` | 有向图流程编排,4 个人类介入点 | "我要完整交付流水线" |
279
+ | `team-orchestrator` | 有向图流程编排 + 分支管理,4 个人类介入点 | "我要完整交付流水线" |
276
280
  | `team-verify` | 5 步验证门禁,杜绝虚假通过 | "测试真的过了吗?" |
277
281
  | `team-debug` | 四阶段根因分析 + 修复 | "这个 bug 怎么回事?" |
278
282
  | `team-feedback` | 先验证再实施,非表演性同意 | "Review 反馈来了" |
@@ -283,30 +287,63 @@ graph TD
283
287
 
284
288
  ---
285
289
 
286
- ## 📋 每个任务最多产出 18 个结构化文档
290
+ ## 📋 结构化文档体系
291
+
292
+ 团队协作过程中产出的所有文档,统一存放在 `docs/` 目录下:
287
293
 
288
294
  ```
289
- docs/tasks/{slug}/
290
- ├── 00-design-brief.md # 设计概要(team-brainstorm 产出,可选)
291
- ├── 01-plan.md # 任务规划(目标 + 分期 + 预算)
292
- ├── 02-context.md # 上下文选择(术语 + 引用 + 排除)
293
- ├── 03-sdd.md # SDD 规格(七部分完整)
294
- ├── 04-boundary.md # 修改边界(allow + deny)
295
- ├── 05-risk.md # 风险 + 验证计划
296
- ├── prompt-template.md # AI 任务提示词模板
297
- ├── 06-tdd-log.md # TDD 日志(红-绿-重构循环)
298
- ├── 07-prompt-log.md # Prompt 工程记录(五要素 + 纠偏)
299
- ├── 08-ai-decisions.md # AI 决策记录(选择 + 拒绝 + 理由)
300
- ├── 09-test-matrix.md # 四维测试矩阵
301
- ├── 10-test-report.md # 测试运行报告(证据链)
302
- ├── 11-review.md # 代码审查报告(五维度 + 合规)
303
- ├── 12-asset-update.md # 资产更新记录(消费方契约)
304
- ├── 13-retrospective.md # 个人复盘(新规则沉淀)
305
- ├── task-rules.md # 任务级规则
306
- ├── 14-team.md # 团队协作记录
307
- └── 15-brief.md # 答辩提纲
295
+ docs/
296
+ ├── tasks/ # 任务文档(核心目录)
297
+ ├── progress.md # 进度账本 所有任务的状态追踪表
298
+ │ │
299
+ ├── {NNNN}-{keyword}/ # 单个任务目录(最多产出 18 个结构化文档)
300
+ │ │ ├── 00-design-brief.md # 设计概要(team-brainstorm 产出,可选)
301
+ │ │ ├── 01-plan.md # 任务规划(目标 + 分期 + 预算)
302
+ │ │ ├── 02-context.md # 上下文选择(术语 + 引用 + 排除)
303
+ │ │ ├── 03-sdd.md # SDD 规格(七部分完整)
304
+ │ │ ├── 04-boundary.md # 修改边界(allow + deny)
305
+ │ │ ├── 05-risk.md # 风险 + 验证计划
306
+ │ │ ├── prompt-template.md # AI 任务提示词模板
307
+ │ │ ├── 06-tdd-log.md # TDD 日志(红-绿-重构循环)
308
+ │ │ ├── 07-prompt-log.md # Prompt 工程记录(五要素 + 纠偏)
309
+ │ │ ├── 08-ai-decisions.md # AI 决策记录(选择 + 拒绝 + 理由)
310
+ │ │ ├── 09-test-matrix.md # 四维测试矩阵
311
+ │ │ ├── 10-test-report.md # 测试运行报告(证据链)
312
+ │ │ ├── 11-review.md # 代码审查报告(五维度 + 合规)
313
+ │ │ ├── 12-asset-update.md # 资产更新记录(消费方契约)
314
+ │ │ ├── 13-retrospective.md # 个人复盘(新规则沉淀)
315
+ │ │ ├── task-rules.md # 任务级规则
316
+ │ │ ├── 14-team.md # 团队协作记录
317
+ │ │ └── 15-brief.md # 答辩提纲
318
+ │ │
319
+ │ └── ... # 更多任务目录
320
+
321
+ ├── review-checklist.md # Review 检查清单(项目级,跨任务累积)
322
+ ├── delivery-checklist.md # 交付检查清单(项目级,跨任务累积)
323
+ └── specs/ # SDD 归档(任务验收通过后存档)
308
324
  ```
309
325
 
326
+ ### 文档职责分层
327
+
328
+ | 层级 | 目录 | 生命周期 | 说明 |
329
+ |------|------|----------|------|
330
+ | **进度追踪** | `tasks/progress.md` | 持续更新 | 防止跨 session 任务重复派发,记录所有任务状态 |
331
+ | **任务文档** | `tasks/{slug}/` | 随任务创建 | 每个任务独立目录,slug 格式 `{NNNN}-{keyword}` |
332
+ | **项目级清单** | `review-checklist.md` | 跨任务累积 | 每次 Review 发现新检查项后追加,持续积累 |
333
+ | **项目级清单** | `delivery-checklist.md` | 跨任务累积 | 每次交付发现新检查项后追加,持续积累 |
334
+ | **规格归档** | `specs/` | 验收后存档 | SDD 快照归档,供后续任务参考 |
335
+
336
+ ### 任务文档产出阶段
337
+
338
+ | 阶段 | 产出文件 | 负责 Skill |
339
+ |------|----------|------------|
340
+ | 头脑风暴 | `00-design-brief.md` | `team-brainstorm` |
341
+ | 规格设计 | `01-plan.md` ~ `05-risk.md` + `prompt-template.md` | `team-spec` |
342
+ | TDD 实现 | `06-tdd-log.md` ~ `08-ai-decisions.md` | `team-impl` |
343
+ | 测试审计 | `09-test-matrix.md` ~ `10-test-report.md` | `team-test` |
344
+ | 代码审查 | `11-review.md` ~ `13-retrospective.md` + `task-rules.md` | `team-review` |
345
+ | 团队交付 | `14-team.md` + `15-brief.md` | `team-orchestrator` |
346
+
310
347
  ---
311
348
 
312
349
  ## 🔧 兼容性
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "team-skills",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "AI Agent Skills framework — Spec-Driven development with directed-graph rollback and quality gates",
5
5
  "type": "module",
6
6
  "bin": {
@@ -6,7 +6,7 @@
6
6
 
7
7
  > 每条规则追溯到 `_team-rules/first-principles.md` 中的第一性原理(FP-1 ~ FP-4)。
8
8
 
9
- 1. **人类介入是一等公民** — H1-H4 必须暂停等待确认(精简模式下 H1 可简化为单句确认,H2 可跳过,但 H1 和 H4 不可省略)
9
+ 1. **人类介入是一等公民** — H1-H4 必须暂停等待确认(精简模式下 H1 H2 可简化为单句确认,但 H1 和 H4 不可省略)
10
10
  - **为什么(FP-1)**:AI 的价值在于放大人类判断力而非替代它。跳过人类介入 = 让放大器在无信号源时自激振荡
11
11
  2. **有向图回退** — 发现问题必须回退,禁止"先记着后面修"
12
12
  - **为什么(FP-4)**:声明不等于事实。"后面修"是一种声明——承诺未来会修复,但没有任何证据保证。问题在发现时最容易定位,延迟修复使上下文流失
@@ -14,7 +14,7 @@
14
14
  - **为什么(FP-4)**:Agent 会无意识地将"我认为通过了"当作"确实通过了"。自我声明是零信息量信号
15
15
  4. **Kill Switch** — 不可行必须立即暂停,禁止"先做做看"
16
16
  - **为什么(FP-1 + FP-3)**:人类认知是稀缺资源——在错误方向上投入的每一分钟都是浪费。复杂度是质量的敌人——在不可行的基础上堆叠更多工作只会使失败更难诊断
17
- 5. **分期交付优先** — 复杂任务必须 P1+P2,禁止一次性全量交付
17
+ 5. **分期交付优先** — 复杂任务必须 P1+P2,禁止一次性全量交付。复杂度判定参考 `team-orchestrator` 的任务规模分级:修改文件 > 3 且有跨模块影响即为 Medium 以上,应分期
18
18
  - **为什么(FP-3)**:复杂度是质量的敌人。一次性全量交付使得任何单点失败都阻塞整体验收。分期交付将风险隔离到每期的边界内
19
19
  6. **自我约束预算** — 超出即砍范围,不放宽预算
20
20
  - **为什么(FP-3)**:预算是复杂度的量化边界。放宽预算 = 主动邀请复杂度增长
@@ -14,5 +14,6 @@
14
14
  ## 如何使用第一性原理
15
15
 
16
16
  - **规则冲突时**:回溯到第一性原理裁决。例如 "精简模式要不要跳过 H4?" → FP-1 说人类认知是稀缺资源但关键决策不可替代 → H4 不可跳过
17
+ - **两条原理冲突时**:优先保护人类认知(FP-1)和事实验证(FP-4),因为它们的违反后果不可逆。FP-2(实现偏见)和 FP-3(复杂度)可在 FP-1/FP-4 约束内灵活权衡
17
18
  - **规则缺失时**:从第一性原理推导。例如 "调试时要不要写测试?" → FP-2 说实现偏见污染验证 → 先写回归测试再修复
18
19
  - **规则过度时**:如果一条规则无法追溯到任何第一性原理,它可能是官僚主义而非工程纪律 → 应当简化或删除
@@ -1,10 +1,14 @@
1
1
  # 完成状态协议(四态)
2
2
 
3
- > 共享规则文件。每个 Agent 完成后 MUST 报告以下状态之一。
4
-
5
- | 状态 | 含义 | 编排器动作 |
6
- | ---- | ---- | ---------- |
7
- | **DONE** | 全部完成,无遗留 | 继续下一步 |
8
- | **DONE_WITH_CONCERNS** | 已完成但有保留意见 | 展示担忧,用户决定 |
9
- | **NEEDS_CONTEXT** | 缺少关键上下文 | 回退或触发 H3 |
10
- | **BLOCKED** | 被阻塞 | 触发 H3 人类介入 |
3
+ > 共享规则文件。所有 Team Skill 的「完成标志」章节统一使用本协议定义的四态状态。每个 Agent 完成后 MUST 报告以下状态之一。
4
+
5
+ | 状态 | 含义 | 判定标准 | 编排器动作 |
6
+ | ---- | ---- | -------- | ---------- |
7
+ | **DONE** | 全部完成,无遗留 | 所有自检门禁通过 + 无 P0/P1 未解决 + 无待人类决策项 | 继续下一步 |
8
+ | **DONE_WITH_CONCERNS** | 已完成但有保留意见 | 自检门禁通过,但存在以下任一情况:P2 问题记录但未修复、验证工具不可用改用手动验证、实现方案可行但非最优、发现了超出本任务范围的潜在风险 | 展示担忧,用户决定 |
9
+ | **NEEDS_CONTEXT** | 缺少关键上下文 | 无法继续执行:缺少输入文件、缺少验证命令、依赖信息不明确 | 回退或触发 H3 |
10
+ | **BLOCKED** | 被阻塞 | 遇到不可自行解决的问题:技术不可行、回退次数超限、需要人类决策 | 触发 H3 人类介入 |
11
+
12
+ ## 与 checkpoint `status` 的关系
13
+
14
+ 四态协议定义的是**单个 Agent 完成时的报告状态**。`team-orchestrator` 的 `.checkpoint.json` 中 `status` 字段额外包含 `IN_PROGRESS` 状态,用于表示**任务整体仍在执行中**。`IN_PROGRESS` 不属于 Agent 完成状态,仅用于 checkpoint 断点续传。
@@ -6,7 +6,11 @@
6
6
 
7
7
  ```
8
8
 
9
- 1. 确定验证命令(从项目 AI 规范文件或 05-risk.md 获取)
9
+ 1. 确定验证命令(按优先级从高到低获取):
10
+ - 05-risk.md §一验证计划
11
+ - CLAUDE.md / .cursor/rules/ 中的测试命令
12
+ - package.json scripts / Makefile / Cargo.toml 中的 test/lint 脚本
13
+ - 以上均无 → 状态标记为 NEEDS_CONTEXT,请求用户提供验证命令
10
14
  - 如果项目无测试/lint/CI 命令:在 10-test-report.md 中标注「项目无自动化验证命令」,改用手动验证(截图、curl 输出、日志对比等可复现证据),不可跳过验证
11
15
  2. 执行命令——不使用缓存结果,不引用上一轮输出
12
16
  3. 完整阅读输出——不截断,不跳过 warning
@@ -36,7 +40,7 @@
36
40
 
37
41
  1. 记录失败原因和错误输出
38
42
  2. 尝试修复环境问题后重新执行(最多 2 次)
39
- 3. 仍然失败 → 状态标记为 BLOCKED,触发 H3 由人类决定是否跳过该验证项
43
+ 3. 仍然失败 → 状态标记为 BLOCKED,触发 H3 由人类决定下一步(跳过该验证项意味着状态不可为 DONE,只能为 DONE_WITH_CONCERNS)
40
44
  4. 不可将"工具失败"等同于"验证通过"
41
45
 
42
46
  ## Iron Law
@@ -17,13 +17,13 @@ description: Use when requirements are fuzzy, need to discuss and form a plan be
17
17
  你是一个 Team brainstorm 引导者。你的任务是:
18
18
 
19
19
  1. 探索项目上下文,理解现状
20
- 2. 逐个提问澄清需求(每次 1 个问题)
20
+ 2. 提出关键问题澄清需求(一次性展示最多 3 个问题,等待用户一次回复)
21
21
  3. 提出 2-3 个方案并比较
22
22
  4. 展示设计,等待用户确认
23
23
  5. 创建任务目录,产出 00-design-brief.md
24
24
  6. 可选 handoff 到 team-spec 或 team-impl
25
25
 
26
- 关键区别:你不是在写方案,你是在引导讨论。不要一次抛出所有问题。用户没确认之前不能进入实现阶段。每次只问一个问题,等回复后再问下一个。
26
+ 关键区别:你不是在写方案,你是在引导讨论。不要一次抛出所有分析。用户没确认之前不能进入实现阶段。
27
27
  ```
28
28
 
29
29
  ### 推理指引
@@ -73,9 +73,9 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
73
73
  4. 评估范围:如果需求包含多个独立子系统,先帮助用户分解
74
74
  5. 生成 `{slug}`:扫描 `docs/tasks/` 已有目录取最大序号 +1,创建 `docs/tasks/{slug}/` 目录
75
75
 
76
- ### Phase 2:需求澄清(逐个提问)
76
+ ### Phase 2:需求澄清(一次性提问)
77
77
 
78
- 每次 1 个问题,优先用选项形式,最多 3 个问题:
78
+ 一次性向用户展示最多 3 个关键问题(优先用选项形式),等待用户一次回复:
79
79
 
80
80
  - 目标优先级:"以下哪个是最重要的目标?A) ... B) ... C) ..."
81
81
  - 边界确认:"以下范围是否正确?是否需要排除某些模块?"
@@ -182,8 +182,6 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
182
182
 
183
183
  ## STOP Signals
184
184
 
185
- 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
186
-
187
185
  - 跳过代码库探索,凭空设计方案
188
186
  - 一次抛出所有问题,不等用户逐个回复
189
187
  - 方案对比只提供一个选项,没有备选方案
@@ -201,8 +199,3 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
201
199
  - `team-impl` — 仅当用户明确要求跳过规格阶段时可直接实现
202
200
 
203
201
  > **终端状态**:讨论完成后,默认调用 `team-spec {slug}` 进行规格定义。仅当用户**显式要求**跳过规格阶段时,才可直接进入 `team-impl`。
204
-
205
- ## 下一步
206
-
207
- - 产出 `00-design-brief.md` 后,推荐使用 `team-spec {slug}` 进行规格定义(默认路径)
208
- - 仅当用户明确要求跳过规格时,可直接使用 `team-impl` 进行 TDD 实现
@@ -87,15 +87,26 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
87
87
  - 怀疑的架构问题(如:模块耦合、数据流错误、设计模式不匹配)
88
88
  - 建议的下一步方向(如:重新设计模块、引入新依赖、重构接口)
89
89
 
90
- ### Phase 5:系统调试找不到根因时
90
+ ### Phase 5:根因未能确定时的处理(回退门禁)
91
91
 
92
- 如果系统调试后仍然找不到根因(环境问题、时序依赖、外部因素):
92
+ 如果经过 Phase 1-4 调试后仍然找不到根因(环境问题、时序依赖、外部因素),在声明"找不到根因"之前必须通过以下门禁:
93
93
 
94
- 1. 你已经完成了调试流程——记录已调查的内容
94
+ **声明"找不到根因"的最低门槛**(全部满足才可声明):
95
+
96
+ - [ ] 完整阅读了错误信息(含 stack trace 全文)
97
+ - [ ] 稳定复现了问题(≥ 3 次)
98
+ - [ ] 检查了 `git log` 最近 10 次提交的变更
99
+ - [ ] 对比了 ≥ 1 个正常工作的相似实现
100
+ - [ ] 添加了 ≥ 5 个诊断日志/断言
101
+
102
+ > **警告**:95% 的"找不到根因"情况是不完整的调查。门槛未全部满足时,回到 Phase 1 继续调查。
103
+
104
+ 门槛通过后:
105
+
106
+ 1. 记录已调查的内容和排除的假设
95
107
  2. 实施适当的防护措施(重试、超时、错误处理、日志记录)
96
108
  3. 添加监控/日志以便未来调查
97
-
98
- > **警告**:95% 的"找不到根因"情况是不完整的调查。在声明"找不到根因"之前,确认你已经:完整阅读了错误信息、稳定复现了问题、检查了最近变更、对比了工作示例。
109
+ 4. 状态标记为 `DONE_WITH_CONCERNS`,附带已排除的假设列表
99
110
 
100
111
  ## 用户信号识别
101
112
 
@@ -114,8 +125,9 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
114
125
  引用 `_team-rules/constitutional-rules.md`。调试阶段尤其注意:
115
126
 
116
127
  - **Rule #9 TDD 顺序不可逆**:修复 bug 必须先写失败的回归测试再写修复代码(FP-2)
117
- - **Rule #3 产出必须验证**:修复完成后必须运行验证协议,不可仅凭"修改了代码"就声明修复(FP-4)
128
+ - **Rule #3 产出必须验证**:修复完成后必须执行 `_team-rules/verification-protocol.md` 的 5 个步骤,不可仅凭"修改了代码"就声明修复(FP-4)
118
129
  - **Rule #7 回退次数上限**:3 次修复失败必须触发 H3,不可无限重试(FP-1)
130
+ - **Rule #2 有向图回退**:如果调试过程发现问题根源在 spec 歧义或遗漏,必须回退到 specAgent 而非自行假设正确行为(FP-4)
119
131
 
120
132
  ## 自检门禁
121
133
 
@@ -138,8 +150,6 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
138
150
 
139
151
  ## STOP Signals
140
152
 
141
- 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
142
-
143
153
  - 没找到根因就开始写修复代码
144
154
  - 一次修改多个变量,无法隔离哪个改动有效
145
155
  - 3 次修复失败后仍然继续尝试,没有触发 H3
@@ -156,8 +166,3 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
156
166
 
157
167
  - `team-verify` — REQUIRED:修复后必须验证
158
168
  - `team-test` — 确认无回归
159
-
160
- ## 下一步
161
-
162
- - 修复完成后,使用 `team-verify` 验证修复
163
- - 使用 `team-test` 确认无回归
@@ -58,55 +58,48 @@ NO IMPLEMENTATION WITHOUT TECHNICAL VERIFICATION FIRST
58
58
 
59
59
  ### Phase 1:理解反馈
60
60
 
61
- ```
62
- WHEN receiving code review feedback:
63
-
64
- 1. READ: Complete feedback without reacting
65
- 2. UNDERSTAND: Restate requirement in own words (or ask)
66
- 3. VERIFY: Check against codebase reality
67
- 4. EVALUATE: Technically sound for THIS codebase?
68
- 5. RESPOND: Technical acknowledgment or reasoned pushback
69
- 6. IMPLEMENT: One item at a time, test each
61
+ 收到代码审查反馈后,按以下顺序处理:
70
62
 
71
- ```
63
+ 1. **完整阅读**:读完所有反馈,不立即反应
64
+ 2. **重述需求**:用自己的话重述审查者的要求(如果不确定,先提问澄清)
65
+ 3. **代码验证**:对照代码库验证每条建议的技术正确性(grep/Read 实际代码,不凭印象)
66
+ 4. **适用性评估**:这条建议在**当前**代码库中技术上是否正确?
67
+ 5. **技术性回应**:对每条反馈给出技术性确认或基于推理的推回(参考「推回指南」)
68
+ 6. **逐项实施**:一次实施一项,每项单独测试
72
69
 
73
70
  ### Phase 2:YAGNI 检查
74
71
 
75
- 如果审查者建议"实现得更完善"
76
-
77
- ```
78
- grep codebase for actual usage
72
+ 当审查者建议"实现得更完善"或添加新功能时:
79
73
 
80
- IF unused: "这个功能没被调用。删掉(YAGNI)?"
81
- IF used: 按建议实现
82
- ```
74
+ 1. grep 代码库查找该功能/接口的实际使用
75
+ 2. 如果是 exported/public API → 即使当前项目未直接调用也不应删除(可能有外部消费方)
76
+ 3. 如果是 internal 且无引用 → 建议删除,向审查者回应:"该功能当前未被调用,建议删除(YAGNI)"
77
+ 4. 如果有引用 → 按建议实现
78
+ 5. 如果不确定 → 标注 {ambiguous} 并询问用户
83
79
 
84
80
  ### Phase 3:外部反馈处理
85
81
 
86
- ```
87
- BEFORE implementing external feedback:
82
+ 实施外部反馈前,按 Phase 1 步骤 3-4 的方法逐条验证(grep 实际代码,不凭印象),并额外检查以下 2 个条件:
88
83
 
89
- 1. 技术上对当前代码库正确吗?
90
- 2. 会破坏现有功能吗?
91
- 3. 审查者理解完整上下文吗?
92
- 4. 与用户之前的决策冲突吗?
84
+ 1. **上下文完整性**:审查者是否了解完整上下文?(检查 08-ai-decisions.md 中的已有决策)
85
+ 2. **决策一致性**:建议与用户之前做出的设计决策冲突吗?
93
86
 
94
- IF 建议看起来不对 → 用技术理由推回
95
- IF 无法验证 → 说"我需要 {X} 才能验证"
96
- IF 冲突 → 暂停与用户讨论
97
- ```
87
+ 根据检查结果路由:
98
88
 
99
- ### Phase 4:实施
89
+ - 建议技术上不正确 → 用技术理由推回(参考「推回指南」)
90
+ - 无法验证 → 明确回应"我需要 {具体信息} 才能验证这条建议"
91
+ - 与已有决策冲突 → 暂停,展示冲突点,等待用户决策
92
+ - 反馈揭示 spec 遗漏 → 路由到 team-spec
93
+ - 反馈揭示架构问题 → 触发 H3
100
94
 
101
- ```
102
- FOR multi-item feedback:
95
+ ### Phase 4:实施
103
96
 
104
- 1. 先澄清所有不明确项
105
- 2. 按顺序实施:阻塞问题 → 简单修复 → 复杂修复
106
- 3. 每项单独测试
107
- 4. 验证无回归
97
+ 多项反馈的实施顺序:
108
98
 
109
- ```
99
+ 1. 先澄清所有不明确项(Phase 1 步骤 2 已完成)
100
+ 2. 按优先级排序实施:阻塞问题 → 简单修复 → 复杂修复
101
+ 3. 每项修改单独测试(运行项目测试命令)
102
+ 4. 全部实施后运行全量测试,确认无回归
110
103
 
111
104
  ## 禁止回应
112
105
 
@@ -166,8 +159,6 @@ FOR multi-item feedback:
166
159
 
167
160
  ## STOP Signals
168
161
 
169
- 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
170
-
171
162
  - 没有验证技术正确性就开始实施反馈建议
172
163
  - 使用"你说得太对了""好主意"等表演性同意回应
173
164
  - 多项反馈批量实施而不逐项测试
@@ -185,10 +176,3 @@ FOR multi-item feedback:
185
176
  - `team-impl` — 修复实现
186
177
  - `team-spec` — 反馈揭示 spec 遗漏时
187
178
  - `team-finish` — 分支完成处理
188
-
189
- ## 下一步
190
-
191
- - 反馈处理完成后,继续当前开发流程
192
- - 如果需要合并分支,使用 `team-finish`
193
- - **如果反馈揭示 spec 遗漏**(审查者指出未定义的行为或缺失的边界条件)→ 使用 `team-spec` 更新规格,然后回退到 implAgent 重新实现
194
- - **如果反馈揭示架构问题**(审查者指出设计决策有根本性缺陷)→ 触发 H3 人类介入,由人类决定是否重新设计
@@ -9,6 +9,8 @@ description: Use when implementation is complete, all tests pass, and you need t
9
9
 
10
10
  你是分支完成处理者。你的核心职责是:验证测试 → 展示选项 → 执行选择 → 清理。
11
11
 
12
+ > **分支生命周期**:`team-orchestrator` 在 H1 确认后创建功能分支(Step 1.5),本 Skill 在流程尾部(Step 7.3)负责分支收尾。两者配合形成完整的分支生命周期闭环。
13
+
12
14
  ### 系统提示词
13
15
 
14
16
  ```
@@ -56,7 +58,7 @@ NO BRANCH COMPLETION WITHOUT TEST VERIFICATION FIRST
56
58
 
57
59
  ### Step 1:验证测试
58
60
 
59
- 运行项目测试命令。如果测试失败:
61
+ 运行项目测试命令(声明"测试通过"前须执行 `_team-rules/verification-protocol.md` 的 5 个步骤)。如果测试失败:
60
62
 
61
63
  ```
62
64
  Tests failing (<N> failures). Must fix before completing:
@@ -68,7 +70,15 @@ Cannot proceed with merge/PR until tests pass.
68
70
 
69
71
  ### Step 2:确定基准分支
70
72
 
71
- 运行项目版本控制命令获取当前分支与基准分支的合并基点(如 `git merge-base HEAD main`)。
73
+ 按以下优先级确定基准分支:
74
+
75
+ 1. **从 checkpoint 读取**:如果 `docs/tasks/{slug}/.checkpoint.json` 存在且包含 `base_branch` 字段,直接使用(orchestrator Step 1.5 已确定)
76
+ 2. **从项目 AI 规范读取**:在 CLAUDE.md / .cursor/rules/ 中查找 `base_branch` 或 `default_branch` 配置项
77
+ 3. **从 Git 远程推断**:`git symbolic-ref refs/remotes/origin/HEAD | sed 's|refs/remotes/origin/||'`
78
+ 4. **常见分支名兜底**:按 `main` → `master` → `develop` 顺序检查本地是否存在
79
+ 5. **全部失败** → 触发 H3:向用户展示 `git branch --list` 和 `git remote -v` 输出,让用户指定基准分支(不可自动猜测)
80
+
81
+ 确定后运行 `git merge-base HEAD {base_branch}` 获取合并基点。
72
82
 
73
83
  ### Step 3:展示选项
74
84
 
@@ -87,15 +97,19 @@ Which option?
87
97
 
88
98
  #### Option 1:本地合并
89
99
 
90
- 1. 切换到基准分支并拉取最新
91
- 2. 合并功能分支到基准分支
92
- 3. 运行项目测试命令验证合并后无回归
93
- 4. 删除功能分支
100
+ 1. 切换到基准分支并拉取最新(`git checkout {base} && git pull`)
101
+ 2. 合并功能分支(`git merge {branch} --no-ff`)
102
+ 3. **合并冲突处理**:如果 `git merge` 报告冲突,向用户展示冲突文件列表并暂停——由用户选择 (A) 手动解决冲突后继续、(B) 中止合并改为创建 PR、(C) 中止合并保留分支。不自动解决冲突
103
+ 4. 运行项目测试命令验证合并后无回归
104
+ 5. 删除功能分支
105
+
106
+ > **验证协议**(步骤 4 声明"通过"前必须执行 `_team-rules/verification-protocol.md` 的 5 个步骤)
94
107
 
95
108
  #### Option 2:创建 PR
96
109
 
97
- 1. 推送功能分支到远程
98
- 2. 使用项目 PR 创建命令(如 `gh pr create`)创建 Pull Request
110
+ 1. 推送功能分支到远程(`git push -u origin {branch}`)。如果推送失败(auth 错误、远程未配置),向用户展示错误信息并暂停
111
+ 2. 使用项目 PR 创建命令创建 Pull Request(优先从 CLAUDE.md / .cursor/rules/ 获取 PR 命令;如未配置则使用 `gh pr create`)
112
+ 3. 向用户展示 PR URL,确认创建成功
99
113
 
100
114
  #### Option 3:保留分支
101
115
 
@@ -145,8 +159,6 @@ Which option?
145
159
 
146
160
  ## STOP Signals
147
161
 
148
- 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
149
-
150
162
  - 测试未通过就展示合并/PR 选项
151
163
  - 合并后没有重新运行测试就声明完成
152
164
  - 丢弃分支前没有要求用户输入 "discard" 确认
@@ -163,8 +175,3 @@ Which option?
163
175
 
164
176
  - `team-review` — 合并前确认审查已完成
165
177
  - `team-brainstorm` / `team-spec` — 下一个功能
166
-
167
- ## 下一步
168
-
169
- - 分支处理完成后,继续下一个功能开发
170
- - 下一个功能开始时,推荐使用 `team-brainstorm` 或 `team-spec`