Testing and Evidence
Minco proves behavior at the nearest meaningful public boundary, then keeps larger operational claims separate.
Test Boundaries
| Boundary | What to prove |
|---|---|
| Domain | invariants, value validation, and state transitions with pure tests |
| Application | authorization, validation, and fail-before-persistence with fake owned ports |
| Adapter | real engine transactions, concurrency, idempotency, and rollback |
| Audit | atomic source/audit acceptance, duplicate relay, privacy, ordering, cursor continuity, and lifecycle state |
| HTTP | Axum oneshot status, media type, headers, request IDs, and bodies |
| Plugin/core | dependency graph, typed injection, selection, ordering, and provenance |
| Deployment | deterministic Plan/SAM, IAM, wake, cost, and performance structure |
| Release | exact source, artifact digest, manifest, receipt, and registry identity |
Local Commands
./scripts/test/unit.sh
./scripts/test/feature.sh
./scripts/docs/build.sh
./scripts/docs/check-links.sh
./scripts/docs/check-snippets.sh
./scripts/docs/test-browser.sh
./scripts/quality.shThe complete local quality runner is authoritative. It includes static truth, formatting, Clippy, all workspace targets, generated applications, browser checks, package policy, dependency hygiene, advisory review, secret scanning, Rustdoc, and deterministic evidence freshness.
Agent release freshness is part of that deterministic boundary:
cargo test -p cargo-minco --test agent_skills --locked
uv run --locked python scripts/test/agent_workflows.py \
--check-output verification/agent-workflows.jsonThe first command binds release notes, versioned documentation and all nine packaged skills. The second reproduces Codex/Claude projection and scenario evidence byte-for-byte without invoking a model or contacting a provider.
The 1.5 release also exposes official provider-free fakes for SQS handling, domain-event publication, object storage, feedback persistence and rich mail. Use them only through their owning public ports. Their ordered, redacted attempt records and one-shot failure scripts prove application behavior; they do not qualify a production adapter or live provider.
The slower measured assurance lane pins nextest, llvm-cov, cargo-mutants and cargo-semver-checks, and the golden-topology cost baseline covers seven reviewed Orders configurations. Both are exact-source local evidence. Application-specific model evaluation, measured human-review effort, hosted performance and current live-provider proof remain NOT RUN or absent for the 1.5 release.
The 1.6 release adds real-engine SQL audit transaction/journal tests and disposable DynamoDB transaction conformance. Test duplicate requests, concurrent revisions, relay lease expiry, post-delete history, privacy-safe values, bounded fanout and storage warnings. Emulator or local-engine evidence does not become AWS deployment, regional cost or production retention proof.
Hosted Profiles
The manual essential GitHub Actions profile adds bounded clean-Linux compiler and repository-truth evidence for an exact commit. Full qualification remains local through scripts/ci/local-release.sh; Pages and exact-tag crates.io OIDC publication are the only other GitHub workflow responsibilities.
The retained manual profile does not contact real AWS. Live-provider evidence requires its own designed command and authorization.
Evidence Vocabulary
| State | Meaning |
|---|---|
| passed | The named command ran successfully against the identified source or target. |
| failed | The command ran and did not satisfy its contract. |
| not run | The boundary was deliberately not executed. |
| not assessed | The current test cannot make that claim. |
| ignored | The test is compiled but requires an explicit environment or provider. |
Static validation is not compiler verification. A package dry run is not registry publication. Hosted verification is not promotion. Promotion is not ongoing production health.
What to Record in a Task
Record the exact command, result, source SHA, tool versions, artifact digest, and any skipped boundary. Never convert a missing tool, ignored provider test, or dry run into a pass.