lazaret/docs/development.md

1.8 KiB

Development and verification

The Cargo workspace separates shared production logic from process entry points. lazaret-core is the initial library boundary. The lazaret Client, lazaret-host-coordinator, lazaret-runtime-supervisor, lazaret-network-sidecar, and lazaret-escalation-client executables are thin binary packages; process behavior belongs in libraries so it can be verified without invoking private binary internals.

support/work-packages.toml is the dependency authority. support/model-refinements.toml assigns every modeled action and configured property to production packages and verification levels. support/external-tools.toml fixes the baseline host and tool contracts, including whether an unavailable capability fails or skips a level. docs/implementation-dependencies.md is generated from the package registry.

Run tools/verify-v1, tools/verify-v2, tools/verify-v3, tools/verify-v4, or tools/verify-v5. Each higher level includes the lower levels. V1 is host-local and includes format, Clippy, tests, dependency policy, registry drift, and both TLC models. Physical suites register commands in support/integration-tests.toml; an empty level is an explicit skip. A registered scenario may skip only when every missing capability has policy = "skip" in the external-tool manifest.

Normal verification is offline: Cargo receives --offline and cargo-deny receives --frozen. tools/dev refresh-advisories is the explicit online operation that updates the local RustSec database and then verifies advisories offline. The zero-third-party baseline still runs cargo-deny bans, license, and source checks on every verification.

Run tools/dev generate after changing the work-package registry. tools/dev generate --check fails when the committed dependency view differs.