pimenov.ai

База знаний

Skills и Plugins в Codex App: установка, использование и создание своих

Практическое руководство по Skills и Plugins в Codex: различия, установка, вызов и создание собственных навыков и плагинов.

Опубликовано Обновлено
СейчасЧто такое Skill и Plugin
  1. Что такое Skill и Plugin
  2. Как выбрать между Skill и Plugin
  3. Из чего может состоять Plugin
  4. Где доступны Skills и Plugins
  5. Установка Plugin в десктопном приложении
  6. Установка Plugin в Codex CLI
  7. Установка standalone Skill
  8. Не всё в каталоге является Skill
  9. Как вызывать Skills и Plugins
  10. Обычный запрос
  11. Явный вызов Plugin
  12. Явный вызов standalone Skill в Codex
  13. Автоматический вызов Skill
  14. Что устанавливать первым
  15. Полезные сценарии
  16. Зафиксировать повторяемый редакционный процесс
  17. Передать рабочую процедуру команде
  18. Связать процедуру с внешним сервисом
  19. Создание собственного Skill
  20. Через skill-creator
  21. Через Record & Replay
  22. Из накопленной практики
  23. Создание собственного Plugin
  24. Через plugin-creator
  25. Минимальный Plugin вручную
  26. Безопасность и разрешения
  27. Чеклист «Что делать, если…»
  28. Главное в одной мысли
  29. Зачем эта страница
  30. Короткий итог
  31. Новые engineering skills
  32. Как этим пользоваться
  33. Plugin packs
  34. Локальные evidence-файлы
  35. Activation tests
  36. Стоп-линии
  37. Аудит plugin skills / 2026-06-20
  38. Document skill bake-off / 2026-06-20
  39. PDF skill fix / 2026-06-20
  40. Run 4 targeted PDF/DOCX routing smoke / 2026-06-20
  41. DOCX local fallback fix / 2026-06-20
  42. Cleanup local duplicate skills / 2026-06-20

Skills и Plugins расширяют Codex, но решают разные задачи.

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

Plugin — устанавливаемый пакет. Он может объединять Skills с подключениями к внешним сервисам, MCP-инструментами и другими компонентами.

📌
Короткое правило: создавайте Skill, когда хотите сохранить одну повторяемую процедуру. Создавайте Plugin, когда хотите установить или распространить готовый набор возможностей.

Интерфейсы и способы установки в этом руководстве проверены 21 августа 2026 года.


Что такое Skill и Plugin

КомпонентЧто внутриДля чего подходит
SkillSKILL.md, инструкции, справочные материалы, скрипты и шаблоныОдин повторяемый рабочий процесс
PluginОдин или несколько Skills, connectors, MCP, hooks и другие компонентыУстановка и распространение готового набора возможностей
ConnectorАвторизованное подключение к внешнему сервисуGmail, Google Drive, GitHub, Notion и другие системы
MCP-серверИнструменты и данные, доступные агенту по протоколу MCPИнтеграция со своим API или внутренней системой
Tool или capabilityФункция, предоставленная средойТерминал, веб-поиск, работа с файлами, браузер

Skill сам по себе не даёт доступ к Gmail, Notion или GitHub. Он может объяснить, как работать с сервисом, но для выполнения действий нужен соответствующий connector, MCP-сервер или другой доступный инструмент.

Plugin решает задачу упаковки: пользователь устанавливает один пакет и получает связанные Skills и интеграции.

Подробное устройство отдельного Skill разобрано в материале «Skills в OpenAI Codex — как расширить возможности coding-агента».


Как выбрать между Skill и Plugin

Используйте Skill, если:

  • процедура нужна вам или одному проекту;
  • внешнее подключение не требуется;
  • процесс ещё меняется и дорабатывается;
  • Skill удобно хранить вместе с репозиторием;
  • достаточно инструкций, шаблонов и локальных скриптов.

Используйте Plugin, если:

  • нужно передать возможность другим пользователям;
  • в пакет входят несколько связанных Skills;
  • требуется connector или MCP-сервер;
  • нужен единый устанавливаемый пакет;
  • возможность должна распространяться через marketplace.
