java/src/main/resources/targets/claude/skills/core/review/x-review-qa/SKILL.md
QA specialist review: validates test coverage, TDD compliance, test naming, fixtures, parametrized tests, and acceptance criteria coverage.
npx skillsauth add edercnj/claude-environment x-review-qaInstall 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.
Review code changes for QA compliance: test coverage thresholds, TDD process adherence, test naming conventions, fixture centralization, parametrized tests for data-driven scenarios, and acceptance criteria coverage. Validates that tests follow the Transformation Priority Premise (TPP) and Double-Loop TDD.
/x-review-qa 42 -- review PR #42 for QA compliance/x-review-qa src/test/ -- review test files at specific paths/x-review-qa -- review all current test changes| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| target | String | No | (current changes) | PR number or file paths to review |
| Pack | Files | Purpose |
|------|-------|---------|
| testing | knowledge/testing.md | Test categories, coverage thresholds, fixture patterns, TDD workflow |
Each applicable item scores 0 (missing), 1 (partial), or 2 (fully compliant). Items
marked N/A are excluded from BOTH the earned score and the maximum possible score.
When testing.smoke_tests == false, QA-19 and QA-20 are automatically marked N/A,
so the adjusted maximum is /36 instead of /40. Report the adjusted max in the final
score line (see Output Template below).
| # | Item | Score | |---|------|-------| | QA-01 | Test exists for each acceptance criterion | /2 | | QA-02 | Line coverage >= 95% (absolute gate — Rule 05 RULE-005-01) | /2 | | QA-03 | Branch coverage >= 90% (absolute gate — Rule 05 RULE-005-01) | /2 |
Absolute-gate note (Rule 05 RULE-005-01): QA-02 and QA-03 evaluate the repository's current coverage, not just the PR diff. The specialist MUST fail these items regardless of whether the deficit was introduced by this PR or was pre-existing on the base branch. Pre-existing deficits must be closed in the current PR or in a predecessor PR; no "pre-existing" exemption is permitted. The only escape path is an approved ADR that temporarily lowers the gate for a specific package (with sunset date).
| # | Item | Score |
|---|------|-------|
| QA-04 | Test naming convention followed: [method]_[scenario]_[expected] | /2 |
| QA-05 | AAA pattern (Arrange-Act-Assert) in every test | /2 |
| QA-06 | Parametrized tests for data-driven scenarios | /2 |
| QA-07 | Exception paths tested with specific assertions | /2 |
| QA-08 | No test interdependency (tests run in any order) | /2 |
| QA-09 | Fixtures centralized (no duplicate records/classes across test files) | /2 |
| QA-10 | Unique test data per test (no shared mutable state) | /2 |
| # | Item | Score | |---|------|-------| | QA-11 | Edge cases covered (null, empty, boundary values) | /2 | | QA-12 | Integration tests for DB/API interactions | /2 |
| # | Item | Score | |---|------|-------| | QA-13 | Commits show test-first pattern (test precedes implementation in git log) | /2 | | QA-14 | Explicit refactoring after green (separate refactor commits) | /2 | | QA-15 | Tests follow TPP progression (simple to complex) | /2 | | QA-16 | No test written after implementation (test-after is a violation) | /2 | | QA-17 | Acceptance tests validate end-to-end behavior | /2 | | QA-18 | TDD coverage thresholds maintained across all modules | /2 |
| # | Item | Score |
|---|------|-------|
| QA-19 | Smoke tests exist and cover critical path (when testing.smoke_tests == true; N/A when false) | /2 |
| QA-20 | ALL smoke tests pass — {{SMOKE_COMMAND}} executed with zero failures (when testing.smoke_tests == true; N/A when false) | /2 |
Read the testing knowledge pack for project test conventions:
knowledge/testing.mdDetermine scope: PR diff or specified paths. Separate production code from test code.
Check coverage reports or run coverage tool. Verify line >= 95% and branch >= 90%.
Absolute gate (Rule 05 RULE-005-01): the gate fires when the repository's measured coverage falls below either threshold, regardless of whether the deficit was caused by the PR or was pre-existing on the base branch. The specialist MUST record the finding and fail QA-02/QA-03 in both cases; it is not the specialist's place to grant a pre-existing exemption.
Scan test files for naming convention compliance: [methodUnderTest]_[scenario]_[expectedBehavior].
Analyze git log for test-first pattern: test commits should precede or accompany implementation commits.
For each test file:
Execute smoke test verification when testing.smoke_tests == true:
testing.smoke_tests == false: mark QA-19 and QA-20 as N/A (not scored, excluded from max score)testing.smoke_tests == true: proceed with smoke verification{{SMOKE_COMMAND}} and verify ALL smoke tests pass:
{{SMOKE_COMMAND}}
Produce the scored report.
ENGINEER: QA
STORY: [story-id or change description]
SCORE: XX/40 (or XX/36 when QA-19 and QA-20 are N/A — use the adjusted max that
excludes N/A items; see Checklist header for the N/A rules)
STATUS: PASS | FAIL | PARTIAL
### PASSED
- [QA-XX] [Item description]
### FAILED
- [QA-XX] [Item description]
- Finding: [file:line] [issue description]
- Fix: [remediation guidance]
### PARTIAL
- [QA-XX] [Item description]
- Finding: [partial compliance details]
| Scenario | Action |
|----------|--------|
| No test files found | Report INFO: no test code discovered |
| Coverage tool not configured | Warn and skip QA-02, QA-03 |
| Git log not available | Warn and skip QA-13, QA-14, QA-16 |
| Smoke test failure (QA-20) | STATUS becomes Rejected regardless of other scores |
| testing.smoke_tests == false | Mark QA-19, QA-20 as N/A (excluded from max score) |
tools
Documentation automation v2: stack-aware generation from documentation.targets.
development
Generates or updates CI/CD pipelines per project stack with actionlint validation.
tools
Generates ADRs from architecture-plan mini-ADRs with sequential numbering and index update.
development
Formats source code; first step of the pre-commit chain (format -> lint -> compile).