Trail of Bits' regression-hunt skill only reports a bug a fresh agent can reproduce

1 hour ago

Trail of Bits added regression-hunt to its skills marketplace: it confirms a regression in a pull request or commit only after the same proof of concept passes on the old code, fails on the new code, and a fresh agent replays it. Its companion plugin, patching-bugs, fixes one known bug and proves the fix on baseline, patched and reverted trees. https://github.com/trailofbits/skills/pull/471 https://github.com/trailofbits/skills/tree/main/plugins/regression-hunt https://github.com/trailofbits/skills/tree/main/plugins/patching-bugs

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Trail of Bits' regression-hunt skill only reports a bug a fresh agent can reproduce
  2. 0:24A regression is a new defect that breaks behavior that used to work
  3. 0:39A finding counts only after it runs on both versions
  4. 1:01Only a reproduced regression counts toward the total
  5. 1:15patching-bugs fixes one known bug and proves it on three trees
  6. 1:38A patch that causes a regression is marked Not ready
  7. 1:54regression-hunt 1.2.0 and patching-bugs 0.5.1 run in Claude Code and Codex
Show transcript

Trail of Bits' regression-hunt skill only reports a bug a fresh agent can reproduce

github.com/trailofbits/skills
nothing reproduced · cleanREPRODUCED_REGRESSION
trailofbits/skills PR #471 · merged Oct 20, 2026

Trail of Bits added a plugin called regression-hunt to its skills marketplace on October 20. It confirms a bug in a pull request only when the same proof of concept passes on the old code, fails on the new code, and a fresh agent reruns it. If you merge agent-written changes, the bug report now comes with a failure you can run.

A regression is a new defect that breaks behavior that used to work

regression-hunt 1.2.0 · regression definition
Securityblocked before, allowed now
Functionala working feature breaks
Performancesame workload, slower
Build and testCI or release now fails
plugins/regression-hunt/docs/regression-definition.md

A regression here is a new defect from the change that breaks supported behavior that used to work, on a path a user or attacker can reach. It hunts security flaws, broken features, slowdowns, and builds or tests that now fail.

A finding counts only after it runs on both versions

regression-hunt 1.2.0 · seven skills
prepare›hunt›reproduce›replay›adjudicate›report
cannot establish a regression
synthetic testshelper-only failuressimulated dependenciesinvented internal states
regression-hunt/SKILL.md · docs/regression-definition.md

Separate fresh agents reproduce each candidate, replay it and judge it, on real builds of both versions through a real entry point. The proof has to show correct behavior before the change and the failure after it. Synthetic tests, failures inside one helper, and simulated dependencies can't establish a regression.

Only a reproduced regression counts toward the total

regression-hunt 1.2.0 · report labels
REPRODUCED_REGRESSIONproved live, replayed, adjudicated
INCOMPLETE_FIXthe repair missed a caller or input
LATENT_BUGthe change exposed an existing defect
PREEXISTING_BUGreachable before the change
UNRESOLVEDevidence still missing
Coverage COMPLETE does not mean bug-free.
plugins/regression-hunt/docs/report-definitions.md

Only a reproduced regression counts toward the total. A fix that missed a caller, an old bug the change exposed, and a finding still missing proof each get their own label. And a complete run still doesn't mean the code is bug-free.

patching-bugs fixes one known bug and proves it on three trees

patching-bugs 0.5.1 · prove-patch
baseline
fails
the bug reproduces
patched
passes
one local commit
fully reverted
fails
the bug comes back
plugins/patching-bugs/README.md · skills/prove-patch/SKILL.md

The second plugin, patching-bugs, takes one bug you name. One agent reproduces it, and a different agent reruns that proof without seeing the first one's transcript. The fix lands as a single local commit, and a fresh agent checks three trees. The original fails. The patched tree passes. Fully reverting the patch makes it fail again.

A patch that causes a regression is marked Not ready

patching-bugs 0.5.1 · coordinator
attempts  up to 3 repairs, each proved by a fresh agent
check     regression-hunt on baseline..patch_commit
verdict   reproduced regression Not ready
handoff   maintainer report only when READY
never     pushes, opens a PR, or files an issue
plugins/patching-bugs/skills/patching-bugs/SKILL.md

It gets up to three repair attempts. Each proven patch then goes through regression-hunt, and any reproduced regression marks it Not ready. Only a ready patch gets a maintainer report, and the plugin never pushes or opens a pull request.

regression-hunt 1.2.0 and patching-bugs 0.5.1 run in Claude Code and Codex

github.com/trailofbits/skills

Without fresh independent agents and tools that run the code, candidates stay unresolved. Confirmations still need human review.

Which agent would you run regression-hunt in?
github.com/trailofbits/skills/pull/471
regression-hunt README · report-definitions.md · PR #471

Both plugins need an agent host that can start fresh agents and run your code. Without that, candidates stay unresolved, and confirmations still need a human review. Both load in Claude Code and Codex. Which agent would you run regression-hunt in?