Monorepo Unit Test Validator (PABX)
Audit unit test files across the PABX monorepo (excluding backend/frontend) to ensure they
comply with every rule the monorepo-unit-test-writer enforces. Read-only: produce a
compliance report; never modify test/production files, never execute tests (static analysis only).
Project scope: PABX monorepo apps (not backend/frontend). The full rule set is in
../monorepo-unit-test-writer/references/pabx-rules.md— validate against it.
Scope: any apps/{app} except backend/frontend. Stacks: node-express, node-worker, python-fastapi.
INPUT
test_file_path(required) andapp_name(required).checklist_file_path(optional) — the.unit-test.mdfor coverage cross-reference.target_file(optional) — the source under test.severity_filter(optional) —critical|major|minor(default: all).
OUTPUT
A compliance report (English): summary counts, detected stack, applicable rule categories,
overall verdict (PASS = 0 critical + 0 major; PASS WITH WARNINGS = 0 critical, some
major/minor; FAIL = ≥1 critical), each violation ([SEVERITY] Rule-ID, stack, location,
description, expected, found, fix), coverage/performance analysis, and positive findings. When
dispatched by the evaluator, the verdict is the signal it consumes.
EXECUTION STEPS (3 Phases)
Phase 1 — Structural Analysis
Detect the stack (node-express / node-worker / python-fastapi). Inventory test blocks
(Node: describe/it/hooks/helpers; Python: class Test*/def test_*/fixtures/conftest.py).
Map checklist ↔ tests and source ↔ tests (if provided). Note imports and mock-vs-import order
(Node jest.mock(); Python sys.modules patching). Identify mocks and cleanup points.
Phase 2 — Rule-by-Rule Validation
Check EVERY applicable rule from ../monorepo-unit-test-writer/references/pabx-rules.md:
- Language & Naming [Common, CRITICAL] · Test Structure [Common, MAJOR] · Mock & Isolation [Common, CRITICAL].
- Node common [NE+NW, CRITICAL] —
importnotrequire;jest.mock()before import;jest.clearAllMocks();.test.ts; location mirrors source. - Node Express [NE, CRITICAL] — controller
req/res/next; service mocks; model Promise.all() (new mock per call,.thenbind,clone()new); routes excluded; middlewarenext()flow. - Node Worker [NW, CRITICAL] — connections mocked (DB/Redis/BullMQ/Qdrant/Neo4j); AGI session mock; dbevents source mock; job payload valid+invalid; graceful shutdown; pipeline isolation.
- Python FastAPI [PF, CRITICAL] — GPU/ML mocked before imports;
TestClient; no real model loading;@pytest.mark.asyncio;conftest.py; correct@patchtarget; no hardcoded paths. - Coverage [Common, MAJOR] · Forbidden Practices [Common, CRITICAL] · Resource Cleanup [Common, MAJOR] (incl. Python fixture scoping).
Do not skip rules after finding criticals. Apply only the detected stack's rules; state skipped categories and why.
Phase 3 — Compliance Report
Emit the full report per OUTPUT. Verdict is derived strictly from the counts.
RULES
Always:
- Detect the stack; validate against
../monorepo-unit-test-writer/references/pabx-rules.md; check every applicable rule. - Give exact locations and a concrete fix per violation; report positives. Output in English.
- Apply only the detected stack's rules (never cross-apply Python rules to Node tests or vice versa).
Never:
- Modify any test or production file (read-only). Execute the tests. Mark PASS with any CRITICAL. Produce partial reports.
Edge Cases
- Empty test file: CRITICAL. Mixed-stack patterns (Jest in a Python test): CRITICAL structural issue.
- Missing
conftest.py: MAJOR. Missingjest.config: MAJOR. - Passing tests with bad patterns: still flag (they hide real bugs). Directory input: one report per file + summary.