乐于分享
好东西不私藏

我今天没急着让 AI 写代码,而是先给项目搭了一个上下文入口

我今天没急着让 AI 写代码,而是先给项目搭了一个上下文入口

很多人用 AI 写代码,第一反应是:

“来,帮我改这个 bug。”
“来,帮我加个功能。”
“来,帮我分析一下这个项目。”

但我今天做项目时,反而先停了一下。

我没有一上来就让 AI 去翻代码、查数据、改页面,而是先做了一件看起来很小、但后面很省命的事:

给项目搭一个稳定的上下文入口。

这件事如果不做,AI 很容易变成一个“很勤快但没记性的新同事”。

它可以一次性读很多文件,也能帮你改代码,但它不知道这个项目的默认入口在哪里,不知道哪些文档重要,不知道当前任务做到哪一步,也不知道哪些业务规则是历史上反复踩坑踩出来的。

最后结果就是:

它越努力,越可能乱。


一、我今天遇到的真实问题

今天这个项目不是一个干净的新项目,而是典型的长期业务项目。

里面有后台页面,有业务模块,有自动化脚本,也有很多历史遗留逻辑。

更麻烦的是,它不是“代码即全部”。

项目里还有很多隐藏上下文:

  • 哪些环境是测试用的,哪些是正式用的
  • 常用分支是什么
  • 修改页面时,是否要同步相关前端文件
  • 不同业务模块之间的口径是什么
  • 当前 todo 记录在哪里
  • 已完成事项怎么归档
  • 哪些文件不能随便提交
  • 用户说的某些习惯性表达,到底代表什么操作

这些东西如果只靠聊天记录记,一旦上下文丢了,下一次 AI 进来又要重新摸索。

所以我今天先做的不是“让 AI 多读几个文件”,而是把它变成一条固定路径。


二、我的核心结论

AI 项目初始化,不是让模型多读文件,而是给它建立一套可重复进入项目的上下文链路。

读文件只是动作。

上下文链路才是系统。

如果没有链路,AI 每次都是临时发挥。

有了链路,AI 每次进入项目,才像一个知道规矩、知道历史、知道当前任务边界的协作者。

这两者的差别非常大。

前者叫“聊天”。
后者才叫“工程化协作”。


三、为什么这件事重要

我以前也很容易陷入一个误区:

觉得只要把问题讲清楚,AI 就能干活。

但在真实项目里,问题本身往往不是孤立的。

比如一个后台详情页显示异常的问题。

表面看,只是某个字段展示得不好看。

如果只是简单修页面,很可能会把这个字段随便格式化一下。

但真正的问题可能是:

这个字段本身是历史遗留字段,它背后对应的是一组业务含义,而不是一个单独的展示值。

也就是说,这不是纯技术问题,而是业务口径问题。

如果 AI 不知道项目上下文,不知道这个系统里字段、表、页面之间的历史关系,它很容易“看起来修了”,但其实修歪了。


四、我今天的做法

我把项目入口整理成了几层。

第一层是项目入口文档。

它的作用不是写给人看的漂亮 README,而是写给“下一次进入项目的 AI”看的导航图。

里面集中说明:

  • 项目定位
  • 默认阅读顺序
  • 根目录上下文文件
  • 常用提示词
  • todo 任务结构
  • 关键模块
  • 数据入口
  • 最近项目变更脉络

第二层是 AI 协作规则文档。

这里定义 AI 每次开始必须先读什么。

比如:

长期记忆文档
项目入口文档
相关业务文档
当前任务记录
已完成任务记录
待处理任务记录
会议或沟通记录

这相当于给 AI 写了一份“入职第一天 SOP”。

第三层是长期记忆文档。

它更像项目记忆。

不是记录所有细节,而是告诉新会话:

如果你没上下文,先从哪里开始。

第四层是任务目录。

这里不是普通待办,而是项目执行账本。

当前任务记录正在做什么。
完成记录记录今天做完了什么。
待处理记录放后续需求。

这样做的好处是:

聊天记录丢了,但项目记忆还在。


五、我没有只写文档,而是用真实修复验证了一遍

我觉得很多“流程优化”最虚的地方在于:

只整理流程,不经过实战。

所以今天我没有停在文档层面。

我接着处理了一个后台详情页展示异常的问题。

原来页面把一个历史字段的原始值直接显示出来了,用户看到的是一串没有业务含义的内容。

修复后,我没有简单地“美化字符串”,而是根据真实业务口径,把它拆解成用户能理解的信息。

这次修复也顺便验证了一件事:

如果 AI 先读了项目入口、长期记忆、当前任务和相关业务说明,它就更容易理解:

  • 这个字段为什么存在
  • 这个页面应该怎么展示
  • 哪些内容不应该继续暴露给用户
  • 修复时要注意哪些历史兼容问题

这才是长期项目里真正有价值的修复。

不是只把页面改到“不报错”。

而是把它改到“符合业务”。


六、这套上下文链路的结果

今天这个动作带来的结果,不只是“多了几个文档”。

真正的结果是:

以后一个新模型进入项目,不用从零猜。

它会先知道:

先读项目入口
再读长期记忆
再读当前任务
再看最近完成记录
再根据任务找相关文档
最后才动代码

这会直接减少几类问题:

  • AI 不会一上来乱扫无关模块
  • AI 不会忽略历史业务口径
  • AI 不会把临时文件、缓存文件、生成物一起提交
  • AI 不会误判测试环境和正式环境
  • AI 不会把“还在初始化阶段的脚本”,当成已经上线的功能
  • AI 不会把“做到一半的事情”,理解成“已经完成的事情”

这一点非常重要。

项目管理里,最怕的不是没做完。

而是:

做了一半,但没人知道它是一半。

所以我现在会尽量把任务状态写清楚:

哪些是已完成。
哪些是进行中。
哪些只是初始化。
哪些还没进入正式执行。
哪些只是方案,不是结果。

这样,下一次 AI 接手时,不会误判项目状态。


七、我对提示词的认知也变了

以前我会把提示词理解成一句话:

“你是一个资深开发,请帮我……”

现在我越来越觉得,真正有价值的提示词不是一句话,而是一套工作基础设施。

提示词应该长在项目里。

它应该和 README、todo、提交记录、业务文档、数据口径放在一起。

这样 AI 才不是靠临场发挥,而是沿着项目沉淀下来的路径工作。

这也是我今天最大的感受:

不要只优化 AI 的回答,要优化 AI 进入项目的方式。

因为回答是一次性的。

进入方式是可复用的。


八、最后一句话

如果你也在用 AI 维护长期项目,别急着让它先写代码。

先给项目搭一个上下文入口。

这不是慢。

这是在给后面的每一次协作提速。