SDD + Harness 四周学习计划 · Week 2 · Day 14(全计划第 14 课)
今日主题:周复盘:总结四大护栏落地形态,画自己的 Harness 理解图
建议用时:90 分钟 | 前置:Day 8–13 全部(讲义 + 实操记录,尤其 Day 13 的三态记录)
输出物:自己的 Harness 理解图(ASCII 或 Mermaid)+ 第二篇学习笔记《Week 2 周复盘》
0. 一句话剧透
Week 1 复盘日你干的是「查 spec 够不够格」;今天 Week 2 复盘日,你干的是「确认 harness 真的把 AI 管住了」。三件事:串(Day 8–13 一句一张卡)、画(自己的 Harness 理解图)、写(第二篇研究式学习笔记)。
记住本周的验收句:你已经亲眼看见、亲手制造了一次「改了代码没写 spec → 提交被拦」。 从「听说有四大护栏」到「被它拦了一次」,这就是 Week 2 全部的意义。
1. 今日目标(学完你能做到)
- 不看讲义,能把 Day 8–13 各用一句话串成认知地图(第 3 节)
- 能逐一说出四大护栏在 sdd-harness 里的落地形态(第 4 节)
- 能画出一张自己的 Harness 理解图(ASCII / Mermaid 均可,第 5 节)
- 能写出第二篇学习笔记《Week 2 周复盘》(预期→观测→复盘三件套)
- 能答对第 7 节复习题 10 题中的至少 8 题
对应计划评估标准第 2、3 条:能逐一说明 Harness 四大护栏解决什么问题;能在项目里安装并配置一个 harness,跑通 spec-first 提交。
2. 学习动线(复盘专用时间盒)
复盘日继续用《研究式学习手册》的实验三件套收尾:预期(我以为这周会怎样)→ 观测(实际发生了什么)→ 复盘(这教我什么)。
| 步骤 | 内容 | 用时 |
|---|---|---|
| 1 | 串认知地图:先默写 Day 8–13 各一句话,再对照第 3 节 | 10 分钟 |
| 2 | 精读「4」:四大护栏落地形态对照表 | 15 分钟 |
| 3 | 画自己的 Harness 理解图(第 5 节参考图 → 再画自己的) | 25 分钟 |
| 4 | 写第二篇学习笔记(第 6 节模板) | 20 分钟 |
| 5 | 复习题 10 题 + 打卡 | 15 分钟 |
3. 本周认知地图:Day 8–13 一句话串联
先自己默写,再对照下表。能独立写出来,才说明这周真的把 harness 装进了脑子。
| 天 | 一句话(记住这个就够了) |
|---|---|
| Day 8 | 四大护栏:项目规则(CLAUDE.md+Skills)、前置规划与权限(Plan Mode+Permission)、事后验证(Hooks)、上下文隔离(Subagents)——SDD 告诉 AI 做什么,Harness 保证 AI 做对 |
| Day 9 | sdd-harness:runtime-agnostic、零依赖(bash+git);全部机制在 .ai/(ROUTING 唯一入口 / PRODUCT / CONTEXT / BACKLOG / adrs / agents / commands / hooks / notes / specs),根目录 5 行指针文件,换 AI 只换指针 |
| Day 10 | 实操:装进测试仓库,在 feat 分支只改代码不写 spec → 被 pre-commit hook 拦下;fix/* 等分支豁免 |
| Day 11 | 命令循环:spec → story → implement → verify → review → release → phase-close,七个 Markdown 流程文件,用法是「让 AI 遵循该文件」;配 squash merge 与 SemVer |
| Day 12 | 对比:sdd-harness(仓库文件)/ harness-sdd(可移植多 CLI,”model is the engine, harness is the chassis”,Inception intake)/ SDD-Agent-Harness(本地 App,Spec→Plan→Build→Verify→Report) |
| Day 13 | 实操:spec-first 三态全跑通——spec+代码同提交(放行)、只改代码(拦截)、SH_SDD_SKIP=1(显式例外,shell 历史留痕) |
串起来的逻辑链:为什么需要护栏(Day8)→ 真实 harness 长什么样(Day9)→ 亲手装上并体验拦截(Day10)→ 装上之后流程怎么走(Day11)→ 别的实现怎么做的(Day12)→ 把核心机制三态跑通(Day13)→ 今天:确认这套东西在你手里真能用(Day14)。
4. 四大护栏的落地形态:在 sdd-harness 里各自对应什么
这是本周最重要的「对账表」——纸面上的四大护栏,在本周实操对象里的实体是什么:
| 护栏(Day 8) | sdd-harness 落地形态(Day 9–13 实测/精读) | 你亲手接触过吗 |
|---|---|---|
| 项目规则(CLAUDE.md+Skills) | 根目录 CLAUDE.md/AGENTS.md 5 行指针 → 重定向到 .ai/ROUTING.md(canonical 唯一入口);PRODUCT/CONTEXT/BACKLOG 用户填写 |
□ 精读(Day 9) |
| 前置规划与权限(Plan Mode+Permission) | 本讲义标「待核验」:sdd-harness 以文件规则约束流程;权限分级属于 AI 工具侧能力,harness 是否内置权限机制以 README 为准 | □ 未直接接触 |
| 事后验证(Hooks) | hooks/pre-commit-spec-check.sh(拦截:feat/feature 分支改代码不碰 spec/ADR → 拒;chore/docs/fix/hotfix 豁免)+ hooks/post-edit-trace.sh(记录:打印本次提交涉及的 spec/ADR/代码) |
□ 实操(Day 10/13) |
| 上下文隔离(Subagents) | .ai/agents/(如 spec-writer 子代理)——把「写 spec」这类职责隔离给专门代理 |
□ 精读(Day 9) |
复盘问题一:哪个护栏你最有实感? 大概率是 Hooks——因为你被它拦过。这正说明:机制只有「拦住过你一次」,你才会真正相信它不是摆设。
5. 我的 Harness 理解图
先给你一张参考图(基于本周已核验素材),然后画出你自己的——允许不一样,画得越「你的」越好。
5.1 参考图(ASCII 版)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌────────────────────────────────────────────┐
│ 你的仓库(Git,零依赖) │
│ │
AI 进来 → │ CLAUDE.md / AGENTS.md(5 行指针) │
│ │ 重定向 │
│ ▼ │
│ .ai/ROUTING.md(canonical 唯一入口) │
│ │ │
│ ├── 事实输入:PRODUCT / CONTEXT / BACKLOG│
│ ├── 决策历史:adrs/(ADR 0008) │
│ ├── 流程:commands/(七命令,让 AI 遵循) │
│ ├── 守门:hooks/(pre-commit 拦 + │
│ │ post-commit 记) │
│ ├── 隔离:agents/(spec-writer 等) │
│ └── 契约:specs/(spec v2 住这里) │
│ │
└────────────────────────────────────────────┘
开发循环:spec → story → implement → verify → review → release → phase-close
守门规则:feat/* 改代码不碰 specs|adrs → 拦;fix/* 等豁免;SH_SDD_SKIP=1 显式例外
5.2 画出你自己的图
要求(三条,都满足才算合格):
- 必须包含:AI(运行时)、
.ai/、ROUTING、commands、hooks、specs、spec v2 七样东西; - 必须体现关系:至少一条「流程」箭头(如 spec→implement)和一条「守门」箭头(如 commit→pre-commit);
- 必须体现本周的实操痕迹:在图上标注「Day 10 被拦」「Day 13 三态」这类你真实经历过的点。
可以用 ASCII、Mermaid,或者手画拍照。画图的过程比图本身重要——画不出来就回去翻 Day 9 第 4 节。
6. 写第二篇学习笔记(20 分钟,≥500 字)
按研究式学习三件套,模板如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Week 2 周复盘(Day 8–14)
## 一、预期(我以为)
学这周之前,我以为 harness 是……(写 1–2 句,越具体越好)
## 二、观测(实际发生)
- 我亲手装上了:□ bootstrap.sh □ clone + install.sh(或写实际方式)
- 我亲眼看到/亲手制造的拦截次数:______ 次;豁免/例外各 ______ 次
- 我的 spec v2 是否进入了 .ai/specs/:□ 是 □ 否(原因:______)
- 三态结果:放行 □ 拦截 □ SH_SDD_SKIP □(Day 13 记录)
- 我最意外的发现:______(例:hook 其实不检查 spec 质量,只检查「有没有碰 spec」)
## 三、复盘(新认知)
- 本周最大的认知:______
- 它推翻/强化了我 Week 1 的什么想法:______
- Week 3 学工程化闭环时我要带着的问题:______
## 四、下周行动
- 我要把 Day 13 的 spec v2 用到哪里:______
- 我要不要调整我的 spec 写法(因为 hook 只认「存在」,质量靠 review):______
提示:第 6 节模板里有个重要发现值得写——hook 只守「有没有 spec」,不守「spec 好不好」。质量责任回到了人/review 环节。这个边界,是 Week 2 给你最大的认知增量之一。
7. 本周复习题(10 题,覆盖 Day 8–13)
- 四大护栏是哪四个?各自防什么?(简答)
- sdd-harness 的两个核心属性是什么?「换 AI 只换指针文件」指的是什么?(简答)
.ai/里「用户填写」的三份文件是哪三个?(填空)- ADR 0008 记录了什么?(简答)
- pre-commit hook 在什么条件下拦截?哪些分支豁免?显式例外怎么写?(简答)
- 七个命令按顺序写出来;每个 commands 文件的四段结构是什么?(填空 + 简答)
- release 流程的四步是什么?版本号遵循什么规范?(简答)
- 判断题:SDD-Agent-Harness 是「仓库里的一组文件」。(判断——正确答案:否,它是本地 AI 开发 App,固定工作流 Spec→Plan→Build→Verify→Report)
- 选择题:以下哪句最能概括 harness-sdd 的设计思想? A. “model is the engine, harness is the chassis” B. “spec 是唯一的真相” C. “AI 越多越好” D. “hook 拦一切”
- 用一句话回答:spec-first 在 sdd-harness 里,是由什么机制强制保证的?(简答)
答不上来的题,回去翻对应那天的讲义。这 10 题就是 Week 2 的结业考。 全对,说明你可以带着 harness 进入 Week 3 的工程化闭环。
8. 下周预告:Week 3 · 工程化闭环(Day 15–21)
本周你有了「会拦人的 harness」,下周把它接进完整的交付体系:
- Day 15:SDD 四类契约(数据 / 行为 / 质量 / 可观测性)
- Day 16:精读《SDD 规范驱动 + Harness:AI 全栈开发工程化跃迁》——规范即代码、规范即测试
- Day 17:持续交付中的 Harness——CI/CD、金丝雀/蓝绿发布、Feature Flags、质量门禁、自动回滚
- Day 18:实操:spec 变成可执行验收(Gherkin 场景 / 契约测试)
- Day 19:三大挑战与对策(规范演进、AI 不确定性、模型权重管理)
- Day 20:实操:端到端功能——spec → plan → implement → verify → merge,全程留文档与证据
- Day 21:周复盘——五阶段闭环图 + 案例笔记
预习动作(今天顺手做):把 Day 13 的 spec v2 和三态记录整理到一处,Day 18「spec 变成可执行验收」会直接用到它。
延伸阅读
- sdd-harness 仓库(本周全部实操对象,回顾用):https://github.com/iMark21/sdd-harness
- 《SDD 和 Harness:AI 编程的两大支柱》(本周主参考):https://blog.csdn.net/qq_43284469/article/details/164267908
- 《出码率 90% 却没提效?》(为什么「能跑」不够,要「可控」):https://cloud.tencent.com/developer/article/2669269
- 《SDD 规范驱动 + Harness:AI 全栈开发从「能跑」到「可控」》(下周精读预告):https://cloud.tencent.com/developer/article/2703349
- 《AI 编程可闭环协作·卷三:Harness 与 SDD》(Week 4 精读,先存):https://juejin.cn/post/7647333934796537919
本工作纸依据《SDD+Harness四周学习计划.md》Day 14 主题编制。整理日期:2026-09-09