Invariants / DC-ADMIT-04

DC-ADMIT-04

DC derived enforced

Closed AdmissionLogEvent vocabulary (8 variants: admission_started, snapshot_imported, bootstrap_complete, block_received, block_admitted, agreement_verdict, admission_halted, admission_shutdown). Physically isolated from wire-only's LiveLogEvent — separate files; CI grep enforces BOTH DIRECTIONS:

  • wire-only-mode files do not emit AdmissionLogEvent literals;
  • admission-mode files do not emit wire-only-only LiveLogEvent literals. Per memory [[feedback-shell-must-not-overstate-semantic-truth]] the per-mode-isolation discipline shipped at PHASE4-N-L-LIVE carries forward.

PHASE4-N-AJ extends this to a THIRD isolated closed-vocabulary file: the convergence-evidence transcript (--convergence-evidence-path) carries ONLY the closed 3-variant convergence subset {block_received, block_admitted, agreement_verdict} via the ConvergenceEvidenceSink wrapper (no inner-writer accessor); it emits no sched/forge/wire-only literals and none of the excluded admission-lifecycle variants. ci/ci_check_convergence_evidence_vocabulary_closed.sh is the file-tree half.

Source

docs/planning/phase4-n-m-b-admission-invariants.md §1 (I-B4) + §2 (¬P-B10)

Enforcement trace

Tests 9

  • ade_node::admission_log::event::tests::admission_log_event_discriminator_round_trips_for_each_variant
  • ade_node::admission_log::event::tests::admission_log_event_match_is_exhaustive
  • ade_node::admission_log::event::tests::admission_log_event_agreement_verdict_carries_kind_discriminator
  • ade_node::admission_log::writer::tests::admission_log_writer_emits_one_object_per_line
  • ade_node::admission_log::writer::tests::admission_log_writer_serializes_admission_started_canonically
  • ade_node::admission_log::writer::tests::admission_log_writer_two_runs_are_byte_identical
  • ade_node::admission_log::writer::tests::admission_log_writer_emits_agreement_verdict_with_kind_field
  • ade_node::admission_log::writer::tests::admission_log_writer_omits_optional_fields_when_none
  • ade_node::admission_log::writer::tests::admission_log_writer_lines_are_parseable_as_one_json_object_per_line

Cross-references

Strengthened in