46 lines
3 KiB
Markdown
46 lines
3 KiB
Markdown
# Demo MVP Spec Gap Analysis — 2026-06-11
|
||
|
||
Spec: docs/superpowers/specs/2026-06-07-signal-demo-mvp-design.md. Read-only analysis by background agent.
|
||
|
||
## DONE
|
||
- Visit date priority chain — _resolve_visit_date() coverage_calculator.py:167-183 (CSV > Supabase confirmed > shipment−30d estimate)
|
||
- 6-month validation — _compute_visit_flag() + /api/confirm-visit main.py:511-523
|
||
- 90/60/45 tier system + urgency sort — _compute_priority() coverage_calculator.py:203-224
|
||
- 45-day prescriber outreach flag — FLAG_ACTIONS RENEWAL_CRITICAL
|
||
- Confirm Visit workflow end to end — modal, persistence, recompute, live row update, persists across imports
|
||
- Full 5-item payer-dependent doc state machine — doc_state_machine.py matches spec exactly
|
||
- Cascade on expanded row + 5-dot status bar — WorklistTable.jsx:260-293, DocStatusBar.jsx
|
||
- Transfer detection via Transfer_From column — normalizer.py:75-78, TRANSFER_PENDING short-circuit
|
||
- CSV test suite — 50 files (PA+NJ), parameterized generators, market_data.json
|
||
- Legal drafts — pitch/legal/ (LOI, NDA, BAA)
|
||
|
||
## PARTIAL
|
||
- Status labels deviated from spec — RESOLVED 2026-06-11: locked to At Risk / Action Needed / On Track / Clear to Ship everywhere (see quality review doc)
|
||
- Supply Lapsed alert banner — sorts to top, no banner component
|
||
- Estimated label wording — spec's "Estimated — verify with prescriber office" not in UI
|
||
- Cascade format — all-gaps list vs spec's single chain (deliberate redesign, commit ff657f4)
|
||
- Per-item recommended actions in expanded checklist — live in cascade lines only
|
||
- Cycle reset via re-import — recompute works, but NO diff vs previous import; CSV visit dates not persisted to confirmed_visits
|
||
- Transfer clearing — "Verify Docs" button has no onClick handler
|
||
- MFA on admin accounts NOT VERIFIED; attorney review of LOI/NDA pending
|
||
|
||
## NOT BUILT
|
||
- Patient-disappeared-from-import flag (needs import diff: persistence.py previous batch load, main.py compare + new flag, frontend badge)
|
||
- Transfer detection via history gap (same import-history dependency)
|
||
- Duplicate patient_id detection in one file (normalizer.py has none; collapses silently)
|
||
- Watcher Agent (nothing exists; demo needs it only as talking point)
|
||
- 6 pilot questions in /pilot-prep skill (zero present)
|
||
|
||
## Empty-state / status legend
|
||
Spec does NOT cover either — no overlap, safe to build separately. EmptyState.jsx exists (no CSV guidance); zero "legend" hits in signal-ui/src. Maps directly to the last PARTIAL pilot-readiness item.
|
||
|
||
## Recommended build order
|
||
1. Status legend + empty-state guidance (clears pilot readiness to 13/13)
|
||
2. Pilot-prep skill questions (5-minute edit)
|
||
3. Import diff package: previous-batch lookup, disappeared flag, persist CSV visit dates ("Signal gets smarter every import")
|
||
4. Wire Verify Docs transfer clearing
|
||
5. Duplicate patient_id flagging
|
||
6. Watcher Agent (trail)
|
||
7. Parallel ops: MFA verification, attorney review
|
||
|
||
Beyond-spec already built: column mapping review UI (CSVImport.jsx) — spec Sec 12 excluded it; no action.
|