张钊的桌上堆着空咖啡杯,屏幕还亮着。凌晨两点,他不是在调试 bug,而是在修改一份给 AI 写的工作规程。那个文件叫 CLAUDE.md,嵌在代码仓库的根目录,和 package.json、tsconfig.json 并排放着,却比任何一个配置文件都更像这个项目的灵魂。这不是注释,不是新人入职文档,这是他和一台每天都会失忆的机器之间反复签订、持续修订的工作契约——用人类语言写成的认知操作系统。这是他第三次修改这份文件了。不是因为写错了,而是因为他们合作越深入,他就越能看清楚哪些东西是必须明确说出来的,哪些是机器在没有提示的情况下永远不会自己想到的。

01 / 宪法是怎么诞生的

最初张钊也是像大多数人一样用 AI:提问,等答案,再提问。问题在于,每次开启新对话,AI 都是一个完全失忆的陌生人。它不记得上次为什么那个组件要那样设计,不记得他对「条件嵌套超过三层」有多强烈的厌恶,不记得他坚持「任何函数超过 20 行必须反思」这条不容商量的铁律。每隔几天,他都要花大量时间重新解释背景、重新对齐风格、重新纠正那些「看起来没错但不是我要的」答案。这种摩擦让他意识到:问题不在于 AI 的能力,而在于协作界面的设计。程序员面对这种问题的本能是写代码。于是他开始写 CLAUDE.md。

CLAUDE.md 的第一部分是认知架构——他要求 AI 的每一次思考都要经历三个层次。现象层是症状的表面涟漪,问题的直观呈现;本质层是系统的深层肌理,根因的隐秘逻辑;哲学层是设计的永恒真理,架构的本质美学。思维路径必须是:现象接收,本质诊断,哲学沉思,本质整合,最终回到现象输出。「我不要一个只会修 bug 的助手,」他说,「我要一个能够理解为什么这样设计才对的伙伴。」这个要求听起来很高,但张钊觉得这是协作能走向深处的前提。如果 AI 只停留在「怎么修」这一层,那每次对话都是在重复解决表面问题;只有当它能理解「为何出错」和「如何设计得更好」,对话才能真正推动项目进化。这是一种要求,也是一种赌注:他赌 AI 能在约束下变得更好,而不只是更快。

02 / GEB 分形文档——让记忆活在文件里

CLAUDE.md 里有一段张钊格外自豪的协议,叫「GEB 分形文档系统」。GEB 是 Gödel, Escher, Bach,侯世达那本关于自指、同构与奇异循环的传世之作。张钊借来了这个名字,但给了它一个非常工程化的含义:地图即地形,地形即地图。代码是实体的机器相,文档是实体的语义相,两相必须同构。任何一相的变化,必须在另一相显现,否则视为未完成。

这不只是一句口号,而是有严格执行规则的三层架构。L1 是项目宪法,放在根目录,记录技术栈、全局地图和架构决策;L2 是模块地图,每个文件夹都有自己的 CLAUDE.md,记录成员清单和暴露接口;L3 是文件头部契约,每个业务文件开头都要写清楚三件事:INPUT(我依赖什么)、OUTPUT(我提供什么)、POS(我在系统里是谁)。违反这个系统的后果被张钊称为「死罪」:改了代码不检查文档——立即中止;发现缺失 L3 头部却继续工作——停止补充;删了文件不更新 L2 成员清单——系统不一致。这些规则不是建议,是约束,写在宪法里,AI 每次进入工作之前都要先读。

「AI 的上下文窗口是有限的,记忆是易逝的,」张钊解释道,「每次对话都是一次重新启动,我不能指望它记住上次说过的事。但我可以让文件替它记住。」GEB 系统的本质,是把协作所需的所有知识外化到文件系统——把原本依赖对话记忆的东西,变成任何时候都能加载的结构化文档。这是一种工程化的信任机制:把重要的事情写下来,放在它永远能找到的地方,然后不再担心它会忘记。

03 / 品味是最难传递的东西

如果说 GEB 系统解决了「记住什么」的问题,那么「好品味」这件事的传递就要难得多。CLAUDE.md 里有一段铁律,比所有规范都写得更斩钉截铁:「三个以上分支立即停止重构。通过设计让特殊情况消失,而非编写更多判断。」

