用途
该技能用于对代码库做一次快速、量化的质量体检,适用于 JavaScript/TypeScript、Go、Rust 与 C++ 项目。它面向“这段代码有多健康/有多好”这类问题,也可以用来做质量总览,或对比重构前后的质量变化。
主要能力
通过运行 polyscan CLI 完成分析,无需安装,命令为:
npx polyscan@latest analyze --format text <path>
输出末尾会给出 Health Score 部分,包含:
- 评分(0-100)
- 字母等级(A-F)
- 各分项得分
分项覆盖的维度包括:复杂度、死代码、代码重复、耦合(CBO)、内聚(LCOM4)与依赖。
不同语言支持的维度并不一致:
- 复杂度与代码重复:覆盖所有语言
- 依赖:Go 与 JavaScript/TypeScript
- 耦合:Go、Rust 与 JavaScript/TypeScript
- 内聚:Go 与 Rust
- 死代码:仅 JavaScript/TypeScript
某种语言不具备的维度会从该语言的评分中略去,而不是按“干净”计入。
使用方式
常见命令对应关系:
- “这段代码有多健康?”→ npx polyscan@latest analyze --format text <path>
- “给我一个质量总览”→ 同一命令,并逐一说明分项明细
- “我的重构是否提升了质量?”→ 重构前后各运行一次,对比评分
如需机器可读的细节,使用 --format json:完整结果输出到 stdout,健康分摘要打印到 stderr。若不指定 --format text 或 --format json,polyscan 会生成 HTML 报告(polyscan-report.html)并打开浏览器;作为智能体运行时应优先使用 text 或 JSON。
结果解读
输出以评分与字母等级呈现,并给出各分项得分。解读时应先说明等级和最弱的分项,再指出造成这些问题的主要文件或函数。若需进一步跟进,可转交给更专门的技能:重构目标 → refactoring;模块结构 → architecture-review。
限制
各语言支持的维度有限,具体如上所列;未覆盖的维度不计入该语言的评分,因此跨语言比较评分时需注意口径差异。该技能只基于 polyscan 的上述命令与输出进行报告,其评分与等级的具体计算方式、价格与平台信息在资料中未提供。