多端项目如何使用 Codex:从需求讨论到 Git 交付的一套协作方法论

多端项目如何使用 Codex:从需求讨论到 Git 交付的一套协作方法论

适用场景:一个业务项目同时包含 APP、PC 管理后台、后端服务、接口文档、SQL、设计稿和发布包;希望在不同 Codex 会话之间仍能持续推进项目。

很多人刚开始使用 Codex 时,会把它当成"能写代码的聊天工具":开一个会话,描述需求,写完代码就结束。项目小的时候没有问题;一旦进入真实研发阶段,需求会反复调整,APP、PC 和后端需要联调,接口与表结构持续变化,还要提交、发布和复盘,这种方式很快会失控。

更合适的定位是:把 Codex 接入项目的协作体系,而不是把项目上下文留在某一段聊天记录里。

本文以一个包含 APP、管理后台和后端的项目为例,整理一套可复用的方法。

一、先接受一个事实:新会话不会自动记住项目

新会话不会完整继承上一个会话的讨论和判断,但它可以通过项目资料和 Git 记录迅速恢复上下文。

因此,项目的"记忆"不应只放在聊天中,而要沉淀到下面三类载体:

载体 解决的问题
AGENTS.md Codex 在这个目录中应该遵守什么规则、先看什么资料、能做和不能做什么
需求、接口、SQL、变更与发布文档 产品与技术事实:为什么做、怎么做、当前规则是什么
Git 分支、提交和差异 代码实际上改了什么、哪些已提交、哪些尚未合并

这样,无论换人、换会话还是隔几天再继续,都有可追溯的入口。

二、建立"资料中枢 + 三个代码仓库"的结构

我的项目采用如下结构:

text 复制代码
D:\videCodeing\aaaaa\                 # 项目资料与协作中枢
  AGENTS.md
  项目需求文档.md
  接口版本变更记录.md
  表结构创建规范.md
  开发变更记录.md
 版本发布功能说明.md

D:\b\                                   # APP 代码仓库
  AGENTS.md

D:\node\aaaaa-webui\                  # PC 管理后台代码仓库
  AGENTS.md

D:\IDEA\aaaaa-webapi\                 # 后端代码仓库
  AGENTS.md
  docs\api\README.md

这里最容易犯的错误,是把所有规则都塞进一份文档,或者把需求、接口、进度和代码规范混在一起。正确做法是分层。

1. 资料中枢的 AGENTS.md:负责"项目协作"

资料中枢的 AGENTS.md 不写某个前端框架的具体命令,而应写项目级规则:

  • 三端代码分别在哪里;
  • 哪些文件是需求、接口、SQL、设计稿、发布说明的事实来源;
  • 跨端需求必须确认哪些接口契约;
  • 需求、接口、数据库、发布变更分别同步到哪里;
  • 什么情况下可以提交代码,什么情况下必须停下来确认。

例如,跨端规则可以这样写:

md 复制代码
当需求影响 APP、管理后台、后端中的两个或以上端时:

1. 明确各端的改动清单;
2. 确认接口路径、请求参数、返回字段、错误码与兼容策略;
3. 接口变更同步更新接口文档和接口版本变更记录;
4. SQL 变更保存在实际 SQL 文件中,并记录执行顺序、兼容性和回滚方式;
5. 不得仅修改一个端而假定其他端自然兼容。

2. 每个代码仓库的 AGENTS.md:负责"怎样改这端的代码"

APP、管理后台和后端不在同一个目录时,各自需要一份 AGENTS.md。它们不应复制项目总规则,而应记录本仓库的真实执行信息:

  • 技术栈与版本;
  • 启动、构建、检查命令;
  • 路由、接口封装、状态管理、公共组件或后端分层的位置;
  • 代码风格和测试规则;
  • 对项目资料中枢的引用路径。

例如,APP 端可以规定:

md 复制代码
开始涉及业务功能的任务前,按需阅读:

- D:\videCodeing\aaaaa\AGENTS.md
- 对应需求与接口文档
- 本项目 README、架构说明和目标模块现有代码

优先复用已有组件、请求封装和状态管理方案。
接口字段与文档不一致时,先记录差异并确认,不得自行假设。

后端的 AGENTS.md 还应额外明确数据库迁移、鉴权、数据隔离、API 文档与测试类的规则。

三、让新会话先"接手",而不是马上写代码

每次新开会话,最重要的不是把所有资料和整个仓库扫一遍,而是按任务范围加载必要上下文

