- Rating scale (apply per section, then overall)
- How to score "veridically"
- A. Onboarding and "doctor"
- B. CLI ergonomics (surface quality)
- C. "Happy path" integration tests (README is executable)
- D. Config, state, and cleanup UX
- E. Release & reproducibility
- F. Seam + surface checks (do not regress interop)
- G. Smoothing (the stuff teams miss)
- Developer evaluation setup (recommended)
Svalinn is a post-cloud container security architecture with a daemonless engine ("Vordr"), verified policy validator ("Gatekeeper"), registry client, networking, MCP server, and an edge shield layer. (See README for status table.)
-
Fullest — Delight + polish: cross-platform story, top-tier diagnostics, interop matrix green, backward-compat surfaces, and developer ergonomics are "boring".
-
Full — End-to-end workflows are paved: install, doctor, docs, stable config, CI gates, strong error UX, conformance tests, reproducible releases.
-
Strong — Most user paths smooth; minor sharp edges remain; partial cross-platform or partial interop.
-
Moderate — Core functions usable; setup and troubleshooting still require insider knowledge; tests exist but don’t cover the README path fully.
-
Basic — Features exist but are fragile/manual; little automation; inconsistent output/flags; limited tests.
-
Not implemented — Absent or not verifiable.
For each checklist item, record: * Status: Not implemented | Basic | Moderate | Strong | Full | Fullest * Evidence: link/path + command output excerpt OR CI job URL * Date + reviewer
| ID | Requirement | Status | Evidence |
|---|---|---|---|
A1 |
|
Strong |
|
A2 |
|
Moderate |
|
A3 |
One-command install path exists (documented). Verify: README section "Install" with one canonical method Evidence: release artifact(s) + checksums + signature(s) |
Moderate |
|
| ID | Requirement | Status | Evidence |
|---|---|---|---|
B1 |
Help is example-first (not flag-dump).
Verify: |
Basic |
clap derive provides help. Examples not yet in help output. Planned: clap |
B2 |
Stable JSON output for every user-visible command ( |
Strong |
Schemas in |
B3 |
Error taxonomy is consistent (exit codes + machine-readable error IDs).
Verify: induce failures (missing runtime, permission denied, bad reference)
Evidence: errors include |
Moderate |
Exit codes defined in |
B4 |
Defaults are safe and explicit (rootless, least privilege). Verify: default run does not require root on supported platforms Evidence: documented fallback story when root is required |
Strong |
Rootless by default. Doctor checks user namespaces. Fallback documented in troubleshooting. |
| ID | Requirement | Status | Evidence |
|---|---|---|---|
C1 |
CI runs the README quickstart end-to-end on clean runner.
Verify: GitHub Actions job |
Moderate |
|
C2 |
Networking is exercised (netavark/CNI basic connectivity). Verify: test container resolves DNS + reaches another container Evidence: golden log + assertions |
Basic |
Network tests planned. Netavark integration implemented but not CI-tested. |
C3 |
Registry auth is exercised with a test registry. Verify: ephemeral registry in CI + login + pull Evidence: pass/fail is deterministic (no flaky external dependency) |
Basic |
Auth commands implemented. CI test with ephemeral registry TBD. |
| ID | Requirement | Status | Evidence |
|---|---|---|---|
D1 |
XDG paths (or explicit equivalent) for config/state/logs.
Verify: |
Moderate |
XDG paths used. |
D2 |
Safe cleanup commands exist with dry-run.
Verify: |
Strong |
|
D3 |
Backward-compatible config migration is implemented.
Verify: older config loads or |
Not implemented |
Config migration not yet implemented. First release, no legacy configs. |
| ID | Requirement | Status | Evidence |
|---|---|---|---|
E1 |
Releases are reproducible (build provenance captured). Verify: CI produces identical hashes across rebuild OR attests build Evidence: SLSA-style provenance or equivalent attestation file |
Moderate |
|
E2 |
SBOM generated for release binaries/images. Verify: CI uploads SBOM artifact Evidence: SBOM format documented and validated |
Strong |
Release workflow generates CycloneDX and SPDX SBOMs via cargo-sbom. |
| ID | Requirement | Status | Evidence |
|---|---|---|---|
F1 |
Spec version pin: |
Strong |
|
F2 |
Conformance harness: imports test vectors from |
Moderate |
|
F3 |
"Surface freeze" policy: CLI + JSON schema changes require a changelog + migration note.
Verify: PR template checkbox + CI lint for changelog entry
Evidence: |
Strong |
|
| ID | Requirement | Status | Evidence |
|---|---|---|---|
G1 |
Troubleshooting guide: top 20 failure modes (rootless, networking, registry).
Verify: |
Strong |
|
G2 |
Completions + manpages.
Verify: |
Strong |
|
G3 |
"Minimal mental model" doc for users (not implementers).
Verify: |
Strong |
|
| Check | Workflow |
|---|---|
|
|
|
|
|
|
|
|
|
|
-
surface-change- Changes to CLI, JSON output, config format, or exit codes -
seam-break- Changes affecting spec consumption or production -
qol- Quality of life improvements -
conformance- Spec conformance work -
migration- Config or surface migration