Bollywood HungamaDisha Patani turns entrepreneur, launches clothing brand DZ with oversized and space-inspired designsPunchArgentine football fan jailed for threatening Di Maria over returnThe Jerusalem PostAI could accelerate quantum computing breakthrough, Bank of America strategist saysInquirerVelasco’s ‘ex-driver’ appears at NBI, alleges he delivered cash suitcases to DuterteZDF heuteAktuelle Pressemitteilungen des ZDFDaily MaverickHOUSEHOLD SQUEEZE: Fuel levy cut offers brief relief as food basket outpaces SA’s unchanged SRD grantХабрПоддержка нескольких реляционных СУБД в одном проекте: PostgreSQL и MSSQLUOLVolkswagen registra prejuízo trimestral de ? 5,8 bilhõesColliderChris Pratt Officially Returns to Streaming in 1 Month With New Military ThrillerThe RegisterMatrix takes sovereign messaging into the realm of the tech giantsWirtualna PolskaProdukowali "kokainę dla ubogich". Grozi im nawet 20 lat więzieniaRMF24W tych polskich gminach żyje się najgorzej. Oto wyniki rankingu
The Daily Newsstand · Free, Always
Thursday, October 29, 2026

Как я сделал SlideCraft: от одного промпта до презентации для топ-менеджеров

Translate

Один и тот же заголовок помещался в HTML, а в PowerPoint переносился на другую строку. Я рассчитывал, что для генератора презентаций хватит размеров текстового блока и метрик шрифта. Пришлось измерять поведение самого PowerPoint: как он округляет ширину символов, рисует глифы и выбирает место переноса.

Это оказалось одной из самых сложных частей SlideCraft — инструмента, который я сделал для подготовки управленческих презентаций с помощью ИИ. Пользователь описывает задачу агенту, согласует структуру и получает редактируемый .pptx. За этим стоят правила построения аргумента, макеты с ограничениями на текст и проверки результата.

Расскажу, какие правила удалось превратить в код, где генерация сломалась на реальных проверках и как агенты помогли подготовить ролик для первого запуска.

Почему я взялся за презентации

Меня зовут Денис Ермилов. Двадцать лет я работаю в B2B-финтехе и корпоративных IT-системах. Участвовал в создании платёжных платформ национального масштаба, трансграничного платёжного хаба с интеграциями для Китая, Индии и Юго-Восточной Азии, работал с ISO 20022 для операций с Alipay. Для Volkswagen Group мы вместе с берлинской командой разрабатывали платформу дилерской сети.

В этих проектах приходилось взаимодействовать с McKinsey, Accenture и IBM. Одну из практик я вырастил с 9 до более чем 150 человек. Предложения клиентам, защита бюджетов, материалы для советов директоров, отчёты управляющим комитетам — всё это требовало презентаций.

За годы сложился набор требований, которые я проверял снова и снова. Заголовок должен содержать вывод. На слайде должно быть понятно, чем этот вывод обоснован. Число без источника нельзя отдавать клиенту. Если текст не помещается, его нужно сокращать.

Когда я начал поручать презентации ИИ, эти требования никуда не исчезли. Модель писала «Рынок Германии» там, где нужен был вывод — например, в условном кейсе: «Выход в Германию сейчас даёт 40 млн евро до 2028 года». Второй заголовок заставляет показать расчёт. Первый позволяет обойтись общими словами.

Другая частая проблема — девять тезисов на одном слайде. Чтобы они влезли, модель уменьшает шрифт. Или выдаёт красивую картинку, которую потом приходится собирать в PowerPoint заново: поменять число в диаграмме уже нельзя.

Мне нужен был обычный .pptx, в котором можно переписать текст, дополнить таблицу и поправить диаграмму. Большую часть повторяющихся требований я решил записать как правила для агента и проверки в коде.

Сначала согласовать аргумент

SlideCraft начинает с вопроса: кто увидит презентацию и какое решение должен принять?

Затем агент предлагает последовательность заголовков-выводов. Если прочитать только их, должен получиться связный аргумент. На этом этапе я могу увидеть, что презентация отвечает не на тот вопрос, — до сборки диаграмм и выбора оформления.

Для каждого числового показателя нужен источник. Иллюстративные данные помечаются как иллюстративные. Если текст не помещается в выбранный макет, система сообщает, насколько его сократить; уменьшение кегля не служит способом обойти ограничение.

