Summary
代码减法审计与反腐化工程。用于给代码库做减法审计(找死代码/重复实现/死依赖/投机性泛化/死门禁),产出证据驱动的删除候选清单并按风险分级执行;也用于给 AI 重度开发的仓库搭建防膨胀门禁(CI、钩子、死代码基线)。核心信念:代码最终会腐化,人写机器写都一样;防腐化唯一可靠的方式是把约束变成机器门禁、把为什么变成文档、…
howell5/willhong-skills
代码减法审计与反?
npx skills add howell5/willhong-skills --skill subtraction-audit
代码减法审计与反腐化工程。用于给代码库做减法审计(找死代码/重复实现/死依赖/投机性泛化/死门禁),产出证据驱动的删除候选清单并按风险分级执行;也用于给 AI 重度开发的仓库搭建防膨胀门禁(CI、钩子、死代码基线)。核心信念:代码最终会腐化,人写机器写都一样;防腐化唯一可靠的方式是把约束变成机器门禁、把为什么变成文档、…
Other skills from howell5/willhong-skills.
npx skills add howell5/willhong-skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Files included with this skill beyond the listing page.
SKILL.md
9,388 B
SUMMARY.md
583 B
一次 AI 对话的历史就是一部腐化史:AI 写代码太容易、太膨胀、太容易发散,人写机器写都一样,代码最终会腐化。这套方法把"防腐化"变成可重复的流程:证据驱动的减法审计 + 风险分级执行 + 机器门禁。
在声称任何东西"死"之前,先回答这些——跳过这步等于把报告建立在地基上:
routes/agent/feedback.ts 疑似死,但 routes/feedback.ts 是活的并挂在 /api/feedback——两个不同文件)反例教训(真实事故):一个 101 行的"worker 骨架"其实是生产必需的 DB 队列消费者(轮询 generation_tasks 表)。部署清单里没有它 ≠ 它可有可无——那可能是配置漂移,甚至意味着生产队列已停摆。别把"部署配置里没有"当成"不需要"。
npx knip --reporter json(未使用导出 / 类型 / 文件 / 依赖 / 重复实现 / 二进制).gitignore 覆盖、.env 是否被跟踪(安全项,必须查)、被提交的大产物/工具输出、空目录、死门禁(脚本存在但没接 CI/钩子).github/、husky pre-commit 实际跑了什么;lint/test/typecheck 有没有任何自动流程执行。零 CI 是腐化积累的根因,要单独列成系统性问题按域派并行子代理(api / web / worker / shared / 根与脚本),每个域用同一套方法论提示词:
对每个候选追加复核,尤其是 api/web 路由与公共导出:
import.meta.glob、require(、.route("字符串"))doesNotMatch(/<Component/) 断言)——那是删除的助攻证据| 级别 | 含义 | 处置 |
|---|---|---|
| 🟢 绿 | 证据闭环(生产+测试+文档零消费,无同名/动态/框架引用) | 可放心删 |
| 🟡 黄 | 删前确认(是否存在运行时 parse?本地实现是否自持一份?合并后是否要冒烟?) | 先查再删 |
| 🔴 红 | 需产品决策(两条实现路径是否都活着?生产依赖哪个?部署是否受影响?) | 单独立项,问人 |
DECISIONS.md:Problem / 证据 / 代价 / 回退条件)tsc --noEmit(全包,不是只查一半)+ lint + knip 基线不升子代理分域提示词骨架(Phase 2 用):
你是代码简化审计员。审计目标:<路径>(<规模>)。只读,绝不修改文件、不跑构建。
方法:只报有证据的候选。每个候选先在**整个仓库**用 rg 搜消费方,区分"生产代码消费" vs "只有测试/文档消费"。没有消费证据的一律不报。
重点找:①死代码 ②重复表示 ③手搓 vs 成熟依赖 ④投机性泛化 ⑤死依赖。
产出:Markdown 表格,按置信度排序,最多 15 条。每列:候选(文件:行+符号)| 证据(rg 搜了什么)| 建议动作 | 置信度(高/中/低)。末尾列"有意排除的"。中文输出。
决策记录模板(Phase 5 用):
# DECISION: <删除/合并/降级> <对象>
## Problem
<当前 API/文件/依赖是什么,消费证据(生产 N 处 / 仅测试 / 仅文档)>
## 证据
<rg 命令与结果;同名/动态/框架引用检查结果>
## 代价 / 我们放弃什么
<最强的反对理由;未来可能需要的场景>
## 回退条件
<什么情况下要恢复>
## 验证
<tsc / lint / knip 基线对比;冒烟范围>
dsh-find-simplifications skill、AGENTS.md 约定、144 条简化类 Agent Notes、质量门禁记录、postmortem 0002/0003(测试不是真理)