From qa-debug
This skill should be used when the user asks to "generate negative test cases", "design boundary tests", "plan fuzz testing", "design stress or load tests", "think pessimistically about testing", "assume the system will fail", or needs guidance on failure-first test design, chaos scenario planning, adversarial QA methodology, or any form of testing that starts from the assumption that inputs will be invalid, limits will be exceeded, or dependencies will be unavailable. Also activate when running /qa-plan or /chaos commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qa-debug:pessimistic-qa-patternsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Assume the system **will** fail. Every test should answer: "What is the most damaging way this could break, and does the system fail gracefully?"
Assume the system will fail. Every test should answer: "What is the most damaging way this could break, and does the system fail gracefully?"
Optimistic testing asks: "Does the happy path work?" Pessimistic testing asks: "How badly does it fail when it doesn't, and can we tell the difference between a graceful degradation and a silent catastrophe?"
The ordering principle: Negative → Boundary → Fuzz → Stress. Catching failures early is cheaper than discovering them under load.
Apply to every public function boundary and API endpoint:
\x00)See references/patterns.md for the full negative pattern catalog with code-level examples.
Apply the n-1, n, n+1 rule to every numeric constraint:
MAX_INT, MIN_INT, MAX_INT + 10.1 + 0.2 ≠ 0.3, NaN, Infinity, -0, denormalized floatsFormat-level stress only — no exploit payloads, no security testing of systems you do not own:
Always environment-gated — staging or dedicated load environment, never production:
See references/patterns.md for stress scenario templates and tooling recommendations by stack.
| Failure Mode | Test Category | Most Dangerous If Missed |
|---|---|---|
| Crash on bad input | Negative | User-facing 500, data loss |
| Off-by-one in limit enforcement | Boundary | Allows data past quota silently |
| Encoding corruption | Fuzz | Silent data corruption in DB |
| Degradation under load | Stress | SLO breach, cascading failure |
| Silent null propagation | Negative | Wrong results returned as correct |
npx claudepluginhub luxcordia/qa-debug --plugin qa-debugHunts 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.
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.
Explores edge cases across 12 dimensions like invalid input, concurrency, and auth failures. Scores scenarios by likelihood x impact. Generates runnable tests for high-risk ones.