Independently rerun and verify bug proof-of-concept packages to confirm or reject reported findings.
- GitHub stars
- 8,136
- Files
- 1
- Last commit
- Nov 11, 2026
- License
- CC-BY-SA-4.0
- Allowed tools
- —
What does the validate-bug skill do?
validate-bug is an agent skill. Independently rerun and verify bug proof-of-concept packages to confirm or reject reported findings.
Summary generated from the skill's SKILL.md.
About the validate-bug skill
Verifying bug proof-of-concept packages through independent reruns is the primary function of this skill. It serves developers and agents who need to confirm or reject reported findings after a reproduction step has already provided a finding and a PoC package. An agent should load this tool when it has access to a finding.json file containing reproduction details, proof types, and commands, but must avoid reading the reproducer's narrative or transcript to maintain objectivity.
The process involves rerunning baseline compiler commands for compile failures or rebuilding and rerunning unchanged runtime PoCs with planned scoped inputs. The tool produces a validate/ directory containing stdout, stderr, exit status, and timing data stored in validate/receipts/. Users must decide if the diagnostic or runtime assertion demonstrates the exact claim and violates the stated invariant, resulting in a validate.json file marked as confirmed, not_confirmed, or inconclusive. The skill relies on uv run to manifest the directory and a record checker script to finalize the process. It specifically prohibits repairing PoCs or developing patches.
What an agent can do with it
- 1Confirming reported bug findingsAn agent can independently rerun a provided proof-of-concept to see if it reaches the expected assertion.
- 2Handling unreliable bug observationsIf a reproduction attempt produces inconsistent results, the agent can report the finding as inconclusive.
- 3Validating compiler failure reportsDevelopers can use the tool to rerun baseline compiler commands to verify reported compile failures.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the validate-bug skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the validate-bug skill in Plugin
/plugin marketplace add trailofbits/skills /plugin install patching-bugs@trailofbits
Install the validate-bug skill in Claude Code
~/.claude/skills/validate-bug/SKILL.md
$ npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug ~/.claude/skills/validate-bugInstall the validate-bug skill in Claude Code (project)
.claude/skills/validate-bug/SKILL.md
$ npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug .claude/skills/validate-bugInstall the validate-bug skill in Codex
~/.agents/skills/validate-bug/SKILL.md
$ npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug ~/.agents/skills/validate-bugInstall the validate-bug skill in Gemini CLI
~/.gemini/skills/validate-bug/SKILL.md
$ npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug ~/.gemini/skills/validate-bugInstall the validate-bug skill in Claude.ai
npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug validate-bug && zip -r validate-bug.zip validate-bug # claude.ai → Customize → Skills → + → Create skill → Upload a skill → validate-bug.zip
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachabletrailofbits/skills/plugins/patching-bugs/skills/validate-bug is public and reachablegithub.com/trailofbits/skills/tree/HEAD/plugins/patching-bug ↗Pass
- Open source license (OSI)CC-BY-SA-4.0 is not OSI-approvedspdx.org/licenses/CC-BY-SA-4.0.html ↗Finding
- Commit or release in the last yearLast commit 2026-11-11github.com/trailofbits/skills/commits ↗Pass
- No download-and-run or credential theft in scriptsNo scripts in the skill folderPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/trailofbits/skills/blob/HEAD/plugins/patching-bug ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/trailofbits/skills/blob/HEAD/plugins/patching-bug ↗Pass
SKILL.md
View on GitHubValidate Bug
When to Use
Use after reproduce-bug has supplied a finding and PoC package. Read the
record contract.
Before target commands, follow its project guidance.
When NOT to Use
Do not use to repair a PoC, develop a patch, or infer reproduction from the reproducer's narrative.
Procedure
-
Read
finding.json, the reproduction's proof type, commands, any PoC, and raw receipts. Do not read the reproducer's transcript. -
Rerun the same baseline compiler command for compile failures, or rebuild and rerun the unchanged runtime PoC and planned scoped inputs. Save stdout, stderr, exit status and timing in
validate/receipts/. If an observation is unreliable, returninconclusiveinstead of inferring either presence or absence. -
Decide whether the target diagnostic or runtime assertion demonstrates the exact claim and violates the stated invariant. Write
validate.jsonasconfirmed,not_confirmed, orinconclusivewith a short reason and agent identity.
{
"schema_version": 1,
"outcome": "confirmed",
"agent": "validator-1",
"reason": "The unchanged PoC reached the assertion and demonstrated the claim."
}
- Manifest the complete
validate/directory withuv run --no-project <script> manifest <validate-step-dir>, then run the record checker. Return the package without editing the PoC or finding.
Rationalizations to Reject
| Shortcut | Required action |
|---|---|
| Fix the PoC to make the claim work. | Mark it inconclusive and explain why. |
| Trust the reproducer's conclusion. | Rerun the unchanged package independently. |
Files in this skill
1validate-bug skill questions
How do I install the validate-bug skill in Claude Code?
Run npx degit trailofbits/skills/plugins/patching-bugs/skills/validate-bug ~/.claude/skills/validate-bug. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the validate-bug skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
When should I use the validate-bug skill?
Use this skill after a reproduction step has provided a finding and a proof-of-concept package.
Can I fix a proof-of-concept if it is not working?
No, you should not repair a PoC; instead, mark the result as inconclusive and explain why.
What are the possible outcomes of a validation run?
The outcome must be recorded as confirmed, not_confirmed, or inconclusive.