66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
---
|
||||
|
|
name: reduce-code-redundancy
|
|||
|
|
description: "审计代码库中的重复实现、未使用代码、冗余文件和可复用工具,并在不改变外部行为和业务逻辑的前提下安全清理已充分确认的冗余内容。仅在用户显式调用 $reduce-code-redundancy 时使用。"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 清理代码库冗余
|
|||
|
|
|
|||
|
|
检查代码库中的重复实现、未使用代码、冗余文件和分散的通用功能,并安全清理能够充分确认的冗余内容。
|
|||
|
|
|
|||
|
|
## 工作模式
|
|||
|
|
|
|||
|
|
支持以下模式:
|
|||
|
|
|
|||
|
|
- `mode=audit`:只分析并报告,不修改文件。
|
|||
|
|
- `mode=apply`:分析后清理已经充分确认的冗余。
|
|||
|
|
- 未指定模式:先执行审计,展示候选项并等待用户确认是否清理。
|
|||
|
|
|
|||
|
|
不要在证据不足时直接删除或合并代码。
|
|||
|
|
|
|||
|
|
## 定位代码库
|
|||
|
|
|
|||
|
|
1. 如果用户指定了项目路径,优先使用该路径。
|
|||
|
|
2. 否则识别当前 Git 仓库根目录。
|
|||
|
|
3. 如果当前目录不是 Git 仓库,在工作区内浅层查找:
|
|||
|
|
- 只有一个仓库时使用该仓库;
|
|||
|
|
- 存在多个仓库时让用户选择;
|
|||
|
|
- 没有仓库时将当前项目目录作为目标。
|
|||
|
|
4. 读取项目适用的 `AGENTS.md`、README、构建配置和主要设计文档。
|
|||
|
|
5. 记录执行前已有的未提交改动,不覆盖或回退用户原有修改。
|
|||
|
|
|
|||
|
|
## 确定分析范围
|
|||
|
|
|
|||
|
|
优先使用用户指定的目录、模块或文件。
|
|||
|
|
|
|||
|
|
用户没有指定时,检查整个目标代码库,但使用针对性搜索,不无差别读取所有文件。
|
|||
|
|
|
|||
|
|
项目规模较大时:
|
|||
|
|
|
|||
|
|
- 先统计主要源码目录和文件数量;
|
|||
|
|
- 按模块分批检查;
|
|||
|
|
- 优先检查近期修改、核心模块和公共工具目录;
|
|||
|
|
- 不一次性加载整个大型代码库。
|
|||
|
|
|
|||
|
|
默认排除:
|
|||
|
|
|
|||
|
|
- `.git`;
|
|||
|
|
- `bin`、`obj`、`build`、`dist`;
|
|||
|
|
- 日志、缓存和编译产物;
|
|||
|
|
- 第三方依赖;
|
|||
|
|
- 自动生成代码;
|
|||
|
|
- 大型数据和模型文件;
|
|||
|
|
- 用户没有要求处理的参考项目。
|
|||
|
|
|
|||
|
|
## 建立验证基线
|
|||
|
|
|
|||
|
|
修改前确认项目当前状态:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Git 状态
|
|||
|
|
当前分支
|
|||
|
|
构建方式
|
|||
|
|
测试方式
|
|||
|
|
已有静态检查工具
|
|||
|
|
当前构建和测试结果
|
|||
|
|
```
|