用途:定位标记为 deprecated/legacy/old/v1 的代码,删除前先验证其确实无调用方,同时找出不可达的回退分支(如已翻转的功能开关默认值、针对不受支持运行时的版本检查)。
主要能力:预检阶段进行语言检测、Git 状态检查(脏树则拒绝)、确保报告目录存在,并读取项目使用的弃用标记,包括 @deprecated JSDoc/TSDoc、Python 的 # deprecated 与 warnings.warn(DeprecationWarning)、Go 的 // Deprecated、Rust 的 #[deprecated],以及 legacy/、old/、v1/、_old.ts 等命名。检测阶段使用多语言 grep 与 find 命令收集标记与遗留命名文件,并对 TS/JS、Python 符号做调用方验证。评估阶段写出 .claude/cleanup-reports/cleanup-legacy-{YYYY-MM-DD}.md 报告,按 HIGH(零调用方,可安全删除)、MEDIUM(1-5 个调用方,需迁移)、LOW(大量使用,弃用标记可疑)分级。应用阶段仅自动删除 HIGH 项,级联删除仅被已删代码使用的内部辅助函数并迭代至稳定,同时移除对应功能开关声明,最后以单一提交完成。
使用方式:在仓库中运行该技能流程,命令包括 grep -rn 标记搜索、find 查找遗留目录与文件、bun run check、npx tsc --noEmit、npx eslint .、bun test、pytest、go test ./...、cargo test、bunx knip 等。
适用场景:清理大量弃用标记的项目、移除已翻转功能开关的死分支、清空 legacy 目录中确认无引用的文件。
限制:绝不删除仍有调用方的 @deprecated 符号;未检查所有配置环境前不删除功能开关分支;未验证前不删除其他生产代码仍导入的 legacy/ 文件;不删除多运行时版本库中的版本检查分支;不删除迁移文件;不删除防护运行时条件(网络失败、缺失环境变量等)的回退分支;CI/CD 或基础设施仍引用时不自动移除功能开关定义。验证失败则回滚并降级。