CI / ruff · pytest (pull_request) Successful in 23s
Single entry point app/llm/gateway.py: extract_item, extract_checkin, risk_classify, phrase, summarize_for_doctor. Two-level design: LLMProvider (transport, GigaChat) and LLMTasks (PromptedTasks over a provider, or rule-based MockTasks). Shared policy in the gateway: assert_scrubbed backstop, confidence threshold 0.5, risk failure -> NONE, forbidden-output filter with config/texts/phrases.yaml fallbacks. Refs #7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
config/
Конфигурация клинической логики (ADR-008). Схемы задаёт зона core, значения утверждает психиатр (clinical).
scales/— шкалы: пункты, варианты, градации, флагиrules.yaml— правила алертов и действийmodules.yaml— модули и расписания шкалlexicon/risk_ru.yaml— лексикон рискаtexts/— тексты для пациента (кризисный скрипт, согласие, перефразировки)