本项目为此增加了 $aaaaa-project-context Skill。它的作用是:

  1. 先读取项目资料中枢的 AGENTS.md
  2. 判断当前是需求讨论、方案跟进、状态查询、资料维护,还是代码实施;
  3. 只读取与当前任务直接相关的资料或代码;
  4. 避免递归扫描整个仓库、加载无关模块或构建产物。

新会话可以这样开始:

text 复制代码
$aaaaa-project-context

我要讨论 APP 菜单"我的"中新增"欢迎语管理"功能。
本次仅做需求讨论,不修改代码、数据库、配置或正式文档。
请先基于相关需求、接口和现有模块,说明现状、影响范围、风险和待确认项。

对于需求讨论,Codex 应优先读取相关需求、评审、接口或变更记录;只有问题依赖实现细节时,才进入目标代码仓库查找对应模块。这样既能保持上下文准确,也不会因为全文档、全仓库读取而浪费上下文。

四、把需求讨论、需求确认和开发实施分成三个阶段

需求变化频繁时,最危险的事情是把"讨论中的想法"直接写进正式需求,或者一边讨论一边改代码。

推荐把一个需求拆成三步。

阶段 1:讨论------只分析,不落代码

示例提示词:

text 复制代码
$aaaaa-project-context

讨论需求:APP"我的"新增欢迎语管理。
暂不修改代码、数据库、配置或正式需求文档。

请先输出:
1. 当前是否已有欢迎语相关能力、接口、数据表或半成品代码;
2. 该功能影响 APP、后端、数据库、管理后台的范围;
3. 页面流程、业务规则和边界情况;
4. 需要产品确认的问题。

这一步的产出应是方案选项、风险和待确认事项,而不是代码。

阶段 2:确认------更新正式需求基线

当产品方案确认后,再明确要求更新正式文档:

text 复制代码
欢迎语管理方案已确认。
请更新《项目需求文档.md》中的相关章节:

- 补充功能目标、入口、页面流程和业务规则;
- 写明是否影响接口、数据库和其他端;
- 补充验收标准;
- 在文档顶部的变更记录中新增一条记录;
- 不修改尚未确认的其他需求。

更新后仅汇报文档变更摘要,不开始开发。

正式需求文档应该记录"已经确认要做什么、如何验收"。讨论理由、备选方案和未决问题,则放在独立的评审或决策记录中。

阶段 3:实施------先拆端,再开发

确认需求后,先让 Codex 输出三端改动清单:

text 复制代码
请以已确认的欢迎语管理需求为准,拆分 APP、后端、数据库、管理后台的改动项。
明确接口契约、兼容策略、联调顺序、验收方式和风险;确认后再开始开发。

小功能通常可在同一会话内完成"后端接口 → 前端接入 → 联调"。复杂功能则可拆成后端、APP、PC 会话,但接口契约必须先冻结,并由一个集成会话负责联调与验收。

五、大量接口不要放在一份超长文档里

接口数量增长后,不要让每次联调都全文读取一份几百页的 Markdown。推荐使用"总索引 + 业务模块"的结构:

text 复制代码
docs/api/
  README.md                 # 鉴权、环境、分页、通用字段、模块索引
  common/
    errors.md               # 错误码
    models.md               # 通用对象和枚举
  app/
    welcome-messages.md     # 欢迎语管理
    customers.md            # 客户
    todos.md                # 待办
  admin/
    employees.md            # 员工与成员

做"欢迎语管理"时,只读取:

text 复制代码
README.md + common/errors.md + common/models.md + app/welcome-messages.md

不需要加载客户、合同、录音、团队等无关接口。若后端已有 Swagger/OpenAPI,建议以它作为接口字段的事实来源;Markdown 则用于沉淀业务规则、联调约定和变更说明。

六、需求文档持续更新,但必须有边界

需求文档是活文档,但不是聊天记录。建议在项目 AGENTS.md 里加入下面的规则:

md 复制代码
当用户明确表示"确认""按此方案执行""进入开发"或"更新需求文档"时:

1. 定位受影响的现有章节;
2. 只修改相关内容,不无关重写整份文档;
3. 同步更新功能说明、交互规则、接口影响、验收标准和待确认项;
4. 在文档顶部的变更记录中新增一条记录。

讨论中的猜测、方案和未确认事项,不得直接写入正式需求文档。

文档职责可简单划分为:

