SuperAPI AI 工具集

absolute-debt

编程与开发

查看项目

更新于 10-15 23:57

技能介绍

Absolute Debt 用于偿还代码库积累的 lint 与类型检查债务,包括既有警告、错误,以及随时间累积的抑制标记(eslint-disable*、@ts-ignore/@ts-expect-error、# type: ignore、# noqa、//nolint)。它通过共享引擎 references/health-engine.md 定义的 DETECT → SCAN → TRIAGE → FIX → VERIFY → REPORT 循环运行,但本项只覆盖 lint/类型债务特有的部分。

适用场景:修复 lint 警告、清理类型错误、让代码库进入 strict 模式;收紧配置(启用规则、提高 tsconfig 严格度)并清理由此暴露的问题;清理累积的 eslint-disable / @ts-ignore / # type: ignore 抑制标记。与 simplify 的区别:simplify 提升当前工作 diff 的质量;debt 在绿色 main 上清理整个仓库既有的 lint/类型违规,适合持续性清理,而非正在进行的改动。

扫描内容按生态区分:JS/TS 用 eslint .(完整报告,按规则分组)与 tsc --noEmit;Python 用 ruff check / flake8 与 mypy / pyright;Go 用 golangci-lint run 与 go vet ./...、staticcheck。抑制标记本身也作为债务盘点。违规按规则(而非按文件)分组计数,便于分波处理。

风险分级(TRIAGE):第 1 波为可自动修复的 lint(eslint --fix、ruff --fix、gofmt),默认立即修复;第 2 波为按规则手工修复、行为风险低(未使用、风格、导入),本轮逐条规则修复;第 3 波为类型错误及修错可能改变行为的 lint 规则,需逐项审查;第 4 波为移除抑制标记,每项都可能暴露真实缺陷。每波应“一条规则覆盖全仓库”,而非“一个文件处理所有规则”,以保持 diff 可审查、回归可二分。配置收紧本身也是发现项:先提议,再清理其暴露的问题。

修复与验证:先运行自动修复(第 1 波),再重新扫描确认真正需要手工修复的部分。手工修复要解决根因,类型错误意味着某处类型写错,应修正类型,而不是 as any 或加 # type: ignore。不得用抑制方式清除违规——移除抑制才是目标。每波后运行完整测试、lint、typecheck 与构建,违规数必须下降且无回归。

已知陷阱:以抑制方式“修复”(加 @ts-ignore 等于增加债务,此处禁止);用 any/强制转换通过检查,掩盖缺陷;一个文件处理所有规则,混杂不可审查;自动修复后不审查,--fix 可能改变行为(如 prefer-const 作用于被重新赋值的变量),自动修复后也要跑测试;直接关闭规则而非修复——放宽配置凑零是债务洗白,不是偿还。

配套命令:/absolute simplify 处理当前正在改动的代码质量;/absolute prune 清理死代码后许多未使用变量/导入告警会自然消失;/absolute work 当清理需要真正重构时移交。具体平台与价格信息暂未提供。