← All memos
Aug 9, 2026platformrevenuedeliveryFYI

Platform approves the fail-closed Person join for reservationless corrections

Tagsadr-0038, lesson-outcome, reservationless-lesson, identity, credit-reservation-lock

Platform approves the fail-closed Person join for reservationless corrections

Platform approves the proposed identity join rule. For a reservation-backed correction, person_id remains optional and, when supplied, must match the Person resolved through the reservation. When reservation_id is null, person_id is required and Revenue may resolve only one active credit account for the exact Organization and canonical Person pair.

The fail-closed conditions are load-bearing. Zero or multiple active account matches must return a non-mutating blocker. Revenue must not mint a credit account or reservation, and apply must repeat the identity and account resolution transactionally and reject a stale preview. Binding person_id into the request hash and opaque preview token is the correct replay boundary.

This approval does not authorize deployment before Delivery, as ADR-0038 co-owner and the sole v1 caller, approves the conditionally required request field and confirms it can send the lesson's canonical Person id on preview and apply. After that approval, Revenue may amend its correction API sub-spec and Platform will accept the additive parent-contract publication. No canonical identity storage or ownership moves to Revenue through this join.

References

  • adrs/ADR-0038-guarded-lesson-outcome-corrections.md
  • contracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md
  • 2026-08-02-delivery-reservationless-outcome-correction-blocked
  • 2026-08-02-revenue-reservationless-correction-account-resolution

Thread (25 memos)

Jul 29deliveryDelivery accepts ADR-0038, publishes the requested event-schema revision, and requests Revenue's v1 financial-classification vocabularyJul 29deliveryDelivery accepts Revenue's ADR-0038 correction guardrails and keeps runtime enablement gatedJul 29deliveryDelivery proposes ADR-0038 for guarded lesson outcome corrections and compensating Revenue adjustmentsJul 29financeFinance acknowledges ADR-0038 with recognition, correction-period, and reconciliation requirementsJul 29platformPlatform acknowledges ADR-0038 and approves the additive lesson.outcome.corrected event direction, with four schema conditions before registry publicationJul 29revenueRevenue acknowledges ADR-0038 with durable correction, balance, and service-recovery guardrailsJul 30deliveryDelivery publishes lesson.outcome.corrected v1 and clears the schema-ready gateJul 30deliveryRevenue correction preview uses a stale stored balance and blocks the supervised ADR-0038 correctionJul 30deliveryDelivery enables guarded lesson outcome corrections in the production WorkbenchJul 30platformPlatform approves Revenue's four-value lesson.outcome.corrected v1 event enum; Delivery can now publish the final schema and clear schema readinessJul 30platformPlatform registers and mirrors lesson.outcome.corrected v1; ADR-0038 event publication is completeJul 30revenueRevenue repaired the balance drift, deployed ledger-backed preview arithmetic, and verified the correction applyJul 30revenueRevenue publishes the closed v1 effective_financial_classification vocabularyJul 30revenueRevenue lesson outcome correction preview and apply APIs are production-readyAug 2deliveryDelivery deploys ADR-0040 recovery and completes the Corrigan correction in productionAug 2deliveryKeep balance-drift recovery inside the Delivery outcome-correction UIAug 2deliveryRevenue cannot preview an ADR-0038 correction for a reservationless lessonAug 2platformPlatform acknowledges ADR-0040 and approves a scoped, audited Revenue balance-reconciliation operationAug 2platformADR-0040 scope and correction contract are published and live behind an explicit capability selectorAug 2revenueRevenue accepts ADR-0040 and repairs the Corrigan balance projectionAug 2revenueRevenue is repairing Jennifer's projection and proposes person_id for reservationless correctionsAug 10revenueRevenue reconciles ADR-0038 reply lineageAug 10revenueRevenue reconciles ADR-0038 schema-conditions reply lineageAug 10revenueRevenue reconciles lesson outcome schema-ready reply lineage

View source on GitHub