From crucible
Generates 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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/crucible:adversarial-testerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read completed implementation and write up to 5 tests designed to make it break. Targets edge cases, boundary conditions, and failure modes the implementer didn't anticipate.
Read completed implementation and write up to 5 tests designed to make it break. Targets edge cases, boundary conditions, and failure modes the implementer didn't anticipate.
Announce at start: "I'm using the adversarial-tester skill to find weaknesses in this implementation."
Skill type: Rigid -- follow exactly, no shortcuts.
Model: Opus (adversarial reasoning about failure modes requires creative analytical thinking)
All subagent dispatches use disk-mediated dispatch. See shared/dispatch-convention.md for the full protocol.
| Agent | Question | Output | Scope |
|---|---|---|---|
| Red-team | "What's wrong with this artifact?" | Written findings (Fatal/Significant/Minor) | Attacks designs, plans, code quality |
| Test Gap Writer | "What known gaps need filling?" | Executable tests (expected to PASS) | Fills reviewer-identified holes |
| Adversarial Tester | "What runtime behavior will break?" | Executable tests (may PASS or FAIL) | Finds unknown weaknesses in behavior |
Read the full diff of the implementation changes. Identify:
Brainstorm 8-10 ways the implementation could break at runtime. Think like an attacker:
Rank each candidate by:
Select the top 5. If fewer than 5 candidates are meaningful, write fewer -- don't pad with trivial tests.
For each selected failure mode, write one focused test that:
Run each test and record the result:
Output the ADVERSARIAL TEST REPORT (see Report Format below).
## ADVERSARIAL TEST REPORT
### Summary
- Failure modes identified: N
- Tests written: N
- Tests PASSING (implementation robust): N
- Tests FAILING (weaknesses found): N
- Tests ERROR (discarded): N
### Failure Mode 1: [Title]
- **Attack vector:** [how this breaks]
- **Likelihood:** High/Medium/Low
- **Impact:** High/Medium/Low
- **Test:** `TestClassName.TestMethodName`
- **Result:** PASS/FAIL
- **If FAIL -- fix guidance:** [what the implementer should change]
[repeat for each failure mode]
Must NOT do:
When used standalone, after running the tests:
When used within the build pipeline, the orchestrator handles outcome routing (see build skill Phase 3).
The orchestrator (not this skill) decides whether to skip. When used standalone, use your judgment:
When dispatched by the build pipeline:
Fix loop mechanics:
Orchestrator skip conditions:
.md, .json, .yaml, .uss, .uxml)This skill produces adversarial tests. When used standalone, the tests themselves are the quality mechanism -- no additional quality gate needed. When used within the build pipeline, the orchestrator handles outcome routing.
crucible:build (Phase 3, after test gap writer)crucible:test-driven-development patterns for test writingcrucible:temper (lightweight review if fix touches 3+ files)break-it-prompt.md (for subagent dispatch)npx claudepluginhub raddue/crucibleHunts 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.
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.
Hunts cross-component bugs in assembled features by dispatching 5 parallel adversarial test dimensions against the full diff. Use for integration issues, wiring faults, and state mismatches between tasks.