SDD + Harness 四周学习计划 · Week 4 · Day 26(全计划第 26 课)
今日主题:大作业:选真实功能(登录/分页/搜索),用 SDD+Harness 完整交付:spec + 代码 + 验证证据 + review 记录
建议用时:120–180 分钟(可拆两个半天)| 前置:Day 22 模板 + Day 23 harness 配置 + Day 24/25 流程规范
输出物:完整交付包 = spec 文件 + 代码 + 验证证据 + review 记录(四件套,缺一不可)
0. 一句话剧透
前三周你拆开学过所有零件:Day 5 写 spec、Day 10/13 装 harness、Day 18 写 Gherkin、Day 20 端到端跑通。今天闭卷总装——选一个真实功能,从 spec 到 review 完整走一遍,交付四件套:spec、代码、验证证据、review 记录。这是全计划的毕业考:评估标准的每一条都在这一次交付里被检验。
今天是”闭卷考试”:能不查讲义就不查。卡住了才翻对应 Day 的讲义——把”卡在哪一天”记下来,那正是 Day 27 复盘的核心数据。
1. 今日目标(学完你能做到)
- 选题:真实功能(登录/分页/搜索三选一或等价),够小、够真、够可测
- 用 Day 22 模板写出 spec,验收全部 GWT + 数字
- 在已配置 harness 的仓库里按 commands 流程实现(spec-first)
- 产出验证证据(测试输出 / 样例集结果,与 AC 一一对应)
- 产出书面 review 记录,并按 Day 24 分支规范合入
- 完成交付清单自检(四件套齐全)
2. 学习动线(实操时间盒)
| 步骤 | 内容 | 用时 |
|---|---|---|
| 1 | 选题 + 交付清单准备 | 10 分钟 |
| 2 | 写 spec(Day 22 模板) | 30 分钟 |
| 3 | implement(走 commands) | 40–60 分钟 |
| 4 | verify:逐条 AC 取证 | 20–30 分钟 |
| 5 | review + merge(按 Day 24 规范) | 20 分钟 |
| 6 | 填交付清单 + 自检 | 10 分钟 |
| 全程 | 记录”AI 猜错 / 我写糊 / 被拦”的瞬间 | 全程 |
3. 选题:登录 / 分页 / 搜索
三选一(或等价的真实需求)。按 Day 5 的选题三原则:够小(半天到一天能做完)、够真(你手上真实要做的)、够可测(效果能量化)。
| 候选 | 可测点示例 |
|---|---|
| 登录 | 成功返回 token;失败返回明确错误码;连续失败限流 |
| 分页 | 第 N 页数据正确;越界页返回空/提示;大数据量下耗时达标 |
| 搜索 | 关键词命中;无结果提示;超时降级 |
如果三个都不是你真实的痛点,选一个你工作中真实会遇到的等价功能。“真”比”炫”重要——Day 27 复盘要靠它挖出真问题。
4. 交付四件套(今天的全部意义)
| # | 交付物 | 来源 | 自检问题 |
|---|---|---|---|
| 1 | spec 文件 | Day 22 模板 | 七要素全?AC 全可测? |
| 2 | 代码 | implement | 在 feature 分支上?commit 规范? |
| 3 | 验证证据 | verify | 每条 AC 都有证据?失败项有解释? |
| 4 | review 记录 | review.md | 有审查人/日期/结论/遗留问题? |
综合运用:spec 用 Day 5 的方法 + Day 22 的模板写,harness 用 Day 23 的配置和 commands 跑,分支/commit/merge 按 Day 24 的规范走,任务单按 Day 25 的格式写。
5. 完整交付清单模板(可直接复制)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Day 26 大作业交付清单
## 选题
功能:____ | 仓库:____ | feature 分支:____
## 1. spec 文件
路径:.ai/specs/____.md
- [ ] 七要素齐全
- [ ] 每条 AC = GWT + 数字
- [ ] 非目标 ≥3 条;边界 ≥3 类
## 2. 代码
- [ ] 在 feat/<short-description> 分支(Day 24 命名)
- [ ] commit 消息符合 type/short-description
- [ ] spec 与代码同一批提交(spec-first)
## 3. 验证证据
- [ ] 每条 AC 对应一个证据(测试名 / 命令输出 / 截图)
- [ ] 失败项已记录原因,未静默跳过
## 4. review 记录
- [ ] 审查人 / 日期 / 结论 / 遗留问题
- [ ] squash merge 回 develop(release 流程不在今日范围,如需要可做)
## 5. 过程记录(Day 27 复盘的原料)
- AI 猜错的地方:____
- spec 里我没写清楚、AI 追问的地方:____
- harness 拦截 / 放行的关键瞬间:____
6. 今日实操(照着走,约 2–3 小时)
6.1 准备(10 分钟)
- 确认你的测试仓库已装好 harness(Day 10/13 的产物),
.ai/commands/和.ai/hooks/config.sh已就位(Day 23)。 - 打开第 5 节交付清单,先填”选题”两行。
6.2 写 spec(30 分钟)
- 从 develop 切
feat/<short-description>。 - 复制 Day 22 模板 → 按七要素填充 → 验收全部 GWT + 数字。
- 按 Day 25 任务单格式,把功能拆成 1–3 个任务(含 DoD 与红线)。
- 提交:spec + 任务单同批(spec-first),commit 消息
feat/<name>: 新增 <功能> spec。
6.3 implement(40–60 分钟)
- 按
.ai/commands/implement.md(或你自己固化的版本)逐任务实现。 - 每个逻辑块一个 commit,消息符合 Day 24 规范。
- 全程记录:AI 在哪一步猜了你的意思?(写进交付清单第 5 节)
6.4 verify(20–30 分钟)
- 按
.ai/commands/verify.md逐条 AC 取证:自动化测试 / 样例集 / 压测记录。 - 每条 AC 旁标上证据来源;无证据的 AC 标”待验证”并写原因。
6.5 review + merge(20 分钟)
- 按
.ai/commands/review.md写书面审查记录(可找队友,或自己扮演审查者——关键是记录格式完整)。 - squash merge 回 develop(Day 24)。
- 填完交付清单,存盘。
收尾三问(今天的”观测”记录):① 我最卡的是哪一步?② harness 拦住了什么?③ 哪条 AC 我差点没证据?
7. 自测题
- 你的选题符合”够小 / 够真 / 够可测”吗?各自拿什么证明?
- spec 里每条 AC 都能转成自动化断言吗?有没有形容词漏网?
- 你的验证证据和 AC 是一一对应的吗?有没有”看起来过了但其实没证据”的 AC?
- review 记录里有没有写”遗留问题”?没有的话说明什么?
- 你的 feature 分支命名和 commit 消息符合 Day 24 规范吗?
- harness 在你这次交付里拦住了什么?放行了什么?
- 如果三天后有人要改你的功能,他能从哪些文件里搞清楚”当初为什么这么做”?
- 你这次最接近”AI 自由发挥”的瞬间是哪里?当时 spec 里缺了什么?
提示:第 7 题指向
.ai/specs/+adrs/+ review 记录的可检索性(Day 25 任务单”可检索”的意义)。
8. 延伸阅读
- sdd-harness 仓库(总装时的参考实现):https://github.com/iMark21/sdd-harness
- harness-sdd(另一个可移植实现,可对比你的配置):https://github.com/araozmd/harness-sdd
本工作纸依据《SDD+Harness四周学习计划.md》Day 26 主题编制。整理日期:2026-09-09