Skip to content

Verification

Mint uses layered checks.

Each check has a narrow proof boundary.

No single check proves the full containment invariant.

CheckProvesDoes not prove
Formatter and compiler checksRust syntax and type correctnessRuntime policy or custody behavior
Clippy with warnings deniedLint-clean workspace targetsProduction configuration
Workspace testsDeclared unit and integration contractsLive host identity or vendor behavior
Zero-leak gateHermetic leak and exfil tests keep a fresh sentinel out of outputProduction network topology
Local probePlaceholder-to-fake-vendor flow, denial, audit, and local zero-leak behaviorTailnet identity and production custody
Remote probeProduction-shaped allow, deny, and sanitized verifier behaviorEvery route and every consumer
DoctorEffective startup declarations and bounded custody self-testA running broker
Health endpointLive audit admission and declaration generationUpstream success or complete route coverage
Audit verifySurviving ledger chain integrityAbsence of leaks outside the ledger
Release preflightImmutable bundle shape, parser compatibility, and content addressingService readiness after activation
Release activationAtomic target switch, readiness, runtime evidence, and rollbackConsumer migration completeness

Run the repository gate from the repository root.

cargo fmt --all -- --check

This checks formatting without changing files.

cargo clippy --workspace --all-targets -- --deny warnings

This rejects lint warnings in workspace targets.

cargo test --workspace

This runs unit and integration contracts.

./scripts/zero-leak-check.sh

This runs hermetic leak, exfiltration, remote-probe, and shell checks.

The continuous-integration workflow runs these gates on Linux.

It also runs secret scanning and dependency checks.

It runs a macOS probe for keychain behavior.

These gates do not read production secrets.

Run policy validation before changing a declaration.

mint policy check <policy-file>

Run doctor against the same effective paths as serve.

mint doctor

Add a synthetic self-test alias only when custody setup supports it.

mint doctor --self-test-alias secret://service/name

Doctor proves startup admission and declaration parsing.

Doctor does not bind or query a running listener.

Query live health after starting the service.

curl --fail http://127.0.0.1:4949/healthz

Health 200 proves live audit admission.

Health 503 proves live admission is blocked.

Health does not prove a credentialed call completed.

Reload tests cover atomic policy and authenticator replacement.

Audit-gate tests cover unresolved effects and failed durable writes.

Breaker tests cover host independence and HTTP status classes.

Indeterminate tests cover body-read, connect, and timeout failures.

Release tests cover content-addressed activation and rollback.

Remote-probe tests cover sanitized evidence and forbidden artifacts.

The tests use local fakes or hermetic fixtures.

They do not prove production ACL configuration.

They do not prove every deployed declaration is current.

The local probe generates a test value at runtime.

It sends a placeholder to a fake vendor.

The fake vendor receives the resolved value.

The caller response does not contain that value.

The audit and broker output do not contain that value.

The zero-leak script generates a separate sentinel.

It captures test output before scanning it.

A sentinel match fails the gate even if a test assertion is weakened.

These checks prove the exercised surfaces only.

They do not prove arbitrary external tools cannot leak a value.

They do not prove unexercised aliases or routes.

The remote probe uses a harmless placeholder.

Its verifier receives sanitized artifacts.

Its final result contains no credential value.

The probe checks one allow route and one deny route.

It checks that the deny path contacts no vendor.

It checks correlated audit events and resolution counts.

It does not publish private receiver coordinates.

It does not publish production receipt contents.

It does not replace route-by-route consumer verification.

Stage the bundle before activation.

Run the candidate's preflight.

Run the effective systemd contract check.

Activate only with an expected previous target.

Wait for health within the configured readiness budget.

Check restart count and unresolved audit effects.

Keep the candidate only after durable evidence succeeds.

A release digest proves the bundle bytes at staging time.

It does not prove the host loaded every intended environment setting.

Each page frontmatter records generatedAtSha and its covered source globs. generatedAtSha is the sole committed freshness baseline for the page's covered source set.

The freshness script compares covered paths changed from generatedAtSha through HEAD, plus staged, unstaged, and untracked paths. Editing the page does not bypass a covered source change.

Refresh generatedAtSha and review the source map after source changes.