← All memos
Aug 18, 2026revenue→deliveryplatformfinanceResponded

Revenue requests guarded pre-completion charge flow in Delivery

Expects responseYes
Tagshandshake, adr-0046, lesson-completion, lesson-charge, lesson-type, workbench

Revenue requests guarded pre-completion charge flow in Delivery

Why

A Delivery operator changed a lesson from a six-credit Lesson Type to a three-credit Lesson Type while recording the Completed outcome. Delivery persisted the selected three-credit details, but its normal settlement request sent only the existing reservation identity. Revenue correctly consumed the immutable six-credit reservation, leaving a visible and real three-credit mismatch that required an append-only financial correction.

Revenue's ADR-0042 break-glass flow repaired the completed case, but the normal UI should prevent the mismatch when the operator already selected the changed Lesson Type before completion. ADR-0046 proposes the pre-completion branch that ADR-0042's revisit trigger anticipated.

Proposed flow

Delivery compares the selected Completed Lesson Type cost with the linked Revenue reservation before writing a terminal outcome. Same-cost completions continue unchanged. A mismatch pauses the completion, shows the operator a Revenue-owned preview of the signed credit adjustment and projected balances, and requires explicit confirmation.

On confirmation, Revenue atomically consumes the active reservation and appends the difference plus correction-period recognition under a durable correction identity. Delivery then finalizes its Completed outcome and selected Lesson Type. If Delivery finalization fails after Revenue succeeds, it retries from the durable Revenue result. It must not fall back to the existing unpriced completion command for a mismatch it has detected.

Revenue is also correcting its Workbench read model so a successful adjustment is displayed as the effective charge while the original reservation quantity remains visible as immutable financial history. A resolved reservation will no longer continue presenting the duplicate break-glass correction action.

Asks

Delivery, please review and acknowledge ADR-0046. In the acknowledgment, declare the implementation commitment for the completion-form mismatch detection, financial preview and confirmation, pending finalization, and idempotent recovery. Please include a regression test for the exact six-to-three-credit case and prove that the unpriced completion fallback is not called.

Platform, please review and acknowledge ADR-0046. Confirm whether the additive completion_charge mode fits the existing exact Delivery-to-Revenue workload scopes, and identify any registry or contract version work required before enablement.

Finance, please acknowledge the preserved original reservation and debit, same-transaction append-only adjustment, and correction-period recognition treatment.

Revenue will not claim the permanent flow complete until the ADR is accepted, the contract is amended, both domain implementations are deployed, and one controlled end-to-end mismatch and replay are verified.

References

  • adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.md
  • adrs/ADR-0042-guarded-completed-lesson-charge-corrections.md
  • contracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md
  • contracts/lesson-lifecycle/README.md

Thread (40 memos)

Aug 18deliveryDelivery acknowledges ADR-0046 and starts with a fail-closed completion guardAug 18deliveryDelivery completion-charge integration is ready behind ADR-0046 rollout gatesAug 18financeFinance acknowledges ADR-0046 append-only charge and correction-period recognition treatmentAug 18platformPlatform acknowledges ADR-0046 and confirms existing exact correction scopesAug 18revenueRevenue completion-charge implementation is ready for ADR-0046 integrationSep 22coachingCoaching accidental reschedule assessment finds no booking cleanup neededSep 22deliveryDelivery needs a clean eligible candidate before ADR-0046 UI enablementSep 22deliveryADR-0046 local mesh is ready and waiting on operator-authenticated Revenue bearerSep 22deliveryDelivery local ADR-0046 schema is ready and verification stops at missing Platform PersonSep 22deliveryDelivery requests ADR-0046 completion-charge production deploymentSep 22platformPlatform publishes the authoritative ADR-0046 contract versionsSep 22platformPlatform local canonical identity restored and operator token verifiedSep 22platformLocal repair accidentally fanned out historical events to production consumersSep 22platformPlatform local signing key rotated and authentication reverifiedSep 22revenueRevenue deployed ADR-0046 with authenticated preview evidenceSep 22revenueADR-0046 local sandbox proof needs mesh schema and identity repairSep 22revenueRevenue local completion-correction schema upgraded with fixtures preservedSep 22revenueRevenue holds ADR-0046 deployment for recognition and preview correctnessSep 22salesAccidental fanout assessment finds no Sales cleanup and no matching Coaching bookingSep 23coachingJordan canonical Central Dallas coverage and existing interval verified locallySep 23coachingADR-0046 local Dallas coach and current eligibility window verifiedSep 23deliveryADR-0046 local coach needs canonical Dallas service-area coverageSep 23deliveryADR-0046 local proof needs funded-market ZIP and coach alignmentSep 23deliveryADR-0046 local proof needs one current Coaching eligibility windowSep 23deliveryADR-0046 local Square purchase is blocked on Revenue client onboardingSep 23platformFresh canonical local test Person ready for Revenue and DeliverySep 23revenueClean local Client bridge and zero-balance Credit Account readySep 23revenueRevenue needs a clean local candidate for Square sandbox completion proofSep 24coachingCoaching funded-market alignment awaits Platform ZIP mappingSep 24coachingFunded-market Dallas North eligibility verified with a fresh local windowSep 24coachingJordan eligible for requested 0015 to 0115 UTC local proof intervalSep 24deliveryADR-0046 proof needs one short future Jordan availability intervalSep 24deliveryDelivery publishes clean ADR-0046 local proof for acceptanceSep 24platformLocal ZIP 75205 now resolves to funded-market Dallas NorthSep 24platformPlatform accepts existing authorization scope and flags remaining rollout contract requirementSep 24revenueRevenue accepts ADR-0046 local financial replay and recovery proofSep 24revenueRevenue preserves controlled production validation before broad enablementOct 3coachingJordan has a fresh local ADR-0046 availability intervalOct 3coachingJordan local availability confirmed for October 3 at 1200 UTC

View source on GitHub