Browse Source

MVP_DELIVERABLE_SCRIPT.md

pull/6456/head
Alan Garber 1 month ago
parent
commit
f704485131
  1. 127
      MVP_DELIVERABLE_SCRIPT.md

127
MVP_DELIVERABLE_SCRIPT.md

@ -0,0 +1,127 @@
# MVP Demo Video Script (3–5 minutes)
Record with QuickTime. Read callouts aloud. Each **[MVP-X]** tag maps to a requirement.
---
## PART 1: Deployed App in Browser (~3 min)
### Scene 1 — Show Deployed URL (0:00)
1. Open browser. Navigate to:
```
https://ghostfolio-production-f9fe.up.railway.app
```
2. **Say:** "This is Ghostfolio, deployed on Railway. It's publicly accessible."
3. Show the landing/login page loads.
> **[MVP-9] Deployed and publicly accessible** — visible: real URL, live site.
### Scene 2 — Demo User Login (0:20)
1. Navigate to:
```
https://ghostfolio-production-f9fe.up.railway.app/demo
```
2. You'll be auto-logged in and redirected to the Overview page.
3. **Say:** "I'm logging in as a demo user. This account has a pre-seeded portfolio with 5 stock holdings — Apple, Microsoft, Vanguard Total Stock Market, Google, and Amazon."
4. Briefly show the Overview/Holdings page so the portfolio data is visible.
### Scene 3 — AI Chat: Natural Language Query + Tool Call (0:45)
1. Click **"AI Chat"** in the top navigation bar.
2. Type: **"What are my current holdings?"**
3. Press Enter. Wait for response.
4. **Say:** "The agent understood my natural language question, called the `get_portfolio_holdings` tool, and returned my actual portfolio data."
> **[MVP-1] Agent responds to natural language queries** — visible: typed question, got answer.
> **[MVP-2] At least 3 functional tools** — first tool shown: `get_portfolio_holdings`.
> **[MVP-3] Tool calls execute and return structured results** — visible: holdings with names, symbols, allocations.
> **[MVP-4] Agent synthesizes tool results into coherent response** — visible: formatted natural language summary, not raw JSON.
### Scene 4 — Multi-Turn Conversation (1:30)
1. In the same chat, type: **"How is my portfolio performing this year?"**
2. Wait for response.
3. **Say:** "This is a second question in the same conversation. The agent maintains conversation history across turns — it knows we were already talking about my portfolio. This used the `get_portfolio_performance` tool."
> **[MVP-5] Conversation history maintained across turns** — visible: second message in same chat, context preserved.
> **[MVP-2]** — second tool shown: `get_portfolio_performance`.
### Scene 5 — Third Tool (2:00)
1. Type: **"Show me my accounts"**
2. Wait for response.
3. **Say:** "That's a third tool — `get_account_summary` — showing account names, balances, and platforms. We've now demonstrated at least three distinct tools."
> **[MVP-2]** — third tool confirmed: `get_account_summary`.
### Scene 6 — Error Handling (2:20)
1. Type: **"Sell all my stocks right now"**
2. Wait for response.
3. **Say:** "The agent gracefully refuses unsafe requests. It explains it's a read-only assistant and cannot execute trades. No crash, no error — just a polite refusal."
> **[MVP-6] Basic error handling / graceful failure** — visible: no crash, friendly refusal message.
### Scene 7 — Domain-Specific Verification (2:45)
1. Scroll to any previous response that contains dollar amounts or percentages.
2. **Say:** "Notice the disclaimer at the bottom of responses with financial figures: 'All figures shown are based on your actual portfolio data. This is informational only and not financial advice.' This is a domain-specific verification — the agent only cites numbers from real tool results and appends a financial disclaimer automatically."
> **[MVP-7] At least one domain-specific verification check** — visible: financial disclaimer on data-bearing responses.
---
## PART 2: Evaluation Suite in Terminal (~1 min)
### Scene 8 — Run Eval (3:00)
1. Switch to terminal (or split screen).
2. **Say:** "Now I'll run the evaluation suite — 10 test cases that verify tool selection, response quality, safety, and non-hallucination."
3. Run:
```bash
AUTH_TOKEN="<your bearer token>" npx tsx apps/api/src/app/endpoints/ai/eval/eval.ts
```
*(To get a token: `curl -s https://ghostfolio-production-f9fe.up.railway.app/api/v1/info | python3 -c "import sys,json; print(json.load(sys.stdin)['demoAuthToken'])"` )*
Or if running against localhost:
```bash
AUTH_TOKEN="<token>" npx tsx apps/api/src/app/endpoints/ai/eval/eval.ts
```
4. Wait for all 10 tests to complete. The output shows each test with PASSED/FAILED, tools called, and individual checks.
5. **Say:** "All 10 test cases pass. The suite checks correct tool selection, non-empty responses, safety refusals, content validation, and non-hallucination."
> **[MVP-8] Simple evaluation: 5+ test cases with expected outcomes** — visible: 10 tests, pass/fail status, 100% pass rate.
---
## Wrap-Up (3:45)
**Say:** "To recap — this is a fully functional AI financial agent built on Ghostfolio. It responds to natural language, invokes 8 tools backed by real portfolio services, maintains multi-turn conversation, handles errors gracefully, includes financial verification checks, passes a 10-case evaluation suite, and is deployed publicly on Railway. Thanks for watching."
---
## Quick Reference: All 9 MVP Requirements
| # | Requirement | Demonstrated In |
|---|-------------|----------------|
| 1 | Natural language queries | Scene 3 |
| 2 | 3+ functional tools | Scenes 3, 4, 5 |
| 3 | Tool calls return structured results | Scene 3 |
| 4 | Coherent synthesized responses | Scene 3 |
| 5 | Conversation history across turns | Scene 4 |
| 6 | Graceful error handling | Scene 6 |
| 7 | Domain-specific verification | Scene 7 |
| 8 | 5+ eval test cases | Scene 8 |
| 9 | Deployed and accessible | Scene 1 |
---
## Before Recording Checklist
- [ ] Browser open, no other tabs visible
- [ ] Terminal ready with eval command prepared
- [ ] QuickTime set to record full screen
- [ ] Deployed site is up (visit URL to confirm)
- [ ] You know the demo URL: `https://ghostfolio-production-f9fe.up.railway.app/demo`
Loading…
Cancel
Save