🤒 Sprint 1.2 · M1 PSPA Patient Symptom PA · 25 May - 7 Jun 2026 · MediEco
← Hub ← Sprint 1.1 SPRINT 1.2 Start: 25 May 2026

Sprint 1.2 · M1 Patient Symptom PA

Pasien-facing PA — first impression of MediEco. 3-tier triage (red/amber/green), bilingual chat (Malay/English), symptom intake form, escalation to acute care, pre-arrival chart pre-fill. Built on M9 audit + Patient model from Sprint 1.1.

1. 🎯 Sprint Summary

Sprint1.2 (M1 PSPA · Patient Symptom PA)
Duration25 May - 7 Jun 2026 (2 minggu · 10 working days)
ModuleM1 PSPA — Patient Symptom Personal Assistant
GoalPatient-facing chat UI · 3-tier AI triage (red/amber/green) · symptom intake · escalation logic · bilingual (BM/EN) · pre-arrival chart pre-fill · post-visit follow-up reminders
Capacity4 FTE (2 BE + 1 FE + 1 prompt eng) + 0.5 Founder + 1.0 Doc Zam
Velocity target52 SP — but M1 epic estimated 55 SP (slight overrun risk · scope-trim plan ready)
Blocked bySprint 1.1 (M9 audit + Patient model + auth — all MUST be in main)
BlocksSprint 1.3 (M4 Doctor PA needs M1 chat history + triage output)
Demo date7 Jun 2026 (Friday) · Doc Zam clinical review walkthrough
Sprint motto: "Pasien tak patut tunggu kaunter just to be told ini bukan kecemasan." Triage at home, not at the queue.

2. 🚦 Pre-Sprint Gate Checklist

Run 24 May 2026 (Saturday) before Monday kickoff. Refuse start if any ✗.

  • Sprint 1.1 demo passed · M9 audit + Patient 11-section model in main
  • Auth + RBAC functional · patient role + JWT issuance verified
  • Triage CPG approved by Doc Zam · red/amber/green criteria locked in writing
  • OpenAI API key in vault · gpt-4o-mini quota ≥ 5M tokens budgeted
  • BM symptom corpus seeded · 200+ Malaysian colloquial symptom phrases tagged
  • PII strip function from M9 reusable · symptom logs scrub names/IC before model call
  • Feature flag m1_triage_enabled created · default off until clinical sign-off
  • Citation enforcer guard rail validated · every triage answer must cite CPG source
  • Mobile staging URL ready · m1-staging.medieco.alesa.my (LSWS subdomain)
  • UX flow walked-through dengan Doc Zam · 3 personas mapped (acute / ambulatory / chronic)

3. 📋 Prerequisites

ItemOwnerByWhy
CPG Triage Decision Tree v1Doc Zam23 MayWithout this, AI hallucinates triage tiers
Patient onboarding flow wireframeFE Lead + Doc Zam23 MaySets expectation for 8-screen flow
Tailwind component library v1FE Lead22 MayRe-use Sprint 1.1 design tokens
Phone OTP gateway (WAHA)BE24 MayPatient login = phone+OTP, no email
Bilingual prompt templates v1Prompt Eng24 MayBM-rojak handling + English fallback
Red-flag symptom blocklistDoc Zam23 MayAuto-route to red tier · no AI judgement

4. 🚥 Triage Logic — Locked Specification

3-tier triage with hard-coded blocklist (red) and AI judgement (amber/green). Every classification stored with citation + confidence + Doc Zam-approved CPG ref.

