From odin
Hunts and exploits assumption violations in code to uncover silent failures and edge-case bugs. Use when hardening error handling, validating boundary behavior, or stress-testing invariants.
How this skill is triggered — by the user, by Claude, or both
Slash command
/odin:tests-adversarialThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
For every function or module under test, ask these six questions:
Data:
State:
Environment:
Protocol:
test_rejects_negative_quantity, test_handles_empty_result_set, test_recovers_from_mid_write_crash.-race, Miri, or your language's equivalent. Tests that pass without sanitizers may hide undefined behavior.| Gate | Condition |
|---|---|
| Assumptions documented | Every implicit assumption in the code under test is written down |
| Violations tested | Each documented assumption has at least one test that violates it |
| Errors are meaningful | Every failure path produces a descriptive error, not silence or generic message |
| Sanitizers pass | All tests pass under sanitizers / race detectors with zero warnings |
| Code | Meaning |
|---|---|
| 0 | All assumptions identified, violated, and handled — error paths produce meaningful output |
| 1 | Untested assumptions remain — some assumptions lack violation tests |
| 2 | Silent failures found — code swallows errors or produces wrong output without signaling |
| 3 | Crashes or panics discovered — unhandled exceptions, segfaults, or undefined behavior found |
npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinGenerates up to 5 adversarial tests targeting edge cases, boundary conditions, and unknown failure modes after implementation. Use to stress-test new code and find weaknesses before deploying.
Stress-tests code adversarially to uncover edge cases, security holes, race conditions, and logical flaws missed by normal reviews. Use before deploying critical code handling user input or external data.
Systematically breaks APIs by testing security boundaries, input validation, race conditions, and malformed requests. Reports bugs with reproduction details.