关于 prune-dead-code
用于全仓库代码审查的技能,可查找无用声明、重复定义、与现有常量重复的字面值及不可达限制。它会核验引用并先报告候选项,经批准后才执行删除和检查。
主要功能
- 01搜索四类死代码候选
- 02核验代码与测试中的引用
- 03判断删除安全性
- 04编辑前报告发现项
- 05更新测试并运行检查
适用场景
- 01清理前审查整个仓库
- 02查找重复常量和类型
- 03检查限制是否可达
- 04删除获批的未使用声明
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lukeberrypi/ skills --skill prune-dead-code安装后在 Claude Code 中输入/prune-dead-code确认已加载。
详细介绍
清理无用代码
在确认可以安全删除之前,将每个声明都视为仍在使用。在以下四个类别中查找候选项,在整个代码仓库中逐一核实,并在编辑前将所有候选项报告出来以供批准。
类别
- 确认无用:没有任何引用的符号、常量、令牌或 barrel 再导出。
- 重复定义:在两个或更多位置逐字声明的同一常量、字符串或类型字面量。
- 值漂移:与现有具名常量重复的魔法字面量。
- 任意限制:用于防范用户无法触及的情况的上限、阈值或超时。在建议移除之前,量化实际限制。
工作流
- 在整个代码仓库中搜索每个类别,包括代码和测试。
- 在评判每个候选项之前,核实其所有用法;漏掉一处引用就会导致结论错误。
- 将每个候选项归类为可安全移除或任意但有意保留。
- 报告下表。
- 在编辑前询问要应用哪些发现。
- 应用获批的更改并更新受影响的测试。
- 运行类型检查、lint 和测试;修复更改导致的任何问题。
必需输出
严格使用以下列:
| Item | Location | Notes |
|------|----------|-------|
| `<symbol>` | `path:line` | Zero references repo-wide (verified). Confirmed dead. |
| `<constant>` | `pathA:line`, `pathB:line` | Identical declaration in 2 files. Dedupe into one shared constant. |
| literal `<value>` | `path:line` | Duplicates `<NAMED_CONSTANT>`; reference the constant to avoid drift. |
| `<CAP>` | `path:line` | Threshold unreachable in practice (state the real limit). Safe to remove. |
- 项目:用反引号括起的准确声明,或描述内联字面量的简短短语。
- 位置:
path:line;列出重复定义和值漂移的所有位置。 - 备注:用一句话指出该项目、确认其用法并给出结论。
规则
有疑问时,就视为仍在使用——只移除已证实无用的内容。
- 如果某个符号仅在其自身文件中使用,可以取消导出而不是删除;跨文件使用者需要它保持导出状态。
- 删除导出项之前,先检查测试。保留涵盖非平凡逻辑的导出项,或指出其中的取舍。
- 保留有意设置的调优值——动画时长、防抖间隔、尺寸、最小值——并将其报告为任意但有意保留。
- 保留用于防止损坏或缺失数据导致崩溃的验证和保护措施。
- 将不确定的动态访问、反射、构造的导入、公共 API 和框架入口点视为仍在使用。
评论
支持 Markdown