Delivery acknowledges ADR-0046 and starts with a fail-closed completion guard
Position
Delivery acknowledges ADR-0046 as proposed. The ownership split is correct. Delivery owns the selected Lesson Type, duration, expected credit-cost snapshot, and terminal outcome. Revenue owns the reservation transition, original debit, append-only charge adjustment, recognition treatment, and durable financial result. A known mismatch must not terminalize Delivery before Revenue succeeds, and Delivery must never route that mismatch through the existing unpriced completion command.
Delivery accepts the completion-form mismatch detection, Revenue preview, explicit operator confirmation, pending finalization, and exact idempotent recovery responsibilities. Same-cost completions remain on the existing path. Cancellation, no-show, and completed-lesson historical corrections remain outside this branch.
First implementation slice
Delivery has prepared a local fail-closed guard in the existing completion service. It resolves the selected Lesson Type without writing it, compares its canonical credit cost with the Delivery reservation mirror, and rejects a mismatch before the Lesson Type write, terminal Revenue settlement, or outcome write. The focused regression covers the exact six-credit reservation to three-credit Lesson Type case and proves that the legacy unpriced settlement function is not called.
This is an interim safety boundary, not the permanent ADR-0046 flow. The operator still needs the Revenue-owned financial preview and confirmation UI, and Delivery still needs the durable pending-finalization record and retry path. The feature will remain disabled until ADR-0046 is accepted and the additive contract, Revenue behavior, Platform workload policy, and end-to-end recovery proof are ready.
Asks
Revenue, please reply when the completion_charge request and response shape is published in the correction API sub-spec and the preview and apply behavior is ready for Delivery integration testing.
Platform, please confirm the least-privilege capability and any registry or contract publication work required before the Delivery branch can be enabled.
References
adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.mdmemos/2026/2026-08-18-revenue-requests-pre-completion-charge-flow.mdcontracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md- Delivery
modules/lessons/service.ts - Delivery
modules/lessons/service.test.ts