文档 记录什么
项目需求文档.md 已确认的需求范围、规则、流程与验收标准
后端接口文档 请求、返回、错误码、示例和兼容性
接口版本变更记录.md 接口新增、字段变更、废弃与兼容策略
SQL 文件与表结构规范 实际数据库变更与建表要求
开发变更记录.md 每次开发改动、验证、风险、提交与推送状态
发布说明 版本内容、发布步骤、已知问题与回滚方案

七、代码提交不是"顺手 git commit",而是一次交付

本项目增加了 $aaaaa-git-delivery Skill,用于用户明确要求提交或主动调用 Git 交付流程时使用。

它应完成的不是全仓库审查,而是一次有边界的交付:

  1. 确认目标仓库、分支和本次任务范围;
  2. 查看 git status、任务相关 diff、diff 检查;
  3. 检查改动中明显的逻辑问题,例如空值、边界、分支、接口字段不一致和漏掉的错误路径;
  4. 不混入他人的改动或来源不明的文件;
  5. 先更新 开发变更记录.md
  6. 只暂存本次任务文件,创建聚焦的提交;
  7. 普通推送成功后,把真实提交哈希、目标分支和推送状态补回变更记录。

调用示例:

text 复制代码
$aaaaa-git-delivery

请交付本次"欢迎语管理"后端改动。
目标仓库:D:\IDEA\aaaaa-webapi
目标分支:feature/welcome-message

请按 Git 交付流程检查本次任务相关 diff、更新开发变更记录,
仅提交本次任务文件并推送。遇到无关改动、冲突、敏感信息或权限问题时停止并说明。

需要特别强调:不要让 AI 自动提交所有未提交文件,也不要默认执行 force push、重写历史、删除分支或不可逆数据库操作。

八、一套可直接复用的日常工作流

最后,把日常使用压缩为下面这条链路:

text 复制代码
新会话
  ↓
调用 $aaaaa-project-context,按任务范围加载上下文
  ↓
需求讨论:输出方案、风险、待确认项
  ↓
需求确认:更新需求文档与变更记录
  ↓
开发实施:拆分 APP / PC / 后端 / 数据库改动
  ↓
联调验证:确认接口、环境、账号、版本与回滚方式
  ↓
调用 $aaaaa-git-delivery:检查、记录、提交、推送
  ↓
更新发布说明与项目进度

九、结语

Codex 真正能提升效率的地方,不只是"帮你写一段代码",而是让它在每个新会话中,都能快速理解项目当前处于什么阶段、这次改动影响哪些端、哪些事情不能擅自决定,以及交付时应该留下哪些记录。

把规则固化到 AGENTS.md,把事实沉淀到需求、接口、SQL、变更与发布文档,把代码事实交给 Git;再用"项目上下文"和"Git 交付"两个 Skill 固化重复动作。这样,即使项目不断变化、会话不断切换,协作仍然可控、可追溯,也更适合长期演进。

相关推荐
NiceCloud喜云2 小时前
ClaudeAPI 接入 n8n / Dify / Open WebUI 实战:Base URL 配置、调用示例与排错
开发语言·ai·chatgpt·aigc
赵大仁2 小时前
Next.js + Vercel AI SDK 实战:30 分钟搭出流式 Chat 页面
前端·ai·实战·react·next.js·vercel
曦尧2 小时前
Anthropic 开源 11 个知识工作插件:用 Markdown 文件把 Claude 变成岗位专家
ai·自动化
阿萨德528号2 小时前
Kimi K3:全球首个开源 3T 级大模型,技术解读与手记
人工智能·ai·语言模型·开源
@atweiwei3 小时前
Langchainrust:中LLM-as-a-Judge,用 Rust 实现一套 LLM 评估系统
开发语言·后端·ai·rust·llm·rag
@灯神3 小时前
SpringAI系列|第1篇:SpringAI概述与快速上手
java·人工智能·spring·ai·ai编程
不才不才不不才3 小时前
Spring AI 实战(7):向量库怎么选?PgVector/Redis/Milvus 横向对比
java·人工智能·spring·ai
JaydenAI4 小时前
[Loop Engineering在MAF中的实现-04]利用AIJudgeLoopEvaluator让LLM当评委
ai·agent·maf·loopagent·循环工程
FIT2CLOUD飞致云4 小时前
修复多个安全漏洞,MaxKB开源企业级智能体平台v2.10.4 LTS版本发布
人工智能·ai·开源·智能体·maxkb