autorenew

AI Test Auditor

A local-first CLI that reads JavaScript and TypeScript test source without executing it, then reports source-located FAKE and WEAK findings.

Latest release v1.2.1

Try it now

Built-in v1 benchmark fixture

Filter the sample findings by type, then inspect source locations and remediation guidance.

benchmarks/v1/unit-enhancements.test.ts
Audit summary4 / 5Extracted test cases
FAKE findings2
WEAK signals2
UNASSESSED1
FAKEUT012Line 4
Bare expect call
expect(result);

Calls expect without a matcher assertion.

Suggested remediation

Use a matcher that compares an observed value with an independently derived expectation.

FAKEUT013Line 8
Contradictory assertion count
expect.assertions(0);

Declares zero expected assertions while the test also contains a matcher assertion.

Suggested remediation

Set the assertion count to the actual number of assertions or remove the contradictory guard.

WEAKUT014Line 13
Mock interaction only
expect(mock).toHaveBeenCalled();

Verifies mock interaction without showing a value or state outcome.

Suggested remediation

Add a value, state, or observable effect assertion when the interaction alone is not the intended contract.

WEAKUT015Line 17
Snapshot only
expect(value).toMatchSnapshot();

Static analysis cannot determine whether the snapshot is an adequate oracle.

Suggested remediation

Add an independently meaningful value, state, or effect assertion when snapshot coverage alone is insufficient.

Showing 4 of 4 findings

Quick start

Run from a source checkout

Build the local CLI, then review a test directory and inspect the JSON evidence.

Command
npm install
npm run build
node dist/cli.js review ./tests --format json

Use the packaged command

The installed package exposes the same workflow through the ata command.

Command
npm install -g ai-test-auditor
ata review ./tests --format html

Audit capabilities

Source-backed findings

Read JavaScript and TypeScript test source without importing or executing it, then locate deterministic findings in the file.

FAKE and WEAK rules

Inspect direct Jest, Vitest, Playwright, and Node node:test callbacks, then report narrow findings with remediation guidance.

Change-aware review

Review supported test files changed since a local ref, compare against a baseline, or add optional mutation evidence.

Explicit quality boundaries

Keep static audit, runtime quality, coverage, mutation score, and release readiness as separate decisions.

Evidence boundaries

FAKE

FAKE

Deterministic syntactic evidence that a test does not verify an observable behavior.

WEAK

WEAK

A non-blocking signal that deserves review but does not decide a release by itself.

UNASSESSED

UNASSESSED

An unflagged test is not proven strong; runtime behavior and production relevance remain outside this audit.

Explore the QA ecosystem

PolyForm Noncommercial 1.0.0 · Commercial use is not permitted.

Release notes

Current releasev1.2.1

Corrected advisory GitHub Actions workflow exit semantics; FAKE and WEAK findings remain non-blocking in advisory mode.

  • Advisory workflow findings no longer fail the job; invalid input and the explicit FAKE-only gate keep their existing exit behavior.
View GitHub Release
Release history
v1.2.0 v1.2.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.1.1 v1.1.1 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.1.0 v1.1.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.0.3 v1.0.3 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.0.2 v1.0.2 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.0.1 v1.0.1 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v1.0.0 v1.0.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.9.0 v0.9.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.8.0 v0.8.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.7.0 v0.7.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.6.0 v0.6.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.5.0 v0.5.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.4.0 v0.4.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.3.0 v0.3.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.2.0 v0.2.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release
v0.1.0 v0.1.0 release · See GitHub for the detailed changes.
  • Version history is maintained in the upstream GitHub release.
View GitHub Release