Invariants / DC-WAL-01

DC-WAL-01

DC derived enforced

WAL is append-only by type: the WalStore trait carries no method named truncate / rewrite / replace / delete / clear. CI grep enforces across the workspace (no impl adds such methods out-of-trait).

Source

docs/planning/phase4-n-m-ledger-seed-invariants.md §1 (I-A4)

Enforcement trace

Cross-references

Strengthened in

Evidence notes

PHASE4-N-M-A S3 (2026-05-26): CI greps every wal/*.rs file for fn truncate|rewrite|replace|delete|clear; trait surface explicitly enumerated. The append-only property is a type-level fact, not a runtime convention.