用途:回答代码健康度、代码质量、复杂度、技术债、哪些文件有风险或难维护、下一步重构什么、未测试热点等问题。
主要能力:Repowise 基于确定性标记为每个文件打 1–10 分,包括 McCabe 复杂度、深层嵌套、brain methods、类内聚度(LCOM4)、god classes、克隆检测、未测试热点、函数级 churn、所有权分散等。全程零 LLM 调用,纯本地分析;权重基于真实缺陷语料校准,低分意味着更可能藏有缺陷,而不只是文件更大。
使用方式:按传入参数选择模式。仪表盘模式 get_health()(不传 targets)返回 fix_first 优先修复排名、仓库级 KPI 和最低分文件,适合“这个代码库健康吗”“该清理什么”。定向模式 get_health(targets=["src/x.py", "src/y.py"]) 返回单文件得分及驱动它的具体标记发现,适合重构前后对比或解释某文件为何被标记。可用 include 标志:"biomarkers" 始终返回发现列表;"refactoring" 返回按影响/工作量排序的确定性重构建议;"coverage" 在已导入覆盖率数据时展示;"trend" 返回近期健康快照与下降/预测下降信号。include 增加块,only 减去块。
结果使用:问“该重构什么”时用仪表盘模式,先给 fix_first;用 get_health(fix_id=...) 打开某项查看步骤与要运行的测试,给出计划而非仅分数。按 weighted_deficit 排序而非 score(分数下限为 1.0)。针对具体文件时报告分数、前 2–3 条标记发现及其通俗含义,避免倾倒原始数据。调用前检查 unresolved:其中列出的目标未匹配任何内容,not_indexed 表示需运行 repowise update。编辑被标记文件前,用 get_risk(targets=[...]) 交叉核对;既低健康度又是 churn 热点的文件最需谨慎。未测试热点/覆盖率问题:导入报告后覆盖率标记才会亮起,命令为 repowise coverage add cov.lcov(支持 LCOV / Cobertura / Clover;coverage.py 的 .coverage 还会构建每测试映射),再运行 repowise health --recompute 将其纳入分数。
CLI 等价命令:repowise health 显示 KPI 与最低分文件;repowise health --refactoring-targets 按影响/工作量排序;repowise health --trend 显示快照与下降告警;repowise coverage add <file> 导入覆盖率并点亮未测试热点。
错误处理:若 get_health 报告无仓库,建议 /repowise:init。即使 wiki 为模板渲染(无需 LLM),代码健康度仍会计算,因此只要仓库已索引就应可用。
限制:资料未提供具体收费、价格、支持平台或效果保证等信息。