⚖️
Не нужно начинать с Plugin. Если вы только вырабатываете рабочий процесс, сначала соберите и проверьте Skill. Упаковывать его в Plugin разумно после того, как процедура стала устойчивой.

Из чего может состоять Plugin

Plugin может включать один или несколько компонентов.

КомпонентНазначение
SkillsИнструкции для конкретных рабочих процессов
ConnectorsПодключения к внешним приложениям и данным
MCP-серверыДополнительные инструменты, авторизация и структурированные данные
Browser extensionsВозможности браузера, необходимые рабочему процессу
HooksКоманды, запускаемые в определённых точках жизненного цикла
Scheduled task templatesЗаготовки для повторяющихся задач по расписанию

Простой Plugin может содержать только один Skill. Более сложный — несколько Skills, MCP-сервер и дополнительные компоненты.

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


Где доступны Skills и Plugins

ПоверхностьStandalone SkillsPlugins
Codex в десктопном приложении ChatGPTДаДа
Codex CLIДаДа
Codex IDE extensionДаНет
ChatGPT на вебе, десктопе и мобильных устройствахSkills из установленных PluginsДа
ChatGPT WorkДаДа

Если вам нужен один и тот же локальный Skill в CLI, IDE и десктопном Codex, используйте standalone Skill.

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


Установка Plugin в десктопном приложении

  1. Откройте раздел Plugins.
  2. Найдите Plugin через поиск или каталог.
  3. Откройте его карточку и проверьте, какие Skills, connectors и разрешения входят в пакет.
  4. Нажмите кнопку с плюсом, чтобы установить Plugin.
  5. Если требуется connector, авторизуйте подключение.
  6. Начните новый чат.
  7. Опишите задачу или явно выберите установленный Plugin.

Каталог может содержать несколько источников:

  • Plugins от OpenAI;
  • Plugins рабочего пространства;
  • личные marketplace-источники;
  • установленные Plugins.

Набор разделов зависит от аккаунта и рабочего пространства.

⚠️
Установка Plugin не означает автоматическое разрешение всех действий. Авторизация connector и подтверждение конкретной записи — отдельные шаги.

Установка Plugin в Codex CLI

Откройте Codex CLI и выполните:

/plugins

В браузере Plugins можно:

  • переключаться между marketplace-источниками;
  • открывать карточки;
  • устанавливать и удалять Plugins;
  • включать и выключать уже установленные пакеты.

После установки начните новую сессию Codex. Skills и инструменты из Plugin подключаются к новым сессиям, а не обязательно к уже открытому разговору.


Установка standalone Skill

Standalone Skills хранятся в .agents/skills.

Основные расположения:

ОбластьПуть
Текущий модуль$CWD/.agents/skills/
Родительская директория$CWD/../.agents/skills/
Корень репозитория$REPO_ROOT/.agents/skills/
Все проекты пользователя$HOME/.agents/skills/
Общая директория машины/etc/codex/skills/

Для установки подготовленного Skill можно вызвать:

$skill-installer linear

Установщик также можно попросить загрузить Skill из указанного репозитория.

Перед установкой стороннего Skill проверьте:

  • содержимое SKILL.md;
  • директорию scripts;
  • сетевые обращения;
  • требуемые инструменты;
  • операции с файлами;
  • внешние записи;
  • условия автоматического вызова.
⚠️
Не устанавливайте непроверенный Skill только потому, что он опубликован на GitHub. Его инструкции и скрипты могут влиять на команды агента и работу с вашими данными.

Если новый Skill не появился, перезапустите Codex. Обязательная отдельная кнопка обновления для каждого Skill не требуется.


Не всё в каталоге является Skill

Web Search, Code Interpreter, Vision, Memory, Notion и Linear относятся к разным слоям системы:

  • Web Search — возможность поиска;
  • Code Interpreter — инструмент выполнения кода;
  • Vision — способность модели анализировать изображения;
  • Memory — механизм сохранения контекста;
  • Notion и Linear — внешние сервисы, доступ к которым может предоставляться через connectors, Plugins или MCP;
  • Skill Creator и Skill Installer — Skills для создания и установки навыков.

