skillby trevoke

qa

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

Installs: 0
Used in: 1 repos
Updated: 2w ago
$npx ai-builder add skill trevoke/qa

Installs to .claude/skills/qa/

# /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

```bash
~/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

```markdown
| 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

```bash
~/bin/eldev etest -r dot
```

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

```markdown
## 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. |

Quick Install

$npx ai-builder add skill trevoke/qa

Details

Type
skill
Author
trevoke
Slug
trevoke/qa
Created
2w ago

More by trevoke