В процессе предусмотрены четыре контрольные точки. Пользователь согласует задачу и направление работы, выбирает оформление, проверяет структуру и принимает результат. Среди вариантов оформления агент показывает две-три обложки. Эти согласования остаются частью работы даже при запуске через один промпт.

Вот запрос, с которого можно начать:

Открой репозиторий:
https://github.com/eiler2005/slidecraft

Сначала ознакомься с AGENTS.md.
Подготовь через SlideCraft презентацию PowerPoint
с редактируемыми текстом, таблицами и диаграммами.

Тема: [о чём презентация]
Аудитория и цель: [кто увидит материал и какое
решение должен принять]
Размер: 15–20 слайдов
Язык: русский
Исходные материалы: [заметки, ссылки, файлы,
тезисы, показатели и их источники]
Оформление: [консалтинговый стиль либо палитра
сайта https://…]

Работай по процессу SlideCraft:
сначала согласуй со мной заголовки-выводы,
покажи 2–3 варианта обложки,
проверь источники всех числовых показателей,
после сборки предоставь .pptx и PDF.

Для этого сценария нужен ассистент, который умеет запускать код. Он сам выполняет npx @eiler2005/slidecraft в своей среде. Обычный текстовый чат может подготовить содержание, но собрать файл без выполнения кода не сможет.

Что находится внутри

Презентация описывается обычными файлами. В брифе хранятся задача, аудитория и ожидаемое решение. В deck.yaml — заголовки, содержание и данные слайдов. Исходные документы лежат отдельно.

Структура аргумента и оформление выбираются независимо: есть 14 вариантов построения презентации и 7 тем. В версии 0.8.0 библиотека содержит 73 макета — от таблиц и водопадов до матриц 2×2 и диаграмм Ганта. У каждого макета свой контракт: какие данные он принимает и сколько текста вмещает. Описание структуры.

Макеты создают промежуточное описание сцены, из которого движки собирают PPTX, векторный PDF и HTML. На той же основе можно получить одностраничное резюме или записку в Word.

Сам файл PowerPoint создаёт PptxGenJS. Моя работа сосредоточена на том, что происходит вокруг генерации файла: постановке задачи, структуре аргумента, ограничениях макетов и проверке того, что увидит читатель.

Модели тоже работают по ролям. Сильной я поручаю построение аргумента и итоговое ревью. Более быстрые модели параллельно готовят отдельные слайды и сокращают текст до нужного объёма. В Claude Code для этого используются Opus, Sonnet и Haiku.

Почему метрик шрифта оказалось мало

Вернусь к заголовку, который по-разному переносился в браузере и PowerPoint. Несколько таких сдвигов меняют весь слайд: подпись заходит на диаграмму, таблица становится выше, последняя строка вылезает из блока.

Для калибровки я использовал PowerPoint для Mac. В сохранённом отчёте указана версия 16.113.4. Измерения показали несколько правил, которые пришлось воспроизвести в движках.

Продвижение каждого символа округляется с шагом 1/576 дюйма. Кернинг учитывается отдельно. Без этого положения слов в HTML расходились с PowerPoint до 1,4 pt. После калибровки среднее расхождение позиций составило 0,09 pt на 8 300 словах.

Глифы рисуются с округлением размера до целого пункта. Первоначально в HTML они получались на 1–4 % крупнее. После воспроизведения этого правила проверка на 2 196 строках не нашла расхождений именно в размере отрисованных глифов. Это отдельный замер, а не обещание совпадения всей вёрстки.

Базовые линии также оказались привязаны к целым пунктам. Ещё пришлось учесть перенос после дефиса между буквами: этот случай обнаружился при визуальной проверке заголовка.

Измеренные правила теперь хранятся как общие данные для HTML и PPTX. Подробности и условия замеров есть в Office rendering rules.

Одной калибровкой работа не закончилась. В отчёте о точности экспорта остаются различия на краях глифов, в подписях диаграмм и в некоторых интервалах импортированных презентаций. Поэтому я проверяю результат, отрисованный офисной программой: правильного расчёта в своём движке недостаточно.

Что проверять после сборки

SlideCraft проверяет, помещается ли текст, есть ли ссылки у числовых данных, хватает ли контраста и согласуются ли показатели на разных слайдах.

В демонстрационном бюджете я намеренно оставил ошибку в сумме. Проверка сообщает:

«итог 69 тыс. долларов, слагаемые дают 67».

Затем модель-ревьюер смотрит на изображения слайдов после отрисовки PowerPoint и браузером и составляет отчёт. Так можно заметить то, что не видно из корректного YAML: подпись перекрыла график, заголовок перенёсся неудачно, на тёмном фоне потерялся источник.

У этих проверок есть граница. Ссылка рядом с числом ещё не делает число верным. Сошедшаяся сумма не доказывает, что бюджет реалистичен. Проверить исходные данные и выводы всё равно должен человек, который понесёт презентацию на встречу.

Ошибки, которые нашли тестовые запуски

ChatGPT в агентском режиме собрал презентацию из пяти слайдов по сокращённому запросу. По дороге выяснилось, что проверка источников считает подписи «Шаг 2» и «Неделя 4» числовыми фактами и требует для них подтверждения. В Linux-контейнере возникла ещё и проблема с запуском Chrome. Оба случая разобраны в изменениях версии 0.7.5.

Другой дефект обнаружился внутри PPTX. Библиотека pptxgenjs версии 4.0.1 объявляла в [Content_Types].xml мастер-слайд для каждого слайда, а записывала только первый файл. У презентации из 12 слайдов оказалось 11 объявлений отсутствующих частей.

PowerPoint открывал такой файл. Это скрывало проблему, пока результат не попадал в другую программу. В SlideCraft появилась дополнительная обработка: удалить именно эти лишние объявления и проверить, что остальные заявленные части документа существуют. Исправление записано в том же changelog для версии 0.7.7.

Как агенты подготовили запуск и видео

Первый запуск на Product Hunt состоялся 18 октября. Я готовил его без отдельной команды и маркетингового бюджета, с помощью ИИ-агентов: хотел проверить, сколько работы вокруг продукта удастся выполнить таким способом.

Даже день запуска выбирал после просмотра данных через API Product Hunt. Сравнил дни недели и остановился на воскресенье, 00:01 по тихоокеанскому времени. По небольшой выборке чужих запусков нельзя предсказать результат собственного.

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

Сценарий хранится в YAML, числовые показатели берутся из отдельного файла фактов. Для озвучки использовал Kokoro-82M, модель с лицензией Apache-2.0. Она работала локально на ноутбуке; временные отметки слов позволили связать речь с субтитрами и анимацией.

Сцены отрисовывает headless Chrome кадр за кадром. Музыку и звуковые эффекты тоже создаёт код. В конце Whisper распознаёт готовую звуковую дорожку, а полученный текст сравнивается со сценарием.

Так обнаружилась ошибка: вместо «editable» синтезатор произносил «edible». Редактируемый PowerPoint в озвучке стал съедобным.

Сценарий и раскадровку готовила сильная модель, сцены по готовому плану — модель попроще, механические проверки — самая быстрая. Запись о производстве ролика теперь хранится в Storygro, куда переехали инструменты для видео.

Ниже — исходный ролик первого запуска. В нём показана версия с 46 макетами.

Как попробовать

Для Claude Code есть плагин, для Codex — скиллы. В Claude Desktop, Cursor и VS Code можно подключить MCP-сервер. В репозитории лежат примеры на русском и английском:

Из терминала инструмент запускается командой:

npx @eiler2005/slidecraft

Код доступен по модели source-available, под лицензией PolyForm Shield. Делать презентации для себя, компании и клиентов можно бесплатно. У лицензии есть ограничение на использование кода в конкурирующем продукте.

Эталонной средой остаётся PowerPoint. В Keynote и Google Slides отдельные элементы могут выглядеть иначе. И даже после технических проверок в презентации может оказаться слабый аргумент: выбор задачи и ответственность за выводы остаются у автора.

О том, как при таком разделении работы меняется ценность специалиста и устройство компаний, я пишу в трилогии «Когда интеллект стал дешёвым»: «Человек», «Бизнес в эпоху ИИ-агентов» и «Доверие».

Если попробуете SlideCraft на своей презентации, напишите, что пришлось исправлять руками. Особенно интересны случаи, когда не подошёл ни один макет или проверка пропустила ошибку: по ним понятно, что именно дорабатывать.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.