安全分批清理Codex生成的冗余代码需严格按依赖层级、风险与测试覆盖率分阶段执行:先运行codex init构建项目依赖图谱,再用/plan分级标记冗余模块,接着从Safe到Review类逐批删除,最后通过codex test验证稳定性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要安全分批清理大型项目中 Codex 生成的冗余代码,不能直接删文件或批量覆盖源码,必须借助 Codex 自身的工程化上下文识别能力,按依赖层级、修改风险和测试覆盖率分阶段剥离。
先用 codex init 锁定项目结构与边界
进入项目根目录,运行 codex init。这一步不是可选项——它会扫描 package.json、pom.xml 或 build.gradle,构建当前项目的完整依赖图谱和文件规范。跳过此步会导致后续所有“清理”动作失去上下文依据,Codex 可能误删核心入口文件或保留已废弃但被引用的模块。
执行后检查终端输出是否包含 【Detected: Java/Spring Boot + Maven】(或其他对应技术栈)。若只显示 Unknown project type,说明项目缺少标准配置文件,需手动补全 AGENTS.md 声明技术栈,否则无法进入下一步。
用 /plan 识别冗余模块并分级标记
在 Codex 会话中输入指令:/plan 识别当前项目中未被任何主流程调用、且无单元测试覆盖的 Java 类。
Codex 将返回三类结果:① Safe to remove(如 utils/DateHelperLegacy.java,无 import 引用、无 test 文件、未出现在任何 @Component 扫描路径);② Review before removal(如 service/ReportGeneratorV1.java,被一个已注释掉的 controller 方法引用);③ Keep — runtime dependency(如 config/DatabaseConfig.java,虽无显式调用但被 Spring Boot 自动装配)。
注意:不要信任“未被引用”就等于“可删除”。Codex 会自动排除反射加载、SPI 接口实现、XML 配置注入等隐式依赖项,但你仍需人工核对第②类中的引用是否真实失效——比如检查 Git 历史确认该 controller 方法是否已被永久移除。
配置 OpenClaw 多提供商认证与 OpenAI Codex OAuth 备用方案,实现自动模型切换,适用于多 OpenAI Codex 账户设置。
分批执行清理:从低风险到高风险
第一步:清理 Safe to remove 类别下的全部文件。
复制其完整路径(如 src/main/java/com/example/utils/DateHelperLegacy.java),执行:codex delete --force src/main/java/com/example/utils/DateHelperLegacy.java。
第二步:对 Review before removal 类别,逐个验证引用链。
例如对 ReportGeneratorV1.java,运行:codex grep --context 3 "ReportGeneratorV1" src/,确认返回结果中所有匹配行均为注释或已删除代码。只有当 全部匹配均为无效引用 时,才执行删除命令。
第三步:处理跨模块残留——这是最容易遗漏的环节。
运行:codex list --unreferenced --module report-service。该命令会扫描整个 report-service 模块,找出所有未被本模块内任何类 import、也未被其他模块声明为 api 依赖的类。这类文件往往藏在 src/test/java 或 src/main/java/com/example/report/legacy/ 下,体积小但数量多,必须单独归为一批清理。
用 codex test 验证每一批清理后的稳定性
方法一:针对刚删完的模块,立即运行:codex test --module report-service --coverage-threshold 85。
该命令会自动触发 Maven 构建 → 执行单元测试 → 检查覆盖率是否跌破阈值。如果失败,Codex 会定位到缺失的 mock 或断言逻辑,并提示“需恢复 ReportGeneratorV1.java 中的 formatHeader() 方法以满足覆盖率要求”。
方法二:对整项目做回归验证,避免跨模块副作用:
执行:codex test --impact-analysis --since last-commit。
它不运行全部测试,而是基于 Git diff 分析本次清理影响了哪些测试文件,仅执行这些受影响测试的子集。这比全量跑 test 快 6–12 倍,且能精准暴露因删除间接依赖导致的编译失败或 NPE。
这一步不可跳过。Codex 的测试引擎会读取 .codex/test-config.yaml 中定义的断言规则,比如“所有 Controller 层测试必须包含 HTTP 状态码校验”,一旦发现某次清理后某测试跳过了该断言,就会强制中断并报错。

















