Use cases

What the system has to do, who triggers it and what counts as done. Every use case maps to requirement IDs.

Use cases for the first milestones

Simplified on purpose. A realistic reference model from ERP practice is worked out with AI and reviewed before the business logic is specified. All processes are extensions, not core code.

UC1M8

Customer orders via API

Actorcustomer system with API key
TriggerPOST /api/v1/sales-orders
Outcomeorder confirmed, stock reserved, status via webhook
CoversD1, D2, B5
UC2M8

Dropshipping

Actorfulfillment and dropshipping extensions
Triggerorder confirmed with a dropship item
Outcomesupplier order created and sent to the supplier
CoversD3, D4, X6
UC3M8

Supplier reports status

Actorsupplier system with API key
Triggeraccept, reject or ship action
Outcomecustomer informed, fallback supplier on rejection
CoversD5, X6, X7
UC4M7

Quote by email

Actorsales or customer request
TriggerorderRequest.created
Outcomequote PDF mailed, stock reserved for 7 days
CoversA8, F5
UC5later

Low stock alert

Actorworker on stock events
Triggeravailable stock below threshold
Outcomemessage to purchasing or Slack
CoversD8
UC6M9

Dashboard by prompt

Actorpartner using an app builder such as Lovable
Trigger"Create a dashboard showing daily sales stats"
Outcomeworking dashboard on the live API, built from the docs alone
CoversH1, H2
UC7M9

Extension by prompt

Actorcustomer using Claude Code or another agent
Trigger"Create a returns handling process"
Outcomevalidated extension inside the extension points, with tests
CoversH3, H4, D6

UC2 and UC3 in sequence

A dropshipping order with a rejection, a fallback supplier and a shipment. Orange arrows are calls from the supplier's own system.

Sequence of a dropshipping order between customer system, front door, fulfillment extension, dropshipping extension and supplier system, including a rejection and a fallback supplier.Customer systemFront doororder-fulfillmentdropshippingSupplier systemPOST /api/v1/sales-ordersorder.created (event)check stock, reserveline is a dropship item (hook)create supplierOrderwebhook: new order (signed)GET /api/v1/supplier-orders (scoped)POST .../actions/rejectpick fallback supplierPOST .../actions/ship (tracking no.)supplierOrder.shipped (event)mark line shippedwebhook: order shipped
Fig. 7 Neither the customer system nor the supplier system ever sees data outside its scope. Every arrow passes the front door.

What makes these hard

Partial everything

Partial deliveries, partial payments, partial rejections by suppliers.

Unwritten rules

Returns against old invoices after a tax change. Billing when the connection drops. From community comments.

Process boundaries

Modules pass their tests while stock, open items and revenue drift apart.

Permissions in motion

Scopes must hold in events, webhooks and process history, not only in the API.