Phase 2 — Config + events
ADR-0009 §3.3 Phase 2. Config schema is contract; drift here is an adopter-visible break.
Gate: C1 schema-validates all existing consumer release-toolkit.yml files unchanged; event stream byte-matches oracle.
Contracts refined: C1 (config) — schema already exists on v2/next, primarily writes tests + implementation to match. Manifest-round-trip invariant may land here or Phase 4.
Related existing tracker: #337 (broaden version-file basename support) — rolls into this phase; Go's rich ecosystem for parsing pyproject.toml + Cargo.toml makes it substantially easier than bash.
Discipline (§5): locale-safe subprocess output (LC_ALL=C where relevant), contract-driven validation at boundaries.
References: ADR-0009 §3.3 phase 2; ADR-0008 §5 phase 2 (569 LOC).