📄 一句话概括
最终项目是设计一套自己的预设——目标一句话,边界四条,产物是一段 YAML;难点全在【不做】那一栏。
📝 本节和前面几节的关系
8.1 改了起手式,8.2 定了能力的四个字段,这一节把题目定下来:给一个代码仓库做只读审查。
一、题目
一句话目标:只读地看代码,产出一份结构化审查报告。
选这个题不是因为简单,是因为它正好踩在两条线的中间: 要读文件(需要工具),但绝不允许写(需要边界)。
二、四条边界
- 要做:读文件、按内容搜索、登记待办、出报告。
- 不做:执行命令、改文件、装插件、派子代理。
- 范围:只读,动不了工作区里的任何东西。
- 交付:一份带结论与定位的报告。
四条里第一条是能力,后三条都是约束——约束比能力难写。
三、为什么这个题值得做
它是本课所有机制的合流点:
- 需求 → 能力(8.1、8.2)
- 能力 → 装配(第 3 章的预设与作用域)
- 装配 → 边界(第 4 章的管线与权限)
- 结果可查(第 6 章的证据链)
做完这一题,前面七章就串成了一条线。
四、产物长什么样
一段装进你自己那一层的补丁,向树里插入第五套预设。
官方四套的 order 是 1/2/3/4(standard/ptc/minimal/cordis),第五套填 5,自然排在最后。
实测量级:22 行配置、0 行代码。
五、动手 Demo:最终项目——审查预设的目标与边界
目标一句话,边界四栏,先看清单能不能站住:
goal = "只读看代码, 产出一份结构化审查报告"
do = ["读文件", "按内容搜索", "登记待办", "出报告"]
notdo = ["执行命令", "改文件", "装插件", "派子代理"]
print(" 目标:", goal)
print(" 要做 %d 项, 不做 %d 项——后者才是边界" % (len(do), len(notdo)))
实跑输出:
--------------------------------------------------------------------
最终项目——审查预设的目标与边界
--------------------------------------------------------------------
一句话目标:**只读地看代码,产出一份结构化审查报告**。
维度 写死的内容
----------------------------------------------
要做 读文件、按内容搜索、登记待办、出报告
不做 执行命令、改文件、装插件、派子代理
范围 只读;动不了工作区里的任何东西
交付 一份带结论与定位的报告
----------------------------------------------
【不做】这一栏比【要做】更重要——
**边界不是事后打补丁,是设计时就写进清单的**。
【不做】这一栏比【要做】更重要——要做决定你能干什么,不做决定你不会乱碰什么。 选【只读审查】当题目,是因为它天然把两条线都拉直:既要工具,又要边界。 产物很小:22 行配置——项目的大小不等于代码的行数。
30 秒实验
- 把题目换成【给一个仓库写单元测试】,四条边界重写一遍。
- 比较两题的【不做】栏,想想为什么比【要做】栏改得更多。
- 在纸上写出你这一题的【交付】那一条——能写具体就说明想清楚了。
常见误区
- 错误:题目越难越能体现水平。——纠正:题目要能证伪——审查预设的好处是边界清晰,改文件、跑命令这些【不该发生的事】都能当场验。
- 错误:先想工具,再补边界。——纠正:边界是设计的一部分,不是补丁——8.1 已经讲过顺序。
- 错误:成品应该是一个新插件包。——纠正:成品是一段装配清单——本课全程没写新包,结论落在配置上。
自测三问(点开对答案)
1. 最终项目的目标是什么? —— **只读地看代码,产出一份结构化审查报告**。 2. 四栏里哪一栏最关键? —— **【不做】**——它决定边界;能力栏决定你能干什么,约束栏决定你不会乱碰什么。 3. 第五套预设的 order 填几? —— **5**——官方四套是 1/2/3/4,第五套自然排在最后。- ☐ 下一节(8.3.2 第一步:先列任务与权限清单,再写 YAML)
相关笔记
- 第一步:先列任务与权限清单,再写 YAML —— 题目定了,开始写清单
- DSH 的 4 套 Preset 不是 4 个独立 Agent —— 为什么加一套预设这么便宜
- Harness Lab 的最终架构 —— 这一题在整栋楼里的位置
- 🐳 DeepSeek Harness · 索引