Files
PTSRaiAgent/CLAUDE.md
T
ElebobaandClaude Opus 5.5 b4731fb1d6
CI / ruff · pytest (pull_request) Successful in 22s
chore(core): stage 1 contracts — dialog, API schemas + fixtures, integrations, monitoring, modules
Freeze interfaces between lanes A (bot), B (backend), C (dashboard) so three developers work in
parallel without touching each other's files: dialog Event/Reply + engine registry with echo stub,
integration protocols with in-memory defaults, MonitoringService with noop stub, /api/v1 schemas
with fixture-backed routes, frozen main.py wiring, config/modules.yaml + due_scales(), DAR-5,
tzdata, Andrey trajectory, lanes in WORKFLOW, ADR-010.

Refs #34

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 15:22:25 +03:00

6.0 KiB
Raw Blame History

CLAUDE.md — Руководство для Claude Code

⚡ ПЕРВОЕ ДЕЙСТВИЕ В КАЖДОЙ СЕССИИ

set -a; . ./.env 2>/dev/null; set +a

Переменные: GITEA_USER (кто я), GITEA_TOKEN (секрет — в чат не печатать), GITEA_URL, GITEA_REPO.


Что мы строим

Хакатон MedITron, кейс SberMed AI «ИИ-помощник пациента». Сопровождение восстановления между визитами к врачу при ПТСР и депрессии (фокус — ветераны СВО и их семьи): мониторинг после обращения + управление приёмом лекарств. Общее ядро + модули veteran / depression / family. Фокус хакатона — ветераны СВО (эпик #35, демо — ветеран Андрей); семьи и общая популяция — опциональные направления на будущее (ADR-010). ИИ не ставит диагнозы и не лечит: LLM извлекает данные и формулирует реплики, риск и алерты решают детерминированные правила, клинические решения — врач.

Дедлайн: пн 05.10.2026, 13:00 МСК. Критерии жюри: работоспособность, функциональность, дизайн, клинико-экономика, клиентский путь.

Язык общения — русский. Код, идентификаторы, коммиты — английский. Тексты для пациента — в config/texts/, не в коде.


Карта документации

Задачи — в Gitea Issues, не в файлах.

Файл О чём
docs/info/SPEC.md Исходная спецификация: право (152-ФЗ, 323-ФЗ), архитектура, модель данных, шкалы, LLM-контракт, FSM
docs/info/CLINICAL_MODULES.md Ядро + модули: шкалы, расписания, триггеры, обоснования
docs/DECISIONS.md ADR — отступления от SPEC. При конфликте важнее SPEC
docs/product/ Идеи команды, демо-персона и сценарий, требования хакатона
docs/source/ Кейс SberMed AI, концепция и CJM (pdf + txt)
docs/dev/WORKFLOW.md Регламент: зоны, жизненный цикл, worktree, ветки, PR
docs/dev/GITEA_API.md Gitea API: issue, PR, зависимости
docs/dev/ISSUE_TEMPLATE.md Шаблон тела issue

Guardrails

Мнемоника: обезличь, проверь безопасность, реши правилом, спроси часы, запиши в аудит.

# Правило Где
1 В LLM — только текст после scrub(), только через app/llm/gateway.py app/core/privacy.py
2 Safety-проверка до LLM на каждом входящем; acute → фиксированный скрипт, LLM не вызывается app/core/safety.py
3 Скоринг и алерты детерминированы, «действия агента» — выход правил (ADR-007) app/core/rules.py, config/rules.yaml
4 Время — только app.core.clock (демо-часы, ADR-005) app/core/clock.py
5 identity и clinical — разные БД, связь через HMAC-токен; clinical-код не импортирует identity app/db/
6 Каждое обращение врача к данным → audit_log app/db/audit.py
7 Пороги, шкалы, тексты, лексикон — в config/ (ADR-008) config/
8 Только синтетика; логи без ПДн и без сырого текста; секреты только в .env —
9 Никаких зарубежных API: LLM = GigaChat или mock; офлайн по умолчанию (ADR-004) app/llm/
10 Одна задача = одна зона; make lint && make test перед PR docs/dev/WORKFLOW.md

TL;DR — командная работа

  1. .env — первым делом.
  2. Задача = Issue в Gitea. Нет issue — нет кода.
  3. Зоны — слои, а не направления: lane A бот · lane B backend · lane C дашборд (владение файлами — docs/dev/WORKFLOW.md). Контракты между ними заморожены (#34) — правка только PR [contract].
  4. Задача = свой worktree (.claude/worktrees/<issue#>-<slug>), ветка от origin/dev — до первого изменения. PR в dev; main — только человек.
  5. Завершил → сразу push + PR, после зелёного CI можно мержить самому (хакатон).
  6. Лог — в тело issue (### YYYY-MM-DD); архитектурные решения — в docs/DECISIONS.md.

Запуск

cp .env.example .env
make up        # docker compose: postgres + app (API, бот) + dashboard; LLM_PROVIDER=mock по умолчанию
make seed      # синтетические пациенты и демо-сюжет
make lint test

Дашборд и демо-консоль: http://localhost:8501 · API: http://localhost:8000/docs

Telegram используется только для прототипа на синтетических данных; прод-канал — MAX / Госуслуги.