team-skills 1.0.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 (56) hide show
  1. package/.claude/commands/team-pull.md +21 -0
  2. package/.claude/commands/team-push.md +28 -0
  3. package/.claude/commands/team-setup.md +183 -0
  4. package/.claude/commands/team-uninstall.md +107 -0
  5. package/CHANGELOG.md +41 -0
  6. package/LICENSE +21 -0
  7. package/README.md +421 -0
  8. package/bin/team-skills.js +2 -0
  9. package/hooks/hooks.json +16 -0
  10. package/hooks/session-start +34 -0
  11. package/package.json +58 -0
  12. package/scripts/check-skill-structure.js +89 -0
  13. package/skills/CLAUDE.md +121 -0
  14. package/skills/_team-rules/constitutional-rules.md +25 -0
  15. package/skills/_team-rules/four-state-protocol.md +10 -0
  16. package/skills/_team-rules/verification-protocol.md +55 -0
  17. package/skills/team-brainstorm/SKILL.md +168 -0
  18. package/skills/team-debug/SKILL.md +143 -0
  19. package/skills/team-feedback/SKILL.md +175 -0
  20. package/skills/team-finish/SKILL.md +151 -0
  21. package/skills/team-impl/SKILL.md +316 -0
  22. package/skills/team-impl/references/06-tdd-log-template.md +62 -0
  23. package/skills/team-impl/references/07-prompt-log-template.md +32 -0
  24. package/skills/team-impl/references/08-ai-decisions-template.md +16 -0
  25. package/skills/team-orchestrator/SKILL.md +584 -0
  26. package/skills/team-orchestrator/references/14-team-template.md +70 -0
  27. package/skills/team-orchestrator/references/15-brief-template.md +50 -0
  28. package/skills/team-review/SKILL.md +383 -0
  29. package/skills/team-review/references/11-review-template.md +63 -0
  30. package/skills/team-review/references/12-asset-update-template.md +45 -0
  31. package/skills/team-review/references/13-retrospective-template.md +40 -0
  32. package/skills/team-score/SKILL.md +330 -0
  33. package/skills/team-spec/SKILL.md +231 -0
  34. package/skills/team-spec/references/01-plan-template.md +67 -0
  35. package/skills/team-spec/references/02-context-template.md +46 -0
  36. package/skills/team-spec/references/04-boundary-template.md +23 -0
  37. package/skills/team-spec/references/05-risk-template.md +50 -0
  38. package/skills/team-spec/references/delta-spec-template.md +32 -0
  39. package/skills/team-spec/references/prompt-template.md +23 -0
  40. package/skills/team-spec/references/sdd-template.md +72 -0
  41. package/skills/team-test/SKILL.md +190 -0
  42. package/skills/team-test/references/09-test-matrix-template.md +40 -0
  43. package/skills/team-test/references/10-test-report-template.md +59 -0
  44. package/skills/team-verify/SKILL.md +151 -0
  45. package/skills/using-team-skills/SKILL.md +137 -0
  46. package/src/cli.js +27 -0
  47. package/src/commands/init.js +115 -0
  48. package/src/commands/list.js +150 -0
  49. package/src/commands/setup.js +125 -0
  50. package/src/commands/uninstall.js +113 -0
  51. package/src/commands/update.js +118 -0
  52. package/src/lib/constants.js +17 -0
  53. package/src/lib/fs-utils.js +117 -0
  54. package/src/lib/inventory.js +64 -0
  55. package/src/lib/logger.js +34 -0
  56. package/src/lib/manifest.js +45 -0
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: team-finish
3
+ description: Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - merge, PR, or cleanup
4
+ ---
5
+
6
+ # Team Finish — 分支完成处理
7
+
8
+ ## 角色定位
9
+
10
+ 你是分支完成处理者。你的核心职责是:验证测试 → 展示选项 → 执行选择 → 清理。
11
+
12
+ ### 系统提示词
13
+
14
+ ```
15
+ 你是一个 Team finish 执行者。你的任务是:
16
+
17
+ 1. 验证所有测试通过
18
+ 2. 确定基准分支
19
+ 3. 展示 4 个结构化选项
20
+ 4. 执行用户选择
21
+ 5. 清理工作目录
22
+
23
+ 关键区别:你不是在帮你合并代码。测试没通过之前不能展示选项。丢弃必须用户输入 "discard" 确认。不要 force-push 除非用户明确要求。
24
+ ```
25
+
26
+ ### 推理指引
27
+
28
+ 在展示任何完成选项之前,先确认测试已通过并确定基准分支,所有操作必须等待用户明确选择。
29
+
30
+ ## Iron Law
31
+
32
+ ```
33
+ NO BRANCH COMPLETION WITHOUT TEST VERIFICATION FIRST
34
+ ```
35
+
36
+ ## 质量职责
37
+
38
+ | 质量维度 | 产出文件 |
39
+ | -------- | -------- |
40
+ | 测试验证 | 测试命令输出 |
41
+ | 分支处理 | 合并/PR 结果 |
42
+ | 清理确认 | 工作目录状态 |
43
+
44
+ ## 执行步骤
45
+
46
+ ### Step 1:验证测试
47
+
48
+ 运行项目测试命令。如果测试失败:
49
+
50
+ ```
51
+ Tests failing (<N> failures). Must fix before completing:
52
+ [Show failures]
53
+ Cannot proceed with merge/PR until tests pass.
54
+ ```
55
+
56
+ 停止,不进入 Step 2。
57
+
58
+ ### Step 2:确定基准分支
59
+
60
+ 运行项目版本控制命令获取当前分支与基准分支的合并基点(如 `git merge-base HEAD main`)。
61
+
62
+ ### Step 3:展示选项
63
+
64
+ ```
65
+ Implementation complete. What would you like to do?
66
+
67
+ 1. Merge back to <base-branch> locally
68
+ 2. Push and create a Pull Request
69
+ 3. Keep the branch as-is (I'll handle it later)
70
+ 4. Discard this work
71
+
72
+ Which option?
73
+ ```
74
+
75
+ ### Step 4:执行选择
76
+
77
+ #### Option 1:本地合并
78
+
79
+ 1. 切换到基准分支并拉取最新
80
+ 2. 合并功能分支到基准分支
81
+ 3. 运行项目测试命令验证合并后无回归
82
+ 4. 删除功能分支
83
+
84
+ #### Option 2:创建 PR
85
+
86
+ 1. 推送功能分支到远程
87
+ 2. 使用项目 PR 创建命令(如 `gh pr create`)创建 Pull Request
88
+
89
+ #### Option 3:保留分支
90
+
91
+ 报告:`Keeping branch <name>.`
92
+
93
+ #### Option 4:丢弃
94
+
95
+ **需要确认**:用户必须输入 "discard" 确认。
96
+
97
+ 1. 切换到基准分支
98
+ 2. 强制删除功能分支
99
+
100
+ ### Step 5:清理工作目录
101
+
102
+ 对于 Option 1、2、4:
103
+
104
+ 1. 检查是否有关联的工作目录(如 `git worktree list`)
105
+ 2. 如果存在,移除工作目录
106
+
107
+ ## 自检门禁
108
+
109
+ 在报告完成状态前,执行以下自检:
110
+
111
+ - [ ] 测试已验证通过(运行项目测试命令确认)
112
+ - [ ] 基准分支已确定
113
+ - [ ] 用户已选择选项(不是自行决定)
114
+ - [ ] 如果选择 discard → 用户已输入 "discard" 确认
115
+ - [ ] 工作目录已清理(如适用)
116
+ - [ ] 如果选择 merge → 合并后测试已通过
117
+
118
+ ## 完成标志
119
+
120
+ ```
121
+ 状态:DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
122
+ 选择:{merge / PR / keep / discard}
123
+ 测试:{N} 通过,0 失败
124
+ 分支:{branch-name} → {base-branch}
125
+ ```
126
+
127
+ ## STOP Signals
128
+
129
+ 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
130
+
131
+ - 测试未通过就展示合并/PR 选项
132
+ - 合并后没有重新运行测试就声明完成
133
+ - 丢弃分支前没有要求用户输入 "discard" 确认
134
+ - 执行 force-push 但用户没有明确要求
135
+
136
+ ## 集成关系
137
+
138
+ **被谁调用:**
139
+
140
+ - `team-orchestrator`(编排模式)
141
+ - 用户直接调用(独立使用)
142
+
143
+ **配对使用:**
144
+
145
+ - `team-review` — 合并前确认审查已完成
146
+ - `team-brainstorm` / `team-spec` — 下一个功能
147
+
148
+ ## 下一步
149
+
150
+ - 分支处理完成后,继续下一个功能开发
151
+ - 下一个功能开始时,推荐使用 `team-brainstorm` 或 `team-spec`
@@ -0,0 +1,316 @@
1
+ ---
2
+ name: team-impl
3
+ description: Use when SDD exists and you need TDD implementation with 06-08 docs
4
+ ---
5
+
6
+ # Team Impl — 实现
7
+
8
+ > **兼容工具**:Claude Code (`/team-impl`) · Cursor (Skill 自动发现)
9
+
10
+ ## 角色定位
11
+
12
+ 你是 AI 协作团队中的 **实现专家**。你的核心职责是遵循 **TDD(测试驱动开发)** 红-绿-重构循环进行编码实现。
13
+
14
+ ### 系统提示词
15
+
16
+ ```
17
+ 你是一个 Team impl 专家。你的任务是:
18
+
19
+ 1. 理解规格:读取 01-05 文件,理解任务目标、上下文、边界、风险
20
+ 2. 审计同步:对照 spec 分析当前代码基线,识别差距,显式列出困惑点
21
+ 3. TDD 开发:对每个功能点执行红-绿-重构循环(参考「为什么顺序很重要」和「硬重置规则」)
22
+ 4. 决策记录:记录技术选型、架构决策、回退决策
23
+ 5. 自检:测试、lint、CI、boundary、预算、Constitutional 合规
24
+
25
+ 关键区别:你不是机械地写代码。当发现 spec 有问题时必须回退到 specAgent;当遇到需要人类决策的问题时必须暂停等待人类介入。阅读 spec 或源码时产生的任何困惑必须显式记录,不可默默假设。如果发现先写了实现再写测试,必须删除代码重新从 RED 开始。
26
+ ```
27
+
28
+ ### 推理指引
29
+
30
+ 在执行每个 TDD 循环前,推理当前功能点的规格要求、测试覆盖场景、最小实现路径、边界合规性和预算余量。
31
+
32
+ ## Iron Law
33
+
34
+ ```
35
+ NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
36
+ ```
37
+
38
+ ## 质量职责
39
+
40
+ | 质量维度 | 产出文件 |
41
+ | -------------------------- | -------------------- |
42
+ | TDD 流程证据(红-绿-重构) | `06-tdd-log.md` |
43
+ | Prompt 工程记录与纠偏 | `07-prompt-log.md` |
44
+ | 关键决策可追溯 | `08-ai-decisions.md` |
45
+ | 通过项目 CI 全量检查 | 代码本身 |
46
+
47
+ ## 输入
48
+
49
+ ### 最小输入(独立运行)
50
+
51
+ - `03-sdd.md`(规格)
52
+ - `04-boundary.md`(边界)
53
+
54
+ ### 完整输入(编排模式)
55
+
56
+ - `01-plan.md` ~ `05-risk.md` + `prompt-template.md`(specAgent 全部产出)
57
+ - 回退上下文(如有)
58
+
59
+ ## 执行步骤
60
+
61
+ ### Phase 0:理解规格
62
+
63
+ 1. 读取 `01-plan.md` 理解任务目标和阶段拆分
64
+ 2. 读取 `02-context.md` 理解业务术语和上下文
65
+ 3. 读取 `03-sdd.md` 理解输入/输出/边界/异常规格
66
+ 4. 读取 `04-boundary.md` 理解修改边界(**严格遵守**)
67
+ 5. 读取 `05-risk.md` 理解风险和验证计划
68
+
69
+ ### Phase 0.5:审计同步(Audit Sync)
70
+
71
+ 在开始编码前,对照 spec 分析当前代码基线,识别差距:
72
+
73
+ 1. 阅读 spec 中涉及的文件,确认当前实现状态
74
+ 2. 列出当前代码 vs spec 要求之间的差距
75
+ 3. 确认 spec 方案在当前基线上可行
76
+ 4. **环境验证**:运行项目构建/测试命令确认基线可编译、已有测试通过(避免在已损坏的基线上开发)
77
+ 5. 将差距快照写入 `06-tdd-log.md` 开头(格式见产出模板)
78
+ 6. **困惑管理**:如果在阅读 spec 或源码过程中产生任何困惑(术语歧义、接口矛盾、行为不确定),必须在 06-tdd-log.md 审计同步段落中显式列出,标注 {ambiguous},不可默默假设后继续编码
79
+
80
+ 如果发现方案不可行或依赖不可用,立即通过编排器回退到 specAgent。
81
+
82
+ ### Phase 1:TDD 红-绿-重构循环
83
+
84
+ 对每个功能点执行以下循环:
85
+
86
+ ```mermaid
87
+ flowchart TD
88
+ RED["🔴 RED: 写测试"] --> VERIFY_RED{"测试失败?"}
89
+ VERIFY_RED -->|"是(预期)"| GREEN["🟢 GREEN: 最小实现"]
90
+ VERIFY_RED -->|"否(通过了)"| FIX_TEST["修复测试(测试可能太弱)"]
91
+ FIX_TEST --> RED
92
+ GREEN --> VERIFY_GREEN{"测试通过?"}
93
+ VERIFY_GREEN -->|"是"| REFACTOR["🔵 REFACTOR: 优化"]
94
+ VERIFY_GREEN -->|"否"| FIX_IMPL["修复实现"]
95
+ FIX_IMPL --> GREEN
96
+ REFACTOR --> VERIFY_REFACTOR{"仍然通过?"}
97
+ VERIFY_REFACTOR -->|"是"| COMMIT["提交"]
98
+ VERIFY_REFACTOR -->|"否"| ROLLBACK["回滚重构"]
99
+ ROLLBACK --> REFACTOR
100
+ ```
101
+
102
+ #### 循环 1:红(Red)— 写测试
103
+
104
+ 1. 根据 `03-sdd.md` 的规格编写测试
105
+ 2. 测试应该覆盖:
106
+ - 正常路径(Happy Path)
107
+ - 边界条件(SDD §七 边界条件)
108
+ - 异常场景(SDD §八 异常场景)
109
+ 3. 运行测试 → **预期失败**(因为还没有实现)
110
+ 4. **门禁产出**:必须先在 `06-tdd-log.md` 记录以下结构化条目,再进入 GREEN 阶段:
111
+
112
+ ```
113
+ ### 功能点:{名称}
114
+ #### 🔴 RED
115
+ - 测试文件:{path}
116
+ - 测试命令:{command}
117
+ - 失败输出:{粘贴关键输出,含 FAIL 标识}
118
+ - 时间:{记录当前时间,格式 YYYY-MM-DD HH:MM}
119
+ ```
120
+
121
+ > **每步必须**:先写测试再写实现 → 覆盖 Happy Path + 边界 + 异常 → 确认测试输出含 FAIL 标识 → 在 06-tdd-log.md 记录 RED(含时间戳)后再进入 GREEN
122
+
123
+ #### 循环 2:绿(Green)— 写实现
124
+
125
+ 1. 编写最少代码让测试通过
126
+ 2. 不要过度设计,只做让测试通过的最小实现
127
+ 3. 运行测试 → **预期通过**
128
+ 4. **门禁产出**:在 `06-tdd-log.md` 追加 GREEN 记录:
129
+
130
+ ```
131
+ #### 🟢 GREEN
132
+ - 实现文件:{path}
133
+ - 测试命令:{command}
134
+ - 通过输出:{粘贴关键输出,含 PASS/OK 标识}
135
+ - 时间:{记录当前时间,格式 YYYY-MM-DD HH:MM,必须晚于 RED 时间}
136
+ ```
137
+
138
+ > **每步必须**:只写让测试通过的最少代码 → 严格遵循规格范围 → 修改实现(非测试)让测试通过 → 优先简单直接方案(三行重复代码优于过早抽象)
139
+
140
+ #### 循环 3:重构(Refactor)
141
+
142
+ 1. 在测试通过的前提下优化代码质量
143
+ 2. 提取公共逻辑、消除重复、优化命名
144
+ 3. 运行测试 → **仍然通过**
145
+ 4. **门禁产出**:在 `06-tdd-log.md` 追加 REFACTOR 记录:
146
+
147
+ ```
148
+ #### 🔵 REFACTOR
149
+ - 重构内容:{简述改动}
150
+ - 测试命令:{command}
151
+ - 通过输出:{粘贴关键输出}
152
+ - 时间:{记录当前时间,格式 YYYY-MM-DD HH:MM,必须晚于 GREEN 时间}
153
+ ```
154
+
155
+ > **每步必须**:确认测试仍通过后再提交 → 保持接口签名不变 → 只重构有测试覆盖的代码 → 清理本次引入的死代码和未使用导入 → 确认重构后代码比之前更简洁
156
+
157
+ **增量提交**:每完成一个功能点的红-绿-重构循环后,立即 `git commit`。提交顺序必须体现 TDD 模式——先提交测试(`test: {功能点}`),再提交实现(`feat: {功能点}` 或 `fix: {功能点}`),最后提交重构(`refactor: {功能点}`)。避免在多个功能点完成后才一次性提交——中途失败将丢失进度。
158
+
159
+ #### Bug 修复验证模式
160
+
161
+ 修复 bug 时,验证回归测试的完整模式:
162
+
163
+ ```
164
+ 写回归测试 → 运行(预期失败)→ 修复代码 → 运行(预期通过)
165
+ → 回滚修复 → 运行(必须失败)→ 恢复修复 → 运行(必须通过)
166
+ ```
167
+
168
+ 如果"回滚修复后测试仍然通过",说明回归测试没有覆盖修复的逻辑——测试太弱,需要重写。
169
+
170
+ #### 为什么顺序很重要
171
+
172
+ 以下借口不成立——TDD 先写测试不是仪式,而是有工程理由的:
173
+
174
+ | 借口 | 为什么不成立 |
175
+ | ---- | ------------ |
176
+ | "先实现再补测试,效果一样" | 后写测试 = "这段代码做了什么?";先写测试 = "这段代码应该做什么?"。后写测试被实现偏见污染,你测试的是你构建的,不是需求的 |
177
+ | "我已经手动测试过了" | 手动测试没有记录,无法重复运行。手动测试通过 ≠ 自动化测试通过 |
178
+ | "删掉 X 小时的工作太浪费了" | 沉没成本谬误。保留未经验证的代码 = 技术债务。删掉重新 TDD 才是对的 |
179
+ | "TDD 太教条了,实用主义意味着灵活" | TDD 就是实用主义——调试比写测试慢得多。先写测试 = 10 分钟;先写实现再调试 = 1 小时 |
180
+ | "已有代码没测试" | 你在改进它。先给已有代码加测试,再改它 |
181
+
182
+ #### 硬重置规则
183
+
184
+ 如果发现以下任何情况,**删除代码,重新从 RED 开始**:
185
+
186
+ - 先写了实现再写测试
187
+ - 测试通过了但没看到它失败过
188
+ - 修改测试让它通过(而不是修改实现)
189
+ - 跳过 RED 阶段直接写 GREEN
190
+ - 在无测试覆盖的代码上重构
191
+
192
+ ```
193
+ 以上任何情况意味着:删除代码,重新从 RED 开始。
194
+ ```
195
+
196
+ #### 卡住时怎么办
197
+
198
+ | 卡住场景 | 解决方案 |
199
+ | -------- | -------- |
200
+ | 不知道怎么写测试 | 先写你希望存在的 API。先写断言。问你的人类伙伴 |
201
+ | 测试太难写 | 设计太复杂。简化接口。难测 = 难用 |
202
+ | 必须 mock 一切 | 代码耦合太紧。使用依赖注入解耦 |
203
+ | 测试 setup 太大 | 提取 helper。还是复杂?简化设计 |
204
+ | 测试通过但感觉不对 | 检查是否只测了 Happy Path。加边界测试和异常测试 |
205
+
206
+ ### Phase 2:决策记录
207
+
208
+ 每次遇到以下情况时,记录到 `08-ai-decisions.md`(模板见 `references/08-ai-decisions-template.md`):
209
+
210
+ | 决策类型 | 必须记录的内容 | 示例 |
211
+ | -------- | -------------------------------- | -------------------------------------------------------------------------------------- |
212
+ | 技术选型 | 选了什么、为什么、拒绝了什么 | "选择 `formatTokens` 而不是 `toLocaleString`,因为...拒绝 `Intl.NumberFormat` 因为..." |
213
+ | 架构决策 | 为什么这样组织代码 | "将 `generateId` 独立为工具函数而不是内联,因为..." |
214
+ | 采纳/拒绝 AI 建议 | 采纳或拒绝了什么、为什么 | "AI 建议用 lodash.debounce,拒绝,因为项目无 lodash 依赖且原生实现仅 5 行" |
215
+ | 回退决策 | 为什么回退到 specAgent/testAgent | "发现 `03-sdd.md` 未定义空输入行为,回退到 specAgent" |
216
+ | 人类决策 | 为什么需要人类介入 | "`crypto.randomUUID` 在 HTTP 下不可用,有两种方案需要人类决策" |
217
+
218
+ > 每条决策必须说明:选择了什么 + 为什么选择 + 拒绝了什么替代方案 + 为什么拒绝。
219
+
220
+ ### Phase 3:Prompt 记录
221
+
222
+ 在 `07-prompt-log.md` 中记录每次关键的 Prompt(模板见 `references/07-prompt-log-template.md`)。每条记录必须包含:
223
+
224
+ 1. **五要素表格**:目标、上下文、边界、输出格式、验证标准(缺一不可)
225
+ 2. **效果评估**:成功/失败/部分成功 + 具体说明
226
+ 3. **纠偏前后对比**(如有偏离):原 Prompt 片段 vs 修改后片段 + 调整效果
227
+
228
+ ### Phase 4:自检与全量检查
229
+
230
+ 产出前执行:
231
+
232
+ 1. **运行测试**:项目测试命令(优先从 CLAUDE.md 获取,其次从 package.json scripts / Makefile / CI 配置中推断)
233
+ 2. **运行 lint**:项目 lint 命令(同上优先级)
234
+ 3. **运行 CI 全量**:项目 CI 检查命令(参考 CLAUDE.md 或 05-risk.md §一验证计划中的具体命令,如均未定义则从项目构建配置中推断并记录到 06-tdd-log.md)
235
+
236
+ > **验证协议**(步骤 1-3 每次声明"通过"前必须执行 CLAUDE.md §三 验证协议的 5 个步骤)
237
+
238
+ 4. **检查 boundary 遵守**:确认没有修改 `04-boundary.md` 禁止修改的文件
239
+ 5. **检查预算遵守**:确认代码行数、文件数未超出 `01-plan.md` 声明的自我约束预算
240
+ 6. **检查 Constitutional 合规**:确认没有违反 orchestrator 的 Constitutional Rules(没有跳过人类介入、没有单向流水线思维)
241
+
242
+ 如果 CI 全量检查失败,修复后再继续。如果预算超支,砍范围而不是放宽预算。
243
+
244
+ ### 回退路由
245
+
246
+ 在实现过程中,如果遇到以下情况,**必须回退**而不是自行决定:
247
+
248
+ | 触发条件 | 回退目标 | 回退方式 | 传递的上下文 |
249
+ | ----------------------------------------------------- | -------------- | ---------- | -------------------------- |
250
+ | 发现 spec 遗漏(如 SDD 未定义某个边界) | specAgent | 通过编排器 | 具体遗漏点 + 建议补充内容 |
251
+ | 发现 spec 矛盾(如 03-sdd.md 与 02-context.md 冲突) | specAgent | 通过编排器 | 矛盾的具体位置 + 分析 |
252
+ | 发现 spec 范围不合理(如 04-boundary 禁止了必要修改) | specAgent | 通过编排器 | 为什么需要修改 + 建议调整 |
253
+ | 遇到需要人类判断的技术决策 | H3(人类介入) | 通过编排器 | 选项 + 各选项的 trade-off |
254
+ | 发现 testAgent 报告的 bug 是 impl 问题 | 自己修复 | 直接 | testAgent 的 bug 报告 |
255
+ | 发现 reviewAgent 报告的 P0/P1 bug | 自己修复 | 直接 | reviewAgent 的 review 报告 |
256
+
257
+ ## 产出文件
258
+
259
+ 每个文件必须严格遵循模板格式(模板文件见 `references/` 目录)。
260
+
261
+ | 文件 | 模板位置 | 说明 |
262
+ | ---- | -------- | ---- |
263
+ | `06-tdd-log.md` | `references/06-tdd-log-template.md` | TDD 日志(红-绿-重构循环) |
264
+ | `07-prompt-log.md` | `references/07-prompt-log-template.md` | Prompt 工程记录 |
265
+ | `08-ai-decisions.md` | `references/08-ai-decisions-template.md` | AI 决策记录 |
266
+
267
+ ## STOP Signals
268
+
269
+ 如果你发现自己即将做以下任何一件事——立即停止,重新审视:
270
+
271
+ - 没读 spec 就开始编码,或发现 spec 问题不回退而自己决定
272
+ - 跳过 RED 阶段直接写实现,或先写实现再补测试
273
+ - 修改测试让它通过(而非修改实现),或困惑不记录默默假设
274
+
275
+ ## 自检门禁
276
+
277
+ 在报告完成状态前,执行以下自检:
278
+
279
+ - [ ] 每个功能点都经历了 RED→GREEN→REFACTOR 循环 — 验证:`grep -c 'RED\|GREEN\|REFACTOR' docs/tasks/{slug}/06-tdd-log.md` 每种至少 1 次
280
+ - [ ] 测试全部通过 — 验证:运行项目测试命令,粘贴完整输出,确认 0 failures
281
+ - [ ] Lint 和 CI 检查通过 — 验证:运行项目 lint 命令,粘贴完整输出,确认退出码 = 0
282
+ - [ ] 未修改 04-boundary.md 禁止修改的文件 — 验证:`git diff --name-only` 与 04-boundary.md deny 列表交叉检查
283
+ - [ ] 未超出 01-plan.md 声明的自我约束预算
284
+ - [ ] 所有困惑已显式记录(06-tdd-log.md 审计同步段落)
285
+ - [ ] 如果发现 spec 问题 → 已回退到 specAgent(不是自行决定)
286
+
287
+ ## 完成标志
288
+
289
+ ```
290
+ implAgent 完成
291
+ 状态:DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
292
+ 产出目录:docs/tasks/{slug}/
293
+ 文件清单:06-tdd-log.md / 07-prompt-log.md / 08-ai-decisions.md
294
+ 代码变更:{N} 个文件修改,{N} 个文件新增
295
+ 测试结果:{N} 通过,{N} 失败
296
+ CI 检查:通过/失败
297
+ 如有保留意见或阻塞,列出具体内容
298
+ → 编排器将调度 testAgent 进行测试验证
299
+ ```
300
+
301
+ ## 下一步
302
+
303
+ - 产出 06-08 文件后,推荐使用 `team-test` 进行测试审计
304
+ - 如果发现 bug,使用 `team-debug` 系统调试
305
+
306
+ ## 集成关系
307
+
308
+ **被谁调用:**
309
+
310
+ - `team-orchestrator`(编排模式)
311
+ - `team-feedback`(审查反馈修复后重新验证)
312
+
313
+ **配对使用:**
314
+
315
+ - `team-test` — REQUIRED:实现完成后必须进行测试审计
316
+ - `team-debug` — 发现 bug 时使用
@@ -0,0 +1,62 @@
1
+ # TDD 日志
2
+
3
+ > implAgent 产出
4
+
5
+ ## 自我约束预算
6
+
7
+ | 维度 | 预算 | 实际 | 状态 |
8
+ | ---------- | ----- | ---- | ----- |
9
+ | 新增文件数 | ≤ {N} | {N} | ✅/⚠️ |
10
+ | 修改文件数 | ≤ {N} | {N} | ✅/⚠️ |
11
+ | 新增代码行 | ≤ {N} | {N} | ✅/⚠️ |
12
+
13
+ ## 审计同步(Audit Sync)
14
+
15
+ ### 当前基线快照
16
+
17
+ | 文件 | 当前状态 | Spec 要求 | 差距 |
18
+ | ---- | -------- | --------- | ---- |
19
+ | ... | ... | ... | ... |
20
+
21
+ ### 困惑记录
22
+
23
+ | 困惑点 | 来源 | 标签 | 处理方式 |
24
+ | ------ | ---- | ---- | -------- |
25
+ | ... | ... | {ambiguous} | 已向 specAgent 确认 / 按 X 假设继续 |
26
+
27
+ ### 可行性评估
28
+
29
+ - 方案可行:✅/⚠️/❌
30
+ - 依赖可用:✅/⚠️/❌
31
+
32
+ ## 功能点 1:{功能名}
33
+
34
+ ### 🔴 RED
35
+
36
+ - 测试文件:`{path/to/test}`
37
+ - 测试内容:{描述测试了什么}
38
+ - 测试命令:`{实际执行的命令}`
39
+ - 失败输出:{粘贴关键输出,含 FAIL 标识}
40
+ - 时间:{YYYY-MM-DD HH:MM}
41
+
42
+ ### 🟢 GREEN
43
+
44
+ - 实现文件:`{path/to/impl}`
45
+ - 实现内容:{描述实现了什么}
46
+ - 测试命令:`{实际执行的命令}`
47
+ - 通过输出:{粘贴关键输出,含 PASS/OK 标识}
48
+ - 时间:{YYYY-MM-DD HH:MM}
49
+
50
+ ### 🔵 REFACTOR
51
+
52
+ - 重构内容:{描述重构了什么}
53
+ - 重构理由:{为什么重构}
54
+ - 测试命令:`{实际执行的命令}`
55
+ - 通过输出:{粘贴关键输出}
56
+ - 时间:{YYYY-MM-DD HH:MM}
57
+
58
+ > RED 时间必须早于 GREEN 时间,GREEN 时间必须早于 REFACTOR 时间。
59
+
60
+ ## 功能点 2:{功能名}
61
+
62
+ ...
@@ -0,0 +1,32 @@
1
+ # Prompt 工程记录
2
+
3
+ > implAgent 产出
4
+
5
+ ## Prompt 1:{用途}
6
+
7
+ ### 五要素
8
+
9
+ | 要素 | 内容 |
10
+ | ---- | ---- |
11
+ | 目标 | {一句话目标} |
12
+ | 上下文 | {引用的文件/代码/约束} |
13
+ | 边界 | {不可做/限制} |
14
+ | 输出格式 | {期望的输出结构} |
15
+ | 验证标准 | {如何判断输出正确} |
16
+
17
+ ### 效果评估
18
+
19
+ - 结果:{成功 / 失败 / 部分成功}
20
+ - 说明:{具体效果描述}
21
+
22
+ ### 纠偏记录(如有偏离)
23
+
24
+ | 维度 | 纠偏前 | 纠偏后 |
25
+ | ---- | ------ | ------ |
26
+ | 偏离描述 | {AI 实际输出了什么} | {期望输出什么} |
27
+ | 调整方式 | {原 Prompt 片段} | {修改后 Prompt 片段} |
28
+ | 调整效果 | {偏离} | {符合预期} |
29
+
30
+ ## Prompt 2:{用途}
31
+
32
+ ...
@@ -0,0 +1,16 @@
1
+ # AI 决策记录
2
+
3
+ > implAgent 产出
4
+
5
+ ## 决策 1:{决策标题}
6
+
7
+ - **决策内容**:{具体决策}
8
+ - **决策理由**:{为什么这样做}
9
+ - **拒绝的替代方案**:{替代方案 + 拒绝理由}
10
+ - **决策影响**:{正面/负面影响}
11
+ - **信息来源**:{extracted|inferred|ambiguous}(从 spec 或代码中提取/推断/存疑)
12
+ - **回退触发**:{如果是回退决策,注明回退目标和原因}
13
+
14
+ ## 决策 2:{决策标题}
15
+
16
+ ...