# System map — avajs/ava

> Canonical page: https://codevetter.com/unpack/ava/system-map

# System map — avajs/ava

Scanned commit bbfd946322fdeca2b547a691d947fb4e18c0c67f (2026-05-17). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

AVA separates CLI orchestration from per-file test execution. The parent process discovers files, prepares providers, schedules workers, and aggregates events; workers own declarations, assertions, hooks, and snapshot state. Persistent artifacts are filesystem snapshots and local scheduling caches. Distribution is an npm package with a manually dispatched release workflow.
- package.json exposes the ava executable through entrypoints/cli.js, declares ESM, and supports Node ^22.20, ^24.12, or >=26. — [package.json#L11-L30](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/package.json#L11-L30) [entrypoints/cli.js#L1-L4](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/entrypoints/cli.js#L1-L4)
- The public test entrypoint exports lib/worker/main.js, which checks runnerChain, marks loadedMain, and returns the worker's declaration chain. — [entrypoints/main.js#L1-L2](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/entrypoints/main.js#L1-L2) [lib/worker/main.js#L1-L11](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/worker/main.js#L1-L11)
- loadCli() loads configuration, normalizes providers and selection options, constructs Api, and chooses a reporter before entering one-shot or watch execution. — [lib/cli.js#L95-L111](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/cli.js#L95-L111) [lib/cli.js#L336-L432](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/cli.js#L336-L432) [lib/cli.js#L434-L452](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/cli.js#L434-L452)
- Api.run() discovers tests, applies selection and CI partitioning, compiles providers, and schedules selected files with pMap. — [lib/api.js#L149-L198](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/api.js#L149-L198) [lib/api.js#L240-L263](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/api.js#L240-L263)
- loadFork() creates either a Worker with workerData or a childProcess.fork with advanced serialization; both forward stdout, stderr, and AVA state messages. — [lib/fork.js#L18-L54](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/fork.js#L18-L54) [lib/fork.js#L79-L134](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/fork.js#L79-L134)
- Runner owns per-file task queues and active runnables; Test owns each runnable's assertions, completion, and teardown. — [lib/runner.js#L41-L58](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/runner.js#L41-L58) [lib/runner.js#L278-L303](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/runner.js#L278-L303) [lib/test.js#L199-L212](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/test.js#L199-L212) [lib/test.js#L624-L659](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/test.js#L624-L659)
- Snapshot Manager persists binary snapshots and Markdown reports; scheduler separately stores failing-tests.json in the AVA cache outside CI. — [lib/snapshot-manager.js#L385-L417](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/snapshot-manager.js#L385-L417) [lib/scheduler.js#L8-L31](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/lib/scheduler.js#L8-L31)
- npm test invokes lint, TypeScript checking, both test suites, and c8 reporting; release.yml validates a supplied ref, publishes npm provenance, and creates a draft GitHub release. — [package.json#L32-L39](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/package.json#L32-L39) [scripts/test.sh#L1-L8](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/scripts/test.sh#L1-L8) [.github/workflows/release.yml#L29-L88](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/.github/workflows/release.yml#L29-L88) [.github/workflows/release.yml#L186-L197](https://github.com/avajs/ava/blob/bbfd946322fdeca2b547a691d947fb4e18c0c67f/.github/workflows/release.yml#L186-L197)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
