PPTX
PPTX — навык Anthropic для любой задачи, в которой участвует файл .pptx или .potx. Он включается не только при создании презентации: тот же workflow применяется к чтению и извлечению текста, редактированию, обновлению, работе с шаблонами, speaker notes и comments, а также к объединению или разделению slide-файлов. Исходная модель формата важна для выбора инструмента: PPTX является ZIP-архивом XML-файлов, поэтому создание, чтение и структурное редактирование проходят разными путями. Для нового deck навык предлагает писать скрипт на уже установленном pptxgenjs. Существующую презентацию или template редактируют через распаковку, изменение ppt/slides/slideN.xml и обратную упаковку. Текстовый разбор выполняется markitdown: результат разбит по слайдам маркерами номера; для визуального выбора шаблонных layouts используется scripts/thumbnail.py. В наборе также есть add_slide.py для дублирования слайда с нужным package bookkeeping, clean.py для удаления слайдов и медиа, которые больше не связаны с пакетом, office/validate.py для схемы, relationships, content types, charts и slide checks, а soffice.py служит безопасной оболочкой LibreOffice для конвертации в PDF. Для thumbnail нужно передавать собственный prefix, иначе grids двух разных deck в одном каталоге могут перезаписать друг друга. При создании через pptxgenjs сначала задаётся pres.layout, до добавления слайдов: размер по умолчанию 10 на 5.625 дюйма, а LAYOUT_WIDE даёт 13.3 на 7.5. Координаты за границей не обрезаются автоматически, поэтому элемент просто может исчезнуть со слайда. Цвета передаются шестнадцатеричными значениями без # и без зашитой альфа-компоненты; прозрачность задаётся отдельным transparency для fills и images, а opacity — для shadows. Библиотека изменяет option-объекты на месте, поэтому один shadow или общий options object нельзя переиспользовать в двух add-вызовах. Отрицательный shadow offset портит файл; для тени вверх используется положительный offset и angle 270. В API правильное имя межсимвольного интервала — charSpacing, а letterSpacing игнорируется. Списки, текст и native PowerPoint-объекты требуют отдельных правил. Для bullets у каждого пункта используется bullet: true, а между элементами — breakLine; literal-символ bullet приводит к двойным маркерам. Speaker notes записываются через slide.addNotes, а не в видимый text box. Charts, которые умеет PowerPoint, сохраняются native через addChart; исключение составляют типы без native-представления вроде Sankey, network или chord, для них допускаются изображения. У chart по умолчанию нет полезных заголовка и подписей, поэтому задаются showTitle, showValue, dataLabelPosition, палитра и аккуратные оси. Для stacked bar или column допустимы только ctr, inEnd и inBase; outEnd может испортить файл. Combo series с secondary axis требуют одновременно valAxes и catAxes, по две записи каждого типа, иначе PowerPoint видит незаявленные id и выбрасывает chart как повреждённый. Редактирование существующего deck начинается со структуры. Слайды добавляются через add_slide.py, а не копированием XML вручную; structural work — add, delete и reorder — выполняется до изменения содержимого. clean.py запускается после финализации p:sldIdLst. Дубликат слайда сохраняет ссылки на chart, SmartArt и embedded parts исходника, поэтому изменение общего объекта может затронуть оба слайда. python-pptx не дублирует слайды штатным способом, схлопывает стили при присваивании text_frame.text и не читает большую часть SVG/EMF-арта; для legacy .ppt сначала делается конвертация в .pptx. При XML-трансформации используется defusedxml.minidom, потому что круговой проход через xml.etree.ElementTree меняет namespace prefixes. Для template slots удаляется вся группа лишнего элемента, а не только его текст. Визуальная часть — не декоративное дополнение. Перед началом выбирается палитра, связанная с темой, один доминирующий цвет занимает примерно 60–70% визуального веса, а slides получают различимые motifs, изображения, charts, icons или shapes. Body text выравнивается слева, между блоками оставляется примерно 0.3–0.5 дюйма, от краёв — минимум 0.5. Для надёжного fit QA предпочтительны Arial, Calibri, Cambria, Times New Roman, Courier New, Bookman Old Style и Century Schoolbook; Aptos не используется по умолчанию. Финальная проверка включает content QA, обязательный validate.py после writeFile и визуальный просмотр каждой страницы после конвертации в PDF и изображения. Ищутся overflow, обрезанный текст, наложения, плохой контраст, placeholder-ы и повреждённые chart XML. Навык помогает довести файл до открываемого и проверяемого состояния, но не подменяет редакторское решение о смысле материала и не обещает, что незаданные пользователем данные или брендовая палитра уже определены.
Для чего подходит
- Создание презентаций PowerPoint
- Редактирование существующих слайдов
- Работа с шаблонами, заметками и комментариями
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/anthropics/skills/tree/main/skills/pptx