SuperAPI AI 工具集

cleanup-weak-types

编程与开发

查看项目

更新于 10-16 04:57

技能介绍

用途:把项目里作为“逃生舱”的弱类型逐步替换为可从真实调用方式推断出的强类型。它按“逐处替换、逐处类型检查、出错就回退”的方式工作,对公开 API 保守,只自动修复私有/内部函数的 HIGH 级问题。

主要能力:

  • 预检:识别语言;检查 git 状态(工作区不干净时拒绝执行);读取项目约定(如 package.json 中的 check:weak-types 脚本、tsconfig 的 strict/noImplicitAny、mypy 配置);读取并尊重允许弱类型的白名单(如测试文件、生成代码、第三方 shim)。
  • 检测:TS/JS 用 grep 找显式 any 及 as unknown as,并用 npx tsc --noImplicitAny --noEmit 找隐式 any;Python 用 grep 与 mypy --disallow-untyped-defs;Go 查 interface{}/any;Rust 查 Box<dyn / &dyn。
  • 评估:生成 .claude/cleanup-reports/cleanup-weak-types-{日期}.md 报告,按 HIGH(可自动修复)、MEDIUM(公开 API 或跨包)、LOW(确有理由,如真实未知 JSON、第三方)分级,并附关键评估。
  • 应用:仅自动修复 HIGH,一处一改、每改一次跑一次类型检查;失败或用例不匹配则 git checkout 回退并降级为 MEDIUM;全部通过后单次提交 chore(cleanup): cleanup-weak-types。
  • 验证:跑全仓类型检查(bun run typecheck / mypy --strict / go build ./... / cargo check)与测试(bun test / pytest / go test / cargo test),并可跑项目自带的弱类型门禁。

适用场景:内部逻辑中的弱类型收敛、调用方可穷举的私有函数类型补全。限制:不改公开 API 的契约(泛型只建议不自动加);不碰生成类型与第三方 .d.ts;不加 @ts-ignore/# type: ignore 掩盖问题;不把 any 批量换成 unknown;真实的边界输入与测试文件保持原样。资料未提供具体安装命令、版本要求与价格信息。