Repo Findings Checklist¶
Note
In-repo only. This is a contributor-facing claim-to-evidence traceability
matrix — it cites file paths, Go symbols, and test functions from the source
tree. Reading it requires a git clone checkout to follow the cited paths.
Operators following the install flow (curl … install.sh | bash) should
start at the Quickstart; this matrix is for contributors
verifying or extending the tutorial pack’s claims.
Every claim in the Tutorial Pack is grounded in concrete repo evidence. This checklist maps each product claim to the exact file + symbol that implements or tests it.
Key: ✅ Fully implemented | 🔶 Partial / scaffold | ❌ Not implemented (roadmap)
1. Policy Enforcement (Tutorial 01)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Tool calls evaluated against OPA/Rego policy |
✅ |
|
|
Real OPA engine: |
✅ |
|
|
Rego compiled once at load, evaluated per call |
✅ |
|
|
Fail-closed: compilation error → deny all |
✅ |
|
|
Fail-closed: undefined allow rule → deny all |
✅ |
|
|
input.kind + input.params wired to Rego |
✅ |
|
|
input.params visible in Rego (test) |
✅ |
|
|
Multi-module disjunction (OR) (test) |
✅ |
|
|
|
✅ |
|
|
|
✅ |
|
|
|
✅ |
|
|
Deny cannot be overridden by adapter |
✅ |
|
|
Fail-closed: no policy → deny all |
✅ |
|
|
Strict mode: deny all regardless of policy |
✅ |
|
|
|
✅ |
|
|
2. Supply Chain Verification (Tutorial 01)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Step 1: cosign signature validation |
✅ |
|
|
Step 2: agent binary digest match |
✅ |
|
|
Step 3: BLAKE3 behavioral fingerprint match |
✅ |
|
|
Step 4: semver compatibility check |
✅ |
|
|
Tampered digest rejected (integration test) |
✅ |
|
|
Tampered fingerprint rejected |
✅ |
|
|
Unsigned sidecar rejected |
✅ |
|
|
Policy bundle versioning |
✅ |
|
|
Lock JSON BLAKE3 fingerprint stability |
✅ |
|
|
Canonical bytes key-order independent |
✅ |
|
|
3. OCI Artifact Attachment (Tutorial 01)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Lock sidecar attached as OCI referrer |
✅ |
|
|
Policy bundle attached as OCI referrer |
✅ |
|
|
Pull lock from registry (by tag or referrer) |
✅ |
|
|
Registry capability probe (referrers API) |
✅ |
|
|
Plain HTTP for localhost (no TLS required) |
✅ |
|
|
4. Release Polling (Tutorial 02)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Poll loop queries |
✅ |
|
|
Emits |
✅ |
|
|
Emits |
✅ |
|
|
Emits |
✅ |
|
phases 5–6 |
Emits |
✅ |
|
|
Hot-swap interceptor without restart |
✅ |
|
|
Active lock fingerprint persisted across restarts |
✅ |
|
|
404 → no error, just |
✅ |
|
|
Control-plane |
✅ |
|
|
Control-plane |
✅ |
|
|
Control-plane |
✅ |
|
|
5. Edge Relay (Tutorial 02)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Segment ingest over mTLS (offer → data → ACK) |
✅ |
|
|
DB-driven pull model (no buffered channel) |
✅ |
|
|
CAS claim (workers race, no double-relay) |
✅ |
|
|
Bounded retries → Deadletter (INV-12) |
✅ |
|
|
|
✅ |
|
|
ACK after atomic store commit (GAP-7) |
✅ |
|
|
Crash recovery: abandon inflight on startup |
✅ |
|
|
Relay operator status surface exposes queue depth + bandwidth counters |
✅ |
|
|
Relay bandwidth can be hot-updated at runtime with audit emission |
✅ |
|
|
Deadletter operator workflow is implemented: list / inspect / retry / purge |
✅ |
|
|
Multi-peer e2e test |
✅ |
|
|
edged wired to Docker Compose demo |
✅ |
|
|
6. WAL Durability (Tutorial 03)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Length-prefixed binary frame format (4B + JSON) |
✅ |
|
|
fsync before returning from Append |
✅ |
|
|
|
✅ |
|
|
Recovery truncates to safe-point boundary |
✅ |
|
|
Fail-hard on missing safe_seq (non-first-run) |
✅ |
|
|
Fail-hard on sequence gap |
✅ |
|
|
Fail-hard on invalid JSON frame |
✅ |
|
|
Drain does NOT delete events on failure |
✅ |
|
|
Events drained in priority order |
✅ |
|
|
WAL survives collector outage (test) |
✅ |
|
|
Legacy upgrade env var (escape hatch) |
✅ |
|
|
Operator reset env var (disaster recovery) |
✅ |
|
|
7. OTel Pipeline (Tutorial 03)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
WAL → OTLP/HTTP → OTel Collector |
✅ |
|
|
OTel Collector → Jaeger + bridge |
✅ |
|
Pipeline config |
Bridge → control-plane |
✅ |
|
|
|
✅ |
|
|
|
✅ |
|
|
|
✅ |
|
|
8. OS Fingerprint + Reconstruction (Tutorial 04)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
BLAKE3 fingerprint over os-release + uname |
✅ |
|
|
Kernel-only change triggers reconstruction |
✅ |
|
|
Fingerprint saved atomically (tmp → rename) |
✅ |
|
|
BootEpoch increments per reconstruction |
✅ |
|
|
Ed25519 manifest signature verification |
✅ |
|
|
TOCTOU closed: execute same bytes verified |
✅ |
|
|
GAP-9: typed ops only (no shell exec) |
✅ |
|
|
Shell metachar rejection in paths |
✅ |
|
|
copy_binary BLAKE3 hash check |
✅ |
|
|
Exit 0: clean / first-run / reconstructed |
✅ |
|
|
Exit 1: config invalid |
✅ |
|
|
Exit 2: StateRoot invalid |
✅ |
|
|
Exit 3: mTLS cert expires within 7 days |
✅ |
|
|
Exit 5: reconstruction failed (fail closed) |
✅ |
|
|
Epoch evidence written after reconstruction |
✅ |
|
|
Epoch crash-safe (tmp → rename) |
✅ |
|
|
Epoch rotate failure is non-fatal |
✅ |
|
|
StateRoot ephemeral FS rejection |
✅ |
|
|
overlayfs allowed (container compat) |
✅ |
|
Comment: NIT-C |
OS update simulation unit test |
✅ |
|
|
9. Portability (Tutorial 05)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
amd64 / arm64 / riscv64 in test matrix |
✅ |
|
|
ext4 + xfs in test matrix |
✅ |
|
|
Zero CGO in edge module |
✅ |
|
No |
Randomised crash harness (seeded) |
✅ |
|
|
WAL frame format cross-arch verification |
✅ |
|
Python frame parser |
Atomic rename check per cell |
✅ |
|
Step 4 |
Non-native arches via QEMU Docker |
✅ |
|
|
CI gate (strict, exit-1) |
✅ |
|
|
Reproducible runs (–seed flag) |
✅ |
|
|
Mission-layer import ban (INV-10) |
✅ |
|
Import scanner |
Container images (multi-arch manifests) |
❌ |
Roadmap |
Not in repo |
Native riscv64 hardware CI |
❌ |
Roadmap |
QEMU only |
10. Python Adapter (Tutorial 01)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
|
✅ |
|
Invariant test |
|
✅ |
|
|
|
✅ |
|
urllib usage |
Unique |
✅ |
|
|
Demo agent: echo allow, shell deny, exit 0 |
✅ |
|
main() assertions |
11. mTLS Cert Rotation (Tutorial 04)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
|
✅ |
|
|
ECDSA P-256 leaf cert signed by existing CA |
✅ |
|
|
Atomic write: |
✅ |
|
|
Lifecycle slog markers: rotation_started / rotation_succeeded / rotation_failed |
✅ |
|
|
CA cert unchanged after leaf rotation |
✅ |
|
|
No partial .new files on write failure |
✅ |
|
|
Keypair consistency check in precheck (detects crash-partial state) |
✅ |
|
|
Auto-rotate in precheck when cert expiring + ca_key_file set |
✅ |
|
|
Force-rotate flag: |
✅ |
|
|
Standalone |
✅ |
|
|
|
✅ |
|
|
Demo TOML files wired with |
✅ |
|
|
Demo end-to-end: rotate → verify transport → precheck auto-rotate |
✅ |
|
full demo |
12. Fleet Rollouts (Workplan)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Rollout plan domain model + validation |
✅ |
|
|
Plan integrity + fingerprint + signature verification |
✅ |
|
|
Deterministic slot allocation |
✅ |
|
|
Edge rollout cache and evaluator wiring |
✅ |
|
|
Runtime rollout activator callback model |
✅ |
|
|
Control-plane rollout persistence + API surface |
✅ |
|
|
Batch promotion evaluator (correctness fallback) |
✅ |
|
|
OPA rollout activation policy gates |
✅ |
|
|
Event bus for streaming promotion pipeline |
✅ |
|
|
Streaming promoter with rolling-window evaluation |
✅ |
|
|
Fleet health gate condition evaluation |
✅ |
|
|
Statistical promotion conditions + baseline cache |
✅ |
|
statistical tests, |
Rollout observability + mission telemetry bridge |
✅ |
|
|
Mesh propagation source resolution (cache → peer → registry) |
✅ |
|
|
Edge relay mesh propagation + deadletter callback isolation |
✅ |
|
|
OS reconstruction activation path |
✅ |
|
|
HA leader lease with renewal lifecycle |
✅ |
|
|
13. Control Plane HA + Replicated Datastore (Workplan)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
PostgreSQL replicated backend is implemented (not scaffold-only) |
✅ |
|
|
Two-layer leader authority (advisory lock + durable epoch) |
✅ |
|
|
Stale-leader fenced writes fail closed |
✅ |
|
|
Protected/best-effort/audit write classes are explicitly separated |
✅ |
|
|
Append-only promotion evidence and decisions |
✅ |
|
|
Startup replay uses durable ingest order, not outbox join |
✅ |
|
|
Insufficient-history deferrals recorded as class-3 audit writes |
✅ |
|
|
Split readiness endpoints expose read/write/audit/quorum states |
✅ |
|
|
HA health endpoints are wired into control-plane HTTP server |
✅ |
|
|
Split-brain detection and recovery endpoints are implemented |
✅ |
|
|
HA backup create / list / restore endpoints are implemented |
✅ |
|
|
CLI split-brain operator surface is wired with RBAC guard + typed JSON/text output |
✅ |
|
|
CLI HA backup operator surface is wired for create / list / destructive restore |
✅ |
|
|
Migration path from SQLite to PostgreSQL with dry-run/validate modes |
✅ |
|
|
Audit diagnostics are read-only and query append-only history |
✅ |
|
|
PostgreSQL audit emitter upgrades file-only audit to DB-backed multi-emitter |
✅ |
|
|
Legacy provenance surfaced in rollout status (no import cycle) |
✅ |
|
|
14. Proof Report Generators (VAL25-VAL29)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Fleet proof report aggregates VAL07-VAL11 into text + JSON artifacts |
✅ |
|
|
Fleet proof report degrades missing/malformed slice inputs to |
✅ |
|
|
Fleet readiness requires coherent evidence timestamps across VAL07-VAL11 |
✅ |
|
|
Fleet N=100 target is keyed to the exact VAL08 scenario check, not aggregate error count |
✅ |
|
|
HA proof report aggregates VAL13-VAL17 into text + JSON artifacts |
✅ |
|
|
HA proof report validates per-slice schemas before aggregation |
✅ |
|
|
HA quorum-loss readiness requires detection, timing bound, and write-block proof |
✅ |
|
|
Relay proof report auto-discovers latest standalone VAL19-VAL24 evidence directories |
✅ |
|
|
Relay proof report enforces a coherent 7-day validation campaign before readiness |
✅ |
|
|
Relay GA readiness is gated on direct VAL24 soak Gate D proof |
✅ |
|
|
Cross-cutting proof report parses text-only VAL01/VAL02 plus JSON VAL03-VAL06 |
✅ |
|
|
Cross-cutting RBAC proof requires full 14-check accounting plus allow/deny evidence |
✅ |
|
|
Cross-cutting audit coverage requires exact |
✅ |
|
|
Cross-cutting GA / Public Production are intentionally not evaluated by VAL28 scope |
✅ |
|
|
Public-claim evidence matrix aggregates VAL25-VAL28 proof-report JSON artifacts |
✅ |
|
|
Design-partner matrix readiness requires a coherent 7-day proof-report campaign |
✅ |
|
|
Design-partner matrix readiness requires a machine-readable disclosure artifact with all required beta disclosures |
✅ |
|
|
Relay soak claim in the matrix is keyed to direct VAL24 Gate D evidence, not broader relay GA |
✅ |
|
|
Evidence matrix emits machine-readable readiness + campaign + disclosure state |
✅ |
|
|
15. Standalone Relay Validation Extensions (VAL19-VAL24)¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
TCP impairment proxy exposes live mode switching, stats, and counter reset over HTTP |
✅ |
|
|
Impairment proxy supports five transport modes: clean, latency, bandwidth, outage, cutoff |
✅ |
|
|
Relay impairment setup seeds deterministic deadletter fixtures and writes isolated relay config |
✅ |
|
|
VAL19 harness proves outage retention before clean retry and cutoff retry convergence |
✅ |
|
|
Throughput setup seeds |
✅ |
|
|
VAL20 benchmark captures five workload tiers plus queue-depth/backpressure evidence |
✅ |
|
|
Overflow setup supports configurable ceiling, eviction threshold, and retry budget |
✅ |
|
|
VAL21 overflow harness proves eviction-specific |
✅ |
|
|
VAL22 harness validates exact-ID deadletter list/inspect/retry/re-deadletter/restart/purge workflow |
✅ |
|
|
VAL23 harness isolates rate-only, quota-only, and hot-reload bandwidth behavior with exact delivery/deadletter accounting |
✅ |
|
|
Relay soak setup binary cleanly separates one-time init from per-round reseeding while edged is stopped |
✅ |
|
|
VAL24 soak framework installs cron-driven rounds and reports Gate D delivery / retry / loss / rounds criteria |
✅ |
|
|
16. Validation Traceability + Claims Governance¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Edge FI shell runner emits machine-readable JSONL plus human-readable summary for every shell FI execution |
✅ |
|
|
Root-required FI tests are explicitly represented as |
✅ |
|
|
FI traceability report merges Go FI and shell FI into a unified FI index |
✅ |
|
|
FI traceability report emits combined pass/fail summary and preserved runner summaries |
✅ |
|
|
Public-claim messaging downgrade / upgrade policy is documented in-repo |
✅ |
|
|
Audit completeness inventory explicitly distinguishes wired event types from deferred ones |
✅ |
|
|
FI tutorial traceability from invariant to executed output is documented with real captured output |
✅ |
|
|
17. Operator Diagnostics + Bundle Evidence¶
Claim |
Status |
File |
Symbol |
|---|---|---|---|
Support-bundle CLI is implemented as a top-level operator surface |
✅ |
|
|
Support bundle writes gzip+tar archive with manifest-driven collector outcomes |
✅ |
|
|
Support bundle collectors are non-fatal and preserve partial-success evidence in manifest |
✅ |
|
|
Support bundle redacts secrets from config material before archiving |
✅ |
|
|
Known Gaps / Honest Limitations¶
Gap |
Details |
Where documented |
|---|---|---|
riscv64 native CI |
Tested via QEMU; no bare-metal riscv64 in CI |
Tutorial 05, Implementation Status table |
30-day soak claims are framework-backed but not repo-checked runtime evidence |
VAL12 / VAL18 / VAL24 provide generators and Gate D logic, but long-running soak outcomes depend on externally produced evidence directories rather than checked-in repo fixtures |
|
Public-production readiness depends on external evidence not produced by current VAL suite |
Third-party audits, compliance evidence, real network partition chaos, and production-hardware calibration are intentionally out of scope for the repo-local proof generators |
|
Some proof/evidence generators depend on fresh runtime evidence rather than checked-in golden inputs |
VAL25–VAL29 report generators are implemented in-repo, but complete outputs still require current upstream evidence directories and, for VAL29, the disclosure artifact |
|