自动化与脚本
清理 .NET 代码库时用:按 7…
适用于 .NET 项目需要系统化清理(预发布硬化、大功能合并或依赖升级后、季度技术债冲刺)时,按顺序执行 7 步清理并在每步构建、测试、提交。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
清理 .NET 代码库时用:按 7 步流特定
解决思路
- 执行前先读 `references/cleanup-steps.md`,获取每一步的命令、安全检查清单和代码示例。
- 按顺序执行清理,顺序不可乱:先格式化(会触碰每个文件,先处理大量变更),后删死代码(前面步骤会暴露死代码);随机清理会遗漏并造成合并冲突。
- 每步之后运行 `dotnet build` + `dotnet test` 验证,确保清理没有破坏构建或测试。
- 每步单独提交,确保某一步出问题时可单独回滚而不影响前面步骤。
- 删除“死”代码前做安全检查:检查 Roslyn 看不到的反射、DI 约定、序列化使用。
- Step 0 按场景选择步骤:完整清理/预发布/季度清理跑全部 7 步;PR 前快速整理跑 1、2、6;大功能合并后跑 1、2、3、4;依赖升级后跑 2、3;性能优化前跑 4、6;CI 警告阈值超限只跑 3;技术债冲刺跑 4、5。
- Step 1:格式化所有代码,工具 `dotnet format`,提交信息 `chore: apply dotnet format`。
- Step 2:删除未使用的 using,工具 `dotnet format analyzers --diagnostics IDE0005`,提交信息 `chore: remove unused using statements`。
- Step 3:修复 analyzer 警告,使用 MCP `get_diagnostics`,按类别分类处理,提交信息 `chore: fix analyzer warnings`。
- Step 4:删除死代码,使用 MCP `find_dead_code` + 安全检查(reflection/DI/serialization grep),提交信息 `chore: remove dead code`。
- Step 5:处理 TODO,grep TODO/HACK/FIXME,选择修复、创建 issue 或删除,提交信息 `chore: resolve TODO comments`。
- Step 6:封闭不被继承的类,对每个候选使用 MCP `get_type_hierarchy` + 搜索测试项目,提交信息 `chore: seal non-inherited classes`。
- Step 7:传播 CancellationToken,使用 MCP `detect_antipatterns`,追踪异步链,提交信息 `chore: propagate CancellationToken through async chains`。
- 每一步后构建+测试,然后提交;如果某步破坏构建或测试,先修复或回滚该步再继续,绝不让红色状态进入下一步。
- 将结构性步骤(4、6、7)委托给 `refactor-cleaner` agent。
- 产出最终报告:用 Markdown 表格列出每步的 Step、Changes、Files Affected,并汇总 Total: N commits, M files improved。
- 清理完成后运行 `/verify` 做完整验证,运行 `/health-check` 重新评分量化改进,运行 `/code-review` 检查逻辑和设计(清理只处理风格)。
适用边界 · 注意事项
- 不要与功能开发混合;清理提交必须保持纯粹。
- 不要在无法运行 `dotnet build`/`dotnet test` 的项目或环境中执行,因为破坏构建的清理比不清理更糟。
- 不要随机或无顺序清理,也不要跳过安全检查直接删除死代码;会遗漏、产生合并冲突或误删通过反射/DI/序列化使用的代码。