RED · Acute — Auto-classify if any blocklist symptom detected. Bypass AI. Show emergency screen + 999 button + nearest hospital GPS + "Pergi ke kecemasan SEKARANG". Examples: chest pain + shortness of breath, sudden one-sided weakness (FAST stroke), uncontrolled bleeding, anaphylaxis, suicidal ideation, severe pediatric fever <3mo.
AMBER · Same-Day — AI classification. Show: "Doktor patut tengok ko hari ini." Auto-book next available slot at registered clinic. Push WhatsApp reminder. Examples: persistent fever 3+ days, moderate dehydration, painful urination, asthma exacerbation (mild-mod).
GREEN · Self-Care — AI classification. Show home-care advice + red-flag warning signs + "Kalau jadi lebih teruk, balik buat triage semula." Examples: common cold <3 days no fever, mild abdominal pain post-meal, minor abrasion.
Confidence floor: If AI confidence < 75% → escalate to next tier. Never under-triage on uncertainty.
Citation required: Every classification stores cpg_ref (e.g., MOH-CPG-Pediatric-Fever-2024-§4.2) + raw reasoning trace (PII-stripped).
HITL gate: First 100 patient encounters require Doc Zam review within 24h before unlocking auto-classify mode.

5. 📅 Day-by-Day Plan (10 Days)

D1Mon 25 May · Kickoff + Schema
Sprint planning ceremony · finalise SP estimates · DB migration: symptom_intakes, triage_classifications, cpg_citations. Wire phone+OTP auth.
D2Tue 26 May · Patient Onboarding UI
FE: 3-screen onboard (phone OTP, language pick, consent capture). BE: link patient to Patient model from M9. Prompt Eng: BM corpus prep.
D3Wed 27 May · Symptom Intake Chat UI
FE: chat bubble interface · voice input optional · multilingual toggle. BE: streaming response endpoint /api/m1/chat with feature flag gate.
D4Thu 28 May · Red Blocklist Engine
BE: hard-coded blocklist matcher · red-flag detection runs BEFORE LLM call. Unit tests for 50 blocklist phrases (BM + EN). Doc Zam reviews list → sign-off needed end of day.
D5Fri 29 May · Amber/Green Classifier
Prompt Eng: classifier prompt · CPG citation enforcer · confidence threshold logic. BE: integrate gpt-4o-mini · token budget guard. End-of-week demo: red blocklist working.
D6Mon 1 Jun · Acute Escalation Flow
FE: red emergency screen (999 + GPS + map). BE: notify acute physician on-call (M3 Locator stub). Push notif via WAHA WhatsApp.
D7Tue 2 Jun · Same-Day Booking Integration
BE: amber path → query M7 admin slot availability (stub for now) · book + confirm. Pre-arrival chart pre-fill: symptom JSON appended to encounter.
D8Wed 3 Jun · Post-Visit Follow-up Engine
BE: cron job 24h post-encounter · re-engage patient · "Apa khabar today?" feedback loop. Audit log every interaction (M9). End-of-day: feature-flag dry-run with internal team.
D9Thu 4 Jun · HITL Review Dashboard
FE+BE: Doc Zam review console · queued classifications · approve/override/correct buttons. Override feeds back to fine-tune corpus. Acceptance test pass-through.
D10Fri 5 Jun · Hardening + Demo Prep
Bug fix · perf check (cold start < 2s · LLM < 4s p95) · E2E test suite green · staging frozen 5pm Friday. Demo deck prepped for Doc Zam Sat morning review.
+Mon 7 Jun · Doc Zam Demo + Retro
9am demo · clinical sign-off · retro 11am · 1.3 kickoff prep 2pm.

6. 📦 Deliverables

FRItemSPAcceptance
FR-1.1Phone+OTP onboarding (3 screens)5Login < 30s · OTP via WAHA · session token issued
FR-1.2Bilingual chat UI (BM/EN toggle)8Streaming response · markdown render · voice input optional
FR-1.3Symptom intake form (structured)511-section patient profile auto-link · vitals (if wearable)
FR-1.4Red blocklist matcher (hard-coded)550+ phrases · < 50ms detection · 100% recall on tests
FR-1.5AI classifier (amber/green)13gpt-4o-mini · confidence floor 75% · CPG citation mandatory
FR-1.6Red emergency screen3999 button · GPS routing · nearest hospital map
FR-1.7Amber same-day booking5Auto-book M7 slot · WAHA confirmation · chart pre-fill
FR-1.8Green self-care advice3CPG-cited home-care · red-flag warnings · re-triage CTA
FR-1.9Post-visit follow-up cron324h re-engage · feedback NPS · audit log
FR-1.10HITL review dashboard5Queue · approve/override · corpus feedback loop
TOTAL55 SPCapacity 52 SP · scope-trim plan: defer FR-1.9 if Day-9 burn < 30%