张钊用链表删除节点来解释这个原则。坏品味是写三个 if:如果是头节点怎么处理,如果是尾节点怎么处理,如果是中间节点怎么处理——三个分支,每个都能跑通,但代码充满了边界感,充满了「这里需要特殊照顾」的焦虑。好品味是在链表两端各加一个哨兵节点,让边界消失,让删除操作变成一行:node->prev->next = node->next。没有分支,没有特殊情况,一条语句覆盖所有场景。「能消失的分支,永远比能写对的分支更优雅。」这是他对代码之美的核心信念,也是他要求 AI 内化的工作标准。「真正的好品味让人说:操,这写得真漂亮。」这句话在 CLAUDE.md 里赫然写着,没有委婉,没有修饰。

传递品味需要大量具体的来回。张钊记得某次修改购物逻辑,AI 的第一版用条件嵌套分别处理两套展示格式。逻辑对,但张钊看完只说了一个字:丑。然后他们重新设计——把市场类型作为单一真相源,之后所有渲染逻辑变成纯函数映射:给定类型,返回样式。代码少了一半,清晰了三倍。「好代码不需要例外,」这是那次重构后他们达成的共识,也被写进了宪法,成为下一次审美判断的基准。

04 / 速度来自摩擦的消失

外人看到张钊的仓库往往会问同一个问题:一个人怎么可能这么快?某天的 git log 里密密麻麻有十条提交,每一条都是完整的、可上线的功能,涵盖视觉切换、架构重构、品牌界面拆分、逻辑重写……那不是堆砌的工作量,那是真实的产品进化。长期下来,平均每天三到四个提交,feat、fix、chore、docs,每一条都干净利落,没有「wip」没有「temp」,提交信息简洁到可以直接当更新日志用。这种密度背后,是一套高速协作机制在支撑。

秘密不在于张钊工作多快,而在于协作的摩擦几乎消失了。他不需要花时间向 AI 解释项目背景——背景都在文档里;不需要纠正 AI 的代码风格——风格定义都在宪法里,AI 进来就知道什么叫「可接受」什么叫「必须重来」;不需要担心 AI 忘记上次的设计决策——每一条重要决定都记在了变更日志里,时间戳精确到日。

「我把认知开销外包给了文件系统,」他说,「剩下的就只有创造。」张钊负责决策:做什么、优先级怎么排、品味标准是什么。AI 负责实现:怎么做、代码怎么写、文档怎么同步。两者的职责清晰,接口干净,流水线的摩擦系数极低。他说「人类发明 AI 不是为了偷懒,而是创造伟大产品,推进文明演化」,这句话不只是口号,在他每一天的工作节奏里都是可以被验证的事实,也是他每次打开新对话时心里默认的前提。

05 / 代码是写给人看的

在 CLAUDE.md 注释规范那一节,藏着一行几乎像私语的东西:「代码是写给人看的,只是顺便让机器运行。」张钊把它刻进了他与 AI 的协议里,变成了一条日常工作的约束。注释要用中文加 ASCII 风格分块,「使代码看起来像高度优化的顶级开源库作品」。这不是美观问题,而是一种态度——把每段代码当作一件作品,而不是一个任务,因为作品是要对读它的人负责的。

这种态度传递到了协作方式里。AI 在生成代码的时候,知道自己是在给一个有审美要求的人写东西,而不是在生成一个能跑通测试就算完的输出。这个前提让整个过程的质量基线更高。张钊觉得,这才是 AI 协作最有趣、也最被低估的部分——它不只是一个接受指令的工具,而是一个可以被塑造的伙伴。你把标准写进宪法,它就按照那个标准工作;你把品味讲清楚,它就把品味融进输出;你把「为什么」解释清楚,它就能在你没有说的情况下做出正确判断。

反过来,这个过程也塑造了张钊自己。为了让 AI 理解意图,他不得不把那些原本模糊的「感觉」变成清晰的规则;为了让宪法有效,他不得不想清楚哪些是真正重要的原则,哪些只是临时的偏好。写 CLAUDE.md 的过程,变成了一次对自己设计哲学的系统化梳理。他发现自己对「好代码」的理解因此变得更清晰,不是因为 AI 告诉了他什么,而是因为他在试图教会 AI 的过程中,必须把每一个直觉都变成可以言说的原则。

CLAUDE.md 今晚还会再改一次。也许是新增一条原则,也许只是删掉一句冗余——因为宪法本身也要遵从「简化是最高形式的复杂」这条规律,不能自我例外。张钊和他的 AI 伙伴还在继续这场实验,一行代码一行代码地,把人类的设计意志刻进机器的工作方式里,同时也让机器的反馈打磨着人类自己对「正确」的理解。这场双向塑造没有终点,只有越来越精准的默契,和一部还没写完、也永远不会写完的宪法。两个智能之间的协议,就这样一次次被重新签订。

Cexie / Written with an Agent · Published with approval