SuperAPI AI 工具集

polyscan-fp-audit

测试与质量

查看项目

更新于 10-16 16:28

技能介绍

用途

polyscan FP Audit 是一个用于对 polyscan 静态分析结果进行误报分诊的技能。它针对一个 JavaScript/TypeScript、Go、Rust 或 C++ 仓库运行 polyscan(从当前检出构建),然后对发现的问题进行分诊,以识别可能的误报。

主要能力

  • 对单个目标仓库运行 polyscan 分析,输出 JSON 格式报告。
  • 将发现按(分析类型、语言、规则或模式)聚类。
  • 为每个聚类生成一个 Explore Agent,并行进行只读分诊,判定每个发现是真实问题(TP)、误报(FP)还是不确定(unsure)。
  • 对明确的 bug(clear-bug)自动向 ludo-technologies/polyscan 仓库提交 GitHub issue,带去重和速率限制。
  • 对调优类(tuning)误报追加到草稿文件,供人工定期审阅。
  • 生成聚合报告,包含聚类统计、已提交 issue、调优草稿更新、值得注意的误报和真实正例。
  • 更新队列文件(如目标来自队列)。
  • 清理下载的仓库副本以节省磁盘。

使用方式

技能接受 $ARGUMENTS,可以是 GitHub URL、本地已克隆仓库路径,或为空(从 .polyscan/audit/queue.md 中选取下一个待办条目)。

主要步骤:

  1. 构建 polyscan(若二进制在 24 小时内且比 HEAD 新则跳过)。
  2. 解析目标:下载 tarball 或使用本地路径,记录审计的 commit SHA 和主要语言。
  3. 运行 polyscan:polyscan/polyscan analyze --format json "<repo-path>" > "$OUT/analyze.json" 2> "$OUT/analyze.stderr"。
  4. 聚类发现:按(分析、语言、规则或模式)分组,记录总数并选取 3–5 个代表性样本。
  5. 并行分诊:为每个聚类生成一个 Explore Agent,在单条消息中并发运行。每个代理读取相关文件,判定 TP/FP/unsure,并分类 bug_class(clear-bug/tuning/none)、pattern_slug、优先级和 good_first_issue。
  6. 自动归档 clear-bug 发现:去重、验证原始 JSON 中的声明、速率限制(每次审计最多 2 个,每天最多 5 个),然后使用 gh issue create 提交。 6b. 将 tuning 发现追加到草稿文件 .polyscan/audit/issues/draft-<pattern_slug>.md。
  7. 聚合报告:写入 .polyscan/audit/results/<slug>/$TS/report.md。
  8. 更新队列(如适用)。
  9. 清理下载的克隆。
  10. 向用户报告一段话总结。

适用场景

  • 对 polyscan 静态分析工具的输出进行质量审计,识别误报模式。
  • 为 polyscan 项目自动发现并归档明确的 bug。
  • 收集调优类误报模式,供人工决定是否提交 issue。
  • 适用于 JavaScript/TypeScript、Go、Rust 和 C++ 仓库。

限制

  • 所有工作区位于 .polyscan/audit/(gitignored),但自动提交的 issue 是公开的。
  • 子代理对本地文件系统只读,不修改代码。
  • clear-bug 类别故意狭窄,仅当能指出 JSON 字段错误时才选择;否则优先 tuning(仅草稿,不自动提交)。
  • 自动提交受速率限制:每次审计最多 2 个,每天最多 5 个。
  • 去重仅考虑带 auto-filed 标签的 issue。
  • 若 gh issue create 因标签不存在而失败,停止并报告错误,不自动创建标签。
  • 已知结构性零值不应报告为 bug(如 Go/Rust/C++ 的 nodes、edges 等始终为 0)。
  • 具体收费、价格、平台等信息暂未提供。