7. 👥 Team Capacity

RolePersonAllocationFocus
Eng Lead / BE1.0 FTEAPI + DB + auth integration
BE Dev1.0 FTETriage engine + booking integration
FE Dev1.0 FTEMobile-first chat UI · onboarding flow
Prompt Eng1.0 FTEBM corpus · classifier prompt · CPG enforcer
FounderRosli0.5 FTEArchitecture + clinical alignment + retro
Clinical LeadDoc Zam1.0 FTE (heavy)CPG approval · HITL review · daily 30-min standup
QA0.5 FTEE2E test · blocklist coverage · staging verification
DevOps0.5 FTEm1-staging subdomain · WAHA gateway · OpenAI quota

8. 🔔 Sprint Ceremonies

  • Mon 25 May 9am — Sprint Planning (90 min): SP final · acceptance criteria walk · Doc Zam joins for CPG alignment
  • Daily 9:30am — Standup (15 min): 3 questions per person · blockers escalated immediately
  • Wed 27 May + Wed 3 Jun 4pm — Mid-sprint demo (30 min): show working WIP to Doc Zam · early correction
  • Fri 29 May + Fri 5 Jun 5pm — Weekly retro (45 min): what worked · what didn't · 1 actionable improvement
  • Mon 7 Jun 9am — Sprint Demo (60 min): Doc Zam clinical sign-off + stakeholder walk-through
  • Mon 7 Jun 11am — Sprint Retro (60 min): velocity actual · estimation accuracy · risks for 1.3

9. 🩺 Doc Zam Sign-off Items

  • Triage decision tree v1 — red/amber/green criteria locked, signed PDF in repo
  • Red blocklist phrases (50+) reviewed and approved
  • CPG citation map: each classifier output → MOH-CPG section ref
  • 10 sample triage classifications HITL-reviewed (5 amber + 5 green)
  • Confidence threshold (75%) clinically acceptable
  • Escalation path (acute → emergency screen) tested live
  • Bilingual prompt outputs reviewed for clinical correctness (BM rojak handling)
  • Post-visit follow-up message templates approved
  • Patient consent language reviewed (PDPA compliant)
  • Final demo (7 Jun) — clinical sign-off in writing before 1.3 starts

10. 🎬 Demo Agenda — 7 Jun 2026 9am

TimeSegmentLead
0-5Welcome · Sprint goal recap · velocity actual vs targetEng Lead
5-15Live patient onboarding (phone OTP → consent → first chat)FE Dev
15-25Live triage demo: 1 red (chest pain), 1 amber (fever), 1 green (cold)BE + Prompt Eng
25-35HITL dashboard walk · Doc Zam review consoleFE Dev
35-45Edge cases: BM rojak, low-confidence escalation, pediatric overridePrompt Eng
45-55Audit log + PII-strip check (M9 integration verified)BE
55-60Doc Zam Q&A · sign-off / blocker callDoc Zam + Founder

11. 🛡️ Contingency

RiskTriggerResponse
Velocity overrun (55 vs 52 SP)Day-9 burn < 30%Defer FR-1.9 (post-visit cron) to 2.1 · keep MVP triage path
OpenAI quota exhaustedToken usage > 80%Switch to local Llama 3.1-8B on dev server · degrade gracefully
BM corpus inadequateConfidence < 75% on > 30% queriesAdd 100+ phrases overnight · re-prompt · second-pass
Doc Zam unavailableClinical sign-off slipHITL queue accumulates · feature flag stays off · ship with internal-only
Mobile UX brokenQA finds critical UX bug Day 9Hotfix Day 10 morning · accept 2hr scope cut