# QA

> Diff-aware QA routing — analyze what changed and route to the right test strategy. USE WHEN qa, what should I test, check my changes, run qa, review changes, diff analysis, what broke, smoke test, test routing.

- Skill: `phuaky/qa` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add phuaky/qa`
- Raw SKILL.md: https://api.skillmd.com/api/skills/phuaky/qa/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: phuaky (https://skillmd.com/u/phuaky)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/phuaky/qa

---


# QA

Diff-aware quality assurance. Analyzes git diffs, classifies file changes by category (style, component, API, data, config, test, docs, infra), and routes to the appropriate test/validation strategy. Smart QA — test what matters, skip what doesn't.

## Customization

**Before executing, check for user customizations at:**
`~/.claude/skills/PAI/USER/SKILLCUSTOMIZATIONS/QA/`

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.

## Voice Notification

**When executing a workflow, do BOTH:**

1. **Send voice notification**:
   ```bash
   curl -s -X POST http://localhost:8888/notify \
     -H "Content-Type: application/json" \
     -d '{"message": "Running the WORKFLOWNAME workflow in the QA skill to ACTION"}' \
     > /dev/null 2>&1 &
   ```

2. **Output text notification**:
   ```
   Running the **WorkflowName** workflow in the **QA** skill to ACTION...
   ```

## Workflow Routing

| Workflow | Trigger | File |
|----------|---------|------|
| **Analyze** | "/qa", "what should I test", "check my changes", "diff analysis" | `Workflows/Analyze.md` |
| **QuickCheck** | "quick check", "smoke test", "quick qa", "sanity check" | `Workflows/QuickCheck.md` |

## Architecture

**Two-stage process:**
1. **Script** (`Tools/DiffAnalyzer.ts`) — deterministic diff parsing, file classification, route generation
2. **AI orchestration** — interpret routes, execute checks, report results

## Tool Reference

**Path:** `~/.claude/skills/QA/Tools/DiffAnalyzer.ts`

**Usage:**
```bash
# Diff against main (default)
bun ~/.claude/skills/QA/Tools/DiffAnalyzer.ts

# Diff against specific branch
bun ~/.claude/skills/QA/Tools/DiffAnalyzer.ts --branch develop

# Staged changes only
bun ~/.claude/skills/QA/Tools/DiffAnalyzer.ts --staged

# Explicit file list
bun ~/.claude/skills/QA/Tools/DiffAnalyzer.ts --files "src/api.ts,src/styles.css"
```

**Output:** JSON with file classifications, diff stats, and QA routing recommendations.

## File Categories

| Category | Matches | QA Strategy |
|----------|---------|-------------|
| **style** | CSS, SCSS, Tailwind config | Visual regression — screenshot before/after |
| **component** | TSX, JSX, Vue, Svelte | Component render check — verify UI |
| **api** | Route handlers, controllers, middleware | Endpoint validation — test request/response |
| **data** | Migrations, schemas, seeds, Prisma | Migration safety — check destructive ops |
| **config** | JSON, YAML, TOML, env files | Config validation — syntax and required fields |
| **test** | *.test.*, *.spec.*, __tests__ | Test-only — run modified tests |
| **docs** | Markdown, README, CHANGELOG | Documentation review — link and accuracy check |
| **infra** | Dockerfile, CI/CD, deploy configs | Infrastructure review — verify deploy config |

## Diff Size Routing

| Size | Lines Changed | Strategy |
|------|--------------|----------|
| **Small** | <50 | Quick smoke test — focused verification |
| **Medium** | 50-199 | Standard testing — run related tests |
| **Large** | 200+ | Full suite — comprehensive check recommended |

## Examples

**Example 1: Before shipping a feature**
```
User: "/qa"
→ Runs DiffAnalyzer.ts against main
→ "12 files changed: 3 component, 2 api, 1 style, 6 test"
→ Routes: visual check for style, endpoint validation for API, run component tests
→ Executes each route, reports results
```

**Example 2: Quick sanity check**
```
User: "quick check"
→ Runs DiffAnalyzer.ts --staged
→ "2 files changed: 1 config, 1 api (small diff)"
→ Quick smoke test: validate config syntax, curl API endpoint
```

**Example 3: Explicit files**
```
User: "qa these files: src/auth.ts, src/auth.test.ts"
→ Runs DiffAnalyzer.ts --files "src/auth.ts,src/auth.test.ts"
→ Routes: API validation for auth.ts, run auth.test.ts
```

## Integration

- **Ship skill**: Run `/qa` before `/ship` to verify changes
- **Evals**: QA routes map to Evals grader types (code_based for config, llm_rubric for docs)
- **Browser**: Visual regression checks use Browser skill for screenshots

