ADR-025 I2 Closure Release Integration (Step4 Closed-Loop)¶
Intent¶
Integrate ADR-025 I2 closure evidence into release/promote flows with an explicit mode contract.
Status Sync (2026-02-25)¶
- Step4A merged: contract/policy freeze (
schemas/closure_release_policy_v1.json) + reviewer gate. - Step4B merged: release wiring + helper script (
scripts/ci/adr025-closure-release.sh) + deterministic tests. - Step4C merged: runbook + checklist/review-pack + closure reviewer gate.
- Stabilization merged: Stab A/B/C/D (
scripts/ci/review-adr025-i2-stab-*.sh) including decision JSON logging coverage.
Scope¶
Release integration consumes the nightly closure artifact: - workflow: adr025-nightly-evidence.yml - artifact: adr025-closure-report - files: - closure_report_v1.json - closure_report_v1.md
Gate Modes (v1)¶
Supported modes: - off: skip closure integration entirely. - attach: fetch closure artifact and attach/persist as release evidence (default). - warn: evaluate closure policy, report non-pass in logs, do not fail release. - enforce: evaluate closure policy and fail release on non-pass.
Default mode: - attach
Exit Contract (integration script)¶
0: pass / completed in current mode.1: policy fail (closure below threshold or hard violations).2: measurement/contract fail (missing artifact, parse errors, invalid contract).
Mode handling: - off: always returns 0. - attach: returns 0 on successful fetch/attach, 2 on measurement failure. - warn: converts policy/measurement failures to warnings in release flow. - enforce: propagates 1/2 as hard release failure.
Policy Source¶
schemas/closure_release_policy_v1.json defines: - default mode - score threshold - minimum readiness window - classifier version lock - release evidence requirements
Safety¶
- No silent bypass: mode is explicit and logged.
- No PR trigger impact (release-lane only integration).
- No workflow permission expansion required by the closure helper path.