Shipped · verified live

Five enterprise modules.
Coupa parity, closed.

We mapped the gaps between this kernel and Coupa, then closed five of them end to end — schema, agents, APIs, and UI — each one walked through live on real data.

Migrations 648–652 · 6 pure libraries · ~76 new tests · 21 live modules on one kernel

01

Guided Buying

One smart front door for any purchasing need

The gap it closes

Entry points were fragmented — a requisition form, a Telegram bot, a webshop. Employees had to know which process to use before they could ask.

The flow
Describe the need in plain language
AI classifies the spend type
Match catalog · contracts · suppliers
Convert to a governed requisition
Spend types7 classified
Routingcontract → catalog → type
Guardrailnever skips approvals
VERIFIED LIVE

Live: “5 boxes of A4 paper and two ergonomic chairs” → classified Catalog requisition at 90% confidence, matched to the Office Depot catalog, lines pre-filled and charged to Finance.

route · /buy
02

Spend Analysis

A real UNSPSC spend cube, not a flat KPI page

The gap it closes

The spend page showed totals and a trend line. There was no commodity taxonomy, no sliceable cube, and no way to see leakage.

The flow
Classify every line to UNSPSC
Tiered: catalog → keyword → LLM
Slice by commodity · supplier · CC · period
Surface maverick · tail · fragmentation
Classifiercatalog → keyword → LLM
Cube dimensions5
Insightsmaverick · tail · consolidation
VERIFIED LIVE

Live: €890,623 of committed spend across 6 commodities and 11 suppliers, 80.9% classified, 19.8% flagged maverick — spend that skipped a preferred or contracted supplier.

route · /spend/analysis
03

Services Procurement

Statements of Work with service entry sheets

The gap it closes

Goods ran PO → goods receipt → invoice. Services spend — often half the total — had only timesheets, no SOW lifecycle or delivery proof.

The flow
Create a milestone-based SOW
Activate the engagement
Log a service entry sheet (services GR)
Approve → milestone becomes billable
Engagementfixed-fee milestones
Delivery proofservice entry sheet
Billableapproved milestones
VERIFIED LIVE

Live: a €20,000 SOW at €5,000 delivered (25%). Approving a service entry sheet moved billable value to €17,000 automatically via the value-rollup trigger.

route · /services
04

cXML PunchOut

Shop supplier-hosted catalogs over standards cXML

The gap it closes

There was a mock REST connector and a SAP IDoc generator, but no standards-based PunchOut — the catalog integration every enterprise buyer expects.

The flow
PunchOutSetupRequest to the supplier
Shop the supplier-hosted store
Cart returns as a PunchOutOrderMessage
Convert → requisition; OrderRequest back out
ProtocolcXML 1.2 PunchOut
Roundtripsetup → cart → requisition
Demobuilt-in mock supplier
VERIFIED LIVE

Live: a full roundtrip through the built-in mock supplier — punched out, built a cart, and it returned as a real cXML PunchOutOrderMessage (UNSPSC codes intact, €1,405) onto the review screen.

route · /punchout
05

Compliant e-Invoicing

Suppliers submit — PO-flip or UBL/PEPPOL

The gap it closes

Scan-to-Pay was the buyer re-keying a PDF. Suppliers had no way to submit an invoice themselves, and nothing validated structured e-invoices.

The flow
Vendor flips a PO into an invoice
…or sends a UBL/PEPPOL e-invoice
EN 16931 compliance check
Emit INVOICE_MATCH → 3-way match
ChannelsPO-flip · UBL/PEPPOL
ValidationEN 16931 rules
Feedsthe existing matcher
VERIFIED LIVE

Live: the demo vendor flipped a PO into invoice INV-DEMO-2026-001 — tagged PO-FLIP, compliance surfaced as a warning, and the 3-way matcher picked it up (status MATCHING).

route · /vendor/invoices
06

Fleet Health & Circuit Breaker

The agents tell you when they stop working

The gap it closes

The LLM-backed fleet failed 100% for weeks in silence. All 23 cron jobs reported success — because a cron succeeds at EMITTING an event regardless of what the agent then does with it. The daily health check never fired once: it required queued work, and an agent that fails instantly leaves nothing queued.

The flow
Measure success rate per agent, not just staleness
Group failures by normalised error signature
Breaker opens on provider outage only
Held events stay pending — replayed on recovery
Detectsbroken, not just stalled
On outagework held, never burned
Closes onone successful run
VERIFIED LIVE

Live: 159 of 259 events had been silently burned at 63% failure. The repaired check now alerts on 8 agents where it previously alerted on none, and reports “9 agents are failing with the same error — this is one incident, not 9.”

route · /owner/fleet-health
07

Over-Receipt Guard

You cannot receive more than you ordered

The gap it closes

Goods receipt was completely unguarded. A receipt for 10× the ordered quantity was accepted by the database — and because the three-way match reconciles invoice against PO and GR, an equally inflated invoice would then reconcile cleanly and get paid.

The flow
Receipt entered against a PO line
Cumulative quantity checked, not per-line
Tolerance % read from the constitution
off / warn / block — enforced in the database
Enforced inthe database, not the route
Checkscumulative across receipts
Modesoff · warn · block
VERIFIED LIVE

Live: block mode refused a 5× over-receipt naming the PO and the numbers, still accepted the exact ordered quantity, refused a follow-up receipt of just 1 more unit, and allowed 105 against 100 under a 10% tolerance.

route · /receipts

Same kernel. New surface area.

Every module above reuses the existing approval engine, treasury loop, and agent fleet — no new infrastructure. That is the whole point of a kernel.

Enter the systemBack to home