Skip to content
Back to skills

Verdict Verify Fix

ASecurity

Prove that a fix fixed the defect — re-run the guarding test at the previous commit and at HEAD, re-inject the defect in an isolated scratch copy, and let the harness record fix_verified from measurement, never from a claim. Use after you (the coding agent) fixed a finding and before you call it done.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentspython

Works with

  • claude code

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add ArtJack/verdict --skill verdict-verify-fix --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Verdict Verify Fix?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Verdict Verify Fix
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artjack-verdict-verify-fix/badge)](https://www.skillsdirectory.com/skills/artjack-verdict-verify-fix)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: verdict-verify-fix
user-invocable: false
description: Prove that a fix fixed the defect — re-run the guarding test at the previous commit and at HEAD, re-inject the defect in an isolated scratch copy, and let the harness record fix_verified from measurement, never from a claim. Use after you (the coding agent) fixed a finding and before you call it done.
---

# Verdict: verify a fix, don't claim it

The coding agent fixes; Verdict verifies. Absence of a failure is not evidence of a fix — a
test that never demonstrated the defect cannot demonstrate its absence. The verified kind is
the only kind that counts as evidence the finding was real.

**In Claude Code with the Verdict plugin, use the `verdict` agent (`/verdict:run` after the
fix lands).** This skill is the same procedure for agents that cannot run it.

## What the harness measures for you

Give the finding a **declared test**: `verification_test` in its file
(`<qa-root>/findings/<ID>.json`) set to a collected test id from `<qa-root>/test-ids.txt`
— the test that fails on the defect and passes on the fix. On the next
`verdict-facts --repo . --qa-root <root>`, the harness re-runs that test at the previous
run's commit (in a scratch worktree, the test file copied from HEAD, the old source first
on `PYTHONPATH`, bytecode swept) and at HEAD:

- fail → pass: the finding resolves `fix_verified: true`, outcome `confirmed (measured)`;
- still fails at HEAD: the resolution is **refused** — the finding stays open;
- pass at both, error, no runnable test: not verifiable, said so, nothing changes.

A prose value ("no test covers this") is refused: declare a collected id, or omit the
field and write in the evidence that no test guards this — which is a finding about the
suite, and often the first thing to fix.

## When you re-inject by hand

Only in a **scratch copy** of the tree, never the checkout. Three controls, all measured
because each one produced a false green once:

1. **The copy must run its own code.** An editable install's `.pth` names the original
   checkout; put the scratch source first (`PYTHONPATH=<scratch>/src`) and confirm:
   `python -c "import <pkg>; print(<pkg>.__file__)"` must print a path inside the scratch.
   (0 of 4 injected defects caught without this, 4 of 4 with it.)
2. **The copy must run the code it has now.** CPython validates bytecode by mtime in whole
   seconds plus size, so a same-size injection within a second re-runs the old bytecode.
   `PYTHONDONTWRITEBYTECODE=1`, delete `__pycache__` between injections. (4 of 5 caught
   with the cache in place, 5 of 5 swept.)
3. **Run the control in the failing direction:** put the original source back and re-run.
   If the injected failure persists on clean source, you are measuring the cache.

Then report: the test id, the result at each commit, the control's result. `fix_verified`
is the one judgment field that feeds the tester's track record, so it costs a
demonstration.

## What you may not do

Edit, weaken, skip or delete a test to make the suite green; mark your own fix verified
without the measurement; close a finding by not mentioning it.

Verdict reports and specifies; it never fixes — you did, and this is how the fix becomes
evidence rather than a claim.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.