Phase 3 — Changelog engine

ADR-0009 §3.3 Phase 3. The gates that consume this engine inherit correctness from getting it right here.

Gate: C4 (fragment format) + C6 (CHANGELOG section format) drive tests; compose-verify + register-check + changelog-body-check gates fire identically vs. oracle; the awk paragraph-normalizer is byte-reproduced.

Contracts refined: C4 (fragment format — filename grammar + body constraints including #488 density gates), C6 (CHANGELOG section format — parseable grammar).

Related existing tracker: #498 (fragment-coverage check distinguishing forgot vs legitimately-none) — rolls into this phase, design coverage gate into the Go substrate rather than bolt on.

Discipline (§5): contract-driven (this phase pays off most — changelog composition is where 'let bash's shape drive Go's shape' would produce a mess); self-referential-marker-trap awareness on any content-matched detectors.

References: ADR-0009 §3.3 phase 3; ADR-0008 §5 phase 3 (1,127 LOC changelog + fragments). See phase-3 umbrella for decomposition.

No due date
100% Completed