交付 + 复盘表闭环培训,别只统计省时间不写质量。
组里有人接话:「Agent 挺快。」
测试同事补刀:「快?第一轮 diff 九个文件、pytest 红五个,是谁手工回滚的?」
Leader:「别争感觉。Lab-5 交付物里要有 复盘表,下周结业答辩要用。」
没有复盘,培训只剩「会用 Agent」;有复盘,才能回答 哪一步该用 AI、哪一步必须人签字、下次改一条什么。Lab-5 不是新功能——是在 第 20 篇同一条 priority-filter 分支 上,补最后一块:轻量效能复盘。不引 Jira 插件,用 markdown 表格 + 诚实标注「AI 辅助 / 纯人工」。
这篇讲:复盘表怎么填、Lab-1 和 Lab-5 怎么对比、培训考核打什么勾、Agent 怎么辅助写复盘而不甩锅。
Lab-5 在培训里解决什么问题
M9 全链路(第 20 篇)走通了 notes → plan → Agent → /test → Review → PR。
Lab-5 要闭环三件事:
| 问题 | 没有复盘时 | Lab-5 产出 |
|---|---|---|
| 「AI 省时间吗?」 | 口头「感觉快了」 | 分阶段 人工 vs AI 分钟(估算即可) |
| 「质量有没有降?」 | 没人记 must_fix | 并列 Review 轮数、返工次数、pytest 首次绿 |
| 「下次怎么改?」 | 培训结束各写各的 | 一条「下次改一条」,可进 CLAUDE.md |
结业门槛(培训大纲):Lab-5 必须交付;答辩时要能拿出 Lab-1 vs Lab-5 对比表 和 3 条工作习惯改进(其中至少 1 条写进仓库)。
复盘表模板:docs/retrospective-priority-filter.md
在 priority-filter 功能分支合并后,同仓库 新建复盘文档(路径可协商,培训统一放 docs/):
## 元信息
- 功能分支:`feature/priority-filter`
- PR:#42 merged(2026-06-28)
- 参与:开发主写;测试验收 list 行为;Leader 只看复盘不进 diff
- 工具:全程 Claude Code(Command `/test`、Hook Review,无 MCP)
## 结果(硬指标)
| 项 | 值 |
|----|-----|
| pytest `tests/ -q` | 绿(42 passed) |
| Review must_fix | 0(第二轮 nit 2 条已改) |
| `git diff --stat` 最终 | 4 files, +87 −12 |
| 返工:回滚 Agent 大 diff | 1 次(阶段 3 初轮) |
## 时间(分钟,估算即可)
| 阶段 | 人工 | AI 辅助 | 说明 |
|------|------|---------|------|
| 澄清 | 15 | 10 | AI 生成 5 问清单;人定 `--priority` 参数名 |
| 方案 plan-only | 10 | 5 | 人审 scope,回复 `go` |
| 实现 | 25 | 35 | Agent 2 轮;第 1 轮越界回滚 |
| 测试 / debug | 20 | 10 | 人读失败用例;Agent 改断言 |
| Review + PR 文 | 12 | 8 | `/review` + 生成 PR 描述 |
| **合计** | **82** | **68** | wall time ≈ 2.5h(含站会打断) |
## 有效做法(基于事实)
1. **先 notes 再 Agent**:参数名与工单一致,未再出现 `--prio`。
2. **plan-only 一轮**:Files may touch 限 4 个路径,第 2 轮 Agent 未动 README。
3. **Agent 终止条件写进任务书**:「pytest exit 0 才停」——Hook 拦住了未绿 commit。
## 浪费 / 踩坑
1. 跳过 plan 直接 Agent → 9 files diff,人工 `git checkout` 3 个路径。
2. Review Prompt 未贴 diff → 第一轮 Review 输出空泛,浪费 15min 重跑。
3. 站会打断后未写「当前阶段」到 notes → 下午重开 Claude Code 又问一遍澄清问题。
## 下次改一条(只选一条,要可执行)
- **plan 模板强制含 CLI 参数表**(名称、类型、默认值、错误码),放进 `prompts/plan-cli.md`。
## Lab-1 vs Lab-5 对比(同一人填)
| 维度 | Lab-1 v0.1(第 09 篇) | Lab-5 priority-filter |
|------|------------------------|------------------------|
| 是否先澄清 | 第 2 次才做 | 第 1 次就做 |
| Agent 轮数(实现) | 未用 Agent,纯对话 | 2 轮(1 轮回滚) |
| wall time(自报) | ~6h(含走错路) | ~2.5h |
| pytest 首次绿前失败数 | N/A(后补测试) | 5 failed → 0 |
| Review must_fix | 无流程 | 0 |
原则: 数字不必精确到秒;相对比例、踩坑原文、一条可改动作 才有培训价值。
禁止: 只写「AI 提升了效率」——Leader 会直接打回。
时间怎么记:没有秒表也能填
培训日不必开 Toggl。推荐 事后 10 分钟回填:
- 按阶段回忆块时间:澄清≈「站会前后半小时」→ 填 25;实现≈「下午两点到四点 minus 吃饭」→ 填 90,再拆人工/AI(看对话轮数:Agent 多轮通常 AI 分钟更高)。
- 用 Git 辅助:
git log --oneline feature/priority-filter看 commit 间隔;git reflog看回滚点——回滚那次 人工分钟要加上。 - AI 辅助分钟:Claude Code 对话里 你发消息等待生成 的时间算 AI;你读 diff、跑 pytest、和测试同事对齐 算人工。
小赵填完表说:「原来 AI 辅助 68 分钟,但我人工 82 分钟——省的是重复写样板,没省的是签字和读失败用例。」Leader 点头,这才是要的数据。
四阶段在复盘里问什么
第 08 篇四阶段(澄清 → 方案 → 实现 → 验证)在复盘里变成 诊断问卷,每阶段 1–2 问即可:
| 四阶段 | 复盘问什么 | priority-filter 样例答案 |
|---|---|---|
| 澄清 | 问题清单是否一次到位?开放项是否当日关闭? | 5 问里「多值 priority」当天定「暂不支持」 |
| 方案 | plan 有没有防 scope 漂移? | 有;无 plan 的第 1 轮 Agent 翻车了 |
| 实现 | Agent 终止条件够不够?越界谁拦的? | 任务书 + 人眼看 diff;回滚 1 次 |
| 验证 | Hook / 测试谁 caught bug? | pytest 红 5 个;人决定改 prod 还是改测试 |
验证阶段特别要写清: 是 人 发现的问题,还是 Hook/CI 拦的——这决定下次加 Hook 还是改 Prompt。
团队可收集的指标(培训期只选 2–3 项)
避免 KPI 化,结业只跟踪:
| 指标 | 怎么取 | 用途 |
|---|---|---|
| PR wall time | 分支创建 → merge 日历天 | 看全链路是否拖尾 |
| Review 轮数 | must_fix > 0 算 1 轮 | 质量 proxy,不是越省越好 |
| pytest 首次绿前 Agent 轮数 | 实现阶段计数 | 看任务书是否有效 |
| 返工次数 | 回滚 / 重写 plan 次数 | 比「AI 代码占比 %」诚实 |
不写「AI 代码行数占比 %」——难定义(生成又删的算不算?),易误导成攀比。
培训第二周可选:组内匿名贴三份复盘,只讨论 「下次改一条」 是否可合并进 CLAUDE.md PR。
Agent 辅助写复盘(meta,别甩锅)
合并 PR 后,可以让 Claude Code 填表草稿,人删空泛句:
@docs/retrospective-priority-filter.md(仅骨架小节标题)
@notes/feature-priority-filter.md
@.git/review-last.md
根据本次 priority-filter 开发经历:
1. 填「有效做法」「浪费/踩坑」各 3 条——必须引用具体文件、命令或 pytest 输出
2. 填时间表:若某阶段无记录,写「估算」并说明依据
3. 「下次改一条」只写 1 条,格式:改什么模板 / Hook / 任务书哪一句
禁止:夸大 AI 能力;禁止「都是 AI 的错」无动作句
人审清单(发布前 5 分钟):
- 删掉「显著」「高效」「赋能」
- 每条踩坑有 可改动作(改 Prompt / 改 Hook / 改 scope)
- 并列了 must_fix 或返工,不是只写「省 30 分钟」
- Lab-1 vs Lab-5 对比表至少 4 行
踩坑与修正(培训真实案例)
坑 1:复盘变甩锅——「都是 Agent 改错文件」
修正:写 「跳过 plan → Agent 无 Files may touch → 改 9 文件」 + 动作 「plan 模板加路径白名单」。
责任在流程,不在模型。
坑 2:只统计「省时间」,不写质量
修正:表里必须有 must_fix、pytest 首次绿、返工次数 至少一项。
Leader 原话:「快但合不了,不算交付。」
坑 3:Lab-1 对比敷衍——「Lab-1 很久,Lab-5 很快,完事」
修正:对比 同一维度(澄清是否第一次就做、是否用 Agent、Review 有无流程)。
Lab-1 小赵第一次 6h 含 走错路 scaffold 全栈;Lab-5 2.5h 含 走对路 + 一次回滚——故事才完整。
坑 4:复盘锁在个人笔记本,不进 Git
修正:docs/retrospective-*.md 跟仓库 PR 进 main,答辩时 TL 能 git log 看见。
个人 Notion 不算 Lab-5 交付。
培训日时间盒:复盘占 30–45 分钟
| 时段 | 动作 | 产出 |
|---|---|---|
| PR merge 后 0:00–0:10 | 拷贝模板,填「结果」硬指标 | pytest / must_fix / diff stat |
| 0:10–0:25 | 分阶段填时间 + 有效/踩坑 | 表格初稿 |
| 0:25–0:35 | 填 Lab-1 vs Lab-5 对比 | 至少 4 行 |
| 0:35–0:45 | 定「下次改一条」+ 可选开 PR 改 prompts/ | 一条可合并改进 |
可与 Leader 1:1:只带 一页复盘,不要带 200 页对话导出。
验收清单(Lab-5 考核打勾)
-
docs/retrospective-priority-filter.md已 merge,含 结果 / 时间 / 有效 / 踩坑 / 下次改一条 - Lab-1 vs Lab-5 对比表 ≥ 4 维度
- 至少 1 条踩坑含 可改动作(不是纯抱怨)
- 「下次改一条」可执行(模板路径或 Hook 名具体)
- 未使用「AI 代码占比 %」当核心指标
小结
- Lab-5 = 交付 + 复盘表,回答「省时间还是添乱」——靠 分阶段时间 + 质量并列,不靠口号。
- 复盘跟 priority-filter 同仓库,Lab-1 对比是 结业硬交付。
- Agent 可辅助填表,人删空泛、补回滚与 must_fix。
- 下篇(第 22 篇):培训结束进团队——安全、规范、协作与推广。
下一篇
第 22 篇《团队落地:安全、规范、协作与推广》