Verification
Version stamp
Applies to:
renvor0.0.0 · framework source 7d0816a · MSRV 1.94.0 · documentation set pre-releaseThis stamp is a single shared partial (
docs/_stamp.mdx) imported by every prose page and the API reference. It binds this documentation snapshot to the immutable framework commit it describes. The framework remains unpublished and no release compatibility promise applies.
One command, identical locally and in automation:
cargo xtask verify
CI invokes this exact entry point. Nothing in a workflow file duplicates it, because duplicated steps are how local and automated verification silently drift apart — and divergence is how a skipped check gets reported as a pass.
The eleven steps
Executed in order. None is conditional. None is skipped.
| # | Step | Command |
|---|---|---|
| 1 | Prerequisite probe | Rust and Node tooling, plus the required PostgreSQL/MySQL environment |
| 2 | Formatting | cargo fmt --all --check |
| 3 | Lint | cargo clippy --all-targets --all-features -- -D warnings |
| 4 | Tests | Workspace tests, the ignored end-to-end route relay, then all 63 required four-row census pairs |
| 5 | API documentation | cargo doc --workspace --no-deps, warnings denied |
| 6 | Dependency and licence policy | cargo deny check |
| 7 | Architecture invariants | crate DAG, facade isolation, lean compile, publishable dependencies, instability wording, executable name |
| 8 | Secret scan | gitleaks git . and gitleaks dir . |
| 9 | Documentation site | npm ci && npm run build |
| 10 | Link check | lychee over the built output |
| 11 | Working-tree cleanliness | no untracked or modified files remain |
Step 8 runs both scanners. The history scan cannot see uncommitted files; the directory scan cannot see content that was committed and later deleted. Neither substitutes for the other.
Fail-closed
A check that cannot run is a failure, never a skip.
Step 1 probes for every required tool and for all three database-environment variables. It refuses to continue if any prerequisite is absent:
error: verification cannot run — a required prerequisite is missing
missing: lychee (link checking, step 10)
install: cargo install lychee --locked
missing environment: RENVOR_TEST_POSTGRES_URL (the PostgreSQL half of the four-row census)
setup: export RENVOR_TEST_POSTGRES_URL=postgres://user:pass@127.0.0.1:5432/renvor_test
no checks were run. verification did not pass.
That last line is the point. A partial run reported as success is the exact failure mode this design exists to prevent.
Exit codes
| Code | Meaning |
|---|---|
0 | Every step ran and passed |
1 | A step ran and failed |
2 | A required tool or the four-row database environment is missing — no steps ran |
3 | The working tree was dirty after an otherwise successful run |
Exit code 2 is not a pass.
Required checks
These names are part of the contract and are required in branch protection:
verify (1.94.0)— full sequence at the declared MSRVverify (stable)— full sequence at current stablesecurity—cargo deny, clippy with warnings denied, and the documentation dependency auditdocs— documentation build and link check
The pull-request-only dependency-review job and GitHub's default CodeQL analyses are separate
checks. They are valuable, but they are not sub-steps hidden inside the required security context.