DC-NODE-02
DC derived enforcedPersistent-writer cadence fidelity: the orchestrator's persistent-snapshot writer calls PersistentSnapshotCache::capture only on the schedule emitted by the N-I SnapshotCadence policy. No orchestrator-side cadence override; no parallel cadence policy in the binary. Snapshot eviction is explicitly out of scope and is NOT an obligation of this rule (eviction is a storage concern, not node cadence fidelity).
- Source
docs/planning/phase4-n-k-orchestrator-binary-invariants.md §1 (I-4)
Enforcement trace
Code
Tests 5
- crates/ade_runtime/src/rollback/persistent_writer.rs::tests::persistent_writer_on_admitted_captures_only_on_cadence
- crates/ade_runtime/src/rollback/persistent_writer.rs::tests::persistent_writer_round_trips_via_framing
- crates/ade_runtime/src/rollback/persistent_writer.rs::tests::persistent_writer_force_capture_skips_cadence_but_updates_state
- crates/ade_runtime/src/rollback/persistent_writer.rs::tests::persistent_writer_two_runs_are_deterministic
- crates/ade_runtime/src/orchestrator/core.rs::tests::step_admit_triggers_capture_snapshot_at_cadence
Cross-references
Strengthened in
Evidence notes
PHASE4-N-K S3 (2026-05-26) shipped PersistentSnapshotWriter that delegates every capture decision to should_snapshot_after_block (the SOLE cadence policy). The orchestrator core consults the same policy on Admitted (S2) and emits CaptureSnapshot effects only when the policy returns true. ci/ci_check_persistent_writer_no_parallel_cadence.sh greps for parallel cadence definitions across the workspace and for orchestrator-core inline modulo. Eviction is explicitly out of scope (no open_obligation carried).