Skip to content

Atlas: Orders with Lifecycle

Snapshot: 2026-08-04. Design settled (DT-018, all forks ruled); pilot foundation merged; the seven-PR implementation stack is green but paused — the design track (DT-020 Receiving) is the active focus, and a cascade rebase over main’s recent movement (common-module 14.1.0 adoption, settings library) is owed before the bottom-up merge chain resumes.

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.

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.

PhaseUmbrella ticketStatusScope
Specification rootPDEV-469In ProgressOrder V2 specification — parent of the whole effort
Phase 0+1 — DemandItem pilotPDEV-947, PDEV-1110In Progress / TodoOccurrence-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-1117Todo (queued, on hold)Net-new procurement/order module on the DT-018 design; backend track PDEV-1132, frontend track PDEV-1133. The effort’s tickets live in the Linear project “Procurement Workflows” (re-triaged 2026-08-04)

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. The merged pilot increments and the P2-H1 hardening PR 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. The chain itself is on hold behind the design track; main has since advanced (common-module 14.1.0, the settings library), so the stack takes one more cascade rebase before merging.

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#220Open (stack base)Cross-module sagas, R7 listener; source of the r2 convention rulings
Pilot I5 — law probes + phase exitPDEV-947operations#222OpenPhase-exit criteria of PDEV-1110; closes PDEV-947
P2-I1 — order module skeleton + SupplierBindingPDEV-1134operations#224OpenDEC-04/DEC-05, F8/O6 (SupplierBinding)
P2-I2 — OrderLine + descriptor freeze + attachPDEV-1135operations#225OpenDescriptor COPY-at-genesis freeze (§7.2 discharge), F6 (card-less lines)
P2-I3 — submit saga + settle + acknowledgmentPDEV-1136operations#227OpenDEC-01/DEC-02/DEC-05, O2 (submit choreography)
P2-T0 — API-test baselinePDEV-1160operations#228OpenTraceability catch-up on the api-tests infrastructure
P2-I4 — RecordReceipt listener + accrualPDEV-1137operations#231Open (stack top)DEC-03, F9 (stored sReceived, computed open quantity)
P2-H1 — transaction hardeningPDEV-1166operations#229MergedCommit-side envelopes, unique committed-successor fork guard, F1 refusal rows
P2-IQ — demand station-validationPDEV-1139Queued, on holdDT-021 (nullable-target read, station placeholder)
P2-I5 — law probes + legacy retirement (closer)PDEV-1138Queued, on holdPhase-2 exit
P2-U1 — order-queue screen + queue-add compositePDEV-1140Queued, on holdDT-021 (three-arm BFF composite, auto-release at attach)
P2-U2 — order composition + supplier binding UIPDEV-1141Queued, on holdDEC-04 surfaced in UI
P2-U3 — legacy PO-sheet retirementPDEV-1142Queued, 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)Decisionsoperations#231 (RecordReceipt from demand’s ProductionRecorded notifications)
DEC-04 — The supplier freezes at submission (F8/O6)DecisionsSupplierBinding in operations#224; freeze at submit in #227
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)PDEV-1139 service-side; PDEV-1140 composite
H1 rulings — envelopes, fork guard, F1 refusal capturePDEV-1166operations#229, applied across the stack
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 directoryGoal, 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.
  • ConventionsKotlin Coding Standards, extended with the service-layer architecture conventions in documentation#141.
  • Module reference this project deliversOrders 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.