Практическое правило: смотрите не только на название компонента, но и на его тип, разрешения и доступные действия.


Как вызывать Skills и Plugins

Обычный запрос

После установки можно просто описать результат:

Собери решения и следующие шаги из этой расшифровки встречи.

Codex или ChatGPT выберет подходящие доступные возможности по описанию задачи.

Явный вызов Plugin

Введите @ и выберите установленный Plugin или один из его Skills.

Например:

@google-drive найди последние материалы по запуску проекта и подготовь резюме.

Название зависит от установленного Plugin.

Явный вызов standalone Skill в Codex

В Codex CLI или IDE используйте /skills либо символ $:

$meeting-follow-up разбери эту расшифровку встречи.

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

Автоматический вызов Skill

Codex может выбрать Skill по его description.

Поэтому вместо общего описания:

description: Помогает с документами

лучше написать:

description: Извлекает из расшифровки встречи решения, ответственных и следующие шаги. Не используй для дословной транскрибации.

Что устанавливать первым

Начинайте не с каталога, а со своей задачи.

ЗадачаЧто выбрать
Повторяете одну процедуру и каждый раз заново объясняете шагиStandalone Skill
Нужно работать с Gmail, Google Drive, Slack или другим сервисомPlugin или connector
Нужно подключить собственный APIMCP-сервер, при необходимости упакованный в Plugin
Хотите передать несколько связанных Skills командеPlugin
Нужна процедура только одному репозиториюSkill в .agents/skills проекта
Нужно выполнять вычисления или работать с файламиДоступный tool или специализированный Skill поверх него

Из готовых Plugins имеет смысл смотреть на те, которые закрывают конкретную рабочую задачу:

  • работа с почтой и сообщениями;
  • документы и облачные диски;
  • GitHub и разработка;
  • проверка безопасности;
  • создание медиа;
  • внутренние системы компании.

Для видео я использую Remotion: его стек на React мне ближе. Но это не универсальная рекомендация — выбор зависит от формата производства и вашего текущего стека.


Полезные сценарии

Зафиксировать повторяемый редакционный процесс

Задача: каждый раз проверять статью по одной процедуре.

Что использовать: standalone Skill.

Skill может определить:

  • обязательные источники;
  • перечень изменчивых утверждений;
  • формат сравнительного анализа;
  • запрет на запись без подтверждения;
  • проверку результата после обновления.

Результат: агент не придумывает новую процедуру при каждом материале.

Ограничение: Skill не делает устаревшие источники актуальными. Сами факты всё равно нужно проверять заново.

Передать рабочую процедуру команде

Задача: установить один и тот же набор Skills нескольким людям.

Что использовать: Plugin с одним или несколькими Skills.

Команда получает единый устанавливаемый пакет, а обновления можно распространять через marketplace-источник.

Результат: у пользователей одинаковая структура процессов и одинаковые версии компонентов.

Ограничение: перед распространением нужно протестировать Plugin в новой сессии и проверить его разрешения.

Связать процедуру с внешним сервисом

Задача: прочитать документы из внешней системы и подготовить результат по установленному шаблону.

Что использовать: Plugin, объединяющий Skill и connector или MCP.

Skill определяет процедуру, а connector предоставляет доступ к данным.

Результат: один пакет содержит и рабочие инструкции, и необходимое подключение.

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


Создание собственного Skill

Есть три рабочих подхода.

Через skill-creator

В Codex вызовите:

$skill-creator

Опишите:

  • задачу Skill;
  • условия вызова;
  • случаи, когда его нельзя использовать;
  • входные данные;
  • ожидаемый результат;
  • необходимые скрипты и справочные материалы.

Codex подготовит директорию с SKILL.md и связанными файлами.

Через Record & Replay

Если процесс проще показать, чем описать, используйте запись рабочего сценария. Агент разберёт выполненные действия и подготовит на их основе черновик Skill.

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

Из накопленной практики

Если в проекте уже сформировался устойчивый процесс, попросите Codex извлечь его:

Мы несколько раз выполнили этот рабочий процесс.

Проанализируй повторяющиеся шаги, типичные ошибки и проверки.
Подготовь из них отдельный Skill.
Сначала покажи структуру и полный SKILL.md.
Ничего не устанавливай без подтверждения.

