tests-adversarial
Installation
SKILL.md
Adversarial Testing — Think Like the Attacker
Every line of code makes assumptions. Your job is to find them and violate them — systematically, not randomly. The goal is distrust, not coverage. A passing test suite proves nothing if it only tests the happy path.
The Adversarial Mindset
- Every input is a lie. Callers will send garbage, nulls, negative numbers, empty strings, and types that satisfy the compiler but violate intent.
- Implicit contracts are targets. If the code assumes ordering, uniqueness, non-emptiness, or positive values without enforcing it — that is your entry point.
- The system is your adversary. Files disappear, connections drop, clocks jump, memory runs out, permissions change between check and use.
- Passing tests prove nothing. They prove the happy path works. Adversarial tests prove the sad paths do not silently corrupt.
Assumption Hunting (Core Technique)
For every function or module under test, ask these six questions: