Presenter map · start here
What you're about to see, and why it matters.
A 10-minute walk through an agentic control center for regulated enterprise data. Four stages: setup → curate → query → govern.
The pitch in one sentence
Every answer DxLookup gives you is blocked, qualified, or signed — and you can prove it.
before you start
Seed the demo data
What the seed does
Registers 4 pre-named assets (Machine 47, Line 3, Acme Materials, PN-78821), indexes 2 realistic documents (a maintenance SOP + supplier quality manual), and pre-populates gate verdicts so trust scores reflect real earned quality — not a cold 100.
Why it matters
Without seed data the asset registry and doc store are empty and trust scores start at 100 (nothing has been tested). The seed creates the before/after contrast the story needs: a system that has already been used, with earned scores, real refusals, and pre-blocked demand.
Safe to re-run?
The seed is idempotent — it checks a flag file and skips if already seeded. Click the Seed button in the hero, or call POST /api/seed directly. The flag lives at data/demo-seeded.json and persists on the Fly volume.
01
Act 1 · The crisis
3 stops · 4 minutes — show the problem before the solution
Lead with the refusal. A buyer who sees a refused answer in the first 2 minutes will understand every feature that follows.
01
2 min
The bad answer — S86 refused →click Open /ask. Click "average of sensor S86 on failed lots".
say S86 is 100% missing. A standard copilot would return a number. We don't. That typed refusal — gate name, threshold, observed value — is the entire product pitch in one screen. Your competitor guessed. We refused.
02
1 min
Why it refused — curation tiers →click Open /zones. Point to SECOM's red T0 pile (143 columns).
say Every column earns its tier through deterministic gates. S86 is T0 — it failed completeness, so the agent can't touch it. This isn't a config flag, it's architecture. The agent physically cannot serve a T0 column.
03
1 min
Everything the system caught →click Open /incidents. Show the blocked column list.
say The watchlist of data the agent will never answer from — and exactly why each one is blocked. This is what you show a data governance team. Not vibes, a rule and a number.
02
Act 2 · The system working
4 stops · 7 minutes — show the answer, the stitch, the trust
Same agent, clean data. The contrast with Act 1 lands the whole architectural story without a slide deck.
04
2 min
The good answer — S1 served →click In /ask, click the S1 example. Watch it answer.
say Same agent, same pipeline — but S1 has clean data. It answers with value, sample size, and the list of gates it passed. Two examples back-to-back make the contrast land.
05
3 min
Multi-table stitch — live DAG →click Open /explore. Click "Scrap rate by supplier…". Watch the DAG. Then switch to AdventureWorks: "Revenue by product category".
say The agent holds the schema, not the warehouse. It discovers the join path, pulls only the slices it needs, and stitches them live — that DAG is the SQL join you'd otherwise hand-write, happening in real time. Switch landscapes: one question becomes a five-table join on a schema it's never seen.
06
1 min
Assets — what the data means →click Open /assets. Show Machine 47 and Acme Materials trust scores.
say Assets are named entities — Machine 47, Acme Materials — that group columns and docs into one trust score. 72 means it's passed some gates and failed others. You can trace exactly which ones and why.
07
1 min
Documents in the loop →click Open /docs. Show the SOP and Quality Manual cards. Ask a question in /explore that triggers doc context.
say Structured numbers and unstructured documents answer together. The SOP for Machine 47 tells you the cycle-time tolerance; the sensor data tells you whether it's being met. One query surface for both.
03
Act 3 · The evidence & close
4 stops · 5 minutes — audit chain, trust score, cold start
This is where you close. The audit chain survives compliance review; the cold-start wizard answers "how fast can we ship this?"
08
1 min
Signed provenance — tamper the chain →click Open /audit. Click "Verify chain now". Show the green chain.
say Every gate verdict and agent tool call is ed25519-signed and hash-chained. Tamper one byte and it turns red. That's how you trust an agent's answer after the fact — not vibes, a verifiable record that survives a compliance audit.
09
1 min
Trust score — the executive view →click Open /sprs. Show the per-dimension breakdown.
say One number for data posture across six ISO 8000 dimensions. Freshness is down because LIMS source data is aging. Completeness is down because S86 is blocking. This is what a CISO or data steward sees in the Monday morning review.
10
1 min
The system is learning →click Open /intelligence. Show cache hit rate, tokens saved, blocked demand.
say Every answered question makes the next one cheaper. The cache hit rate compounds — questions the agent has seen return in under 10ms with zero LLM tokens. The blocked demand table is the product roadmap: every refusal is a data gap that's costing something.
11
2 min
Cold start — new customer in 5 minutes →click Open /onboard. Walk: pick vertical → CSV or connector → schema → assets → docs → done.
say This is the sales closer. Pick industry, connect a source or drop a CSV, the agent detects machine IDs and supplier codes, you upload a maintenance SOP, and in five steps you have a governed private data layer with trust scores on every asset. Five minutes, no data leaves the building.
F
Fab track · parametric time-series
5 stops · 9 minutes — for a semiconductor prospect: same agent, their world
Run this when the buyer's major source is parametric sensor data. It re-tells the whole story — refuse, stitch, prove — on a wafer fab: chambers, FDC traces, metrology, and wafer-sort yield. Switch the header dataset to Fab first.
F1
1 min
Switch to the Fab — their world →click In the header dataset switcher, pick "Fab". Open /explore.
say This is the same agent, same gates — now on a semiconductor fab. Lots become wafers, machines become chambers, and the major source is 1 Hz FDC parametric sensor traces: chamber pressure, RF power, gas flow, endpoint. Everything you just saw on the plant applies to a schema the agent has never been trained on.
F2
2 min
The refusal — parametric S86 →click Click "Average of parametric test S86 by result".
say The parametric E-test feed is the real UCI SECOM sensor grid. S86 is 100% missing, so the agent refuses with the gate, threshold, and observed value — it will not hand a fab engineer a fabricated parametric number. This is the moment that matters to a yield team.
F3
3 min
The stitch — yield by chamber →click Click "Wafer yield by etch chamber". Watch the fetch+stitch DAG.
say One question, four tables: wafer_sort ⋈ wafers ⋈ process_runs ⋈ tools, discovered from the FK graph and stitched live. One etch chamber (ETCH3) shows materially lower yield than its peers — the agent found the bad chamber without anyone writing the join.
F4
2 min
The parametric trace — pressure as of each etch →click Click "Average chamber pressure as of each wafer's gate etch by chamber".
say This is the time-series payoff. The agent ASOF-joins the 1 Hz FDC trace to each wafer's etch step and rolls it up by chamber. ETCH3's pressure has drifted up over the window — the physical root cause of the yield loss you just saw, straight from the parametric historian.
F5
1 min
Why it refused — the SECOM tiers →click Open /zones and /incidents. Show the red T0 sensor pile.
say The same curation tiers back the fab story: S86, S158, and the constant channels are T0 — the agent physically cannot serve them. Then /audit → Verify chain now stays green: every fab query you just ran is ed25519-signed into the same provenance chain.
A
Fab · advanced time-series
6 stops · 9 minutes — SPC, Cpk, multivariate excursion, drift + JMP hand-off
The analyses a yield engineer actually runs — now agentic, governed, and signed — plus a one-click hand-off to the tools they already trust. Run these on the Fab landscape.
A1
2 min
SPC control chart — ETCH3 drifts out of control →click In Fab /explore, click "SPC control chart of chamber pressure on ETCH3". Then run it on ETCH2.
say This is the chart your engineers live in. ETCH3 is in control for a week, then walks out past the upper control limit — 51 of 75 runs flagged by Western Electric rules. Run ETCH2 next: dead in control. Same governed pipeline, the SPC they already trust.
A2
1 min
Process capability — Cpk by chamber →click Click "Process capability Cpk of CD by chamber".
say One number every fab exec reads instantly. ETCH3's Cpk is 0.19 against the 26–30 nm CD spec — nowhere near the 1.33 floor. The agent computed it from gated data and will refuse a chamber that doesn't have the sample to support it.
A3
2 min
Multivariate FDC excursion — catch the fault in the trace →click Click "Multivariate FDC excursion detection".
say Per-run Hotelling-style T² across pressure, RF, gas, and temperature, on a robust per-chamber baseline. It flags the sudden ETCH1 events — driver: chamber pressure — the excursions that hit yield before metrology ever saw them. This is fault detection on the parametric traces, not a single-signal average.
A4
2 min
Drift + commonality — predict and root-cause →click Click "Chamber pressure drift and yield commonality".
say The slope says ETCH3 is climbing ~1.5 mTorr/day with a projected spec breach date, and the commonality groups the low-yield wafers by gate chamber and spatial zone — ETCH3, edge-ring signature. Predictive drift plus root-cause, from the same governed feed.
A5
1 min
Hand off to JMP — the closer →click On any analysis, click "↓ JMP (JSL)". Open the .jsl in JMP.
say We don't replace JMP — we feed it clean, signed data. One click emits a JSL script that builds the table and opens the right platform — Control Chart Builder for SPC, Distribution for Cpk — with a provenance manifest stamped in the header: the content hash and the note that it's ed25519-signed into our chain. The number that lands in JMP is the one that cleared our gates. Spotfire and Excel/Power BI export the same way.
A6
1 min
Reads your PI historian →click Open /connect. Point to the PI Web API connector.
say Today this runs on seeded traces, but fab_fdc is a drop-in: configure a PI Web API endpoint and the same questions read live from your OSIsoft/AVEVA historian — no re-modeling, the file feed just becomes the real one.
the moat
Why this beats a chatbot on a warehouse
Refuses bad data
The number you don't get is the point.
Every aggregate runs the same coverage gate the pipeline uses. Too sparse, too stale, or quarantined — the agent returns a typed refusal naming the rule, threshold, and observed value. Never a fabricated number.
Signed provenance
Trust after the fact, not vibes.
Every gate decision and agent tool call is ed25519-signed and hash-chained. Trace the column's tier and the gates it passed. Production path: AWS KMS / Azure Key Vault / YubiHSM.
Deterministic, on-prem
Same input, same verdict, your hardware.
The gates are pure functions — same input, same verdict. The LLM (Local LLM (on your hardware)) only phrases the answer; the gates decide it. Your data never leaves the network.
Ready?
Start with the refusal. It lands in 90 seconds.
Seed first if this is a fresh deploy — the button is in the hero above.