Этот способ сохраняет реальные поправки и ограничения, которые уже появились в работе.


Создание собственного Plugin

Plugin нужен, когда Skill готов к распространению или должен работать вместе с внешней интеграцией.

Через plugin-creator

В Codex вызовите:

$plugin-creator

Опишите:

  • название Plugin;
  • его назначение;
  • какие Skills нужно включить;
  • требуется ли MCP-сервер;
  • нужен ли локальный marketplace для тестирования.

Например:

$plugin-creator создай Plugin meeting-follow-up.

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

Подготовь локальный marketplace для тестирования.
Ничего публично не публикуй.

Plugin Creator создаст манифест .codex-plugin/plugin.json, разложит файлы по директориям и может подготовить локальный marketplace.

После создания:

  1. Проверьте манифест.
  2. Прочитайте каждый SKILL.md.
  3. Проверьте скрипты, hooks и подключения.
  4. Установите Plugin из локального marketplace.
  5. Начните новую сессию.
  6. Протестируйте несколько характерных запросов.
  7. Отдельно проверьте нежелательные условия вызова.

Минимальный Plugin вручную

Структура Skills-only Plugin:

meeting-follow-up/
├── .codex-plugin/
│   └── plugin.json
└── skills/
    └── meeting-follow-up/
        └── SKILL.md

Минимальный .codex-plugin/plugin.json:

{
  "name": "meeting-follow-up",
  "version": "1.0.0",
  "description": "Turn meeting notes into decisions and next steps",
  "skills": "./skills/"
}

Файл skills/meeting-follow-up/SKILL.md:

---
name: meeting-follow-up
description: Извлекает из заметок встречи решения, ответственных и следующие шаги.
---

Разбери заметки встречи.

Верни:

1. Принятые решения.
2. Задачи с ответственными.
3. Открытые вопросы.

Используйте стабильное имя Plugin в kebab-case. Перед распространением установите его локально и проверьте в новой сессии.


Безопасность и разрешения

Перед установкой Plugin проверьте:

  • какие Skills он добавляет;
  • какие connectors требует;
  • к каким данным получает доступ;
  • может ли выполнять внешние записи;
  • содержит ли hooks или скрипты;
  • где хранится его исходный код;
  • кто управляет обновлениями.

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

⚠️
Постоянное разрешение удобнее, но убирает последнюю точку проверки. Для переписки, внешних публикаций и незнакомых данных безопаснее сохранять разовое подтверждение.

Чеклист «Что делать, если…»

СитуацияЧто делать
Skill не появился после установкиПерезапустите Codex и проверьте путь .agents/skills
Plugin установлен, но инструменты недоступныНачните новую сессию и проверьте авторизацию connector
Plugin не виден в IDEИспользуйте десктопный Codex или CLI: Plugins в IDE не поддерживаются
Skill нужен только одному проектуРазместите его в .agents/skills нужного репозитория
Skill нужно передать командеУпакуйте его в Plugin или используйте командный marketplace
Нужно доработать чужой SkillСначала проверьте лицензию, затем сохраните изменённую версию отдельно
Skill вызывается не по делуУточните description и добавьте отрицательные условия
Plugin выполняет внешние действияПроверьте permissions и сохраните подтверждение перед записью
Процесс постоянно повторяетсяИзвлеките его в Skill через skill-creator, Record & Replay или анализ истории

Главное в одной мысли

Skill сохраняет способ работы. Plugin упаковывает и распространяет возможности.

Если вы каждый раз заново объясняете агенту одну процедуру — вам нужен Skill. Если хотите установить или передать готовую систему из Skills и интеграций — вам нужен Plugin.

Начните с одного проверенного рабочего процесса. Превратите его в Skill. Проверьте на реальных задачах. И только после этого упаковывайте в Plugin и распространяйте дальше.

По теме

Если хотите обсудить, как собрать набор Skills и Plugins под свои задачи или команду, — напишите мне.

Codex skills: рабочая карта и аудит 2026-06-19

Зачем эта страница

