第 8 天:Harness 四大护栏——把 AI 的执行管起来

SDD+Harness 四周学习计划 · Week 2 · Day 8

Posted by LSG on August 17, 2026

SDD + Harness 四周学习计划 · Week 2 · Day 8(全计划第 8 课)

今日主题:Harness 四大护栏:项目规则(CLAUDE.md+Skills)、前置规划与权限(Plan Mode+Permission)、事后验证(Hooks)、上下文隔离(Subagents)

建议用时:60–90 分钟 | 前置:Week 1 全周(Day 1–7),重点 Day 2 的完整闭环图

输出物:一张「四大护栏 × 防什么」对照卡 + 一份护栏→sdd-harness 的猜测清单(Day 9 开卷验证)


0. 一句话剧透

Week 1 你已经搞懂了 SDD 告诉 AI「做什么」——spec 是人与 AI 的验收契约。但契约写得再好,AI 会自觉遵守吗?谁来检查它遵守了?答案是 Harness(驾驭工程):一套围在 AI 身边的护栏,保证它「做对」。

今天把四大护栏一次看全:项目规则(CLAUDE.md+Skills)、前置规划与权限(Plan Mode+Permission)、事后验证(Hooks)、上下文隔离(Subagents)。记住 Week 1 就立下的分工一句话:SDD 告诉 AI 做什么,Harness 保证 AI 做对。


1. 今日目标(学完你能做到)

  • 能背出四大护栏的名字,并用一句话说清各自「防什么」
  • 能说出 CLAUDE.md+Skills 的本质是「项目规则 / 知识底座」,告诉 AI 项目怎么运作
  • 能区分 Plan Mode 与 Permission:一个管「先规划后执行」,一个管「权限边界」
  • 能讲清 Hooks 是「事后验证 / 守门」,并说出它和 Git 钩子的关系
  • 能说出 Subagents 防的是「上下文污染」
  • 完成实操:填对照卡 + 写护栏→sdd-harness 猜测清单(Day 9 验证)

对应计划 Week 2 主题:Harness 工程(把 AI 的执行管起来),Day 8 是本周开门课。


2. 学习动线(建议时间分配)

步骤 内容 用时
1 精读「3」:Week 1 → Week 2 的转折 10 分钟
2 精读「4」–「7」:四大护栏逐个拆 30 分钟
3 精读「8」:四护栏如何咬合成闭环 + 映射猜测 10 分钟
4 实操「9」:填对照卡 + 猜测清单 15–25 分钟
5 自测「10」+ 打卡 10 分钟

3. 开门:Week 1 是「想清楚」,Week 2 是「管得住」

Week 1 你完成了一条完整的认知链:为什么 AI 编程需要工程化(Day 1)→ SDD 与 Harness 的分工(Day 2)→ spec 七要素(Day 3)→ 三种落地方式(Day 4)→ 亲手写 spec(Day 5)→ 工具链 Spec-Kit / OpenSpec(Day 6)→ 复查出 spec v2(Day 7)。

这条链解决的全是「做什么」:需求有没有写清、验收能不能量化、增量怎么表达。但 Week 1 你很可能已经遇到一个隐隐的不安:spec 写好了,AI 真的会照着做吗?

  • 它会不会把「只做登录」顺手做成「登录 + 注册 + 找回密码」?
  • 它会不会在改代码时,把无关的旧 bug 也「好心」修了?
  • 它会不会为了完成任务,执行一条危险命令(删库、清缓存、推送到不该推的分支)?
  • 它会不会因为对话太长,把前面说好的约束忘光?

这就是 Harness 的战场。它不是又一种「写文档的规范」,而是一组机制:让 AI 的行为被约束、被检查、被隔离。Day 2 精读《SDD 和 Harness:AI 编程的两大支柱》时你已经见过完整闭环图的右半边,今天把它展开成四个护栏。


4. 护栏一:项目规则——CLAUDE.md + Skills

一句话:把「这个项目怎么运作」写进文件,AI 一进项目就读到。

