第 26 天:大作业——选真实功能(登录/分页/搜索),用 SDD+Harness 完整交付

SDD+Harness 四周学习计划 · Week 4 · Day 26

Posted by LSG on September 4, 2026

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 分钟)

  1. 确认你的测试仓库已装好 harness(Day 10/13 的产物),.ai/commands/.ai/hooks/config.sh 已就位(Day 23)。
  2. 打开第 5 节交付清单,先填”选题”两行。

6.2 写 spec(30 分钟)

  1. 从 develop 切 feat/<short-description>
  2. 复制 Day 22 模板 → 按七要素填充 → 验收全部 GWT + 数字。
  3. 按 Day 25 任务单格式,把功能拆成 1–3 个任务(含 DoD 与红线)。
  4. 提交:spec + 任务单同批(spec-first),commit 消息 feat/<name>: 新增 <功能> spec

6.3 implement(40–60 分钟)

  1. .ai/commands/implement.md(或你自己固化的版本)逐任务实现。
  2. 每个逻辑块一个 commit,消息符合 Day 24 规范。
  3. 全程记录:AI 在哪一步猜了你的意思?(写进交付清单第 5 节)

6.4 verify(20–30 分钟)

  1. .ai/commands/verify.md 逐条 AC 取证:自动化测试 / 样例集 / 压测记录。
  2. 每条 AC 旁标上证据来源;无证据的 AC 标”待验证”并写原因。

6.5 review + merge(20 分钟)

  1. .ai/commands/review.md 写书面审查记录(可找队友,或自己扮演审查者——关键是记录格式完整)。
  2. squash merge 回 develop(Day 24)。
  3. 填完交付清单,存盘。

收尾三问(今天的”观测”记录):① 我最卡的是哪一步?② harness 拦住了什么?③ 哪条 AC 我差点没证据?


7. 自测题

  1. 你的选题符合”够小 / 够真 / 够可测”吗?各自拿什么证明?
  2. spec 里每条 AC 都能转成自动化断言吗?有没有形容词漏网?
  3. 你的验证证据和 AC 是一一对应的吗?有没有”看起来过了但其实没证据”的 AC?
  4. review 记录里有没有写”遗留问题”?没有的话说明什么?
  5. 你的 feature 分支命名和 commit 消息符合 Day 24 规范吗?
  6. harness 在你这次交付里拦住了什么?放行了什么?
  7. 如果三天后有人要改你的功能,他能从哪些文件里搞清楚”当初为什么这么做”?
  8. 你这次最接近”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