# ✨ Показывать заголовок в списке, отбирать список по темам и считать токены

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

Выводы из текста становятся видны человеку и владельцу: заголовок в списке,
отбор по темам, стоимость числом. Сами уровни считает `llm-insights-adapter`,
показать их некому: экран списка написан раньше и знает только первые слова
расшифровки.

Берётся после `llm-insights-adapter`: пока заголовков и тем нет, показывать и
отбирать нечего.

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

- контракт списка записей: заголовок в элементе и отбор по теме параметром
  запроса;
- экран списка — вместо первых слов расшифровки заголовок, и отбор по теме;
- индекс по темам в хранилище, если отбор без него читает всю выборку;
- `internal/metrics` — число обработанных записей и число токенов языковой
  модели;
- `docs/architecture.md`, раздел эксплуатации — что означает счётчик токенов.

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

- В списке у записи с заголовком показан заголовок, а не первые слова
  расшифровки; у записи без заголовка — прежнее поведение. Оракул — тест экрана
  на подставном API с обеими записями.
- Список отбирается по теме и отдаёт только записи с ней. Оракул — тест API:
  выборка по теме из трёх записей возвращает одну.
- Расход языковой модели виден числом: сколько записей обработано и сколько
  потрачено токенов. Оракул — тест шага на подставной модели: оба счётчика
  выросли на значения из ответа.

## Рамки

Поиска по тексту расшифровки не делаем — отбор идёт только по темам. Разбивку
расхода по пользователям считает `usage-accounting`, здесь метрика общая.
