docs: design Claude to Codex context migration

This commit is contained in:
caoqianming 2026-07-27 10:22:47 +08:00
parent 599bb933b8
commit dd6b49e199
1 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,101 @@
# Claude 项目上下文迁移到 Codex设计说明
## 目标
在不删除或修改现有 `.claude` 配置的前提下,把 `factory` 项目中仍有效的 Claude 项目知识迁移成 Codex 可稳定使用的项目级上下文。
迁移后的配置应做到:
- Codex 每次进入仓库时都能读取关键项目约束。
- 较长的背景资料和历史排障记录不会挤占常规任务上下文。
- 发版流程只在用户明确要求时启用。
- 不复制数据库口令等敏感信息。
- Claude 与 Codex 可以继续并行使用。
## 现状
项目内现有 Claude 配置:
- `.claude/settings.local.json`Claude 工具授权历史,包含大量机器相关命令及明文数据库连接信息。
- `.claude/commands/release.md`:后端发版命令。
- Claude 用户目录中的项目 memory包含前后端关系、动态路由、Python 虚拟环境、生产库只读查询约束、脚本忽略规则、发版约束、套壳 App 背景及一次历史缺陷排查。
项目当前没有根目录 `CLAUDE.md`、`AGENTS.md` 或项目级 Codex memory。
## 采用方案
采用分层兼容结构:
1. 根目录 `AGENTS.md`
- 放置每次工作都应遵守的稳定规则。
- 内容保持简短,避免把一次性历史排障细节注入所有任务。
- 指向更详细的 memory 和按需 skill。
2. `.agents/skills/release/SKILL.md`
- 把 `.claude/commands/release.md` 转换为 Codex 项目 skill。
- 仅在用户明确要求“发版”“release”或“bump 版本”时使用。
- 保留版本生成、更新 `SYS_VERSION`、检查 changelog、提交、打 tag 和推送的顺序。
- 去掉 Claude 专属的 `Co-Authored-By` 署名。
- 保留远端写操作前的工作区检查和失败处理约束。
3. `.codex/memory/`
- `MEMORY.md` 作为主题索引。
- 按主题保存项目背景、用户反馈和历史排障资料。
- 去除 Claude 的 session ID、Claude 专属元数据和 wiki 链接语法。
- 使用普通 Markdown 相对链接,便于人工和 Codex 按需读取。
4. `.claude/`
- 原样保留,不删除、不重写。
## 内容映射
必须进入 `AGENTS.md` 的规则:
- 配套前端位于 `../ehs_web`;后端 API 变化时检查对应前端调用。
- `ehs_web` 菜单和路由由后端动态下发,新页面不要修改 `src/config/route.js`
- Django/Python 命令使用项目根目录 `.venv/Scripts/python.exe`
- `scripts/*.py` 是有意忽略的一次性脚本,未经明确要求不得 `git add -f`
- 不自动提升版本或发版,只有用户明确要求时才执行 release skill。
- 生产数据库只允许只读查询;任何写操作需要用户另行明确授权。
- 不在项目文档、skill 或命令中保存数据库口令。
保存在 `.codex/memory/` 的资料:
- 前后端工程关系与统计页面惯例。
- 生产数据库只读验证方法,但连接参数只指向本地忽略配置,不记录凭据。
- 前端独立发版流程。
- 两个 WebView 套壳 App 的位置与交互约定。
- `material_ofrom` 合批历史缺陷的排查结论和后续接续点。
- 上述关键反馈规则的详细原因。
不迁移的内容:
- `.claude/settings.local.json` 中的 Claude 权限语法。
- 临时 scratchpad 路径、历史会话 ID、一次性命令白名单。
- 数据库用户名、密码及可直接复用的带密码命令。
## 安全与错误处理
- 新文件中扫描常见密码片段和 `PGPASSWORD`,确认没有凭据泄漏。
- 不读取或修改被 `.gitignore` 排除的本地数据库配置。
- 不连接生产数据库验证迁移,因为本任务只迁移文档和工作约束。
- 不删除 `.claude`,迁移失败时现有 Claude 工作流不受影响。
- 不执行 release skill仅验证其结构与引用路径。
## 验证
完成迁移后执行:
1. 检查 `AGENTS.md`、`.agents/skills/release/SKILL.md` 和 `.codex/memory/*.md` 均存在。
2. 检查 `AGENTS.md` 中的索引链接均能解析到实际文件。
3. 搜索新文件中的密码、`PGPASSWORD`、Claude session ID 和临时 scratchpad 路径。
4. 对照原 memory 索引,确认所有仍有效主题均已覆盖。
5. 检查 Git diff确认 `.claude` 没有变化,且没有混入用户现有未跟踪文件。
## 完成标准
- Codex 项目级入口、按需发版 skill 和 memory 索引全部建立。
- 原 Claude 配置保持不变。
- 原有 9 个 memory 主题均被迁移或被更高层规则覆盖。
- 新配置不含明文凭据或 Claude 专属运行痕迹。
- 验证命令通过Git diff 只包含本次迁移相关文件。