用途:在推理 PyCharm 应如何推断类型、或某处是否应视为类型错误时,用真实第三方检查器交叉验证,并观察它们之间的分歧。该技能会在临时文件或代码片段上运行全部检查器,汇总为单一报告。
主要能力:脚本 ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py 通过 uvx 按需获取各检查器(无需安装,首次运行使用网络),输出 Markdown 报告,包含汇总表(每个工具的退出码、判定、耗时)以及各工具的原始输出。
使用方式:内联片段用 uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py -c '...';已有文件用 uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py path/to/test.py;子集并写入文件用 uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py test.py --tools ty,mypy -o /tmp/report.md。标志:-c/--code、-t/--tools、-o/--output、--timeout(每个检查器秒数,默认 180)。只要生成报告脚本就退出 0,发现的问题在报告中而非退出码。
结果解读:汇总表显示退出码(0 表示未标记,非零表示报告问题或运行失败)、判定与耗时;各工具输出格式不同,需逐段阅读:ty 与 pyrefly 各有诊断风格,basedpyright 基于 pyright 并额外输出如 reportUnusedCallResult,mypy 与 zuban 消息格式相同(zuban 兼容 mypy)。检查器通过 uvx 跟踪最新版本,行为可能随时间变化,记录结果时应注明日期。
手动单独运行:ty 用 uvx ty check test.py;pyrefly 用 uvx pyrefly check test.py;basedpyright 用 uvx basedpyright test.py(文件为位置参数,无 check 子命令);mypy 用 uvx mypy test.py;zuban 用 uvx zuban check test.py。
限制:首次运行需要网络;各工具输出格式不统一;版本更新可能导致行为变化;资料未提供其他平台、收费或效果信息。