Как собирать красивые дайджесты с AI-агентом: связка скиллов и автозапуск
Каждый месяц я собираю для клуба дайджест по индустрии ИИ. Двадцать один экран, три главы, интерактивная хронология, анимированные цифры, все в фирменном стиле кэмпа. Руками такое верстается неделю. У меня это занимает вечер, и почти весь вечер уходит на чтение материала. Оформление собирается само. Ниже разобран весь путь: какой скилл собирает факты, как устроен файл, который держит стиль, что именно говорится агенту при сборке и как поставить всю цепочку на расписание, чтобы дайджест приходил сам.
Дальше встретятся слова скилл, дизайн-токен, cron. Первые два разбираются здесь же по ходу, третий нужен только в последнем разделе, и там лежит готовая строка, которую можно скопировать.
Гайд написан и для вашего ассистента тоже. Откройте Claude Code, дайте ссылку на эту страницу и попросите собрать такую же цепочку под вашу тему.
Что получается на выходе
Начнем с результата, чтобы дальше было понятно, ради чего все это. Вот обложка августовского выпуска.
Открыть дайджест целиком и полистать стрелками. Это один HTML-файл: шрифты и иллюстрации лежат внутри него, поэтому он открывается одинаково у всех, кому вы его отправили, и работает без интернета.
Собирается такая штука из трех независимых частей. Их полезно держать в голове раздельно, потому что каждую можно менять, не трогая остальные.
| Что делает | Чем задается | |
|---|---|---|
| Сбор | Приносит факты по теме со ссылками и цифрами | Готовый скилл, ставится за минуту |
| Оформление | Держит один и тот же вид от выпуска к выпуску | Файл дизайн-токена, пишется один раз |
| Расписание | Запускает первые две части без вас | Рутина у провайдера, cron или GitHub Actions |
Первые две части у меня работают, третья пока запускается руками. Поэтому раздел про автоматизацию написан как разбор трех рабочих способов с командами, и любой из них ставится за вечер.
Шаг 1. Скилл, который приносит факты
Самая скучная часть работы над дайджестом это сбор. Обойти два десятка источников, выписать, что там обсуждали, найти цифры, сохранить ссылки. На этом месте у меня стоит готовый открытый скилл last30days.
Про скиллы как механизм есть отдельный гайд. Коротко: скилл это папка с текстовым файлом инструкции, которая лежит в системе и подхватывается агентом в любом проекте. Внутри описано, что делать по шагам, а рядом могут лежать вспомогательные скрипты.
Этот конкретный скилл обходит Reddit, Hacker News, X, YouTube, TikTok, GitHub, Polymarket, arXiv, Techmeme и веб-поиск. Возвращает он конкретные посты со ссылками, датами и цифрами вовлеченности за окно в тридцать дней. Внутри лежит питоновский движок, который ходит по источникам, и длинная инструкция для модели о том, как из этого собирать текст.
Reddit, Hacker News, GitHub и Polymarket работают сразу и без ключей. X, YouTube и TikTok подключаются отдельно, мастер настройки предлагает это на первом запуске.
Две вещи, которые стоит знать до того, как вы на них наткнетесь.
Источники периодически отваливаются. Соцсети меняют выдачу, ключи протухают, лимиты кончаются. У скилла для этого есть отдельная команда проверки: попросите его прогнать doctor, и он покажет построчно, что работает, что настроено, но ни разу не проверялось, и что сломалось. Полезно запускать перед большим прогоном.
Тишина по источнику и отвал источника это разные вещи. Если X не ответил, честный вывод звучит как по X данных нет. Скилл эти состояния различает и помечает в отчете, и на длинной дистанции это спасает от выводов, построенных на пустоте.
Тема формулируется узко. Запрос про ИИ вернет кашу из всего подряд, запрос про безопасность агентов и побеги из песочницы вернет материал, из которого получается глава.
На выходе получается текст с фактами и ссылками. Дальше начинается вторая часть, где этот текст превращается в то, на что приятно смотреть.
Шаг 2. Дизайн-токен: файл, который держит стиль
Если просто попросить агента сверстать красивую страницу, каждый раз получится новая красивая страница. Другие цвета, другие шрифты, другие скругления. Модель выбирает оформление заново на каждом запуске, и узнать в результате себя невозможно.
Лечится это одним файлом. Дизайн-токен это список переменных оформления, за пределы которого агенту выходить нечем. Вот фактическое начало того файла, по которому собран дайджест из этого гайда.
Двенадцать переменных. Столько же примерно и должно быть: когда их за двадцать, агент начинает выбирать наугад, и смысл файла теряется.
Как такой файл рождается
Механика простая и повторяется для любого бренда.
Первое: отдаете все, что уже есть. Сайт, старые презентации, гайдлайн, макеты из Фигмы, любимые референсы. Просите агента выписать оттуда фактические значения в один файл. Он делает это быстрее и точнее, чем человек с пипеткой.
Второе: сокращаете. Из выписанного остается минимум: два фона, три градации текста, один акцент, две гарнитуры, пара радиусов, один горизонтальный отступ. Все, что не пережило сокращение, было украшением.
Третье: называете по роли. Имя --yellow живет ровно до смены палитры, имя --accent переживет ее. Мне удобнее физические имена, потому что кроме меня токен никто не редактирует, и здесь важнее договориться с собой один раз.
Четвертое, самое важное: пишете раздел запретов. Он работает сильнее раздела с пожеланиями, потому что модель по умолчанию тянет в сторону украшательства.
Проверяется механически: попросите агента поискать в готовом файле цвета вне списка. Если нашлись, правило дописывается и остается в файле навсегда.
Дальше этот файл лежит рядом с проектом и подключается к каждой сборке. Точно та же механика работает при настройке дизайна сайта с агентом и при генерации презентаций, там дизайн-система живет внутри скилла и описывает стиль картинок.
Стиль держится сам, когда описан один раз и лежит в файле. Все остальное это попытка вспоминать его каждый раз заново.
Шаг 3. Сборка: два скилла подряд в одном окне
Дальше вы приходите в Claude Code. Терминал или нативное приложение, разницы нет: скиллы и файлы там одни и те же. И вызываете скиллы по очереди.
Первый вызов приносит материал. Второй превращает его в страницу.
Второй промпт длинный намеренно. Он описывает поведение страницы, а вид целиком берется из токена.
Что стоит проговорить агенту прямо, потому что само оно не появится.
Один экран - одна мысль
Модели охотно набивают экран шестью пунктами. В дайджесте это убивает чтение, поэтому правило про один тезис на экран лежит в промпте. Заголовок, подзаголовок, три карточки максимум.
Интерактив вместо мелкого текста
Хронология из семи событий с описаниями это стена текста. Те же семь событий раскрывающимися строками читаются за минуту: сначала видно скелет, детали открываются по клику.
Сравнения показываются
Две цифры рядом это повод для полос. Полоса рисуется теми же переменными: акцент на первой, чернила на второй, волосяная линия на дорожке.
Ритм светлого и темного
Двадцать одинаковых экранов подряд усыпляют. В токене два фона, и этого хватает: обложка, разделители глав и финал темные, содержательные экраны светлые. Читатель видит структуру, ни разу о ней не думая.
Шрифты внутри файла в base64 дают вес. Дайджест из примера весит 2,8 МБ, и это нормально для одного файла, который открывается офлайн. Если вес критичен, шрифты подключаются ссылкой и файл худеет до сотен килобайт, но тогда без интернета он выглядит иначе.
Дальше идут обычные круги правок: посмотрели, сказали что не так, правило уехало в файл. Каждая правка, сформулированная как правило, экономит следующий выпуск. Ровно поэтому второй дайджест собирается вдвое быстрее первого.
Шаг 4. Как получать это каждый день
До сих пор цепочку запускал человек. Теперь самое интересное: как сделать так, чтобы дайджест собирался сам и приходил утром готовым.
Способов много, разберем три рабочих. Они складываются друг с другом, поэтому смотрите на них как на детали конструктора.
Способ 1. Расписание на стороне провайдера
Самый быстрый вход. У агентских инструментов появились облачные рутины: вы описываете задачу словами, задаете время, дальше агент просыпается сам в облаке, выполняет промпт и присылает результат. Своя машина при этом может быть выключена.
Время лучше брать не круглое. В 9:00 просыпаются рутины всех пользователей планеты разом, в 8:57 очередь короче.
Плюс очевиден: поднимать нечего вообще. Минус в том, что вы привязаны к одному провайдеру. У ChatGPT такой механизм называется задачами по расписанию, у остальных свои названия и свои ограничения по длительности и количеству. Схема работает, пока задача укладывается в один разговор. Многошаговая сборка с сохранением файлов на диск уже просит второй способ.
Способ 2. Cron и headless-запуск CLI
Главный универсальный путь. Агентские CLI умеют работать без человека: вы передаете промпт параметром, агент выполняет его молча и завершается. Это ровно то, что нужно расписанию.
Скрипт целиком выглядит так.
Файл со ссылками решает главную проблему ежедневного дайджеста: без него вы каждое утро читаете одни и те же три новости.
Расписание ставится одной строкой.
Здесь же лежат все грабли, поэтому по порядку.
Ноутбук спит. Cron на макбуке не выполнит задачу, если крышка была закрыта, и пропуск не догонит. Штатное решение на macOS это launchd: агент с ключом StartCalendarInterval запускает пропущенную задачу при пробуждении. Если дайджест нужен железно каждый день, его место на VPS за пару сотен рублей в месяц.
Окружение пустое. Cron запускается без ваших переменных, поэтому ключи кладутся в отдельный файл и подгружаются явно, как в скрипте выше. Половина неработающих автоматизаций ломается ровно здесь.
Падения тихие. Скрипт, который молча не отработал, вы заметите через неделю. Лог обязателен, а лучше короткое сообщение себе при ненулевом коде возврата.
Прогон стоит денег. Ежедневная сборка это ежедневные токены. Считайте это до того, как поставите расписание на каждый час.
Схема не привязана к Claude. Строка запуска меняется на codex exec или на gemini -p, скилл ставится через npx, остальное остается как есть.
Тот же скрипт живет в GitHub Actions: расписание задается в файле workflow, ключи лежат в секретах репозитория, результат уходит в Telegram или коммитится в репозиторий. Оговорка одна: время запуска в Actions плавает на несколько минут, а при высокой нагрузке запуск может быть пропущен.
Способ 3. Доставка в Telegram
Файл, который лежит в папке, читать никто не будет. Доставка решается одной строкой в конце скрипта: бот кладет готовый дайджест вам в личку.
Заводите бота у BotFather, получаете токен, узнаете свой chat_id, дописываете отправку.
Тот же ход работает для канала: подставьте вместо личного chat_id идентификатор канала, где бот админ, и дайджест начнет выходить публично.
С телефона HTML-файл из Telegram открывается через внешний браузер, и это иногда неудобно. Если дайджест читается в основном с телефона, выкладывайте страницу на статичный хостинг и присылайте ссылку. Дополнительный плюс: ссылку можно переслать коллеге.
Из этой же точки достраивается что угодно: письмо на почту, файл в облачную папку, страница в базе знаний. Мы, например, складываем выпуски в общее хранилище, чтобы по ним потом искать, и это уже история про второй мозг. Разбор переписки в клубе живет по соседству, там чат превращается в базу знаний через NotebookLM.
Что выбрать
- Попробовать за десять минут - облачная рутина. Ничего не поднимаете, задача описывается словами.
- Сделать надежно и по-своему - cron на VPS плюс отправка в Telegram. Вечер работы, дальше работает само.
- Нужен только результат в чате - рутина плюс бот, без своей машины и без сервера.
Что дает эта связка, кроме дайджеста
Цепочка собрана из трех кусков, и каждый переиспользуется отдельно. Токен, который держит стиль дайджеста, точно так же держит стиль отчета для клиента, страницы с итогами квартала, инструкции для команды. Скилл сбора подключается к любой теме: к нише, конкурентам, отзывам, вакансиям. Расписание запускает любой сценарий, который вы уже умеете выполнять руками.
Отсюда правило, которое я повторяю на кэмпе чаще остальных. Автоматизируется только то, что вы хотя бы раз сделали руками и остались довольны результатом. Сначала соберите один выпуск в диалоге, доведите его до вида, который не стыдно отправить, и только потом ставьте расписание. Иначе вы получите ежедневную доставку того, что вам не нравится.
На кэмпе Точки над ИИ мы собираем такие цепочки на задачах участников: у кого-то это утренняя сводка по рынку, у кого-то еженедельный отчет для руководителя, у кого-то дайджест по своей нише для канала. Личная эффективность плюс AI начинается как раз с этого: убрать из недели повторяющуюся работу, которую человек делает руками просто по привычке.
Частые вопросы
- Из чего состоит автоматический дайджест?
- Из трех частей. Сбор фактов делает скилл: он обходит источники и возвращает посты со ссылками и цифрами. Оформление держит файл дизайн-токена с палитрой, шрифтами и запретами. Расписание запускает первые две части без вашего участия. Каждая часть меняется отдельно от остальных.
- Какой скилл собирает данные для дайджеста?
- В этом кейсе открытый скилл last30days. Он обходит Reddit, Hacker News, X, YouTube, TikTok, GitHub, Polymarket, arXiv, Techmeme и веб-поиск и отдает конкретные посты со ссылками, датами и цифрами вовлеченности за окно в тридцать дней. В Claude Code ставится через plugin marketplace, в остальных агентах через npx skills add.
- Нужны ли API-ключи для сбора материала?
- Reddit, Hacker News, GitHub и Polymarket работают сразу и без ключей. X, YouTube, TikTok и часть остальных источников подключаются отдельно, мастер настройки предлагает это на первом запуске. Состояние источников проверяется командой doctor: она показывает, что работает, что настроено без проверки и что сломалось.
- Что такое дизайн-токен и зачем он нужен?
- Файл с переменными оформления: два фона, три градации текста, один акцент, две гарнитуры, радиусы, отступы. Агент верстает только этими значениями. Без такого файла каждая новая страница выходит в новом стиле, потому что модель выбирает цвета заново на каждом запуске. Рядом с переменными полезно держать раздел запретов, он работает сильнее списка пожеланий.
- Как получать дайджест каждый день автоматически?
- Три рабочих пути. Облачная рутина у провайдера модели: агент просыпается сам и присылает результат, своя машина не нужна. Cron или launchd на своей машине либо на VPS с headless-запуском CLI: одна строка расписания и один скрипт. Доставка готового файла в Telegram через Bot API одним запросом в конце скрипта.
- Можно ли обойтись без своего сервера?
- Да. Облачная рутина внутри подписки на модель не требует ничего своего. Второй вариант без сервера это GitHub Actions с расписанием: агент запускается в чужом раннере, ключи лежат в секретах репозитория, результат уходит в Telegram. Оговорка: время запуска в Actions плавает на несколько минут.
- Работает ли схема не в Claude?
- Да. Скиллы понимают Claude Code, Codex, Cursor, Gemini CLI и другие агенты с поддержкой формата Agent Skills. Дизайн-токен это обычный текстовый файл. В способе с cron меняется одна строка: вместо claude вызывается codex exec или gemini.
- Почему именно HTML?
- Одностраничный HTML открывается в любом браузере и на телефоне, живет одним файлом и поддерживает интерактив: раскрывающиеся блоки, анимацию цифр, навигацию стрелками. Шрифты кладутся внутрь файла, поэтому документ выглядит одинаково у всех получателей и работает офлайн. PDF из такой страницы делается печатью, когда он нужен.
Что запомнить
- Дайджест собирается из трех независимых частей: сбор фактов, оформление, расписание. Менять их можно по отдельности.
- Сбор закрывается готовым скиллом. last30days обходит два десятка источников и возвращает посты со ссылками и цифрами за тридцать дней.
- Часть источников работает без ключей, остальные подключаются мастером. Перед большим прогоном полезно прогнать проверку doctor.
- Стиль держит файл дизайн-токена: около двенадцати переменных плюс раздел запретов. Больше двадцати переменных, и агент начинает выбирать наугад.
- Токен рождается из того, что уже есть: агент выписывает значения из сайта и старых материалов, вы сокращаете до минимума.
- Сборка это два вызова подряд в одном окне: скилл приносит материал, второй промпт описывает поведение страницы.
- Один экран - одна мысль. Хронология раскрывающимися строками, сравнения полосами, ритм светлого и темного вместо двадцати одинаковых экранов.
- Расписание ставится тремя способами: облачная рутина у провайдера, cron с headless-запуском CLI на своей машине или VPS, GitHub Actions для тех, у кого машины нет.
- Грабли автоматизации всегда одни: пустое окружение в cron, спящий ноутбук, тихие падения без логов и повторы одних и тех же новостей без файла со ссылками.
- Автоматизируйте только то, что уже собрали руками и остались довольны. Иначе получите ежедневную доставку того, что вам не нравится.
Такая цепочка перестает быть проектом примерно на втором выпуске. Дальше это просто утренний файл, который приходит сам и который приятно открыть.
На кэмпе Точки над ИИ мы собираем ее на ваших задачах: от сводки по рынку до отчета для руководителя, вместе с дизайн-токеном под ваш бренд.