ai coding该怎么进行项目的上下文管理,有什么比较好的项目文档架构和管理方法吗,以及该怎么维护

举个例子:你让 AI 给项目加“邮箱验证码登录”。 它真正需要的上下文是:现有登录入口在哪、用户表怎么定义、验证码存哪里、接口规范是什么、如何测试。 它不需要先读完整个项目文档,更不需要知道你三周前怎么排查过 CSS。 所以我建议采用:一个短入口,按模块查文档,每个任务单独记录状态,重要结论随代码维护。重点不是让 AI 记住一切,而是让它知道去哪找,并且找到的东西可信。 下面这些文件名是示例,不是必须照搬的标准。 一、项目文档怎么组织 README.md:给人看的项目入口。 写项目解决什么问题、如何安装启动、常用命令,以及文档导航。不要塞完整设计说明。 AGENTS.md 或 CLAUDE.md:给 Agent 的工作入口。 只放每次开发都需要知道的内容:项目基本结构、关键约束、验证命令,以及“改什么先读什么”。 docs/architecture.md:系统地图。 说明模块职责、调用关系、数据流和关键边界。重点是帮助定位,不是逐个解释函数。 docs/modules/auth.md:模块说明。 记录登录模块的业务规则、关键入口、依赖关系和容易踩坑的约束。其他模块按实际需要补,不必提前给每个目录写一份。 docs/decisions/:重要决策记录,也就是 ADR。 解释为什么这样设计、考虑过什么替代方案、接受了什么代价。 docs/tasks/:进行中的任务记录。 存目标、范围、验收条件、当前状态、未解决问题和下一步。也可以直接用 issue,不要同时维护两份不同步的状态。 docs/runbooks/:操作手册。 存本地环境排障、数据迁移、发布回滚等可重复执行的流程。内容较少时,可以先合成一份开发指南。 小项目群友 8334有 README、Agent 入口、架构说明和任务记录就够了。出现真实需求再拆,不要为了 AI 先造一个文档管理系统。 二、Agent 入口应该写什么 入口应该像导航,不像百科全书。 比如一个登录项目,可以写成这样的内容: 项目使用什么语言和框架,实际依赖版本以依赖清单为准。 修改登录逻辑前,阅读登录模块说明与现有鉴权测试。 数据库结构以 schema 和 migration 为准,不要根据旧聊天猜字段。 涉及接口变更时,同步更新接口定义及对应测试。 完成后执行项目实际存在的 lint、类型检查和测试命令;无法执行时,说明原因,不得声称验证通过。 不要顺手修改任务范围外的模块。 这里最有价值的是“代码不容易直接表达的约束”和“如何找到事实”,不是把代码再描述一遍。 如果同时使用多个 Coding Agent,尽量维护一份共享规则,再通过各工具支持的入口接入,避免几份规则分别更新、逐渐冲突。 Claude Code 官方文档目前明确:它读取 CLAUDE.md,而不是直接读取 AGENTS.md;可以通过 CLAUDE.md 导入共享的 AGENTS.md。 三、上下文怎么加载 建议分成三层。 常驻层:短入口和全局约束。 任务层:当前需求、相关模块说明、必要决策、验收条件。 探索层:真正执行时再读取的源代码、测试、日志和工具结果。 例如做验证码登录,可以要求 AI: “先读项目入口,定位现有登录实现和测试,只读取与本任务有关的模块文档。先说明影响范围与缺失信息,再开始修改;发现文档和代码不一致时明确指出。” 不是先让它总结整个仓库,而是围绕任务逐步拿证据。 这里有个容易踩的坑:把文档拆成十个文件,并不自动节省上下文。 Claude Code 的文档导入会把内容加载进上下文;如果入口把十份文档全部导入,还是一次性全读。真正的按需加载,是提供导航并在任务需要时读取,或者使用工具支持的路径范围规则。 四、长任务和换会话怎么接续 不要把完整聊天记录当作项目记忆。给每个任务保留一个可恢复的检查点。 以验证码登录为例,任务记录可以这样写: 目标:支持邮箱验证码登录,保留已有密码登录。 范围:只修改鉴权服务和登录页面,不做用户体系重构。 验收:验证码过期后不可用;验证码不能重复消费;旧登录方式保持兼容。 当前进度:后端实现完成,前端尚未接入。 验证结果:执行了哪些测试,哪些通过,哪些失败或没有运行。 关键决定:验证码存入 Redis,原因及对应决策文档位置。 未解决问题:邮件服务限流策略还需确认。 下一步:接入前端,补端到端测试。 关联证据:对应的分支、提交、相关文件及必要日志位置。 新会话先读取这些,再检查当前代码和 Git 差异,而不是直接相信“上个 Agent 说已经完成”。 多 Agent 并行时,每个任务分别维护自己的状态;不要让所有 Agent 反复覆盖同一个全局进度文件。 五、文档怎么维护才不会烂掉 最有效的方式,是把文档更新绑定到代码变更,而不是月底再集中补。 改接口,同步更新接口契约和相关测试。 改模块职责或数据流,同步更新架构或模块说明。 做重要技术取舍,新增决策记录;旧决策标记为被替代,保留当时的理由。 完成任务,把可复用结论提升到正式文档,再关闭或归档任务记录。临时猜测和完整调试日志不进入长期规则。 AI 反复犯同一个错误时,先判断该怎么解决: 格式问题交给 formatter;可检测的错误交给 lint 或测试;真正需要解释的项目约束才写进规则。 例如“不允许重复消费验证码”,应该有测试保护,不是只在 CLAUDE.md 里提醒一句。 维护上再坚持三个原则: 同一个事实只有一个权威来源。接口字段尽量引用接口定义,不要在三份文档里复制。 重要文档标明适用范围、状态和核验依据。只有“更新时间”不够,刚生成的内容也可能是错的。 让 AI 根据代码差异提出文档修改,由人重点审核业务约束和设计理由。不要让它把自己的推测直接写成项目事实。 还有,自动 memory 可以帮助记住个人偏好和经验,但不应该成为团队唯一的知识库。团队共享规则应进入版本管理;密钥、真实用户数据不要写进文档或记忆。 归根结底:入口负责导航,文档负责解释,代码与测试提供证据,任务记录负责接续。维护的是这几者的一致性,而不是文档数量。 Claude Code 官方参考: https://code.claude.com/docs/en/memory