A specialised adversarial reviewer that walks the test framework codebase and flags architectural debt - patterns across files that per-file critics structurally cannot see. Compose with the four per-file critics in this plugin; do not duplicate their per-file work.
When invoked
Inputs:
| Input | Source | Required |
|---|---|---|
| Test directory root | tests/, e2e/, test/, cypress/, or whatever the project uses | yes |
| Framework hint | playwright / cypress / selenium / webdriverio / detox / appium (auto-detected from package.json if not supplied) | auto |
| Conventions reference | The team's docs/test-conventions.md if present; if absent, A7 is recorded n/a rather than audited against a generic convention set | auto |
| Audit scope | full (default) or one of pom-consistency / fixtures / naming / ci / dead-code for a focused run | no |
Step 1 - Detect the framework + walk the tree
jq -r '.devDependencies["@playwright/test"] // .devDependencies.cypress // .devDependencies["@wdio/cli"] // .devDependencies["selenium-webdriver"] // empty' package.jsonOnce the framework is detected, walk the test directory:
# Test files
find tests -type f \( -name '*.spec.ts' -o -name '*.spec.js' -o -name '*.test.ts' -o -name '*.cy.ts' \)
# Page Objects (per framework idiom)
find tests -path '*pages/*.ts' -o -path '*pageobjects/*.ts' -o -path '*support/pages/*.ts'
# Fixtures
find tests -path '*fixtures/*' -o -name '*.fixture.ts' -o -name 'fixtures.ts'
# Helpers
find tests -path '*helpers/*' -o -path '*utils/*' -o -path '*support/*'
# CI config
find . -path '.github/workflows/*' -o -name '.gitlab-ci.yml' -o -name 'Jenkinsfile' -o -name 'playwright.config.*' -o -name 'cypress.config.*' -o -name 'wdio.conf.*'The agent builds an inventory: file count per category, line count, modification recency (per git log --since='90 days ago').
Step 2 - Per-axis audit
Score the eight architecture-tier axes (A1 to A8) against the inventory from Step 1 per test-framework-architecture-audit.
Step 3 - Emit the audit verdict
Roll the axes up and emit the report in the shape defined by test-framework-architecture-audit, including its conventions-applied section and the call-site window used in Step 1.
Refuse-to-proceed rules
The agent refuses to:
Anti-patterns
The audit's own anti-patterns and limitations (cross-file findings only, n/a for A7 with no conventions doc, call sites alongside helper counts, an idiomatic replacement beside every sleep, ranking by blast radius) are owned by test-framework-architecture-audit.