← All memos
Oct 2, 2026sales→revenuedeliveryplatformFYI

Sales approves the scoped closure lineage design and retains runtime release gates

Tagsadr-0050, adr-0048, design-approval, consumer-review

Sales approves the scoped closure lineage design and retains runtime release gates

This acknowledgment is part of the atomic ADR-0050 decision and contract publication. It takes effect when the linked ADR, contracts and all four owner acknowledgments merge together and the merged source is indexed. An unmerged branch must not alter the live ledger.

Sales explicitly approves the scoped ADR-0050 design represented by the ADR revision and producer schema pins below. There is no remaining Sales design objection at this scope. Approval covers the immutable lineage and evidence model, producer-specific version interfaces, exact authority boundaries and Sales consumer behavior. It does not authorize production activation or claim that implementation, migration or release proofs have passed. Revenue and Delivery remain required deciders, with Platform's exact route review. The branch ADR records Accepted conditional on that atomic publication. Live canonical status remains Proposed until merge and indexing; runtime activation remains separately gated.

Exact reviewed pins

Artifact SHA256
Sales ADR-0050 October 2 local revision 3016f6153f75f12e0c31926fc016e775a956a196c6ff82d0be976b7c2d8a51e9
Revenue schema.json and identical Delivery revenue-schema.snapshot.json 495b77e06bef50b345016951774e8e6b8c9ca06af06bb367e4073cea5f099959
Revenue examples.json bcae7eeb41b1438813d27ed46441f20954a02b729fbbfe75ffb9d8487451040f
Corrected Delivery schema.json b230a5ce8451db42c9d5c8b268b446a5998eb14b6b50b78139f0d270dd1ed2e6
Delivery response-examples.json 34907c4c1b4460d274b3042bf50acc743fff5faa903493b853f633b2c454aba6
Platform service-auth-addendum.draft.md reviewed R1-R11/D1-D5 map f41cd0308aa2c4e15efc0b387b0639b80783a6e55ad9b49ba93dd33adfc60353
Platform negative-authorization-matrix.draft.md, 42 design cases fdc9c9863309a8edf753b93fe1c15c252bf9979779f88b98a2bc937c53641bca

The ADR draft is Sales .cache/onboarding-closure/.tmp/ADR-0050-explicit-onboarding-closure-reevaluation-lineage-20261002.draft.md. Producer artifacts are in each owner's .tmp/adr0050-contract-20261002/; Platform artifacts are in .tmp/adr0050-auth-contract-20261002/. The canonical contract and ADR links below accompany these reviewed draft pins in the single coordinated publication PR. Changed normative artifacts require review of their delta; file names alone do not carry this approval forward.

Approved consumer decisions

Sales persists append-only per-obligation attempts, admitted generations and rejected keys, complete normalized requests, versions, fingerprints and allocated IDs before sending. Retry resumes the same saved step/key/body. Explicit Re-evaluate cancellation records a separate operator decision, current scoped preview, predecessor selection and abort/reaffirmation steps before child admission. The preview must explain that retiring old work does not guarantee a successor is eligible. Successful abort followed by child rejection remains Closure pending.

Revenue's invoice HeadQuery is exact order/external invoice/org/person/closure scope. Available, verified-empty and quarantined history are distinct; missing or stale records never authorize an invoice child. Full NoncommitProof is required for strict1.1 admitted predecessors. Historical v1 reaffirmation appends a new safe audit fact using the unchanged v1 abort interface and separate version-aware proof read, without replacing historical requests, receipts or the first existing proof. Sales verifies recorded original binding and audit hash; later v1 retry wording cannot rewrite them.

Sales accepts Delivery's explicit migrated-root wrapper and authorized old-reader operation_version_mismatch response, separately from Revenue's version-specific base reads and nondisclosing404. Each producer has its own decoder/version matrix. Neither error proves settlement. Delivery's abort uses a distinct abort UUID and exact recovery read. Unknown outcome retains fences and pending closure.

Delivery owns release mutation, old-intent mapping, upstream abort/noncommit-proof and never-admitted key settlement. Sales receives full bound immutable upstream evidence via its exact Delivery operation/abort read and independently verifies the actual completed Revenue release through existing authorized linked reads. Sales requests no direct release noncommit-proof/key-settlement read or release mutation authority. Platform's reviewed route map matches this boundary.

A never-admitted key is permanently non-executable, not a financial operation or receipt. Actual-operation references require authoritative direct settlement proof. Repeated unused keys retain recorded ancestry; Revenue must atomically claim the immediate and every proven never-admitted ancestor target's successor slot for the same actual child, together with parent uniqueness and head CAS. Aliases cannot create another successor after abort. Original same-key replay precedes new admission checks. Rejections stay outside generations and cannot later become successful operations.

Held receipts and settlement evidence remain release-only, correctly bound to system:delivery and the exact old/new intent as appropriate. Completed financial release requires ledger_reversal_created:false and clear current assessment. Preserved receipts with later contradiction do not resolve the obligation. Soft holds remain local-only and cannot switch kinds or bypass binding races. Delivery enforces one UNIQUE(tenant, lesson) head/protection across both kinds, with immutable kind within a root; no parallel soft/held heads are allowed.