Это рабочая карта текущего skill/plugin-контура Codex у Сергея. Она нужна как страница для закладки: от нее можно быстро вспомнить, какие новые engineering skills поставлены, как они должны срабатывать и как дальше аудитить большой слой plugin skills.

Короткий итог

  • Новые локальные engineering skills из addyosmani/agent-skills: 11.
  • Всего local skills в active CODEX_HOME: 24.
  • Plugin skill files в cache: 209.
  • Plugin manifests: 37.
  • cache не равен "все активно прямо сейчас". Активные skills зависят от текущего чата, установленных plugins и загруженного списка capabilities.
  • Cleanup не выполнялся. Следующий этап должен быть read-only: activation tests и collision review.

Новые engineering skills

SkillРоль
context-engineeringСобирает правильный context pack перед действием.
source-driven-developmentПроверяет текущие официальные sources перед framework/API/SDK решениями.
spec-driven-developmentФиксирует contract того, что строим, до плана и кода.
planning-and-task-breakdownПревращает намерение в Work Packet, задачи, зависимости и stop-lines.
incremental-implementationВедет большие изменения маленькими проверяемыми slices.
test-driven-developmentТребует test/focused check для behavior-sensitive изменений.
debugging-and-error-recoveryВедет баг через reproduce -> localize -> reduce -> fix -> guard.
api-and-interface-designПроектирует устойчивые API/interface/schema/event/CLI/config contracts.
deprecation-and-migrationБезопасно выводит старое через consumers, waves, evidence и rollback.
doubt-driven-reviewАдверсариальный gate для risky claims и high-stakes решений.
code-review-and-qualityFindings-first review кода перед merge/ship/done.

Как этим пользоваться

Не нужно помнить все имена. Достаточно обычных фраз:

ФразаОжидаемый skill
"Сначала разберись, где правда"context-engineering
"Проверь по актуальным докам"source-driven-development
"Что именно мы строим?"spec-driven-development
"Разбей на задачи"planning-and-task-breakdown
"Делай маленькими шагами"incremental-implementation
"Сначала докажи тестом"test-driven-development
"Разбери баг"debugging-and-error-recovery
"Спроектируй API/контракт"api-and-interface-design
"Как безопасно убрать старое?"deprecation-and-migration
"Проверь, не самообманываемся ли"doubt-driven-review
"Сделай review"code-review-and-quality

Plugin packs

Plugin skills не нужно учить поштучно. Они работают как domain packs:

  • Gmail: почта, inbox triage, thread summaries, drafts.
  • Google Calendar: agenda, meeting prep, availability, scheduling.
  • Google Drive: Drive, Docs, Sheets, Slides.
  • Notion: knowledge capture, research docs, spec-to-implementation.
  • Linear: issues, projects, documents. Если plugin дает 401, использовать /Users/sergey/.codex/bin/linear-api.
  • GitHub: PR, issues, comments, CI checks.
  • Cloudflare: Workers, Pages, KV/D1/R2, Wrangler, Durable Objects.
  • Netlify: deploy, config, functions, forms, blobs, caching.
  • Data Analytics: reports, dashboards, KPI, metric diagnostics.
  • Codex Security: security scans and finding validation, heavy scans only explicit.
  • Product Design / Creative Production / HyperFrames / Sales: domain workflows по явному контексту.

Локальные evidence-файлы

Основные файлы в WorkOps:

  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/NEW_SKILLS_MEMORY.md
  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/SKILL_SYSTEM_AUDIT_METHOD.md
  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/SKILL_INVENTORY_LOCAL_2026-06-19.md
  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/PLUGIN_SKILL_PACKS_2026-06-19.md
  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/SESSION_NOTES.md

Activation tests

Создана и частично заполнена матрица проверки skill activation:

  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/SKILL_ACTIVATION_TESTS_2026-06-19.md

Run 1 выполнен 2026-06-19 через fresh sub-agent smoke: каждый тест запускался отдельным коротким агентом без истории текущего чата, без tools и без mutations.

Итог Run 1:

  • Проверено: 17 тестов.
  • ok: 13.
  • needs-rule: 2 (C02, C05).
  • conflict: 2 (X03, X04).

Run 2 выполнен 2026-06-20 после точечных правок active skills.

