Introduction
Onoots Supply is the procurement & vendor-settlement vertical of the Onoots OS,
served at supply.onoots.com. Its pilot reconciles a Purchase Order, a
Goods Receipt, and a Vendor Invoice (the three-way match), and grows into
the full procurement funnel: requisition intake, RFQ sourcing, and vendor KYS.
The mechanism it reuses
Supply inherits the Onoots OS mechanism rather than rebuilding it:
- Compliance Guardian, fail-closed — every decision resolves to one of
allow/prepare/escalate/block. Uncertainty never auto-clears. - Tolerance-based autonomy — clean, in-band cases auto-approve; any breach is downgraded to a human gate.
- Ledger™ anchoring — the canonical verdict is meant to be sealed to the hash-chain for a continuous audit trail.
Supply does not reimplement the fail-closed core. Each engine maps its domain
outcome onto an autonomy level + compliance flags and calls the shared
@onoots/core Guardian — the same engine Proptech uses. See
Compliance Guardian.
Run it locally
pnpm install
pnpm dev # http://localhost:3000
pnpm buildThe demo UI lets you tweak the invoice / tolerance to flip a decision between
auto-approve and hold. Core engine: lib/three-way-match.ts (pure, framework-free).
Shared engine — @onoots/core
@onoots/core lives in the onoots-app repo (packages/core). During local dev
it is linked via a file: dependency. To deploy Supply on Vercel (a separate repo),
the shared package must be reachable — either publish @onoots/core to GitHub
Packages, or consolidate onoots-app + onoots-supply into one monorepo. This
is the one ops decision that gates Supply’s production deploy.