← всі звіти · med-detective-top5-fixes-plan-2026-05-01.md

Med Detective top-5 fixes — детальний план для апруву

2026-05-01. Узгодження ПЕРЕД роботою. Med Detective = продакшн (вже відданий лікарям на тест), prod-лінк /med-detective/. Жодна зміна не йде у prod без проходження test-інстансу + ОК Сергія. Blue/green: правки робляться у /srv/projects/med-detective-test/ (port 8766, Redis DB 4 — поточно вказує prod), потім swap Caddy.

Поточний mapping (перевірено): /med-detective/ → 127.0.0.1:8766 (нова версія) · /med-detective-test/ → 127.0.0.1:8765 (стара). Перед стартом треба rsync prod→test (або swap назад), щоб правити ізольовано.


Фікс 1. Groq Judge backend

Що змінюється

Що НЕ змінюється

Тестування

  1. Локально: викликати judge(session_id) на готовий case_01 → перевірити що JSON приходить, рубрика 100, all 5 keys присутні (diagnosis_score, history_score, plan_score, …).
  2. Latency: міряти time 5 викликів, очікую <500ms vs зараз 15s.
  3. Якщо Groq падає (rate limit/down) → fallback на Replicate автоматично.

Ризики

Оцінка

2-3 год (1 год імплементація + 1 год тестування + 0.5 год promote).


Фікс 2. Lead Capture (email modal → Supabase)

Що змінюється

Що НЕ змінюється

Тестування

  1. Відкрити кейс, дойти до результату, відкрити модалку, ввести email → перевірити що рядок з'явився у Supabase і email прийшов на серверні логи.
  2. Невалідний email → frontend-валідація показує помилку, ендпоінт не викликається.
  3. Без consent → submit заблокований.
  4. Дубль (той самий email + session_id) → backend has UNIQUE constraint, повертає 409 — UI показує «Вже надіслано».

Ризики

Оцінка

3-4 год (1 год Supabase setup + 1 год backend + 1 год frontend + 0.5 год тестів).


Фікс 3. GA4 + custom events

Що змінюється

Що НЕ змінюється

Тестування

  1. GA4 DebugView — побачити events у реальному часі.
  2. Прогнати один cycle, перевірити що всі 6 events стрельнули.
  3. Перевірити що cookies (consent) поважаються — GA4 не пише без consent.

Ризики

Оцінка

2 год (0.5 год GA4 setup + 1 год events + 0.5 год тестів).


Фікс 4. Investigation Panel — повна версія

Контекст

MVP вже зроблений 19.04 (синя кнопка «Замовити обстеження» + модал з категоріями + результати як system-bubble). Дизайн повної версії: /srv/projects/med-detective-test/docs/investigation_panel_design.md.

Що в плані повної версії (що додаємо)

Що НЕ змінюється

Тестування

  1. Відкрити Investigation Panel, перевірити tab/search.
  2. Замовити 5 тестів → лічильник працює.
  3. Перевірити графік ЕКГ (case_03) рендериться у chat-bubble.
  4. Reset → стан очищується.

Ризики

Оцінка

MVP-додатки (tab/search + cost meta + UI цифри): 2-3 год. Повна версія з бюджетом + графіками + Reset: 7-8 год. Пропоную MVP-додатки спочатку, повна версія другим етапом.


Фікс 5. Gamification MVP

Що змінюється

Що НЕ змінюється

Тестування

  1. Відкрити кейс day 1 → завершити → streak = 1.
  2. Через 24 год → новий day → streak = 2.
  3. Пропустити день → reset до 0.
  4. Daily quest: пройти один кейс, потім спробувати другий — UI блокує.
  5. CME PDF — згенерувати, відкрити у readers (Chrome PDF viewer + Acrobat) — щоб не зламана була верстка.

Ризики

Оцінка

1-2 дні (8-12 год).


Бонус (нижчий пріоритет, без апруву поки що)

Health-anxiety trigger уніфікація

Додати field patient_anxiety: bool у case schema (backend/cases/*.json), валідатор перевіряє. Час: 2 год. Чекає Сергія: чи додавати у всі 11 кейсів, чи лише там де реально патерн «сам себе налякав»?

Gender balance +3 case з чоловіками 45+

Створити case_12 (ХБН/протата), case_13 (подагра), case_14 (tinnitus). Через Case Builder Crew. Час: 1 день. Чекає: Сергій підкаже які product-targets.

Real product photos

5 SVG placeholders (Forteza Spray, Menopace Plus, ZEST MgB6, Argett Sport, ProFLEX Osteo) → реальні webp. Час: 1 год. Чекає: Сергій надсилає фото або URLs з brandsite'ів.


Підсумкова оцінка

Фікс Час Ризик Залежності
1. Groq Judge 2-3 год низький Groq API key від Сергія
2. Lead Capture 3-4 год середній Supabase credentials, Privacy Policy
3. GA4 events 2 год низький GA4 measurement ID
4. Investigation Panel (a-MVP) 2-3 год низький
4. Investigation Panel (b-full) 5-6 год середній дизайн графіків ЕКГ
5. Gamification 8-12 год низький юридична назва сертифіката

Загалом: ~25-30 год роботи. Можна розбити на 5 sprint'ів по фіксу.

Що мені потрібно від Сергія перед стартом

  1. Groq API key — або зареєструвати, або сказати «беремо тільки Replicate, Groq поки відкласти»
  2. Supabase credentials — використовуємо lunar-hubble.env (вже у passepartout) як шаблон, чи створюємо окремий project? Створення займе 5 хв.
  3. GA4 Measurement ID — який саме (новий property, чи об'єднуємо з biogaia-story?)
  4. Privacy Policy текст для Lead Capture — є готовий, чи треба написати?
  5. Юридичну назву сертифіката — «CME сертифікат» (потребує акредитації) чи «Свідоцтво про проходження»?
  6. Порядок: робити всі 5 паралельно чи послідовно? Я б порадив послідовно: 1 → 3 (швидкі) → 4a → 2 → 4b → 5.
  7. Перед стартом swap test/prod або rsync prod→test — ОК на rsync prod→test зараз (синхронізує test-інстанс зі станом prod), потім правки тільки у test, після ОК — swap у prod.

Що НЕ роблю без подальшого ОК

Пиши «погнали по N» — і починаю. Або «всі 5 послідовно з пунктом 1».