How I built the Fusion Cloud AI-Readiness Assessment demo
Given a description of an Oracle Fusion Cloud ERP environment — target agent use case, transaction volume, integration method, and which governance controls already exist — produce a readiness score, named gaps, and a recommended approach. Retired and rebuilt 2026-09-10 from the site's prior Oracle EBS → S/4HANA migration-complexity demo, which answered a different question (should you leave EBS) than this one does (is it safe to run governed AI agents against the Fusion Cloud ERP environment you already have) — same reasoning-model scaffolding, new domain.
Last reviewed
Nothing but enums reaches the prompt
Every input — agent use case, transaction volume, integration method, governance controls — is validated against a fixed allowlist before anything is assembled into a prompt:
const USE_CASES = [
"AP invoice exceptions (Fusion Payables)",
"Procurement requisition triage (Fusion Procurement)",
"GL journal review & anomaly detection (Fusion General Ledger)",
"Expense report auditing (Fusion Expenses)",
] as const;
const VOLUMES = ["<1,000/month", "1,000–10,000/month",
"10,000–100,000/month", "100,000+/month"] as const;
const INTEGRATION_METHODS = ["No integration yet — planning phase",
"Calling Fusion REST APIs directly",
"Oracle Integration Cloud (OIC) as middleware",
"Oracle AI Agent Studio (business-object + deep-link tools)"] as const;There's no free-text field anywhere in this form. A public demo endpoint that accepts arbitrary text and feeds it to a system prompt is a prompt-injection surface; a form that only accepts membership in a known set removes that surface entirely rather than trying to sanitize around it.
The prompt reasons about the specific selection
The system prompt frames Claude as a senior AI-governance architect and explicitly instructs it to reference real Fusion Cloud ERP concepts for the use case actually selected — Payables invoice holds and matching for AP exceptions, supplier and purchase-order approval for procurement triage, chart-of-accounts and period-close controls for GL review — rather than returning generic AI-governance advice that would apply to any input. One conditional line does real work: if fewer than two governance controls are already selected as in place, the prompt requires the response to call that out as a structural blocker to autonomous agent action, not a minor gap to note in passing.
The response is validated, not trusted
Structured output from a model is still a string until proven otherwise. Before anything reaches the client:
- ✓Code fences are stripped and the outermost JSON object is extracted defensively — models sometimes wrap output in commentary even under instruction not to.
- ✓readinessScore is clamped into the 1–10 range with Math.min/Math.max, and rejected outright if it isn't a finite number.
- ✓recommendedApproach.approach is lowercased and checked against exactly three allowed values (pilot-ready / needs-guardrails / not-ready) — anything else fails the request rather than silently passing through.
- ✓keyGaps and nextSteps are truncated to 3 items regardless of how many the model returns, keeping the response shape predictable for the UI.
Why Sonnet, and why 5 requests per 10 minutes
This is the one demo on the site running Claude Sonnet 5 with extended thinking explicitly disabled — the reasoning load (weighing use case against transaction volume against which governance controls already exist to produce a specific, defensible recommendation) is real, but this use case doesn't need multi-step deliberation to get there. It also gets the tightest rate limit on the site — 5 requests per 10 minutes per IP, against 30 requests per day for the extraction demos — because a reasoning-model call costs meaningfully more than a Haiku extraction call, and a public demo endpoint has to assume it will be hit by more than curious visitors.
Labeled benchmark
Run 2026-09-10Model
Claude Sonnet 5 (extended thinking disabled)
Sample size
4 configurations attempted; 3 completed (see limitations)
Data source
4 distinct Fusion Cloud ERP use-case / integration-method / governance-control combinations, run live against the production endpoint at tioga.ai.
Schema-valid responses
3/3 completed runs (100%)
Thin-controls disclosure rule followed
1/1 confirmed applicable case
Average latency
~14s
Rate limit enforced
Confirmed: 5 requests / 10 min per IP
Limitations
- —This is a reasoning/judgment task, not classification — there's no single "correct" readiness score to measure accuracy against. The metrics above check structural reliability (valid output, disclosure-instruction adherence), not correctness of the recommendation itself.
- —One test case was rejected by the demo's own 5-requests/10-minute rate limit during this benchmark run — a real constraint, not a bug.
- —Readiness scores haven't been validated against real agent-deployment outcomes; treat them as directional, not calibrated.