CLAUDE.md(以及同类工具里的 AGENTS.md 等)是放在项目根目录的规则文件。它告诉 AI:本项目的技术栈是什么、目录怎么组织、代码风格怎么定、测试怎么跑、提交规范是什么、哪些目录不能碰。Skills 则是可复用的能力包——把高频操作(比如「怎么跑本项目测试」「怎么按团队规范写 commit」)固化成可调用的技能,AI 不用每次重新摸索。

它防的是:AI 把每个项目都当成「默认项目」来猜。 没有规则文件,AI 会按自己的通用经验行事——这往往和你的项目实际不符。有了 CLAUDE.md+Skills,AI 第一次进入项目就知道「这里不是随便一个仓库,这里的规矩是这样」。

本质:知识底座。 它不是约束 AI「不能做什么」,而是告诉 AI「这里是怎么运作的」,让它少猜、猜对。


5. 护栏二:前置规划与权限——Plan Mode + Permission

一句话:先想清楚再动手(Plan Mode),并且只能碰允许碰的东西(Permission)。

Plan Mode(规划模式):要求 AI 在执行前先输出计划——准备改哪些文件、分几步、每步做什么、影响面多大——等确认后再动手。它防的是「边想边做」:AI 直接开写,写到一半方向错了,浪费一大片。

Permission(权限边界):对 AI 能执行的操作分级授权。读文件可以,写文件要允许,执行危险命令(删除、覆盖、发布、访问网络等)要单独确认。它防的是:AI 执行危险命令。 没有权限边界,一句「帮我清理一下项目」可能真的触发 rm -rf;有了权限分级,高风险操作会停在确认环节。

分工:Plan Mode 管「先规划后执行」,Permission 管「权限边界」。 一个管顺序,一个管范围。


6. 护栏三:事后验证——Hooks

一句话:在关键节点(提交、合并、发布)自动检查,不合格就拦下。

Hooks 是挂在 Git 生命周期上的自动检查脚本——最典型的是 pre-commit hook:每次 git commit 之前跑一遍校验,不通过就不允许提交。Week 2 的主角 sdd-harness 就靠它实现「改了代码没写 spec → 提交被拦」。

它防的是:AI 说「做完了」但没证据。 SDD 的验收标准写在 spec 里(Given-When-Then),但谁来证明代码真的满足了?Hooks 把「验证」变成不可跳过的一步——不是靠人记得去查,而是靠机制强制查。事后验证 / 守门,这是四个护栏里最「硬」的一个:规则文件可以被无视,权限可以被绕过,但钩子拦在必经之路上。

类比:进地铁的安检门。平时感觉不到它的存在,但带违禁品时它一定响。


7. 护栏四:上下文隔离——Subagents

一句话:把任务拆给专门的小 AI,各管一段,互不污染。

Subagents(子代理)把一个大任务拆成多个专业小代理:一个负责写 spec、一个负责审代码、一个负责写测试……每个子代理只拿到自己需要的上下文,只输出自己负责的产物。

它防的是:上下文污染。 AI 的上下文窗口有限,一个会话里塞进太多无关信息,前面的关键约束就会被「挤」出去或相互干扰——写代码的 AI 脑子里还残留着 review 意见,就容易改错地方。隔离之后,每个 AI 的「记忆」干净、聚焦,主代理只负责调度和汇总。

本质:防上下文污染 / 防上下文失控——Week 1 Day 1 讲过的 Vibe Coding 第二大瓶颈,在这里有了机制化的解法。


8. 四条护栏怎么咬合成闭环

四个护栏不是四个孤立的开关,而是覆盖一次 AI 开发全程的防线:

阶段 护栏 防什么
动手前 项目规则(CLAUDE.md+Skills) AI 不知道项目怎么运作,靠猜
动手前 前置规划与权限(Plan Mode+Permission) 边想边做、执行危险命令
动手时 上下文隔离(Subagents) 上下文污染、约束被挤丢
动手后 事后验证(Hooks) 「做完了」无证据、悄悄跑偏

