Skip to content

Atlas: Orders with Lifecycle

Snapshot: 2026-08-24. The full implementation stack is in review: twelve stacked pull requests — the pilot pair, the eight Phase-2 increments, and the two Phase-3 increments — rebased onto operations main 8.4.1. Nine are marked ready for review (reviewers: nail60, mprobber, denisa); three are deliberate drafts (the reconstituted H1 hardening #271 and both Phase-3 increments). Phase 2’s backward-compatibility campaign is closed: API equality 32/32 and UI regression 10/10 against the 8.4.0 baseline on real dev, with the verdict and evidence recorded on the Phase-2 umbrella ticket PDEV-1117; dev was restored to 8.4.0 afterwards. Next: the reviewer pass, then the bottom-up merge cascade starting at #220.

Details live in the linked sections: Recent milestones · Phases at a glance · The PR stack · Increment traceability · Decisions and where they landed.

This page is the map of the Orders v2 effort: from any starting point — a ticket, a pull request, a decision — you can reach everything related to it. New to the project? Read Goal, then Design, then come back here to find the work in flight. The companion views at the bottom offer an interactive navigator and a question-answering notebook generated from the same map.

Dated, most recent first; each entry links to its record. This section absorbs the running narrative so the executive summary stays bounded.

  • 2026-08-24 — The stack went to review. Cascade rebase onto main 8.4.1 (a CI-only delta; chain integrity verified commit-for-commit), nine PRs un-drafted with reviewers assigned, api-test sanity green across the ready set.
  • 2026-08-22/23 — Backward-compatibility campaign executed and closed. On real dev: snapshot → authoritative 8.4.0 baseline (32/32) → Phase-2 deploy → equality 32/32, every pin matched → UI regression 10/10 (full card trip live) → manual regression → dev restored to 8.4.0 with full-count verification. Verdict on PDEV-1117.
  • 2026-08-21 — Phase-2 packaged for dev. Third rebase sweep onto main 8.4.0 (byte-identical content), common-module 16.1.1 adopted at the stack tip.
  • 2026-08-20/21 — Phase-3 increments built and audited as drafts: #288 (CardCycle occurrence spine) and #291 (reason-precise guards, lifecycle config, wire cutover, and the delete precondition).
  • 2026-08-19 — Main-adoption round. The stack re-authored fresh-start onto the queued-CI/CD main and common-module 16.0.0; the round surfaced and fixed two pre-existing bugs the old schema collision had masked (receipt-redelivery idempotency; stale station fixtures).
  • 2026-08-14 — DEC-03 amended (F9b). Received quantity is financially binding at close: delivery revocations reverse the accrual; post-close reversals refuse and alarm. The amendment text rides documentation #160, the Phase-2 documentation-consolidation PR.

The effort runs in phases under a single specification root. Phase 0+1 piloted the occurrence-log primitives on DemandItem; Phase 2 builds the net-new order module on that foundation; Phase 3 cuts the kanban lifecycle over to the same anatomy.

PhaseUmbrella ticketStatusScope
Specification rootPDEV-469In ProgressOrder V2 specification — parent of the whole effort
Phase 0+1 — DemandItem pilotPDEV-947, PDEV-1110In ReviewOccurrence-log primitives in common-module, the complete demand module + inventory peer in operations (the DT-019 “pilot carries the primitives” ruling)
Phase 2 — Orders replacementPDEV-1117In Review (all increments; exit report posted)Net-new procurement/order module on the DT-018 design; the single consolidated umbrella (PDEV-1132 dissolved 2026-08-14); frontend track PDEV-1133
Phase 3 — Kanban lifecycle cutoverLeaf tickets PDEV-1696–PDEV-1700; frontend PDEV-1695In Progress (two increments built, drafts)CardCycle occurrence spine + reason-precise guards and lifecycle config on the kanban side, per the DT-026 decomposition. Phase-3 project documentation follows the Phase-2 consolidation

The open work is a single stacked chain in operations: each PR’s base branch is the PR below it, so the chain merges bottom-up starting at #220. As of 2026-08-24 the chain is rebased onto main 8.4.1; nine PRs are ready for review and three are drafts — the reconstituted H1 hardening (#271, which sits inside the chain between T0 and I4 and replaces the merged-then-evaporated #229) and both Phase-3 increments (#288, #291). The merged pilot increments are the foundation the stack sits on; the service-layer conventions ruled during the #220 review were merged into the Kotlin Coding Standards via documentation PR #141 (2026-07-28) and are applied across all stack PRs.

PlantUML diagram

One row per increment. Design anchors name the decisions the increment implements — DEC-NN from Decisions, fork (F-n) and option (O-n) rulings from the DT-018 design record.

IncrementTicketPRStatusDesign anchors
Pilot I1 — occurrence-store spikePDEV-1110operations#217Merged (verdict GREEN)Go/no-go on constraint threading
Pilot I2 — common-module enablersPDEV-1110common-module#203Merged (13.1.0 published)GeneralizedQuantity algebra, typed guard-failure channel
Pilot I3 — demand skeleton + single-log kindsPDEV-1110operations#218, operations#219MergedThe 3-layer module contract (phase01 plan)
Pilot I4 — demand sagas + inventory modulePDEV-947operations#220In review (chain base)Cross-module sagas, R7 listener; source of the r2 convention rulings
Pilot I5 — law probes + phase exitPDEV-947operations#222In reviewPhase-exit criteria of PDEV-1110; closes PDEV-947
P2-I1 — order module skeleton + SupplierBindingPDEV-1134operations#224In reviewDEC-04/DEC-05, F8/O6 (SupplierBinding)
P2-I2 — OrderLine + item pin + attachPDEV-1135operations#225In reviewF6 (card-less lines); server-derived item pin (PDEV-1418 amendment)
P2-I3 — submit saga + settle + acknowledgmentPDEV-1136operations#227In reviewDEC-01/DEC-02/DEC-05, O2 (submit choreography)
P2-T0 — API-test baselinePDEV-1160operations#228In reviewTraceability catch-up on the api-tests infrastructure
P2-H1 — transaction hardeningPDEV-1166operations#229 (merged), reconstituted in-chain as operations#271#229 merged 2026-07-20; #271 draftCommit-side envelopes, unique committed-successor fork guard on five tables, F1 refusal rows
P2-I4 — receipt edge, both directionsPDEV-1137operations#231In reviewDEC-03 as amended (F9/F9b: accrual + reversal; after-close refuses and alarms); delivery-id idempotency
P2-IQ — demand station-validationPDEV-1139operations#273In reviewDT-021 V1 station placeholder (tenant-validated, cheapest-first guard ordering)
P2-I5 — law probes + legacy retirement (closer)PDEV-1138operations#275In review (chain top of Phase 2)Phase-2 exit; receipts self-heal (C6); legacy procurement/orders retirement; ui-compat api-test category
P3-I1 — CardCycle spinePDEV-1696operations#288Draft (built, audited)Kanban cycle occurrence log + same-transaction status projection + mid-trip backfill
P3-I2 — guards, config, wirePDEV-1697operations#291Draft (built, audited)Twelve reason-precise guards; composite refusal envelope; five-active LifecycleConfig (READY ruling); delete precondition
P2-U1 — order-queue screen + queue-add compositePDEV-1140—Queued, on holdDT-021 (three-arm BFF composite, auto-release at attach)
P2-U2 — order composition + supplier binding UIPDEV-1141—Queued, on holdDEC-04 surfaced in UI
P2-U3 — legacy PO-sheet retirementPDEV-1142—Queued, on holdZero-data-migration stance (client-side sheet)

Product and design decisions, the document that records each, and the increments that implement them.

DecisionRecorded inImplemented by
DEC-01 — Holds on demand live order-sideDecisionsSubmit/settle in operations#227; hold-dies-with-the-order on cancel
DEC-02 — Cancel is draft-only (O4: post-submit cancel parked)DecisionsOrder lifecycle in operations#224/#227
DEC-03 — Received amounts accrue; open amounts are computed (F9). Amended 2026-08-14 (F9b): received quantity is financially binding at close — revocations reverse the accrual; post-close reversals refuse and alarmDecisions; amendment text riding documentation#160operations#231 (both directions); recovery floor (receipts self-heal) in #275
DEC-04 — The supplier freezes at submission (F8/O6)DecisionsSupplierBinding in operations#224; freeze at submit in #227; pre-submit vendor cascade in #275
DEC-05 — Four stored states, two computed viewsDecisionsOrder-subject kinds in operations#224; derived readings in #227
DT-021 — “Add to Order Queue” is the demand signal (decided 2026-07-09)Working design record (see below)Station validation shipped in operations#273; PDEV-1140 composite queued
H1 rulings — envelopes, fork guard, F1 refusal capturePDEV-1166operations#229 merged; reconstituted in-chain as #271
Service-layer conventions (the #220 r2 rulings)Kotlin Coding Standards (documentation#141, merged 2026-07-28)All stack PRs (conventions pass completed 2026-07)
Stance: the orders module is an expendable prototype; domain cohesion over transactional guaranteesPDEV-1117Binding on all Phase-2 implementation
  • This project directory — Goal, Design, Decisions: the reviewed design in plain language. Start here.
  • Working design record (workbooks) — the formal DT-018 record with the Alloy-verified model and all fork/option rulings lives in Miguel’s working repository, not on this site: workbooks/notebooks/domain-ontology/design-topics/dt-018-purchase-order/ (also dt-020-receiving/, dt-021-demand-collation-caller-policy.md) and design/procurement/order/ (model, verification, law cards). Ask Miguel for access; the decisions themselves are summarized in Decisions and the tables above.
  • Conventions — Kotlin Coding Standards, extended with the service-layer architecture conventions in documentation#141.
  • Module reference this project delivers — Orders module.

Deliberately outside the current scope, with the reason the boundary sits where it does:

  • PDEV-1167 — Bitemporal coordinate ties, platform closure. Platform-wide follow-up; parked so Phase 2 does not carry a platform change.
  • PDEV-1116 — Audit async actors for spurious REFUSED-row pollution. Adjacent audit, not a Phase-2 deliverable.
  • PDEV-517 — Kit orders. An F10 extension: a named seam, parked at the design boundary.
  • F4 amendment protocol and O4 post-submit cancel — parked until designed against concrete requirements (see PDEV-1117).

Generated navigation aids derived from this atlas. They are conveniences — this page is canonical; regenerate them when the map changes.

  • Interactive navigator (Claude Artifact) — filterable ticket/PR table and the merge chain; private until shared from the artifact’s share menu.
  • NotebookLM notebook (Arda — Orders v2) — ask-anything access over the design documents and this map; Google account required.