feat(bot): ежедневный чек-ин ветерана, приём лекарств и реакции на правила #55

Merged
Eleboba merged 2 commits from feat/37-veteran-daily into dev 2026-10-03 18:47:53 +03:00
Owner

Что меняется

Ежедневный чек-ин ветерана, напоминания о приёме препарата (принял / пропуск с причиной / побочные эффекты), вопрос о лекарстве через med_qa, реакции на действия правил (med_info, suggest_visit) и вступления к плановым шкалам. Приёмочный тест — 13 дней Андрея на реальных правилах.

Closes #37

Зона

A

Как проверить

make lint test; главный сценарий — uv run pytest tests/test_dialog_veteran_days.py -v.

Заметки

  • app/dialog/actions.py — только аддитивно: хук register_med_info_handler (flow отвечает выдержкой из инструкции; None → прежний шаблон phrase). Остальные файлы движка не тронуты.
  • Вступления к шкалам по scale_due — через точный @on_enter("scale.<id>"), делегирующий общему хуку (движок не передаёт intro для отложенных шкал). Онбординг (#36) не затрагивается.
  • Флаг intake (#53): при intake_enabled() чек-ин делегирует intake.checkin; по умолчанию флаг выключен.
  • Данные для lane B: daily_checkins, doses (status/answered_at/side_effects), dialog_state.data.visit_requests.

Чек-лист

  • rebase на origin/dev
  • make lint + make test зелёные
  • лог в issue (### 2026-10-03)
  • нет ПДн в логах, нет реальных данных, нет секретов
  • общие файлы не менялись

🤖 Generated with Claude Code

## Что меняется Ежедневный чек-ин ветерана, напоминания о приёме препарата (принял / пропуск с причиной / побочные эффекты), вопрос о лекарстве через `med_qa`, реакции на действия правил (`med_info`, `suggest_visit`) и вступления к плановым шкалам. Приёмочный тест — 13 дней Андрея на реальных правилах. Closes #37 ## Зона A ## Как проверить `make lint test`; главный сценарий — `uv run pytest tests/test_dialog_veteran_days.py -v`. ## Заметки - `app/dialog/actions.py` — только аддитивно: хук `register_med_info_handler` (flow отвечает выдержкой из инструкции; `None` → прежний шаблон phrase). Остальные файлы движка не тронуты. - Вступления к шкалам по `scale_due` — через точный `@on_enter("scale.<id>")`, делегирующий общему хуку (движок не передаёт intro для отложенных шкал). Онбординг (#36) не затрагивается. - Флаг intake (#53): при `intake_enabled()` чек-ин делегирует `intake.checkin`; по умолчанию флаг выключен. - Данные для lane B: `daily_checkins`, `doses` (status/answered_at/side_effects), `dialog_state.data.visit_requests`. ## Чек-лист - [x] rebase на origin/dev - [x] make lint + make test зелёные - [x] лог в issue (### 2026-10-03) - [x] нет ПДн в логах, нет реальных данных, нет секретов - [x] общие файлы не менялись 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 2 commits 2026-10-03 18:46:39 +03:00
Daily check-in (mood → dose → sleep/nightmares → alcohol → free text with
extract_checkin, buttons win over the LLM, progressive upsert of
daily_checkins), medication reminder flow (taken / skip with reason /
side effects → doses + daily_checkins), medication question menu via
med_qa, med_info rule reactions from the drug instruction excerpt,
«записаться раньше» request recorded for lane B, friendly intros for
scheduled scales. actions.py: additive med_info handler hook.

Refs #37

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test(bot): Andrey 13-day acceptance scenario and medication flow units
CI / ruff · pytest (pull_request) Successful in 1m3s
2972b330b0
Refs #37

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit 2b7cbb8c2f into dev 2026-10-03 18:47:53 +03:00
Eleboba deleted branch feat/37-veteran-daily 2026-10-03 18:47:53 +03:00
Sign in to join this conversation.