作者将八篇 Claude Code harness 工程文章(Memory/Tools/Permissions/Hooks/可观测性)沉淀为开源 CLI,一键初始化标准化的 .claude/ 文件结构,避免每周重复手打相同配置。
新仓库。空的 .claude/ 文件夹。光标在崭新的 CLAUDE.md 里闪烁。
我做了之前做过十几次的事:在另一个窗口打开上个月的项目,开始复制。权限块。rm -rf 守卫。MEMORY.md 脚手架。MCP 配置。粘贴,查找替换项目名,切换回窗口。
做到一半,讽刺感才姗姗来迟。我们刚刚发表了八篇文章,恰恰是在教开发者们如何构建一个可靠的 harness——层层递进。而我作为作者,却在这里凭着记忆重新打字,还希望自己没有漏掉哪一层。
整个系列的核心观点可以用一个公式概括:
Agent = Model + Harness
模型是 commodity——所有用同一版 Claude 的人获得的是相同的原始能力。Harness 是属于你的那部分。这就是为什么一个团队能干净利落地发布代码,而隔壁团队却发布一个回滚一个。
我们把它拆成五层,每层深入讲一篇:
Memory —— 你打字之前它知道什么。CLAUDE.md 作为 failure log,不是愿望清单。
Tools —— 它能触及什么,通过 MCP servers。
Permissions —— 它被允许触碰什么。三十秒配置就能阻止一个粗心的 install 搞坏你的机器。
Hooks —— 运行时强制执行什么。这是唯一上下文没法争辩出结果的一层。
Observability —— 之后你能看到什么,加上一个让 agent 在宣布完成之前验证自己工作的循环。在这一切之下是约束悖论:你越限制 agent 能做什么,它在自己该做的事上表现得越好。LangChain 公开论证了同样的观点——驱动分数跃升(Terminal Bench 2.0 上 +13.7 分,52.8% → 66.5%)的是 harness 和 context 的改变,而不是换模型。
理论很好。有真实数据支撑。但每篇文章结尾都一样:"把这个代码块复制到你的 .claude/ 文件夹里。"
我们给一座工厂写了本漂亮的手册,然后让每个人在每栋新建筑里手工组装生产线。每次都手动执行的 SOP 不是系统——是一场你最终会挂掉的记忆力测试。
你忘了一层。不会是那些出名的——rm -rf hook 你永远记得,因为它曾经吓过你。你忘的是无聊的那层:observability log,MEMORY.md index。等你注意到的时候已经过了三周,那时 agent 把你在一次它没有记录会话中已经修好的 bug 又引入了回来。
你的团队在项目开始前就分化了。一个 dev 写了一套严格的 permissions block。另一个复制了一份更旧的、宽松的版本。第三个"就这一次"跳过了 hooks。现在你没有 harness——你有四个方言版本的同一套东西。版本控制它的意义在于团队继承的是相同的可靠性。手工组装从第一天起就破坏了这个目标。
修复方法不是更聪明的模型。是让正确的 harness 成为容易的 harness:可复现、一致、设置起来无聊透顶。
我们回顾了每篇文章,然后问自己:如果这不是一个要复制的代码块,而是一场面试里的问题呢?
这就是 shipwithai-starter——一个开源插件:
/shipwithai-starter:init
它询问你的技术栈和想要多少严格程度,然后写出整个 harness——五分钟拿到核心部分,三十分钟完整配置。然后:
git add CLAUDE.md .claude/ .mcp.json docs/
git commit -m "chore: add Claude Code harness"
你的队友克隆仓库,打开 Claude Code,harness 已经在那里了。不用第二个窗口。没有分化。生产线随建筑一起交付。

每篇文章现在在另一端都有一条命令:
博客依然教你手工做这件事——你应该读,因为你不理解的东西没法维护。但插件意味着你手工做一次是为了学习,而不是每个周一都重复做一遍,永无止境。
坦诚的部分:系列文章说五层。插件实际配置了七层。这就是 dogfooding 对框架的影响。
Agents —— .claude/agents/ 里的 sub-agents,包括一个 drift-monitor,每周运行一次,告诉你什么时候你的 CLAUDE.md 已经悄悄不再和代码匹配。failure-log 模式的自动化版本。
SSOT —— single-source-of-truth 文档:架构文件、ADRs、codebase maps。让 agent 不用重新争论你已经做过的决策的那种上下文。我们会写深入讲解。但我们更想先交付工具、承认框架因为我们使用它而成长了,而不是假装地图在我们走之前就是完美的。
完全开源:github.com/ShipWithAI/shipwithai-plugins——hooks、interview 逻辑、templates、drift-monitor agent,全是纯 Markdown 和 Python。审计这个将要写入你 .claude/ 文件夹的东西。这是交付一个专门负责强制约束的工具唯一诚实的方式。
然后在一个真实项目上运行 /shipwithai-starter:init,提交它,让一个队友拉取。当别人的 harness 和你的完全一样、零配置就出现了,你会感受到整个系列一直在指向的那个差异。
真正的测试:六个月后打开一个新仓库。如果你发现自己还在手工从旧项目复制 harness——工具输了。如果它已经在那里了,因为一条命令和一次提交把它放到了那里——这才是 harness engineering 最终实现了自我工程化。
我们写了八篇文章讲这套方法论。这是第九篇,也是我们停止手工实践的那一篇。
shipwithai-starter 由 ShipWithAI 团队构建和维护。我们先在自己的仓库上用它,确认没问题才推荐给你。