Ежедневный чек-ин ветерана, напоминания о приёме препарата (принял / пропуск с причиной / побочные эффекты), вопрос о лекарстве через med_qa, реакции на действия правил (med_info, suggest_visit) и вступления к плановым шкалам. Приёмочный тест — 13 дней Андрея на реальных правилах.
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)
нет ПДн в логах, нет реальных данных, нет секретов
## Что меняется
Ежедневный чек-ин ветерана, напоминания о приёме препарата (принял / пропуск с причиной / побочные эффекты), вопрос о лекарстве через `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)
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>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что меняется
Ежедневный чек-ин ветерана, напоминания о приёме препарата (принял / пропуск с причиной / побочные эффекты), вопрос о лекарстве через
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_enabled()чек-ин делегируетintake.checkin; по умолчанию флаг выключен.daily_checkins,doses(status/answered_at/side_effects),dialog_state.data.visit_requests.Чек-лист
🤖 Generated with Claude Code