Как создаём повестку

Это не редакция из двадцати человек и не опрос читателей. Цифры на морде считаются со склада RSS. Полный текст чужих статей не храним и не рисуем.

Окно склада

На витрине — до 50 последних материалов не старше 30 дней (config/ingest.yml → feed). Аналитика облака / настроения / конфликтов / топа переключается окном 1 / 7 / 30 суток одним рядом, без тройного SQL в /api/pack.

Облако тем

Частота тегов склада за выбранное окно. Размер чипа = доля от лидера. Это не облако интересов профиля в Telegram-боте (/tags).

Настроение

Эвристика lexicon, не языковая модель. POS-теги: ai, llm, science, startups, opensource, products. NEG: security, crypto. Показываем n+, n−, список тегов-весов и окно. Источник — склад, не опрос.

Противостояния

Пары competitors из YAML компаний + ручной список в content.yml. Склад подтверждает пару, если в заголовке окна есть lexicon (vs, иск, запрет…). Режим conflicts_mode: auto | manual.

Топ повестки

Объём упоминаний в окне, не редакционная «важность». Три грани: компании (keyword hit), технологии (теги минус id фирм), персоны (полное имя в заголовке).

Сюжеты ленты

Карточки с одним title_key и n≥2 источников собираются в доску дня. Take — две-три фразы своей трактовки. Клик ведёт на исходник RSS.

Что не делаем