Lab-5:功能交付与效能复盘

0 阅读8分钟

封面

交付 + 复盘表闭环培训,别只统计省时间不写质量。

组里有人接话:「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 条写进仓库)。

Lab-5 复盘闭环


复盘表模板: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 分钟回填

  1. 按阶段回忆块时间:澄清≈「站会前后半小时」→ 填 25;实现≈「下午两点到四点 minus 吃饭」→ 填 90,再拆人工/AI(看对话轮数:Agent 多轮通常 AI 分钟更高)。
  2. 用 Git 辅助git log --oneline feature/priority-filter 看 commit 间隔;git reflog 看回滚点——回滚那次 人工分钟要加上
  3. 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 代码占比 %」当核心指标

小结

  1. Lab-5 = 交付 + 复盘表,回答「省时间还是添乱」——靠 分阶段时间 + 质量并列,不靠口号。
  2. 复盘跟 priority-filter 同仓库,Lab-1 对比是 结业硬交付
  3. Agent 可辅助填表,人删空泛、补回滚与 must_fix
  4. 下篇(第 22 篇):培训结束进团队——安全、规范、协作与推广

下一篇

第 22 篇《团队落地:安全、规范、协作与推广》