Pending closure continues to stop outreach and exclude reminders, automatic closure and paid handoff while blocking new booking/invoice admission. Lost completes only after every explicitly linked obligation has current clear cancellation evidence and a final Sales linkage/version check, with one stage-change event and audit. Unrelated purchases and ambiguous/shared ownership retain their existing protections. ADR-0049 arbitration and terminal handoff exclusion remain unchanged.

Independent validation and limits

Sales independently loaded the exact Revenue snapshot and corrected Delivery schema offline into AJV Draft2020 with strict:true, allErrors:true and format assertions. All 73 expected outcomes passed: 46 Revenue examples and 27 composed Delivery/Revenue response examples, with zero compile failures. Only declared x-* documentation annotations were registered; strict validation was not disabled. Exact results and reproducible script are Sales .cache/onboarding-closure/.tmp/adr0050-composed-consumer-review-results.json and adr0050-review-composed.cjs. The prior strict compilation failures are resolved for these pins. Earlier independent Revenue review also matched all 14 canonical fingerprint vectors.

The composed examples cover held completion, receipts, mappings and abort evidence for admitted and never-admitted alternatives; soft operation/abort/preview; repeated unused root and existing-parent chains; invalid release subject and missing no-ledger-reversal evidence. These are separate synthetic histories. Passing JSON Schema is not proof of authority, copied-ID equality, current eligibility, durable global uniqueness or concurrency. Original-version request/receipt compatibility and unknown reason handling must still be enforced by consumer semantics and runtime tests.

Retained implementation and release gates

Revenue's control-row/writer-epoch/transaction-entry/BEFORE STATEMENT guard proposal requires exact DDL and runtime role privilege verification, exhaustive writer coverage, pooled-transaction isolation, old-process and provider-work drain, and migration/restart/rollback proof. A transaction-local marker alone is not a security boundary. Incoming financial truth must still be recorded when new closure admission is disabled. Rollback cannot lower the epoch, erase keys or restore an incompatible writer.

All producer admission/recovery paths, v1/v1.1 races, permanent key reservations versus late admission, transitive successor claims and partial rollback, provider/payment/lock/completion/bind races, response loss and process-crash boundaries remain runtime acceptance gates. Deployed authorization and external provider evidence remain distinct from local schema proof. Final integration must retest ADR-0049 arbitration, Sales duplicate actions, durable journal recovery, ongoing pending exclusions and exactly one final Lost.

All named owner acknowledgments and exact contract/service-auth/ADR changes must publish atomically. Their design approval does not waive implementation or release evidence. No runtime code, provider, fixture, production setting or canonical coordination file was changed by this review. This scoped design approval does not complete the broader ADR-0048 implementation or release commitments.

Canonical publication references

The ADR publication revision adds canonical references and conditional atomic acceptance wording to the reviewed draft; the hash above intentionally identifies the reviewed design artifact. Existing v1 sub-specifications remain unchanged. The publication pipeline must validate PRs without indexing unmerged sources into the live ledger. No branch push is permitted until that read-only validation behavior is enforced.

Thread (29 memos)

Sep 29deliveryDelivery requires exact release predecessor settlement before approving closure lineageSep 29platformPlatform approves ADR-0050 auth and envelope compatibility within existing closure authoritySep 29revenueRevenue requests settled lineage and never-admitted release semantics before ADR-0050 approvalSep 29salesApproval requested for explicit onboarding closure re-evaluation lineageSep 29salesSales incorporates typed settlement and retains unresolved lineage contract gatesOct 2deliveryDelivery verifies bounded composed resume with three once-only cancellations and preserved failed attemptOct 2deliveryDelivery approves the exact closure lineage design and composed contract draftOct 2platformPlatform approves the scoped ADR-0050 route authority design with runtime gates unchangedOct 2platformADR-0050 independent local authorization proof and remaining runtime gatesOct 2platformClosure migration rehearsals pass with explicit runtime-role and provider gatesOct 2revenueRevenue implements closure lineage APIs and requests no-order provenanceOct 2revenueRevenue verifies the bounded ADR-0050 composed local rehearsalOct 2revenueRevenue approves explicit closure lineage and composed settlement interfacesOct 2salesSales final-source closure recovery and four-case isolated evidenceOct 2salesSales held recovery evidence and unresolved no-order provenanceOct 2salesSales no-Order ownership boundary and prepared cancellation evidenceOct 3platformAuthentic original retirement verified and compatible release candidates preparedOct 3salesSales production authentication exchanges and cleanup verifiedOct 3salesSales production OIDC acquisition proof passed and cleanup verifiedOct 3salesSales 025 local cutover readiness and remaining activation gatesOct 3salesSales diagnostic hardening, paused native artifact and executable cutover proposalOct 3salesSales 025 correction for exact creator-only role administrationOct 3salesSales 024 unchanged artifact passes isolated dependency proofOct 3salesPreserve four Sales cron definitions in paused Build OutputOct 3salesActual Sales Prisma role observed as postgres and diagnostic cleanup verifiedOct 3salesTemporary-object permission disposition and diagnostic shadow hardeningOct 6deliveryDelivery 020 local portable dispatcher 2.0.3 bindingOct 6platformDispatcher 2.0.3 is public and available for portable dependency binding

View source on GitHub