From adlc-team
Run adversarial tests against a feature — edge cases, security, boundary attacks, business logic attacks. Trigger: 'adversarial tests for [FEAT-ID]', 'security test', 'edge case testing'. Available to QA role.
How this skill is triggered — by the user, by Claude, or both
Slash command
/adlc-team:qa-test-adversarialThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<context>
CRITICAL: The enforce-worktree hook will DENY test file edits from main conversation. You MUST spawn a qa-agent.
Read:
.sdlc/specs/[FEAT-ID]-*-spec.md — what was specified.sdlc/specs/[FEAT-ID]-registry.json — what DEV claims passesFor each AC, plan attacks across these categories:
Input attacks: null, empty, whitespace, 10K+ strings, special chars (<script>, SQL injection, path traversal ../), unicode, emoji, negative numbers, zero, MAX_INT, float precision
Auth/access attacks: missing token, expired token, wrong role, deleted user
State attacks: race conditions, stale data, partial failures, replay attacks
Business logic attacks: boundary values, impossible sequences, negative quantities, self-referential data
You MUST spawn a qa-agent. Do NOT write test code yourself.
Spawn Agent:
type: general-purpose
model: sonnet
isolation: worktree
prompt: |
You are a qa-agent running adversarial tests for [FEAT-ID].
Your job is to FIND problems, not fix them.
## Feature spec
[paste relevant ACs from spec]
## Attack vectors to execute
[paste your planned attack vectors from Phase 1]
## Rules
- Write test code for each attack vector
- Run tests fresh — never trust cached results
- Do NOT modify production code — only test files
- Do NOT skip a category because "it probably works"
- Record actual behavior vs expected behavior
- Classify severity: CRITICAL / HIGH / MEDIUM / LOW
## Output
Write report to .sdlc/reviews/[FEAT-ID]-adversarial-report.md:
# Adversarial Test Report: [FEAT-ID]
**Tester:** qa-agent
**Date:** [YYYY-MM-DD]
## Summary
- Total tests: [N]
- Passed: [N]
- Failed: [N] (Critical: [N], High: [N], Medium: [N], Low: [N])
## Findings
[For each finding: category, severity, AC affected, description, repro steps, expected vs actual, evidence]
## Verdict: [PASS / FAIL]
After qa-agent completes, read the report and post to GitHub:
gh issue comment [SPEC_ISSUE] --body "## QA: Adversarial test report — [FEAT-ID]
**Tests:** [N] total, [N] passed, [N] failed
**Critical findings:** [count]
**Verdict:** [PASS/FAIL]
**Full report:** .sdlc/reviews/[FEAT-ID]-adversarial-report.md"
If FAIL with critical findings:
gh issue edit [SPEC_ISSUE] --add-label "adlc:qa-failed"
If PASS:
gh issue edit [SPEC_ISSUE] --remove-label "adlc:ready-for-qa" --add-label "adlc:qa-passed"
When QA fails a feature:
adlc:qa-failed labeladlc:qa-failed and adds adlc:ready-for-qanpx claudepluginhub obacker/claude-code-plugins --plugin adlc-teamGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.