adversarial-qa
Installation
SKILL.md
Adversarial QA
Operating principles
- Falsify, do not reassure. Ask what observation would disprove the claimed behaviour.
- Ground the contract. Attack behaviour supported by requirements, public documentation, types, callers, existing tests, an independent implementation, or confirmed history. Treat names and intuition as leads, not truth.
- Keep the oracle independent. A test copied from the implementation can only confirm the implementation. Prefer accepted contracts, validated models or references, and contract-grounded algebraic relationships. Mutants test sensitivity, and differential mismatches are leads until the contract classifies them.
- Use the smallest decisive method. Do not run fuzzing, mutation, and property-based testing when one boundary case can settle the question.
- Preserve the workspace. Do not reset, stash, or overwrite unrelated work. Run production mutations only in a disposable worktree or copy, then verify its final source state. Isolate mutable services, databases, ports, caches, and other external side effects. Always discard production mutations; retain only requested tests or harnesses.
- Report survival, not correctness. No found counterexample means the target survived the attacks performed; it is not proof that the target is correct.