Что изменено:

  • source-driven-development: добавлены триггеры актуальные docs, current docs, official docs, как сейчас правильно, cloud provider/platform feature и явная связка с domain skills.
  • incremental-implementation: добавлены триггеры small verified steps, slices, маленькими проверяемыми шагами, по шагам с проверкой, после каждого шага проверяй, плюс требование явно объявлять skill.

Проверка Run 2:

  • quick_validate.py: оба skill folder вернули Skill is valid!.
  • Targeted fresh smoke:
    • C02: fresh agent объявил cloudflare:durable-objects и source-driven-developmentok-after-fix.
    • C05: fresh agent явно объявил incremental-implementationok-after-fix.

Что осталось:

  • X03: PDF workflow routing still needs a separate primary-source decision.
  • X04: DOCX workflow routing still needs a separate primary-source decision.

Следующий безопасный шаг: отдельно решить primary source для PDF/DOCX. Cleanup local pdf/doc не делать без отдельного approval.

Стоп-линии

  • Не удалять plugin cache на глаз.
  • Не удалять duplicate candidates без backup и отдельного approval.
  • Не считать локальный rg доказательством, что skill не используется.
  • Не подменять /Users/sergey/.codex/AGENTS.md отдельным skill.
  • Все Notion/Linear artifacts для Сергея писать по-русски, технические имена оставлять exact.

Аудит plugin skills / 2026-06-20

Read-only аудит plugin cache добавлен в WorkOps.

Главный вывод: 209 plugin SKILL.md - это не список навыков, которые Сергей должен помнить. Это несколько слоев: current domain packs, legacy/cache copies, bundled control tools и primary runtime для документов/PDF/презентаций/таблиц.

Что считаем рабочим:

  • openai-curated-remote: текущие domain packs, 18 plugins / 138 skills;
  • openai-primary-runtime: основной runtime для .docx, PDF, PPTX, spreadsheets;
  • openai-bundled: chrome, computer-use, record-and-replay, но explicit-only;
  • openai-curated/.../202e9242: legacy/cache layer, руками не чистим.

Решение-кандидат по конфликтам:

  • PDF по умолчанию вести через pdf:pdf from openai-primary-runtime;
  • DOCX/Word/Google Docs-targeted artifacts вести через documents:documents from openai-primary-runtime;
  • local pdf и doc оставить как explicit-only или retire-candidate только после отдельного approval и targeted Run 3.

Локальный evidence-файл:

  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/PLUGIN_SKILL_AUDIT_2026-06-20.md

Следующий безопасный шаг: подтвердить primary-source policy для PDF/DOCX и прогнать targeted Run 3 по PDF/DOCX/Google Docs-targeted фразам.

Document skill bake-off / 2026-06-20

Проверили не только activation/routing, но и реальное качество DOCX/PDF workflows на одном fixture с русским текстом, technical literals, таблицей, списками, render и text extraction.

Локальный evidence:

  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/DOCUMENT_SKILL_BAKEOFF_2026-06-20.md
  • /Users/sergey/Code/WorkOps/agent-skills-evaluation/artifacts/document-skill-bakeoff-2026-06-20/

Вывод по DOCX:

  • local doc создает читаемый DOCX, но использует Word Title style с синей линией под title; table geometry audit дал ISSUES: 3.
  • primary documents:documents прошел packaged render, table geometry audit OK, Google Docs sanitizer OK; визуально документ чище и предсказуемее.
  • Решение-кандидат: DOCX/Word/Google Docs-targeted default = documents:documents.

Вывод по PDF:

  • local naive pdf создает файл, но кириллица в PNG превращается в черные квадраты, а extraction возвращает nnnn....
  • primary pdf:pdf создает читаемый русский PDF, render и extraction проходят для кириллицы и technical literals.
  • Оговорка: символ остается проблемным; для PDF нужен explicit glyph coverage check по конкретным символам документа.

Рабочая policy после bake-off:

  • DOCX default: documents:documents.
  • PDF default: pdf:pdf + render + text extraction + glyph coverage gate.
  • local doc: fallback/explicit-only до проверки на реальных договорах/брифах.
  • local pdf: не использовать как default для русскоязычных PDF; рассматривать explicit-only/retire-candidate после approval.

PDF skill fix / 2026-06-20

Local pdf переведен в strict fallback режим. Для русскоязычных PDF теперь нельзя использовать naive ReportLab path: нужен embedded Unicode font, glyph coverage, escaping plain text before Paragraph, render/extraction gate.

Проверка:

  • broken local fixture: FAILED, нет русских probes и embedded Unicode-capable font;
  • fixed primary fixture: OK;
  • pdffonts: SFNS-Regular TrueType, emb yes, uni yes;
  • визуальный PNG preview: кириллица, , , URL и таблица читаются нормально.

Evidence:

  • /Users/sergey/.codex/skills/pdf/SKILL.md
  • /Users/sergey/.codex/skills/pdf/scripts/pdf_quality_gate.py
  • Linear WRK-21 comment 5b9746df

Run 4 targeted PDF/DOCX routing smoke / 2026-06-20

Проверили fresh codex exec smoke для обычных фраз про документы. Мутаций не делали: read-only, ephemeral, отдельный запуск на каждую фразу.

Результат:

  • PDF phrase routes to pdf:pdf; local pdf остается fallback.
  • DOCX phrase routes to documents:documents; local doc остается secondary/fallback.
  • Remaining follow-up по doc выполнен следующим блоком.

DOCX local fallback fix / 2026-06-20

Local doc теперь явно описан как fallback/compatibility/explicit workflow, а primary source для новых .docx, Word и Google Docs-targeted artifacts — documents:documents из openai-primary-runtime.

Что изменено:

  • /Users/sergey/.codex/skills/doc/SKILL.md: добавлен routing gate на documents:documents primary;
  • local doc не должен override primary workflow;
  • добавлены gates: render-and-verify, no Word built-in Title style для Google Docs-targeted output, title sanitizer when available, table sanity checks;
  • /Users/sergey/.codex/skills/doc/agents/openai.yaml: label DOCX Fallback.

Проверка:

  • quick_validate.py /Users/sergey/.codex/skills/doc -> Skill is valid!;
  • placeholder scan: TODO, PLACEHOLDER, FIXME, [TODO не найдены;
  • Linear WRK-21 comment c1d48fc0 прочитан обратно.

Итоговая policy:

  • PDF -> pdf:pdf + render + text extraction + glyph coverage gate;
  • DOCX/Word/Google Docs-targeted -> documents:documents;
  • local pdf и local doc -> fallback/explicit только когда primary runtime недоступен или явно не нужен.

Cleanup local duplicate skills / 2026-06-20

Статус: выполнено после отдельного approval Сергея.

Удалены из active /Users/sergey/.codex/skills:

  • impeccable.backup-20260529T232358 — старый backup с тем же name: impeccable; replacement: active impeccable.
  • huashu-design — retired как отдельный active design skill; replacement: impeccable, а для специальных flows product-design по контексту.
  • doc — retired local fallback; replacement: documents:documents.
  • pdf — retired local fallback; replacement: pdf:pdf.

Read-back:

  • active local SKILL.md: 20;
  • find по четырем удаленным именам в active skills вернул пустой результат;
  • backup содержит SKILL.md для всех четырех удаленных skills;
  • plugin cache не трогался.

Backup:

/Users/sergey/Code/WorkOps/agent-skills-evaluation/artifacts/skill-cleanup-backup-2026-06-20/

Текущая policy:

  • PDF -> pdf:pdf + render + text extraction + glyph coverage gate.
  • DOCX/Word/Google Docs-targeted -> documents:documents.
  • Frontend/design -> impeccable.
  • Прямой запрос на удаленный local skill должен получать объяснение, что skill retired, и current replacement.

Синхронизация:

  • Linear WRK-21 обновлен comment id a1e24db0-0ae7-436a-b3cb-391594a0b370.
  • Linear document Activation tests Codex skills 2026-06-19 обновлен блоком Run 6 cleanup completion / 2026-06-20.
  • Linear document Рабочая карта Codex skills/plugins обновлен состоянием после cleanup.
  • WorkOps commit: bfd5626 Document retired Codex skills cleanup.