chatgpt-apps
Официальный навык OpenAI предназначен для проектирования, создания, рефакторинга и диагностики приложений ChatGPT Apps SDK. В его описании приложение рассматривается как связка MCP-сервера и widget UI: сервер предоставляет инструменты и данные, а виджет отображает результат и взаимодействует с хостом. Skill помогает сначала определить форму приложения, затем спланировать инструменты, зарегистрировать ресурсы интерфейса, подключить MCP Apps bridge и учесть совместимость с API window.openai. Он также охватывает metadata Apps SDK, настройки CSP и доменов, локальную проверку интеграции и подготовку краткого отчёта о соответствии рабочего репозитория минимальному контракту. Рабочий процесс начинается с документации. Перед генерацией или изменением кода skill требует обратиться к актуальным материалам OpenAI Apps SDK и проверить страницы про MCP-сервер, ChatGPT UI, примеры, планирование инструментов и reference. Для нового scaffold дополнительно предлагается изучить quickstart и официальный репозиторий примеров; при локальном тестировании или публикации нужны отдельные материалы о deployment и submission. Такой порядок ограничивает перенос старых шаблонов без проверки: актуальные docs имеют приоритет над устаревшими паттернами репозитория, а совместимые имена или aliases следует явно отметить. До выбора структуры нужно классифицировать приложение по одному основному archetype: tool-only, vanilla-widget, react-widget, interactive-decoupled или submission-ready. От этого зависят необходимость UI, разделение server и web, выбор примера и набор проверок. План инструментов строится вокруг пользовательских намерений: у каждого инструмента должна быть одна задача, понятное имя, явная схема входа и корректные annotations. Для connector-like, data-only и sync-сценариев skill рекомендует рассмотреть стандартные формы search и fetch, а не изобретать эквивалентные read-only методы. Для нетривиального приложения предпочтителен decoupled data/render-подход: data-инструменты возвращают повторно используемый structuredContent, а render-инструменты связывают виджет с resource URI через UI metadata. На стороне MCP-сервера skill проверяет регистрацию ресурса с MIME type text/html;profile=mcp-app или соответствующей константой SDK, а также наличие названий, описаний, схем, titles и annotations у инструментов. Возврат должен осознанно разделять structuredContent для модели и виджета, content для текстового ответа и _meta для данных, предназначенных только интерфейсу. Если действие не идемпотентно, это нужно обозначить. Для виджета базовым транспортом служит MCP Apps bridge: интерфейс слушает ui/notifications/tool-result, рендерит structuredContent и вызывает инструменты через tools/call. Событие ui/update-model-context используется только тогда, когда состояние виджета должно изменить контекст модели. Для ChatGPT-совместимых расширений допускается window.openai: среди описанных поверхностей есть callTool, sendFollowUpMessage, openExternal, requestDisplayMode, а также theme, locale, displayMode, toolInput, toolOutput, toolResponseMetadata и widgetState. При этом bridge остаётся первым уровнем совместимости, а обёртки с именами вроде app.sendMessage или app.callServerTool считаются удобствами конкретной реализации, а не нормативным API. Ресурс виджета должен получить намеренно заданные _meta.ui.csp с точными connectDomains и resourceDomains; при необходимости добавляются _meta.ui.domain, _meta.ui.prefersBorder и widgetDescription. frameDomains не следует включать без реальной потребности во внешнем iframe. Минимальная проверка результата включает соответствие выбранному archetype, доступный /mcp endpoint, корректные tool descriptors, UI metadata и команды локального запуска. Для локальной проверки skill описывает MCP-сервер на localhost, публичный HTTPS-туннель с путём /mcp, включение Developer Mode в настройках ChatGPT и создание приложения для удалённого MCP-сервера. После изменений tool или metadata приложение нужно обновить, чтобы хост загрузил новые descriptors. Этот skill задаёт docs-first и validation workflow; он не является аудитом безопасности, не гарантирует доступность внешних сервисов и не заменяет проверку конкретного deployment.
Для чего подходит
- Создание ChatGPT App
- Проектирование MCP-сервера и widget UI
- Проверка Apps SDK metadata и CSP
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/openai/skills/tree/main/skills/.curated/chatgpt-apps