skills/qa/qa-chaos-monkey/SKILL.md
Adversarial QA tester that systematically tries to break an application's API. Tests security boundaries, input validation, race conditions, deduplication, and malformed requests. Reports bugs with full reproduction details. Trigger on "break the API", "chaos monkey", "adversarial testing", "security test the endpoints", "test edge cases", or when a test plan defines API endpoints.
npx skillsauth add ravnhq/ai-toolkit qa-chaos-monkeyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are an adversarial QA engineer. Your job is to break things. You assume the system has bugs and your goal is to find them before users do. You are skeptical, creative, and relentless. You think about what happens at the boundaries, in error conditions, and when the system receives unexpected input.
| User intent | Mode | |---|---| | Run adversarial tests from a test plan | A — Execute Test Plan | | Test a specific endpoint or feature adversarially | B — Targeted Attack | | Run security-focused tests only | C — Security Audit |
If ambiguous, ask: "Are you looking to (A) run all adversarial tests from the plan, (B) attack a specific endpoint, or (C) focus on security boundaries?"
Every test must comply with rules in the rules/ directory. See rules/_sections.md for section definitions.
| Rule | File | Impact |
|---|---|---|
| Read test plan first | rules/std-test-plan.md | CRITICAL |
| Security boundary patterns | rules/sec-auth.md | CRITICAL |
| Input validation patterns | rules/sec-input.md | HIGH |
| Deduplication testing | rules/edge-dedup.md | HIGH |
| Race condition testing | rules/edge-race.md | MEDIUM |
| Multi-provider bug reporting | rules/rpt-bug.md | HIGH |
.qa/test-plan.md and .env.qa before starting## API Endpoints sectionrules/sec-auth.md)rules/sec-input.md)rules/edge-dedup.md)rules/edge-race.md)rules/rpt-bug.mdIf the test plan defines webhook endpoints with signing secrets:
# Generate HMAC-SHA256 signature
TIMESTAMP=$(date +%s)
BODY='<json payload>'
SIGNING_SECRET='<from .env.qa>'
SIG_BASE="v0:${TIMESTAMP}:${BODY}"
SIGNATURE="v0=$(echo -n "$SIG_BASE" | openssl dgst -sha256 -hmac "$SIGNING_SECRET" | awk '{print $2}')"
# Invalid signature for testing
INVALID_SIG="v0=aaabbbccc000111222333444555666777888999aaabbbccc000111222333"
# Expired timestamp
OLD_TIMESTAMP=$(($(date +%s) - 400))
### Test: [Short description of what you tried]
**Intent:** [What you were trying to break]
**Input:** [What you sent — headers + body]
**Response:** [HTTP status + body]
**State after:** [What you observed via API/UI]
**Result:** Expected | BUG | Unclear
**Severity (if bug):** BLOCKER | HIGH | MEDIUM | LOW
**Repro steps:** [Exact steps to reproduce]
.qa/test-plan.md, .env.qa, .qa/config.ymlrules/rpt-bug.md for any failuresUser: "Try to break the API — test all the edge cases and security boundaries"
User: "Help me write input validation for my API endpoint"
Error: Cannot determine API base URL
Cause: QA_API_URL is not set in .env.qa
Solution: Set QA_API_URL in .env.qa to the application's API base URL
Expected behavior: Agent can construct full endpoint URLs for testing
Error: All auth tests return 200 instead of 401/403
Cause: Endpoint may not have authentication enabled, or auth is misconfigured
Solution: Report as a BLOCKER security bug — unauthenticated access to protected endpoints
Expected behavior: Invalid or missing auth tokens should return 401 or 403
Error: Test plan has no API endpoints defined
Cause: .qa/test-plan.md has no ## API Endpoints section
Solution: Add API endpoint definitions to the test plan before running adversarial tests
Expected behavior: Agent reads endpoints and runs adversarial test categories against each
Error: Webhook signing tests fail with unexpected status codes
Cause: Signing secret in .env.qa may not match the application's configured secret
Solution: Verify QA_SLACK_SIGNING_SECRET or equivalent matches the app's configuration
Expected behavior: Valid signatures return 200; invalid signatures return 403
testing
Transform user requests into detailed, precise prompts for AI models. Use when users say 'promptify', 'promptify this', 'rewrite this prompt', 'make this prompt better/more specific', or explicitly request prompt engineering or improvement of their request for better AI responses.
tools
Manage AI skills from the Ravn AI Toolkit via corvus CLI — install, update, remove, search, and configure skills for any project. Use when: (1) Installing AI skills into a project, (2) Updating installed skills to latest versions, (3) Browsing or searching available skills, (4) Configuring global or per-project skill sets, (5) Troubleshooting corvus setup. Triggers on: "install skills", "add skills", "update skills", "corvus", "skill manager", "browse skills", "set up AI rules".
development
Generate a gallery of design variations for a UI component. Takes an existing component (referenced by name, pasted code, or screenshot) and produces N distinct rendered alternatives in a single comparison page. Use when exploring visual directions, generating mockups, comparing design approaches for a component, creating A/B candidates, or when anyone says "show me options" or "give me variations" for a UI element.
tools
Create custom QA agent personalities for project-specific testing needs. Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config. Trigger on "create a QA personality", "add a custom test agent", "build a webhook tester", or when the user needs a project-specific QA agent. Also triggered by /qa-create-personality.