A demo sub-version of LiveCEO, built from scratch for a family-office owner: five portfolio companies, one knowledge graph with drill-down, pre-built P&L and status dashboards, and the production voice interface on top — all on mock data engineered to hold up under real questions.
You play the family-office owner. The demo answers the question every PE associate asks daily — “what's actually going on inside our companies?” — from five surfaces built on the same knowledge base per company that LiveCEO builds for real customers. It is a separate app built fresh, lifting LiveCEO's proven parts, not an adaptation of production.
A force-directed graph of the fund: 5 company nodes sized by revenue and colored by health, plus the cross-company connections (a board member on three boards, a shared vendor). An aggregate KPI strip and the voice dock live here.
Click a company → its own full entity graph (LiveCEO's real 964-line GraphCanvas, lifted verbatim). Every node opens a real wiki page — teams, decisions, products, accounts — with citations. No dead ends.
Deterministic, pixel-identical charts per company (not LLM-generated) — P&L, sales pipeline, dev status, credit book, integration ops. Numbers are guaranteed to match what chat cites, by construction.
The real LiveCEO agent engine (claude-agent-sdk, Sonnet, Read/Grep/Glob over the wiki — no RAG), lifted unmodified. Curated “killer question” chips guide the associate; every answer carries citation pills into source pages.
The exact production voice stack: OpenAI Realtime over WebRTC (voiceClient.ts, zero changes needed). Scoped to the page you're on — ask the portfolio from home, ask Vortex from Vortex's page. Spoken summary + written cited answer on screen.
Every company gets a canonical financial model first; wikis and dashboards are both derived from it and lint-checked for agreement. If a dashboard says $4.2M ARR, chat says $4.2M. Details in Architecture.
Chosen so the portfolio reads as a real book — each company carries a different risk flavor and a genuinely different KPI vocabulary (ARR/NRR vs. CAC/LTV vs. delinquency vs. TAT/accreditation), which is what makes the graph and the question bank feel real. Names and domains are proposals — Q4.
| Company | Domain | Health | The story |
|---|---|---|---|
| Vortex Gamespreserved anchor customer | Mobile & console games studio DAU/retentionmilestoneslive-ops |
Amber | The anchor asset: a profitable live-ops hit aging out (DAU down 2 quarters), racing a new title to a holiday launch that has to reignite growth. |
| Portside Softwareinvented | Vertical B2B SaaS — freight TMS ARR/NRRpipelinecoverage |
Green | The growth story: ARR +38% YoY on a strong new-logo motion — but NRR slid 118%→109% as the smallest-customer segment frays. |
| Solstice Outdoorinvented | D2C + wholesale outdoor gear CAC/LTVchannel mixcohorts |
Amber | The margin story: paid acquisition stopped paying for itself, and the wholesale fallback is now concentrated in one big-box partner (~34% of revenue). |
| Northlane Financialinvented | Fintech — invoice lending for SMB manufacturers delinquencycharge-offscovenants |
Red / Watch | The risk story: real loan-book growth, but 60+ day delinquency just crossed the 3.5% covenant-relevant threshold. The board needs to see it now. |
| Meridian Clinical Labsinvented | Healthcare — diagnostic-lab roll-up (platform + 2 add-ons) TATpayer mixsynergies |
Green, ops flag | The integration story: on-plan financially — except the newest site is behind on systems migration and its CLIA recertification clock is ticking. |
Each scene defines exactly what the mock data must be able to support: the question, the surfaces it touches, and the citation trail it must produce. These are the demo script.
Northlane Financial. The associate opens the Credit & Loan Book dashboard; the 60+ day delinquency tile is red — 4.2% against the 3.5% covenant threshold.
The agent segments the loan book by origination cohort, finds the Q2-2026 manufacturing-vertical cohort driving it, and surfaces the credit-committee memo that had already flagged underwriting-model drift — answer in 2–3 sentences with citation pills into entities/decisions/q2-credit-policy-review.md and the board-deck raw dump.
All five companies. From the portfolio graph:
The agent compares Solstice's top-wholesale-account concentration (~34% of revenue) against Portside's healthiest-in-book 6%, ranks all five, cites both companies' wikis — one agent turn across the whole portfolio. This scene is why the architecture uses a single wiki root with five company subtrees.
Vortex Games. The Development & Live-Ops dashboard shows Beta slipped two weeks.
The agent answers from milestone dates and burndown, cites the title's entity page and a Jira-shaped raw dump documenting the certification-blocking crash bug, and gives a calibrated answer: still inside the window, nine days of buffer.
Portside Software. On the Sales Pipeline dashboard, an $820K “Committed” deal sits 45 days past its expected close.
The agent surfaces that exact deal, cites the email thread where the champion went quiet, and the account entity page noting a leadership change at the prospect. Numbers, narrative, and next action in one answer.
Portfolio-wide, away from the screen. The associate taps the mic on Portfolio Home:
The Realtime voice session calls ask_portfolio_brain — the demo's portfolio-scoped sibling of production's ask_company_brain — and speaks: “Four of five are on track. Northlane's delinquency crossed the 3.5% covenant threshold this month — worth a call this week. Vortex's new title slipped two weeks but still has runway to the holiday date.” The full written, cited answer renders on screen simultaneously — the production voice persona rules (never read tables aloud) carry over unchanged.
Recommended shape (see Q3): every company gets a P&L dashboard with an identical widget set — a PE owner wants financials comparable across the book — plus one domain-flavored dashboard each, and a portfolio roll-up above them. All deterministic React charts themed on LiveCEO's design tokens; the production LLM-generated dashboard pipeline is deliberately not used here (a sales demo needs pixel-identical output every run).
The canonical questions PE associates ask — the mock data is generated specifically so every one of these is answerable with citations. They double as suggested-prompt chips in chat and voice.
A new standalone app (recommended: its own repo — Q10) on the same stack: Next.js 16, React 19, Tailwind v4, TypeScript strict. No WorkOS, no Postgres multi-tenancy, no connectors, no gVisor sandbox — the demo carries none of production's SaaS weight. The research pass confirmed every lifted part below by reading the actual code.
agentCore.ts (~1,700 lines): claude-agent-sdk turn assembly, wiki-navigation system prompt, Read/Grep/Glob-only tool surface. Unmodified.wikiContainment.ts: every file read realpath-checked against the wiki root. Works identically without gVisor.voiceClient.ts (~300-line WebRTC / OpenAI Realtime driver, framework-free) + the ephemeral-secret minting route. The research confirmed the tool-callback seam needs zero client changes.GraphCanvas / GraphView / graphTheme + buildGraph(). Entity types are emergent strings, so PE vocabulary (company, covenant, deal) needs no renderer change.Markdown.tsx wiki-pill rendering, repointed at a filesystem-backed wiki route.globals.css @theme tokens, Cal Sans/Inter/JetBrains Mono, landing/shared.tsx primitives, AppShell/TabRail as visual template.entities/<type>/<slug>.md + raw/<system>/… layout, frontmatter and linking rules, so the unmodified agent prompt still describes reality.The single hardest requirement: a dashboard saying ARR is $4.2M while chat cites $3.8M kills the demo in one click. So numbers are decided exactly once, and everything else is derived:
All five companies live as subtrees under one wiki root. That's what lets a single agent turn answer “which company has the worst margin trend?” by walking across companies — and it reuses the agent engine, the path jail, and the graph builder with zero modification. Production-style per-tenant isolation is a story this demo doesn't need to tell: none of the data is real (and the Vortex copy is gated — Q2).
~15–21 developer-days total (3–4 calendar weeks for one engineer; content generation parallelizes with UI once the wiki file shape is fixed). Each phase ends in a walkthrough you can react to before the next begins.
| Phase | You get to click | Effort |
|---|---|---|
| 0 · Foundations | Fresh app scaffold, design tokens ported, fonts, deploy pipeline smoke-tested. (Not independently demoable.) | 1–1.5 d |
| 1 · “Here's your empire” | App shell + portfolio graph with 5 company nodes → click through to each company's own knowledge graph → every node opens a real wiki page. Runs on the first thin corpus. | 3–4 d |
| 2 · “Here's the numbers” | All six dashboards live on canonical mock numbers; portfolio roll-up tile on home. | 3–4 d |
| 3 · “Ask it anything” | Chat with the real agent over the mock wikis — killer-question chips, streaming answers, citation pills opening the reader. | 2–3 d |
| 4 · “Talk to your portfolio” | Voice dock on every page, scoped to where you are. This completes the MVP. | 1.5–2 d |
| 5 · Corpus depth + Vortex | Deepen the four synthetic corpora to a few hundred pages each; run the gated Vortex export → anonymize → human-review pass and swap it in. Ships on its own timeline, never blocks 1–4. | 3–5 d |
| 6 · Stretch | Ad-hoc “ask a follow-up, get a fresh chart” LLM artifacts; shareable dashboard links; dictation in the composer. | deferred |
Ranked. The first one is the only one with real-world blast radius.
Vortex is a real customer. The repo's own anonymization pipeline documents that on a comparable prior run, the automated scrub still left 71 real leaks (names, a plaintext auth token, staging IPs, an address inside a base64 calendar id) — caught only by two human adversarial review passes.
Mitigation: hard release gate, not a checklist item. MVP ships with a synthetic Vortex-styled stand-in; the real corpus enters only after export → automated rewrite → leak scan → two independent human passes → written sign-off. Decision is yours — Q2.
One mismatched number between a dashboard and a chat answer collapses credibility in a single click.
Mitigation: the canonical-numbers-first pipeline plus the offline consistency lint (Architecture §) — agreement is mechanical, not hoped-for. Plus a golden-question regression run of all 30 bank questions before any important showing.
A force graph with a dozen generic nodes signals “demo,” not “the AI actually ingested this company.”
Mitigation: generate real depth (target ~150–300 information-dense pages per company, deepening in Phase 5), reuse the deterministic hub pages (org chart, decision log) as high-degree anchors, and enforce no dead ends — every clickable node opens a substantive cited page.
Realtime WebRTC on venue wifi, laptop-mic echo, and a 30–120s research-tool window can produce dead air mid-pitch.
Mitigation: rehearse on the venue network with a dedicated headset mic; the typed composer sits right next to the mic toggle and routes through the identical answer pipeline, so falling back mid-demo costs nothing.
Every turn is a real Sonnet call; every voice minute is metered Realtime. Fine when operator-driven; unbounded if a public link circulates.
Mitigation: shared-passcode gate + per-session turn caps by default (Q6/Q7). If unsupervised prospect access is ever wanted, that's a scope change: hard caps and sandbox revisited first.
Each comes with a recommended default — answer with a number and “yes” or a correction. Q1 and Q2 matter most; everything else has a safe default.
Drives the auth model, cost guardrails, whether unsupervised strangers hit live LLM/voice sessions, and how hard the Vortex privacy gate must be.
RecommendedOperator-driven live pitch for v1 — lowest risk, fastest build, matches how PE tools are actually sold. Self-serve becomes a deliberate v2 with hard caps.
“Preserve the copy of Vortex Games” can mean either. Real data is maximally authentic but is a real customer's data — the prior anonymization run's 71 post-scrub leaks make this the project's only genuine incident risk, and it needs your sign-off plus review time.
RecommendedSynthetic Vortex-styled stand-in for the MVP; run the gated export → anonymize → two-human-pass pipeline in parallel (Phase 5) and swap the real corpus in only after written sign-off.
Your brief reads either way. Comparable financials across the whole book is the stronger PE story, but it's roughly double the dashboard build.
RecommendedP&L everywhere + one specialty each — the P&L component is built once and themed per company, so the real extra cost is data generation, not five new UIs.
Names and domains propagate into hundreds of generated pages, dataset labels, and voice transcripts — renaming after generation means regenerating the corpus, not find-and-replace.
RecommendedProceed with these four (each carries a distinct PE risk flavor: retention, margin/concentration, credit/covenant, integration/compliance), with a quick trademark sanity check before the first generation run.
Live = the real “it's actually reasoning over the wiki” effect, plus graceful handling when an associate goes off-script; costs latency and a small hallucination risk. Canned = 100% reliable, but collapses the moment anyone asks their own question.
RecommendedLive agent for both chat and voice. The corpus is small and fully known, and the golden-question regression run before each showing is the safety net.
Filesystem-only keeps the entire demo self-contained — no Postgres anywhere — and dashboards render instantly. The SQL lane (production's query_dataset) adds a “watch it write real SQL” demo beat and numeric verification, at the cost of a database and the dataset machinery.
RecommendedFilesystem-only for v1; the numbers already agree by construction. Add a per-company SQLite file later only if you want the live-SQL moment on stage.
Production's WorkOS + org-claim machinery is heavy for a fixed-cast demo; a bare public URL risks the link (and any Vortex-derived content) leaking or being crawled.
RecommendedSingle shared passcode — one gate, no accounts, revocable by rotating it.
Same Hetzner box as production (new subdomain, fully separate container, zero shared DB) reuses proven Caddy/TLS ops with near-zero new infra. A separate host (Vercel/Fly) gives total isolation but new deploy tooling. The name also sets the demo's framing (e.g. portfolio.liveceo.ai vs. a standalone brand).
RecommendedSame Hetzner box, separate container, portfolio.liveceo.ai — proven ops, zero production coupling.
Content generation is the longest pole (3–5 days at full depth). Thin-first gets you clicking a week earlier and lets you correct the shape before deep investment; but the graph impresses in proportion to its density.
RecommendedThin-but-real for the first walkthrough, then deepen in Phase 5 once you've confirmed the shape — the generator makes depth a re-run, not a rebuild.
liveceo-pe-demo) or a folder inside the main product repo?A fresh repo makes “zero coupling to production auth/DB/tenancy” structural and matches “built from scratch”; a folder keeps everything in one place but invites entanglement and would need monorepo tooling the repo doesn't have.
RecommendedFresh repo, with one-time file copies from LiveCEO (free to diverge) rather than submodules.
Reply in chat with something like: “1 live-pitch · 2 synthetic-first · 3 P&L-everywhere · 4 yes · 5 live · 6 filesystem · 7 passcode · 8 portfolio.liveceo.ai · 9 thin-first · 10 fresh repo” — or correct any line. Accepting all recommendations as-is also works: “all defaults”.