Adversarial Testing QA

VerifiedCaution

Adversarial testing methodology to verify quality by writing and running tests, backed by evidence of results.

Sby Skills Guide Bot
TestingIntermediate
7/22/2026
Claude Code
#adversarial-testing#acceptance-criteria#test-coverage#emacs-lisp#evidence-based

Recommended for

Automated summary

An adversarial QA skill that actually writes and runs tests to verify finished work, backing every claim with test or command output rather than opinion.

Strengths

  • Runs the existing test suite first and requires pasting the real output, treating regressions as priority one
  • Maps each acceptance criterion to an existing test in a COVERED/GAP coverage table
  • Writes real adversarial test code for nil/empty inputs, boundary values, missing state and repeated calls instead of describing them
  • Explicitly forbids fabricated results and implementation fixes, keeping diagnosis separate from the implementer's job

Limitations

  • The test command is hardcoded to ~/bin/eldev etest, so it targets an Emacs Lisp project managed by Eldev
  • Assumes requirements and design docs live in docs/plans/
  • Does not fix anything: it reports failures with reproduction, expected and actual results
When to use it

Use it right after finishing a feature or chunk of work, to confirm acceptance-criteria coverage and try to break the code with edge cases.

When not to use it

Avoid it on a non-Emacs Lisp codebase without adapting the test command, or when you want the code fixed rather than an evidence-based report of what fails.

Security analysis

Caution
Quality score88/100

The skill is a legitimate QA workflow and does not contain destructive, exfiltrating, or obfuscated instructions. However, it does instruct an agent to execute local test commands and write files in the repository, which are powerful actions requiring normal caution.

Findings
  • •Runs local command `~/bin/eldev etest -r dot` without declared allowed-tools; this executes project test code and any eldev hooks.
  • •Writes new test files into the repository, modifying the working tree without an explicit confirmation step.
  • •Encourages adversarial tests that execute code and may trigger side effects in the project environment.
How this analysis is made

Examples

Verify a finished feature
Implementation of focus mode is done. Run /qa on it: read the requirements in docs/plans/, run the full test suite, and check acceptance criteria coverage.
Adversarial edge cases
Use /qa to write adversarial tests for the calendar-visibility functions — nil args, empty lists, killed buffers mid-operation, and double calls — then run them and show the output.
Coverage gap audit
/qa: audit the acceptance criteria for the sync feature against existing tests, write the missing tests for any gap, and report PASS/FAIL with actual eldev output.

name: qa description: Use when implementation is complete and you want to verify quality through adversarial testing that writes code and provides evidence

/qa — Adversarial Testing

Overview

QA writes tests and runs them. It provides evidence, not opinions. Every claim is backed by a test or command output.

Core principle: Your job is to break things. Write code. Run it. Show evidence.

When to Use

  • Implementation is complete (or a chunk of work needs verification)
  • You want to check acceptance criteria coverage
  • You want adversarial edge-case testing

The Process

1. Find Context

Look for requirements and design docs in docs/plans/. Read both to understand what was built and what was promised.

2. Run the Existing Test Suite

~/bin/eldev etest -r dot

Actually run it. Report exact output: how many tests, how many pass, how many fail. If any fail, report them immediately — existing regressions are priority one.

3. Check Acceptance Criteria Coverage

Read acceptance criteria from the requirements doc. For each criterion:

  1. Search for a test that exercises it (Grep for keywords)
  2. Read the test — does it actually test what the criterion says?
  3. Report: covered or gap
| Criterion | Test | Status |
|-----------|------|--------|
| User can activate focus mode | focus-test.el:42 | COVERED |
| Calendar items always visible | (none found) | GAP |

4. Write Missing Tests

For each gap, write the test. Follow existing patterns in the codebase.

Run it. Report whether it passes or fails.

5. Write Adversarial Tests

Actively try to break things. Write actual test code, don't just describe it.

Target areas:

  • Nil/empty inputs: What happens with nil arguments, empty strings, empty lists?
  • Boundary values: 0, 1, max, min
  • Missing state: Required properties absent, buffers killed mid-operation
  • Invalid inputs: Wrong types, malformed data
  • Repeated calls: What if the function is called twice in a row?

6. Run Everything and Report

~/bin/eldev etest -r dot

Report with evidence — actual test output, not fabricated numbers:

## QA Report

**Test Suite**: [paste actual eldev output]

### Acceptance Criteria Coverage
| Criterion | Test | Status |
|-----------|------|--------|
| ... | ... | ... |

### Tests Written
- [test name]: tests [what] — [PASS/FAIL]

### Failures Found
- [test name]: [what failed]
  - **Reproduction**: [exact command or test invocation]
  - **Expected**: [what should happen]
  - **Actual**: [what happened]

Common Mistakes

| Mistake | Fix | |---------|-----| | Describing tests without writing code | WRITE the test. Create the file. Run it. | | Fabricating test results | RUN the tests. Paste actual output. | | Reporting opinions instead of evidence | Every claim needs a test or command output. | | Suggesting implementation fixes | Report problems with evidence. Fixing is the implementer's job. | | Categorizing tests instead of running them | Less taxonomy, more eldev etest. | | Skipping the existing test suite | ALWAYS run the full suite first. Regressions are priority one. | | Not checking requirements doc | Cross-reference acceptance criteria. That's what "done" means. |

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/adversarial-testing-qa-mrwak8kp' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/adversarial-testing-qa-mrwak8kp/download' --output '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md.part' && mv '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md.part' '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md' && test -s '.skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/adversarial-testing-qa-mrwak8kp' '.claude/skills/qa'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/adversarial-testing-qa-mrwak8kp'

openskills read 'adversarial-testing-qa-mrwak8kp'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/adversarial-testing-qa-mrwak8kp/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills