docs: план Спринта 2.5 — доработки после пилота

По итогам Спринтов 1–2 накопился технический долг и несколько косяков,
которые видно при живой работе в «Песочнице». Выделяем промежуточный
спринт-доработок перед заходом на Спринт 3:

- Качество RAG: чанкер тащит в базу markdown-ссылки, блоки навигации
  вроде «Вернуться на:», дубликаты меню — из-за этого в LLM уходит
  мусор вместо полезного контекста.
- UI: ответ ассистента рендерится plain text с сырыми ** и дефисами
  списков — в чате это читать тяжело.
- Системный промпт зашит в services/llm_client.py — перед Спринтом 3
  (редактор промпта) его логично вынести в отдельный файл.
- Логи: logger.exception сейчас съедается конфигом uvicorn, traceback
  при 500-х не виден — диагностика вслепую.
- README не обновлялся с init-коммита, не отражает ни Спринта 1, ни 2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
AR 15 M4
2026-04-23 10:43:41 +05:00
parent 22ac40450f
commit 835c0b3cc3
+29
View File
@@ -87,6 +87,35 @@
---
## Спринт 2.5. Доработки после пилота Спринтов 1–2
### Цель
Закрыть технический долг, накопленный за первые два спринта: почистить чанки от markdown-мусора, сделать ответ агента читаемым в UI, подготовить системный промпт к вынесению в редактор (Спринт 3) и навести порядок в логах и README.
### Статус: ⏳ Запланирован
### Задачи
**Качество RAG:**
- [ ] Почистить чанки: убрать markdown-ссылки `[текст](url)`, блоки навигации `**Вернуться на:**`, дубликаты меню; добавить нормализацию/переиндексацию текущей базы (или documented reindex procedure)
**UI:**
- [ ] Markdown-рендер ответов ассистента в «Песочнице» (жирный, курсив, списки, код); реплики пациента оставить plain text
**Системность:**
- [ ] Вынести системный промпт из `services/llm_client.py` в отдельный файл (например, `prompts/system_prompt.md`), загружать при старте — задел под Спринт 3
- [ ] Привести логи в порядок: настроить root-logger так, чтобы `logger.exception` писался в stderr/файл; не ломать uvicorn access/error
- [ ] Обновить `README.md` под текущее состояние: две страницы, `/chat` + `/threads`, SQLite + Alembic, как запустить и как мигрировать
### Критерий готовности
- [ ] Загружаем свежую wiki-статью → в её чанках нет markdown-ссылок и блоков «Вернуться на:»
- [ ] На «Песочнице» ответ агента рендерится с жирным/курсивом/списками
- [ ] Системный промпт хранится в отдельном файле, правится без трогания кода
- [ ] При ошибке в `/chat` в логах виден читаемый traceback
- [ ] README описывает актуальное состояние (две страницы, эндпоинты, запуск, миграции)
---
## Спринт 3. Настройки агента: системный промпт и правила
### Цель