Skip to main content
Skill Patching Bugs

Validate Bug

Use after reproduce-bug has supplied a finding and PoC package.

Install

/plugin install trailofbits/skills/plugins/patching-bugs

Run in Claude Code to add the Patching Bugs plugin, then enable this skill.

View skill folder on GitHub ↗

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

  1. Read finding.json, the reproduction's proof type, commands, any PoC, and raw receipts. Do not read the reproducer's transcript.

  2. 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, return inconclusive instead of inferring either presence or absence.

  3. Decide whether the target diagnostic or runtime assertion demonstrates the exact claim and violates the stated invariant. Write validate.json as confirmed, not_confirmed, or inconclusive with a short reason and agent identity.

    Validate record schema:

{
  "schema_version": 1,
  "outcome": "confirmed",
  "agent": "validator-1",
  "reason": "The unchanged PoC reached the assertion and demonstrated the claim."
}
  1. Manifest the complete validate/ directory with uv 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.

More in Patching Bugs