当你让 AI 构建东西时,它会进入「构建者模式」:乐观、只想象唯一一条顺利的路径,看不见自己的错误。C-A-R 协议(构建 · 审计 · 反思)会逼它换一顶帽子,用悲观审计者的眼光重新检视自己的成果——而且是在一个独立的回合里完成。这就是「上线就崩的 demo」和「扛得住的软件」之间的差别。这里就是完整的方法,以及在 Claude Code、Codex 或 NeuralOS 上激活它的主提示词。
构建和审计是互不相容的两种心理状态。当 AI 在构建时,它是乐观的:只想象唯一一条顺利的路径,一门心思「让它跑起来」。在这种模式下,它对自己的错误是盲目的。审计需要的恰恰相反:悲观,去想象一切可能出错的方式。
如果你让 AI 同时构建又检查,两件事都会做不好:构建做一半,审计也做一半。解决办法不是一个更聪明的提示词——而是把两个阶段拆到不同的回合里。
C — 构建。 AI 带着创造力去构建:研究竞品的标准,做干净的架构,一边推进一边自测。做完后,它停下来给你交一份报告(做了什么、做了哪些决定、有什么没做以及为什么)。此时还不审计。
A — 审计(真正的 debug 就在这里)。 在一个全新的回合里(头脑清醒、悲观),AI 重读自己的全部成果并做 debug:抓真正的 bug(内存泄漏、竞态条件、安全漏洞、无障碍缺陷),尤其是修补构建者模式留下的缺口、空洞和不一致。它不只是「找错误」:它把一切打磨到位,做到传奇级。每一处发现都要用一条回归测试来固定住修复——没有测试,修复就不算完成。
R — 反思。 AI 写下这次审计的经验教训:在构建者模式下漏掉了什么,以及为什么。这份文档随着每一轮循环不断成长,成为项目的制度化记忆——下一次它就不会再犯同样的错。
在实践中,C-A-R 不止步于「反思」:它靠给你的整个生态系统喂料来闭环,好让知识不流失、下一轮循环起点更高。这才是真正的循环,就是每一次好的开发之后所应用的样子——它把你在整个系列里看到的一切串在一起:
CLAUDE.md 里,让 AI 永远不忘。把这段粘到你项目的开头(放进你 AI 的指令文件里:CLAUDE.md、.cursorrules、你在 NeuralOS 里的 agent 指令,或者干脆放到对话开头)。从此,你的 AI 就会默认应用 C-A-R。
从现在起,对所有非琐碎的工作(新功能、重构、跨文件改动)应用「构建-审计-反思」(C-A-R)协议。只有在一行的琐碎修复,或我明确要求时,才跳过它。 === 阶段 1 · 构建 === 带着创造力去构建。写代码之前先研究竞品的标准。做边界清晰的架构。一边推进一边自测。 完成后,停下来给我一份报告: - 创建/修改的文件和关键决定 - 你在标准之上加了哪些改进 - 测试结果(type-check、build、tests) - 有什么没做以及为什么(范围边界) 然后等待。这个回合里不要审计。不要把审计和构建混在一起。 === 阶段 2 · 审计(独立回合 · 需要我批准)=== 等我说「开始审计」。然后: 1. 用审计者的头脑(清醒、悲观)重读每个文件 2. 分类记录发现: - 关键项:真正的 bug(内存泄漏、竞态条件、安全漏洞、无障碍缺陷、语义错误、数据损坏) - 改进项:健壮性、性能、UX 打磨 3. 为每个发现配一条回归测试来固定住修复——没有测试,修复就不算完成 4. 跑激进的边界用例测试:unicode、边界值、事件刷屏、并发操作、取消路径 5. 四重验证:type-check + build + 现有 tests + 新 tests,全绿了才收尾 === 阶段 3 · 反思(随审计一起)=== 写一份经验教训文档:每个发现连同它的根因(我在构建者模式下漏掉了什么?)、元教训,以及为下一次构建更新的检查清单。这份文档随每一轮循环成长,是项目的记忆。 规则: - 永远不要在构建的同一回合里审计。 - 永远不要在没对新代码跑过一次真正审计的情况下声称「没有 bug」。 - 永远不要跳过审计修复的回归测试。 - 根因,绝不打补丁。如果一个值到达时是空的,就找出为什么;不要用一个默认值把它盖过去。
上面的提示词是基础。但当你把这个系列里的工具加进来,协议会变得更强。用与你的配置相匹配的提示词——从简到全。核心思路:让你的 AI 用你拥有的一切来闭环。
=== 循环收尾 · GITHUB === 在审计全绿之后(type-check + build + 冒烟测试全部通过),在把工作视为完成之前: 1. 如果我们还没跑冒烟测试,提醒我去跑。 2. 做一次 commit,写一条清晰描述我们成果的信息。 3. push 到 GitHub,把好的节点存到云端。 绝不在没把进度备份好的情况下收尾一个循环。
=== 审计的深层上下文 === 审计之前,查询项目的知识图谱(Graphify)或 RAG,理解我改动的东西如何与其余部分连接。审计时要理解对**整个系统**的影响,而不只是我改的那个文件。问自己:还有哪些部分依赖它?可能级联地弄坏了什么? === 循环收尾 · 全栈 === 当审计全绿时,按这个顺序把整个循环闭上: 1. 冒烟测试 → 全绿。 2. commit + push 到 GitHub(存好节点)。 3. 重建 / 更新知识图谱(Graphify)让它反映新改动,这样下一次审计就有新鲜的上下文。 4. 把审计的经验教训存进项目的记忆文档。 5. 确保 C-A-R 协议仍写在 CLAUDE.md 里,以免忘记。 这个循环在每个 sprint 或每一段重要的开发之后应用。
CLAUDE.md、.cursorrules,或 agent 的指令)如果你的 AI 理解整个项目是如何连接的,而不只是它改的那个文件,那审计阶段会强大得多。这正是 Graphify 存在的意义:它把你的仓库变成一个知识图谱,AI 在审计前会去查询它。
面向 AI 助手(Claude Code、Codex、OpenCode)的多模态知识图谱构建器。把你整个仓库变成一个交互式图谱,解释代码做了什么、以及为什么这样设计。
Join 4,200+ builders. No credit card. Build your first app with AI in minutes.