# IRIS Chat — Pilot Plan
**Version 1.0 · 2026-07-06 · Owner: Von (COO)**

## 1. Objectives
1. Stress-test the capture functions against real doctor phrasing (Taglish, typos, shorthand) and find extraction/masking misses before the Expo build.
2. Validate that chat capture is genuinely faster and easier than the IRIS form flow.
3. Prove **zero confidentiality leaks** in rendered output (the pass/fail metric).
4. Build a feedback→fix→re-test loop that continues into production.

## 2. Waves

| Wave | Who | Size | Duration | Build | Goal |
|---|---|---|---|---|---|
| **0 — Internal** | SFE / marketing / data team | 3–5 | 1 week | Prototype via Claude.ai (works today) | Kill obvious bugs cheaply; rehearse the feedback loop |
| **1 — Friendly MDs** | Selected accredited members (coordinate aliases with KASS) | 5–10 | 2–3 weeks | **Hosted build (requires §5)** | Real phrasing stress test; usability + trust read |
| **2 — Expanded** | +15–25 MDs across ≥3 hospitals | scale | 3–4 weeks | Hosted or early Expo | Volume, edge cases, nudge testing |

Doctor selection for Wave 1: mix of high-frequency and low-frequency reporters, at least one habitual late submitter, and varied phone types/ages.

## 3. Pilot data policy — CRITICAL
**Fictional patients only.** Testers must never enter real patient names during the pilot. The Tester Guide instructs them to invent Match names (e.g., celebrity mash-ups, telenovela characters). Real products/hospitals/aliases in the test dictionaries are fine (Wave 0 uses the demo seed set; Wave 1 uses each MD's real hospital + alias roster loaded by the data team). This lets us stress-test the nets without any real PHI existing anywhere during testing.

## 4. Scripted scenarios (all testers run these, then free-play)
1. Simple single play: one Avatar, all inside, single mode.
2. Mixed source: "6 kenzolin, 2 from mercury" — verify I/O split in the units table.
3. Multi-Avatar one message: two products, different quantities.
4. Patient typed in-message WITH age (incl. deliberate typo: "50urs old", "45/F", "edad 50").
5. Patient typed in-message with NO age → app converts initials; AI asks age only.
6. Patient sharing an MD surname (e.g., "juan reyes") — must never chip as Co-Player.
7. Referral flow: "referred by Dr. <alias-registry name>" → Multiple mode, correct Co-Player.
8. Unknown doctor name → send must block with Unknown Co-Player warning.
9. "Just me" flow — verify no redundant starter/Co-Player question follows.
10. Query round: "what are my plays this Era?", "how many PRAZ this Era?" after 2–3 logged plays.
Then: **free play** — report the way you actually text, misspellings and all. That's the gold.

## 5. Hosting requirement for Wave 1 (IT handoff spec)
The prototype's AI bridge only works inside Claude.ai. For doctors:
- Host the prototype as a static page (Vercel/Netlify/company web server).
- Replace the direct API call with a call to a **backend proxy** (single serverless function is enough): receives masked text + conversation history → calls Anthropic API (`/v1/messages`) with the server-held key → returns the JSON. Key never ships to the browser.
- Proxy rules: never log request bodies; rate-limit per tester token; simple shared pilot token for access.
- Optional at this stage, required for production: banned-word output filter on the proxy.
Estimated effort: ~1 day for IT.

## 6. Metrics
| Metric | Target | Source |
|---|---|---|
| Confidentiality leaks in rendered output | **0 (hard fail if >0)** | Tester reports + transcript spot-checks |
| Extraction miss rate (patient nets) | <10% Wave 1, measured | Feedback log category "Match not converted" |
| Scenario completion without help | ≥90% | Tester guide checklist |
| Median time to log one play | < half of IRIS form flow | Self-reported + observation |
| Redundant AI questions per play | 0 | Feedback log |
| Ease rating (1–5) + "would you switch?" | ≥4 · ≥80% yes | End-of-pilot 5-question survey |

## 7. Feedback loop
1. **In-app 🐞 button** (top-right in the prototype): tester picks a category, describes the issue, taps Copy — a formatted report goes to their clipboard to paste into the **pilot group chat** (Viber/Google Chat, one group per wave) or the Google Form.
2. **Google Form** (create from the same fields as the CSV template) for testers who prefer forms; responses feed the same sheet.
3. **Triage cadence:** Von + data team review twice a week → each item logged in `feedback_log_template.csv` with severity → fixes land in the prototype → "fixed in vX" announced in the group so testers re-test.
4. Every confirmed bug becomes a scripted regression case (CLAUDE.md testing rules).
5. End of each wave: 30-min debrief calls with 2–3 testers; survey to all.

## 8. Timeline (indicative)
- **Week 1:** Wave 0 internal + fixes · IT deploys hosted build in parallel
- **Week 2:** Wave 1 kickoff (short demo video or 10-min call per MD; send Tester Guide)
- **Weeks 2–4:** Wave 1 testing, twice-weekly triage, rolling fixes
- **Week 5:** Debrief, metrics readout, go/no-go for Wave 2 + Expo build start

## 9. Roles
- **Von:** product owner, triage lead, prompt/function fixes via Claude Code
- **IT:** hosting + proxy (§5)
- **Data team:** tester alias/hospital dictionaries, transcript spot-checks
- **KASS:** MD recruitment + comms
