标签

AI 编码之后,我创建了一个记录工程意图的协作系统

发布时间:2026-05-06 00:39来源:微信阅读:7

先讲一件让我瞬间石化的事。

某天下午,我用 Claude Code 重构了一段业务逻辑。AI 写得飞快,差异对比很清晰,逻辑天衣无缝。我快速浏览了一遍,表示同意,然后合并了代码。

第二天,老同事走过来:

"你为什么又选择这个方案?"

"这条路三个月前尝试过,有个边界情况会导致生产环境崩溃,当时讨论了很久,特别决定放弃的。"

我愣住了五秒。

不是我忘记了——是AI 完全不知道三个月前发生过什么。

现在 AI 编程工具确实厉害。厉害到什么程度?

需求丢进去,几分钟出代码。bug 报上来,几轮对话解决。重构这类工作,AI 可以通宵不眠给你完成。

效率达到极致,没有疑问。

但有一件事越来越让我感到不安——

AI 太擅长编写代码了。

看到 TODO,它推进。看到半成品,它补全。看到同时存在的实现,它两边都修改。看到历史遗留问题,它"顺手优化"掉。

从代码逻辑的角度,它每一步都合理。

从工程历史的角度,它在不断重复错误。

原因很简单:代码只告诉它当前状态是什么,但工程真正重要的,是为什么会这样。

这句话,值得再三思考。

AI 编程圈最近有个经典辩论:到底该用 RAG 还是 grep?

RAG 派说:代码库这么大,不做语义索引根本找不到相关上下文。

Grep 派说:复杂工程任务必须看真实文件,RAG 召回的内容可能早就过期了。

两边我都认同。

但他们争论的,其实是同一层面的问题:AI 怎么获取代码上下文?

RAG 找相似代码,grep 验证当前代码。

它真正缺的是:

为什么这段代码还存在?为什么那个方案当初没有继续推进?为什么这里看起来很奇怪但不能动?为什么旧实现和新实现要并存?为什么审查者上次明确表示,这里不许改?

这些问题,RAG 找不到答案。Grep 也找不到。

因为答案根本不在代码里。

它在某次早已结束的技术讨论中,在某个没人写入 commit message 的判断里,在某个只存在于老员工脑中的历史决策里。

把几件事理清楚:

RAG→ 哪些代码看起来与当前任务相关?

Grep→ 当前代码到底是什么样?

Session→ 这次 AI 都做了些什么?

Intent memory→下一个 AI 应该记住什么?

前三件事,记录的都是"发生了什么"。

Intent memory 要记录的,是判断本身:

哪些决策今天仍然有效?哪些方案永远不要再尝试?哪些约束不能破坏?哪些历史包袱只是兼容残留,不是真实设计意图?

Session 是证据,intent 才是记忆。

这两件事,差别巨大。

一句话:让 AI 在阅读代码之前,先理解工程意图。

英文是:Mainline gives agents the why before the code.

它不是 RAG,不是 grep,不是 session recorder,不是什么项目管理看板。

它是一层基于git的意图记忆。

AI 开始工作前,先获取相关历史约束。审查者查看差异对比前,先看这次修改背后的原因。新人加入项目,先了解决策脉络,而不是直接扔进代码库自生自灭。

历史中放弃过的方案、被取代的决策、不能破坏的约束——全部可以重新浮现,而不是永远沉没在某个没人查阅的文档中。

独立开发者、个人黑客,同样无法避免。

今天用 Claude Code,明天换 Cursor,后天上 Codex,一周后自己回来看代码——不记得为什么这里不能删除了。

AI 很快,但你的工程记忆会中断。

中断之后,下一个 AI 来,会用它认为最合理的方式把那里修改掉。然后你花两小时调试,发现是三个月前踩过的坑。

Mainline 对个人来说就一件事:给未来的自己和下一个 AI,留一份原因。不是写日报,不是搞文档流程,就是让下一个 AI 不要重走老路。

AI 让写代码变快了。

但代码审查,变慢了。

以前审查者看 PR,还能拍一下作者肩膀问:你为什么这么改?

现在很多 PR,作者自己都说不清楚。因为他只是个 AI 操作者,差异是 AI 产生的,过程是 AI 运行的,他也没有全程跟进。

审查者只能对着几百行差异自行猜测意图。

这不是可持续的工程协作方式。

代码生产在加速,但工程判断的传递中断了。

团队需要一层共享的意图记忆:AI 修改代码前先看历史约束,审查者看差异前先看原因,新人入项目先看决策脉络,队友之间知道谁在推进什么方向,重要变更留下可追溯的工程判断。

AI 越快,团队越需要记忆——这件事,我越来越确信。

git 是伟大的发明,毋庸置疑。

它记录了代码变成什么样、谁改的、什么时候改的。

但它记不住:为什么这样决定。

过去没关系。人写代码,人有上下文,人可以询问,人有记忆。

但现在,写代码的越来越多是 AI。

AI 没有记忆,没有历史感,没有"上次讨论过"的概念。它只有当前的代码,和它收到的这一次提示。

所以我们需要一层新东西——不是更好的 git,不是更大的上下文窗口,是一层工程意图的记忆层。

在 RAG 之前,在 grep 之前,在 AI 动手之前,先给它原因。

代码可以重新生成。上下文可以重新检索。对话可以回放。

但一个团队真正的工程意图,如果没有被记录,它就消失了。

然后下一个 AI 来了,假装它从未存在过。

然后你又花两小时调试。

然后你又花两小时调试。

然后你又花两小时调试。

Mainline 现在是个非常早期的开源实验。我不想立即大规模发布,想先找一小批真正有痛点的人一起验证。

如果你符合下面任意一条,欢迎来尝试:

•重度使用 Cursor / Claude Code / Codex •经常让 AI 改真实业务代码 •感觉审查 AI 代码越来越累 •遇到过 AI 重复旧方案、不理解历史决策 •想让未来的自己和下一个 AI 少踩坑

👉

https://github.com/mainline-org/mainline[1]

先 star,加入群聊

[1]: https://github.com/mainline-org/mainline-intro