1. Read committed project files
Verity starts with manifests, lockfiles, scripts, framework entry points, test settings, and health checks. README commands can help a person, but Verity does not run them automatically.
These files tell Verity which apps, libraries, examples, fixtures, and workspace members it can check.
2. Build the run plan
Verity checks three things before it starts:
- whether every required command comes from a committed project file;
- whether this machine has the required runtime;
- whether the final check can test real behavior instead of only seeing a process start.
If a lockfile is missing, commands conflict, or no useful final check exists, Verity stops before running the project.
3. Execute the recorded snapshot
Verity fingerprints the repository and creates an isolated snapshot. Dependency acquisition is explicit. Build and test stages run without network access when the adapter contract allows it. Escaping symbolic links and source changes invalidate the run.
Some native targets require explicit confirmation because an isolated directory and process controls are not a hostile-code sandbox.
4. Check real behavior
Verity calls the final behavior check a machine oracle. It can be a declared test suite, service health check, non-empty HTML response, committed headless test, or another check defined by the repository. A running process, open port, or visible window is not enough.
Verity stops at the first observed blocker and preserves the difference between blocked, started but unverified, and verified.
5. Sign the local result
A verified receipt binds the result to the repository and snapshot fingerprints, target, recorded host, execution environment, oracle, and time. An Ed25519 signature makes later tampering detectable for the same local installation.
The signature is not remote attestation and does not certify that the source is safe. Read the complete receipt contract.
verity inspect C:\path\to\repository --json
verity check C:\path\to\repository --target TARGET_ID
verity receipt SESSION_ID