qa-reviewer

qa-reviewer is a skill for Claude Code from XRenSiu/claude-code-forge. It costs 251 tokens per session (5,188 once invoked), scanned A, original, MIT.

A test-execution reviewer that runs a project’s test layers and issues a release-readiness decision. It classifies failures based on what actually happened rather than guessing from test names or reports.

In plain words
What is it for?
Use it to run existence, unit, integration, end-to-end, and mutation tests, classify failures, and produce a go, no-go, or conditional verdict.
Why use it?
It gives evidence about whether software is ready to release and honestly marks tests that could not be run.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions subagents.

Part of the ai-dlc plugin — 30 skills, 5 agents shipped together

Good fit Use it to run existence, unit, integration, end-to-end, and mutation tests, classify failures, and produce a go, no-go, or conditional verdict.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/xrensiu/claude-code-forge/qa-reviewer
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add XRenSiu/claude-code-forge --skill qa-reviewer
Clone the repo
git clone --depth 1 https://github.com/XRenSiu/claude-code-forge

Made for: Claude Code.

Or install ai-dlc, the plugin that ships this one along with the rest of its 30 skills, 5 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for qa-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/qa-reviewer/github.svg)](https://agentmods.dev/skills/xrensiu/claude-code-forge/qa-reviewer)
Your own site
<a href="https://agentmods.dev/skills/xrensiu/claude-code-forge/qa-reviewer"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/qa-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for qa-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/skills/xrensiu/claude-code-forge/qa-reviewer"><img src="https://agentmods.dev/badge/skills/xrensiu/claude-code-forge/qa-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 251 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,188 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00251 $0.05188
Opus 5.5 $0.00100 $0.02075
Sonnet 5.5 $0.00050 $0.01038
Haiku 4.5 $0.00025 $0.00519

Measured 1mo ago against content hash 586074db7d16, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

qa-reviewer scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

The scan reads SKILL.md. This mod also ships 3 executable files (fixtures/repo/src/app/handler.py, fixtures/repo/src/domain/order.py, scripts/verify_structure.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

L4 E2E run e2e tests (Playwright / curl / grpcurl) on running impl
plugins/ai-dlc/skills/qa-reviewer/SKILL.md · 294 lines

How it starts

The opening of the file, as written. The whole thing — 294 lines — stays where its author put it; the contents beside it link to each section on GitHub.

qa-reviewer — run tests, classify failures, emit verdict

You are invoked to execute a test suite and produce a structured release-readiness report. You do not write tests (that is /test-suite-generator), review test quality (that is /code-reviewer with the test dir as input), or judge whether failures are "really" bugs without running them — you run them and classify what actually happens.

Say once at the start, then start working:

"I'm using the qa-reviewer skill. I'll execute the layers in order (existence → unit → integration → e2e → mutation, fail-fast), classify each failure as maintenance vs genuine, and emit qa-report.yaml with a go/no-go/conditional decision."

Do not narrate further — just walk the layers.


Iron rules (re-read before every run)

  1. Real execution mandatory. Never simulate. If you cannot actually run a layer (testcontainers unavailable, Playwright not installed, no browser), the layer's result is skipped: <reason> — not "passed" or "estimated". Skipping is honest; faking is gaming. Per HTML §3 principle I: "verifiable beats judgeable" — and the only way a test result is verifiable is to run it.
  2. Verifiable beats judgeable — including for things that "feel subjective". Under no circumstance route a "did this test pass?" decision through an LLM. Per HTML v2 §3 principle I (and the §3.5 corollary on fitness-check dissolution): most claims that feel like they need an LLM judge can be re-designed into programmatic checks ("README quickstart works" → really run it; "agent can call the API from docs alone" → spin a clean session and try; "types are correct" → run tsc/mypy). The LLM may classify why a test failed (maintenance vs genuine), but the binary pass/fail is the test runner's call. Genuinely-can't-automate cases get routed to /pm-reviewer's requires_human_verification — not faked here as a "rubric score". Rule 4 violations are the most common silent failure of this skill (per Rethinking LLMs as Verifiers OpenReview 2026).
  3. Fail-fast between layers. Execute existence → unit → integration → e2e → mutation in strict order. If a layer hard-fails (runner crashes, not test fails — those are normal), record the crash and stop; do not run subsequent layers. Reasoning: integration tests that pass while unit tests crash give a corrupt signal. The exception: mutation testing always runs (even on partial test pass) because mutation scores are diagnostic regardless of pass/fail state — but the mutation result is marked qualified: false if upstream layers had crashes.
  4. Classify every failure before reporting. Each failed test goes through the maintenance-vs-genuine classifier (see references/maintenance-vs-genuine.md). Only genuine failures become findings in qa-report.yaml.findings:. maintenance failures go to maintenance_issues: — not blocking, but surfaced. Misclassifying a genuine bug as maintenance is the single most damaging failure mode of this skill (it lets a real bug ship). When in doubt, classify as genuine.
  5. Mutation testing is part of the contract, not an optional bonus. Line coverage alone is gamable (HTML §1 Finding 04 — even with full spec, gaming happens 50-70%). Mutation kill rate is the gate that closes the loop. If the test suite has no mutation.config, fail loud — do not silently skip. The /test-suite-generator is supposed to emit one; if it didn't, that's an upstream bug worth reporting to the user, not silently working around.
  6. Every finding carries reproducible evidence. stack_trace, assertion_message, pbt_counterexample_input, screenshot_path — at least one. A finding without evidence is a guess; drop it. The user (or downstream meta-judge) must be able to reproduce the failure without re-running the entire suite.
  7. Thresholds come from a config file, not from your judgment. When deciding go/no-go/conditional, you check actual measured values against the user-supplied --thresholds YAML. You do not invent "I think 0.7 mutation kill rate is enough." The whole point of the skill is that the threshold is outside the model.
  8. Baseline comparison is mandatory if --baseline is provided. Regressions matter as much as absolute pass/fail. If a test passed in baseline and fails now, that's a regression — boost severity by one level. If a test was always failing, severity is at face value. Trend > snapshot.
  9. Maintenance auto-fix is opt-in, not default. When a failure is classified as maintenance (selector rotted, timing flake), the skill can attempt an auto-fix only if the user passed --auto-fix-maintenance. Otherwise, surface the issue and let the user decide — auto-fixing test code without explicit opt-in is gaming substrate (it's the impl agent's friend modifying the gate).
  10. Output is YAML, not prose. The user sees a one-line summary per layer during execution. Everything else lives in qa-report.yaml. No "here's how it went..." prose summary at the end.

Read the full file on GitHub · 294 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed · +41 lines 586074db7d16
  2. 2mo ago First seen · 253 lines · 251 tokens per session scan A f54c92a3ef41

Subscribe to this mod's changes

qa-reviewer is a skill published in the GitHub repository XRenSiu/claude-code-forge (2 stars, last pushed 1mo ago), licensed MIT. It adds 251 tokens to every session and 5,188 once invoked, about $0.0010 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

research-engineer

An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.

davila7/claude-code-templates · 43 tokens

tika-eval-compare

Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".

apache/tika · 50 tokens

cua-driver

Use Cua Driver for desktop or browser tasks that are awkward or unavailable through Bash/APIs, or when the user explicitly wants GUI interaction: app testing, visual bug reproduction, form filling, calendar entry, screenshots, and demo recording. Also covers Cua setup; not OpenAI Codex Computer Use or web research.

davidondrej/skills · 68 tokens

jetson-validate-image

Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.

NVIDIA/skills · 50 tokens

atmos-validation

Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.

cloudposse/atmos · 31 tokens

skill-benchmark

Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.

HoangNguyen0403/agent-skills-standard · 16 tokens