bmad-testarch-test-review

Review test files against a quality rubric and produce a scored report with actionable findings.

1|Updated Sep 18, 2026
One-click install
npx skills add https://github.com/PastaSus/egg-defender --skill bmad-testarch-test-review-pastasus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bmad-testarch-test-review
Source: https://github.com/PastaSus/egg-defender/tree/main/.agents/skills/bmad-testarch-test-review
Command: npx skills add https://github.com/PastaSus/egg-defender --skill bmad-testarch-test-review-pastasus

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Test suites often contain hidden quality problems like hard waits, missing assertions, shared state, and flakiness patterns that erode reliability without anyone noticing. This Skill audits existing test files against a fixed criteria registry and produces a deterministic 0-100 quality score with severity-classified findings and concrete fixes. ## Core Features & Use Cases - Rubric-Based Test Audit: Evaluates tests against a criteria registry covering disabled tests, tautological assertions, hard waits, determinism, isolation, fixtures, data factories, and network-first patterns, with pinned severities so two reviewers reach the same verdict. - Scored Review Report: Generates a structured Markdown report with a quality score, letter grade, computed recommendation (Approve, Request Changes, or Block), code-level findings with file:line locations, and recommended fixes grounded in a knowledge base. - Framework-Aware Analysis: Adapts to Playwright, Jest, Cypress, Vitest, Pact contract tests, and Maestro mobile flows, including optional adoption checks for playwright-utils and pactjs-utils packages. - Use Case: Before merging a pull request, run the review on the changed test files to catch a committed test.only, a waitForTimeout race condition, or a test with no assertions, and receive a scored report that CI can gate on. ## Quick Start Ask the agent to review the test quality of the spec files changed in your current pull request and generate the scored review report.

Frequently Asked Questions about bmad-testarch-test-review

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I review test quality in an existing test suite?

Point the workflow at a single test file, a directory, or the full suite using the review scope setting. It parses each file, evaluates enabled quality criteria from the criteria registry, and writes a scored report with findings and recommended fixes.

What test frameworks does this test review support?

It supports Playwright, Jest, Cypress, Vitest, Pact contract tests, and Maestro mobile flows. Framework-specific patterns like Playwright fixtures and Maestro flow assertions are detected, and knowledge fragments load based on the detected stack.

How is the test quality score calculated?

The score starts at 100 and deducts 10 per critical, 5 per high, 2 per medium, and 1 per low violation, with up to 30 bonus points for patterns like BDD structure and network-first usage. The highest severity caps the score, and the grade maps from the final value.

Does the test review check code coverage?

No, coverage analysis is explicitly out of scope. The review only audits test quality attributes like determinism, isolation, and assertions; coverage metrics and coverage gates are handled by the separate trace workflow.

Can the review run without user interaction in CI?

Yes, setting headless to true skips the greeting and interactive menu, executes the create flow directly, and resolves all inputs from configuration such as review_files and output_file_override. It never prompts and never discovers unrequested artifacts.

Why did a criterion report PASS (n/a) instead of a violation?

A criterion reports PASS (n/a) when its applicability gate is closed, such as a network-first check on a file that never navigates, or a convention the repo has never adopted. Closed gates deduct nothing and the report states why the gate was closed.