乐于分享
好东西不私藏

AI 搜索后,我做了一个 AI 时代的 git —— 意图协作

AI 搜索后,我做了一个 AI 时代的 git —— 意图协作

AI 搜索后,我做了一个 AI 时代的 git

先讲一件让我当场懵逼的事。

某天下午,我用 Claude Code 重构了一段业务逻辑。agent 写得飞快,diff 很干净,逻辑无懈可击。我扫了一遍,approve,合进去。

第二天,老队友走过来:

“你为什么又走这个方案?”

“这条路三个月前试过,有个边界 case 会在生产炸,当时讨论了半天,专门决定放弃的。”

我沉默了五秒。

不是我忘了——是 agent 从头到尾不知道三个月前发生过什么


说一个 AI 编程圈没人正面讲的问题

现在 AI coding 工具确实强。强到什么程度?

需求扔进去,几分钟出代码。bug 报上来,几轮对话搞定。重构这种活,agent 可以通宵不睡给你跑完。

效率拉满,没有问题。

但有一件事越来越让我觉得不对劲——

agent 太会写了。

看到 TODO,它推进。看到半成品,它补完。看到两个并存的实现,它两边都改。看到历史包袱,它”顺手优化”掉。

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

从工程历史的角度,它在不停地犯错。

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

这句话,值得反复想一遍。


RAG 也好,grep 也好,都没解决这个问题

AI coding 圈最近有个经典争论:到底该用 RAG 还是 grep?

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

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

两边我都认同。

但他们争的,其实是同一层问题:agent 怎么找到代码上下文?

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

但你想没想过——agent 缺的,可能根本不是更多的代码?

它真正缺的是:

为什么这段代码还活着?为什么那个方案当初没继续推?为什么这里看起来很奇怪但就是不能动?为什么旧实现和新实现要并存?为什么 reviewer 上次明确说,这里不许改?

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

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

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


我要定义一个词:intent memory

把几件事排清楚:

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

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

Session → 这次 agent 都干了些什么?

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

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

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

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

Session 是证据,intent 才是记忆

这两件事,差的不是一点点。


所以我做了 Mainline

一句话:让 agent 在读代码之前,先读工程意图。

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

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

它是一层 git-native 的 intent memory

agent 开工前,先拿到相关历史约束。reviewer 看 diff 前,先看这次改动背后的 why。新人进项目,先看决策脉络,而不是直接扔进代码库里自生自灭。

历史里放弃过的方案、被替代的决策、不能破坏的约束——全部可以重新浮出来,而不是永远沉在某个没人翻的飞书文档里。


你觉得这只是团队问题?不是

独立开发者、indie hacker,一样跑不掉。

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

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

断了之后,下一个 agent 来,会用它觉得最合理的方式把那里改掉。然后你花两小时 debug,发现是三个月前踩过的坑。

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


团队的问题,其实更严重

AI 让写代码变快了。

但 review,变慢了。

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

现在很多 PR,作者自己都说不清楚。因为他只是个 agent operator,diff 是 agent 吐的,过程是 agent 跑的,他也没有全程跟下来。

Reviewer 只能对着几百行 diff 自己猜意图。

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

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

团队需要一层共享的 intent memory:agent 改代码前先看历史约束,reviewer 看 diff 前先看 why,新人入项目先看决策脉络,队友之间知道谁在推进什么方向,重要变更留下可追溯的工程判断。

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


git 解决了版本,但没有解决意图

git 是伟大的发明,没有之一。

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

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

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

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

Agent 没有记忆,没有历史感,没有”上次讨论过”的概念。它只有当下的代码,和你给它的这一次 prompt。

所以我们需要一层新东西——不是更好的 git,不是更大的 context window,是一层工程意图的记忆层

在 RAG 之前,在 grep 之前,在 agent 动手之前,先给它 why。


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

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

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

然后你又 debug 两小时。

然后又 debug 两小时。

然后又 debug 两小时。


Mainline 现在是个很早期的开源实验。我不想马上大规模发布,想先找一小批真正有痛感的人一起验证。

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

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

👉 

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

先 star,加群聊

References

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