CoAI 开发日志 [#002|项目不是靠过程推进,而是靠状态推进](#002|项目不是靠过程推进,而是靠状态推进)

21 阅读4分钟

CoAI 开发日志 #002|项目不是靠过程推进,而是靠状态推进

w1d2cx.png

最近做项目时,我确认了一个判断:

项目不是靠保存全部过程推进的,而是靠维护当前状态推进的。

这句话听起来有点抽象,但其实我是在实际做项目时,被迫意识到这件事的。

尤其是开始大量使用 AI coding 之后,这种感觉特别明显。

前几轮对话时,很多信息都很有用。

agent 会解释它为什么这样改。
会总结这一轮做了什么。
会告诉你下一步准备怎么做。

这些内容在当下往往都很有价值。

我自己也会认真看。
因为那时候它确实能帮我判断:

  • 方向有没有偏
  • 理解有没有错
  • 这轮是不是朝着我想要的地方在走

但问题是,这些信息通常只在那个时刻特别有用。

再过几轮之后,项目状态一变,它们就开始变旧了。

不是因为当时写错了。
而是因为:

  • 文件结构变了
  • 功能边界变了
  • 一些实现移动了
  • 之前的判断被新的实现覆盖了

于是你再回头看那些总结,会发现一种很熟悉的感觉:

它们不是没用。
但也已经不是当前最值得依赖的认知。

这件事我后来越想越觉得正常。

因为人做长周期的事情,本来也不是靠保存全部过程往前走的。

一个项目做久了之后,没有人会真的一直回放每一步。

真正支撑继续推进的,通常是这些东西:

  • 现在项目处于什么状态
  • 哪些功能已经成立
  • 哪些关键决策不能忘
  • 哪些实现点最值得进入
  • 下一步从哪里接着做

也就是说,项目的推进,靠的不是“完整过程回放”,而是“当前有效状态”。

这一点在 AI coding 里尤其明显。

因为 AI 很擅长快速制造大量过程信息。

一轮又一轮的解释、总结、拆解、推理,在当下都很有帮助。
但如果没有一层东西把真正有效的认知留下来,这些内容很快就会过时。

然后项目就会进入一种奇怪的状态:

你明明做了很多。
功能也在继续长。
但如果现在让你快速说清楚“这个项目的当前状态是什么”,你不一定讲得出来。

这就是为什么我后来把“状态”放到了更重要的位置。

不是因为过程不重要。
而是因为过程很容易失效,状态才更适合被持续维护。

这也慢慢影响了我对文档的看法。

我以前也会下意识觉得,既然 AI 对话很有价值,那是不是应该尽量保留下来?

但后来发现,不对。

如果把全部过程都留下来,项目不会更清楚,只会更重。

真正应该保留下来的,不是每一次怎么想,而是:

  • 现在这个功能到底是什么
  • 它当前有效的理想路径是什么
  • 哪些说明仍然有帮助
  • 代码入口在哪里
  • 当前主线推进到了哪

这也是为什么后来我会把 CoAI 的一些设计越收越窄。

比如:

  • feature.md 负责功能级认知
  • current.md 负责当前项目进展
  • mapper 负责把认知稳定地挂回代码
  • node 负责 Hover 入口

这些东西的作用,都不是保存完整过程。
它们是在维护当前仍然有效的认知状态。

这可能是 AI coding 时代一个很重要的变化:

以前我们以为难点是“怎么把事情做出来”。
现在很多时候,新的难点变成了:

怎么在事情持续变化之后,仍然知道它现在是什么。

这也是我为什么会说,项目不是靠过程推进,而是靠状态推进。

因为真正会长期留下价值的,不是那一长串已经过时的上下文,
而是你能不能在项目持续演进之后,依然保留一个清楚、稳定、可继续接下去的当前认知状态。

如果今天要把这篇压成一句话,我会这样写:

过程帮助你走到这里,认知状态决定你还能不能继续走下去。

w1d2m.png


这是 CoAI 开发日志第 2 篇。
记录我在 AI coding 时代,如何理解人与 AI 应该怎样协同工作。