> **Note**: The incremental cache is an internal mechanism used by programmatic test runners (petit-runner, stateful-runner). CLI users do not interact with `.apophis-cache.json` directly. This document describes the internal caching behavior for advanced programmatic integration.
APOPHIS includes an incremental test cache that speeds up test runs by skipping unchanged routes. This document covers cache invalidation strategies and CI/CD integration.
## How the Cache Works
The cache stores generated test commands per route in `.apophis-cache.json`:
```json
{
"version":1,
"entries":{
"a1b2c3d4":{
"routeHash":"a1b2c3d4",
"schemaHash":"e5f6g7h8",
"path":"/users",
"method":"GET",
"commands":[{"params":{},"headers":{}}],
"timestamp":1704067200000
}
}
}
```
Each entry is keyed by a hash of the route's path, method, and schema. If the schema changes, the entry is automatically invalidated.