拆开看是四件事,合起来是一件事:把「AI 会自由发挥」这个风险,从人的记忆负担,变成机制的结构约束。

回到 Day 2 的分工:SDD 告诉 AI 做什么,Harness 保证 AI 做对。 spec 解决「做什么」,四大护栏解决「怎么做对」——规则让它知道怎么做对,权限让它不能做错,hooks 让做错了过不去,subagents 让它别乱做。

8.1 猜测清单:四大护栏会怎么落在 sdd-harness 里?

Day 9 我们要精读 sdd-harness(github.com/iMark21/sdd-harness,Day 7 已让你 clone 到本地)。精读之前,先写下你的猜测——Day 9 开卷验证:

护栏 我猜 sdd-harness 里对应什么 Day 9 验证结果
项目规则 ?(提示:根目录有没有一个「唯一入口」文件?)  
前置规划与权限 ?(提示:它只有 bash+git,权限可能靠什么?)  
事后验证 ?(提示:README 里提过 pre-commit……)  
上下文隔离 ?(提示:目录里有没有 agents/?)  

猜错完全没关系——猜测清单的意义是让你带着「找答案」的眼睛去精读,而不是被动浏览。


9. 今日实操(约 25 分钟)

9.1 填四大护栏对照卡(15 分钟)

不看讲义,默写一张卡:

1
2
3
4
5
护栏名          一句话职责          防什么          动手前/动手时/动手后
① 项目规则      告诉 AI 项目怎么运作    AI 靠猜       动手前
② 前置规划与权限  先规划后执行 + 权限边界  边想边做、危险命令  动手前(权限贯穿全程)
③ 事后验证      ?                   ?             动手后
④ 上下文隔离     ?                   ?             ?

填完对照讲义第 4–7 节,把漏的补上,并在每条后面补一个你自己的真实例子(例:「上周 AI 改订单模块时顺手重命名了一个公共函数,这就是没管住『范围』」)。

9.2 写猜测清单(10 分钟)

把 8.1 的表抄到你的学习笔记里,先凭直觉填「我猜」三列,不要翻 sdd-harness 的 README——留到 Day 9 精读时验证


自测题

  1. 四大护栏是哪四个?各用一句话说清「防什么」。(简答)
  2. CLAUDE.md+Skills 的本质是什么?它防的是 AI 的哪种行为?(简答)
  3. Plan Mode 和 Permission 的区别是什么?各自管住哪个风险?(简答)
  4. 为什么说 Hooks 是四个护栏里「最硬」的一个?(简答)
  5. Subagents 防的具体问题叫什么?(填空)
  6. 判断:只要 spec 写得足够好,AI 就一定会照做,不需要 Harness。(判断,说明理由)
  7. 判断:Permission 只在 AI 动手之前起作用,动手之后就管不着了。(判断)
  8. 选择题:pre-commit hook 在什么时机运行? A. 每次 AI 生成代码时 B. 每次 git commit 之前 C. 每次 git push 之后 D. 每次打开编辑器时
  9. 把四大护栏按「动手前 / 动手时 / 动手后」归类。(简答)
  10. 一句话:SDD 和 Harness 的分工是什么?(简答)

提示:第 6 题——Week 1 Day 1 的 Vibe Coding 三大瓶颈里,有一个正是「无法验证」,你想想 spec 再好,验证谁来做?第 10 题是 Week 1 的结业句,必须能脱口而出。


延伸阅读

  • 《SDD 和 Harness:AI 编程的两大支柱》(四大护栏出处,Day 2 精读过,今天回看右半边):https://blog.csdn.net/qq_43284469/article/details/164267908
  • 《AI 编程可闭环协作·卷三:Harness 与 SDD》(合并前自动检查、书面审查,Week 4 会精读,先存着):https://juejin.cn/post/7647333934796537919
  • sdd-harness 仓库(Day 9–13 的主实操对象):https://github.com/iMark21/sdd-harness

本工作纸依据《SDD+Harness四周学习计划.md》Day 8 主题编制。整理日期:2026-09-09