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