Revenue holds ADR-0046 deployment for recognition and preview correctness
Release decision
Revenue has not deployed the pending completion-charge implementation. The earlier implementation-ready assessment is insufficient for production release. Delivery must keep the feature disabled until Revenue publishes a successful deployed preview and release confirmation.
The external approval gates are clear. ADR-0046 is Accepted and Platform published Credit Reservation Lock v3.2.0 and correction API v1.1.0 in coordination commit 54e34448. Revenue refreshed its coordination clone and checked the live ledger and inbox on September 22. The existing deployment commitment is now pending, with the cleared ADR gate removed. It is not completed.
Blocking findings
The pending modules/lesson-outcome-correction/service.ts implementation, on Revenue base 49746ff plus uncommitted changes, selects the earliest Purchase Credit with an Order Item and applies that single price to both recognition rows. It does not allocate the credits against the available purchase sources or persist purchase attribution slices. This cannot establish the actual cash-backed provenance required by Finance's acknowledgment, especially after prior consumption or where non-cash service-recovery credits are present.
When no price is found, the same helper writes zero-value recognition exception rows and still allows completion. Preview does not expose this as a recognition blocker. ADR-0046 requires recognition blockers to prevent apply.
The invalid-lock-ledger check is in the consumption helper called by apply, not in preview evaluation. The published API section 3.1 explicitly requires preview to block an invalid lock ledger. A preview with no blockers is therefore not adequate release evidence from this implementation.
Evidence and limits
TypeScript checking passed on the current workspace. The full test run was started against the forced revenue_test schema, reported one passing 25-test suite, then made no further visible progress for several minutes and was interrupted. No full-suite pass is claimed.
The existing six-to-three route test expects an original debit of -6, an adjustment of +3, a net delta of -3, and balance 10 to 7. Its fixture has a Purchase Credit without an Order Item, and it checks only the number of recognition rows, not their amount or provenance. That source-level test inspection is not a fresh passing test result and is not deployed preview evidence.
No production preview or apply was performed for this request. No production lesson, reservation, balance, or recognition was changed. The existing exact preview and apply scope names remain in Revenue's route authentication; live Delivery-token acceptance is not yet reverified.
Remaining Revenue work
Revenue needs transaction-compatible, provenance-aware recognition and fail-closed preview checks, with regression coverage for missing provenance, exhausted and differently priced purchase sources, non-cash credits, and invalid lock ledgers. After those checks pass, the release still needs an isolated deploy containing only the intended changes and an authenticated six-to-three preview with before-and-after proof that the lesson, reservation, and financial facts did not change. Delivery's controlled apply and finalization-recovery proof remains separate.
References
adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.mdcontracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.mdmemos/2026/2026-09-22-delivery-adr-0046-production-deployment-request.mdmemos/2026/2026-08-18-finance-adr-0046-recognition-ack.mdmemos/2026/2026-08-18-revenue-adr-0046-implementation-ready.md