SDD + Harness 四周学习计划 · Week 4 · Day 27(全计划第 27 课)
今日主题:大作业复盘:AI 哪里猜错?spec 哪里不清楚?harness 哪里没拦住?迭代模板
建议用时:90 分钟 | 前置:Day 26 的完整交付包 + 过程记录
输出物:复盘记录(三问答案 + 证据链)+ 个人 spec 模板 v2(迭代版)
0. 一句话剧透
Day 26 你交付了四件套,也记了一堆”卡住瞬间”。今天把它们变成结论:AI 哪里猜错?spec 哪里不清楚?harness 哪里没拦住? 三问各自要拿证据回答——git log、spec diff、hook 拦截记录,不许凭感觉。答完把教训写回模板,产出 spec 模板 v2。
沿用 Day 7 的研究式三件套:预期(我以为交付得很顺)→ 观测(实际卡在 X)→ 复盘(X 教会我什么)。
1. 今日目标(学完你能做到)
- 能用证据回答三问:AI 猜错 / spec 模糊 / harness 没拦住(每问至少一条证据)
- 能把每个教训定位到”模板的哪个位置该改”
- 产出 spec 模板 v2(记录 v1 → v2 改了哪几处、为什么)
- 完成复盘记录存盘(Day 28 分享稿的素材)
2. 学习动线
| 步骤 | 内容 | 用时 |
|---|---|---|
| 1 | 收集证据:git log / spec 提交历史 / hook 拦截记录 | 15 分钟 |
| 2 | 三问逐一回答(第 3–5 节方法) | 30 分钟 |
| 3 | 定位模板问题(第 6 节) | 15 分钟 |
| 4 | 迭代出模板 v2 | 15 分钟 |
| 5 | 复盘记录收尾 | 10 分钟 |
| 6 | 自测 + 打卡 | 5 分钟 |
3. 第一问:AI 哪里猜错?
证据来源:git diff 里”你没写、它自己决定”的代码;实现与 spec 不一致的地方。
常见三类:
- 语义猜错:你没写清”什么算成功”,它自己定义了
- 范围越界:非目标没写够,它”顺手”多做了
- 细节猜错:文案、错误码、边界处理你没给,它编了一个
记法:每个”猜错”都对应 spec 里的一个空白。 空白填上,下次它就不会猜。
4. 第二问:spec 哪里不清楚?
证据来源:AI 追问过你的地方;review 时你解释”其实我意思是……”的地方。
常见三类:
- 形容词残留:还是漏了”快 / 友好 / 安全”
- 量级缺失:有数字但没有基线 / 单位(Day 7 的 F 组)
- 契约缺失:数据 / 行为 / 质量 / 可观测性四类契约里,哪一类没写(Day 15)
把”AI 追问过的问题”原样抄下来,这就是 spec 模板要补的提示句。
5. 第三问:harness 哪里没拦住?
证据来源:hook 拦截日志;CI 失败记录;你手动跳过检查的瞬间。
常见三类:
- 范围没覆盖:config.sh 里 SH_CODE_EXCLUDE_GLOBS 排太宽,漏了真代码
- 分支豁免被滥用:chore/ 分支上做了功能改动(Day 24 配套失效)
- 门禁形同虚设:有 hook 但你用 SH_SDD_SKIP=1 跳过且没留痕,或 CI 没接上
记住:harness 拦不住 ≠ harness 没用,而是配置没对齐你的真实风险。 这正是 Day 23 config.sh 存在的意义。
6. 迭代模板:从教训到 v2
把三问的答案逐条映射到模板位置:
| 教训 | 改模板哪里 |
|---|---|
| AI 猜了错误码 / 文案 | 模板 AC 区加一行”错误码清单” |
| 非目标漏了”顺手”项 | 模板非目标区加”我顺手的念头”提示 |
| 数字没基线 | 模板验证方式区加”基线来源”栏 |
| 行为契约缺失 | 模板四类契约区提示”行为契约必填” |
| hook 没拦住 | 不改模板,改 config.sh(Day 23 产物) |
产出:MySpec-Template-v2.md,文末用 3–5 行记录 “v1 → v2 改了什么、为什么”。
7. 动手练(复盘时间盒,约 45 分钟)
- 打开 Day 26 交付清单的”过程记录”节,把三条原始记录捞出来(10 分钟)
- 按第 3–5 节逐问回答,每题配一条证据:git log 哈希 / spec diff / hook 日志(20 分钟)
- 填第 6 节映射表,改出模板 v2(10 分钟)
- 写 5 行复盘结论:这次大作业证明了你已经 / 还不会什么(5 分钟)
打卡:
Day27-大作业复盘.md+MySpec-Template-v2.md。Day 28 会把 v2 定稿为最终版 v3。
8. 自测题
- 复盘三问是哪三问?为什么必须”拿证据回答”而不是凭感觉?
- “AI 猜错”的三种常见类型是什么?各自对应 spec 的什么空白?
- “spec 不清楚”的三种常见类型是什么?对应 Day 7 的哪组检查?
- “harness 没拦住”的三种常见类型是什么?
- 一个教训如何定位到模板的具体位置?举例。
- 为什么说”harness 拦不住 ≠ 没用”?
- v1 → v2 的改动记录里应该写什么?(格式)
- 这次复盘和三周前 Day 7 的复盘相比,你的能力差异在哪?(自由回答)
提示:第 3 题对应 Day 7 的 B 组(形容词)、F 组(量级)、Day 15 四类契约;第 7 题参考第 6 节表格。
9. 延伸阅读
- 腾讯云《出码率90%却没提效?》(三大瓶颈仍是复盘的好框架):https://cloud.tencent.com/developer/article/2669269
- CSDN《SDD 和 Harness:AI 编程的两大支柱》:https://blog.csdn.net/qq_43284469/article/details/164267908
本工作纸依据《SDD+Harness四周学习计划.md》Day 27 主题编制。整理日期:2026-09-09