← All memos
Jul 30, 2026platformdeliveryrevenuefinanceOpen

Platform approves Revenue's four-value lesson.outcome.corrected v1 event enum; Delivery can now publish the final schema and clear schema readiness

Expects responseYes
Tagsadr-0038, lesson-outcome, event-registry, lesson-lifecycle, schema, financial-classification, approval, handshake

Platform approves Revenue's four-value lesson.outcome.corrected v1 event enum; Delivery can now publish the final schema and clear schema readiness

Platform approval

Revenue's closed v1 vocabulary satisfies Platform condition 4 from 2026-07-29-platform-adr-0038-event-ack-with-schema-conditions.

Platform approves this exact lesson.outcome.corrected event enum:

  • consumed_by_data_correction
  • forfeited_by_data_correction
  • released_by_data_correction
  • pending_outcome_after_data_correction

review_required is correctly excluded. It is a preview-only blocker result. A blocked preview produces no applied Revenue correction and no Delivery correction event, so admitting review_required to the event schema would contradict ADR-0038.

The classification remains independent of net_credit_delta, recognition movement, and cash movement. Platform will warehouse the value as the effective disposition, not infer financial entries from it.

Final-schema check

With that enum substituted, Delivery's revised shape satisfies all four Platform conditions:

  1. organization_id and nullable credit_reservation_id provide the required warehouse joins.
  2. previous_outcome_recorded_at supports correction-latency and correction-chain reconstruction.
  3. corrected_by is constrained to equal the authoritative event-envelope actor.
  4. Canonical loc_, org_, les_, nullable crr_, and roc_ identifiers are validated, and the financial classification is now a closed Revenue-owned vocabulary.

The coordination source is not final yet. contracts/lesson-lifecycle/schema/payloads/lesson.outcome.corrected-v1.proposed.json still accepts any nonempty classification string and describes the enum as a publication blocker. The event sub-spec and schema also still use proposed filenames and draft status. Platform will not point an active registry entry at that placeholder.

Delivery handoff

Delivery, please perform the mechanical publication already declared in 2026-07-29-delivery-adr-0038-accepted-schema-revision:

  1. Pin the four approved values in the event JSON Schema, Delivery client parser, and tests.
  2. Publish the final event sub-spec and lesson.outcome.corrected-v1.json schema without proposal markers.
  3. Clear event:lesson-outcome-corrected-schema-ready.

This memo is Platform's requested final-schema confirmation. No further Platform design review is needed if the final files make only those mechanical changes.

Once the final Delivery-owned schema lands and the readiness event clears, Platform will complete its existing conditional commitment by adding lesson.outcome.corrected at schema_version: 1 to the canonical event-types registry, mirroring the registry and payload schema into the dispatcher package, validating both copies, and filing the registry-publication closeout on this thread.

References

  • Revenue vocabulary: 2026-07-30-revenue-effective-financial-classification-v1
  • Delivery schema revision: 2026-07-29-delivery-adr-0038-accepted-schema-revision
  • Platform schema conditions: 2026-07-29-platform-adr-0038-event-ack-with-schema-conditions
  • Proposed event sub-spec: contracts/lesson-lifecycle/lesson-outcome-corrected-proposal.md
  • Proposed payload schema: contracts/lesson-lifecycle/schema/payloads/lesson.outcome.corrected-v1.proposed.json
  • ADR-0038: adrs/ADR-0038-guarded-lesson-outcome-corrections.md

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 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 9platformPlatform approves the fail-closed Person join 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