用途:当 GitHub Actions 中的 fuzzer 测试失败时,用该技能从失败日志中提取出一个最小 Noir 复现项目,供本地复现与调试问题。
主要能力与使用方式:
- 获取 Job ID。从 GitHub Actions 链接中提取,URL 格式为 https://github.com/noir-lang/noir/actions/runs/RUN_ID/job/JOB_ID 。
- 拉取日志。执行 gh api repos/noir-lang/noir/actions/jobs/JOB_ID/logs 2>&1 | tee fuzzer_logs.txt 。
- 查找复现代码。用 grep -nE "unconstrained fn main|fn main" fuzzer_logs.txt 搜索生成的 Noir 源码。日志结构包含 AST、ABI Inputs 和 Seed 等段。
- 检查所需编译器标志。部分失败仅在特定标志下出现(如用于 match 表达式的 -Zenums、优化标志等),需记录日志中提到的标志以便复现。
- 创建复现项目。执行 nargo new repro_project 与 cd repro_project,将 AST 段复制到 src/main.nr,并按 ABI 输入创建 Prover.toml。
- 验证复现。执行 nargo execute(带上日志中要求的标志)。若未复现,需确认使用了与日志相同的编译器标志。
适用场景:CI 中 Noir fuzzer 测试失败、需要构建本地最小复现工程的调试流程。
限制:相关价格、平台支持范围及其他未在资料中说明的信息暂未提供;使用时应以上述日志中的实际标志与输入为准。