很多人用 Claude Code,停留在”开个对话框问一句答一句”。这没错,但也就到此为止了。
真正的杠杆在于:把 AI 的对话能力,封装成可复用、可管理、可扩展的工程基础设施。我把这套方法叫 Harness Engineering。
直接用 AI,会撞上四堵墙
- 上下文丢失:每次新会话从零开始,项目背景要重新解释一遍
- 操作重复:同一套工作流,每次手动描述,纯内耗
- 质量不稳定:没有标准流程,输出好坏全看当天 prompt 写得怎么样
- 知识孤岛:这次会话踩的坑,下次会话完全接不上
Harness Engineering 要解决的,不是”怎么把 prompt 写得更好”,而是”怎么让 prompt 这件事本身不再依赖临场发挥”。
三层体系:Commands / Skills / Hooks
Commands(43 个)——标准化操作。 每个 command 是一个 markdown 文件,定义完整的 prompt、输入输出规范和约束。三条设计原则:单一职责(一个 command 只做一件事)、可组合(groom = pull + audit + fix + review + ship)、幂等(重复执行不产生副作用)。
Skills(14 个)——智能激活。 比 command 高一层,带触发条件,匹配到场景自动激活。比如处理 ~/Work/bids/ 下的标书时,bid skill 会自动拉起”解析招标文件 → 搭章节框架 → 盘点参考资料 → 四阶段写作”的完整流程。你不用记得去调它。
Hooks——生命周期自动化。 在特定事件自动触发:startup 时检测 HANDOFF.md 恢复上次上下文;会话结束时自动生成摘要 + 发 macOS 通知;提交前跑质量检查。
Memory:让经验跨会话流动
结构化记忆分四类,各司其职:
| 类型 | 用途 | 示例 |
|---|---|---|
| user | 用户画像 | “深度 Go 经验,React 新手” |
| feedback | 行为校准 | “commit+push 一步到位” |
| project | 项目动态 | “merge freeze 3 月 5 日开始” |
| reference | 外部指针 | “pipeline bugs 在 Linear” |
每条记忆是独立 md 文件,MEMORY.md 做索引,系统自动检测并清理过期记忆。这才是”跨会话经验传递”真正落地的地方。
效果
这套体系让我一个人可以:
- 管理 29 个 GitHub 仓库
- 维护 24 个 线上服务
- 每天稳定产出高质量技术文档
- 在水利、DevTools、AI 三个领域并行推进
核心价值从来不是”会用 AI”,而是”把 AI 做成了生产级工具链”。
工具链的意义,是让你的能力上限不再由单次对话决定,而由你搭的这套架构决定。