# ✨ Отдавать вычитанный текст рядом с сырым

- **Тип:** feature
- **Категория:** Очередь — Вычитанный текст считается тем же адаптером.
- **Зачем:** Сырая расшифровка идёт без знаков препинания, с повторами и словами-паразитами: читать её подряд тяжело, а другого уровня текста нет.

У записи появляется второй уровень текста — тот же разговор, вычитанный до
читаемого вида.

Вычитку считает та же внешняя модель, что заголовок и темы. Сырой текст
остаётся и не переписывается: уровни лежат рядом, а не поверх друг друга.

## Затрагивает

- колонка литературного текста у задачи и её миграция;
- контракт чтения записи: поле рядом с сырым текстом;
- шаг выводов из текста: ещё одно обращение к модели;
- экран чтения записи: переключение между уровнями;
- ответ бота: какой из уровней уходит в Telegram.

## Критерии приёмки

- У дошедшей до `done` записи есть литературный текст, а сырой остался
  нетронутым. Оракул — тест конвейера на подставной модели: оба поля заполнены,
  сырое совпадает с ответом распознавания.
- Отказ модели на вычитке не роняет задачу и не портит сырой текст. Оракул —
  тест с моделью, возвращающей ошибку: задача в `done`, сырой текст на месте.
- Экран показывает оба уровня с переключением между ними. Оракул — тест экрана
  на подставном API.

## Рамки

Ручной правки текста человеком не делаем — это граница паспорта: сервис отдаёт
машинную вычитку, а редактором не становится. Берётся после
`llm-insights-adapter`: клиент модели заводит она. Выключение уровня настройкой
пользователя сюда не входит — это `settings-applied-in-pipeline`.
