adjudicate-regression
About adjudicate-regression
adjudicate-regression is a skill for deciding whether proposed findings are regressions, using source code and reproduction and replay evidence. It records supported conclusions, exclusions, or unresolved gaps in a sealed decision record.
Key features
- 01Inspect source and experiment evidence
- 02Assess patch causality and reachability
- 03Confirm findings with independent evidence
- 04Record exclusions or unresolved gaps
- 05Check duplicate causes and known findings
Use cases
- 01Reviewing a regression candidate
- 02Evaluating security finding assumptions
- 03Documenting a decision with evidence
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ trailofbits/ skills --skill adjudicate-regressionAfter installing, type/adjudicate-regressionin Claude Code to confirm it loaded.
Details
From the project READMEAdjudicate evidence
When to Use
Input: candidate, frozen sources, available reproduction/replay packages and registry assignment. Use a fresh context distinct from the reproducer and replayer. Early exclusions may lack experiments. Follow project guidance before target work.
When NOT to Use
Producing missing evidence; return the gap to the caller.
Decide
- Read the standard, labels and file contract. Verify seals. Inspect source, setup, PoC, actual logs and security assumptions, not only summaries.
- Identify the claimed defect and assess whether the change introduced it. Rule out incomplete fixes, latent/pre-existing bugs, intentional changes, unsupported expectations and unreachable scenarios with cited evidence. Establish attacker access and applicable protections for security findings.
- Confirm only when reproduction and independent replay ran the same PoC/input against live S0/S1 through real interfaces, showing correct behavior before and failure afterward. Explain supported behavior, reachability and patch causality. Assign severity/likelihood with reasons.
- Otherwise select an evidenced exclusion or
UNRESOLVED; state what remains unproved. ForUNRESOLVED, put the standard's concise paragraph separating observed gaps, plausible explanations and resolving checks inreasonso reports retain it. Incomplete fixes and existing bugs stay outside regression totals. Check known findings/issues/PRs before claiming novelty; report unknown if unavailable. - For requested deduplication, establish whether supplied candidates share a root cause. Preserve change mappings; never deduplicate unresolved claims into confirmation.
- Write and seal
decision.json; cite evidence for every conclusion. Record any blocker preventing adjudication.
Report Back
Keep detailed reasoning in the sealed package. Return only:
- Status:
completeorblocked, matching the record. - Record: sealed
decision.jsonpath, or why none was produced. - Result: outcome and one-sentence reason.
- Gap: missing evidence or required caller action, if any.
A completed decision may be UNRESOLVED; task status and finding outcome differ.
Rationalizations to Reject
- “S0 passes and S1 fails”: exposing an existing defect is a latent bug.