Browser Extension Skills — 12 скиллов для разработки Chrome-расширений с AI-агентами
📂 Исходный код на GitHubНабор из 12 готовых скиллов для создания, тестирования, анализа и публикации браузерных расширений с помощью AI-кодинг-агентов. Нативная поддержка Claude Code, совместимость с Cursor, Windsurf, Copilot, Cline и другими. Лицензия MIT.
Browser Extension Skills — набор из 12 готовых скиллов для AI-кодинг-агентов, который закрывает весь цикл разработки браузерных расширений: от создания проекта до публикации в Chrome Web Store. Репозиторий распространяется под лицензией MIT и спонсируется платформой Extension Booster.
Зачем нужны эти скиллы
Разработка расширений для Chrome — болезненная тема даже для опытных разработчиков. Документация разбросана по разным местам, предупреждения о разрешениях запутывают, отладка ведётся сразу в нескольких контекстах: service worker, content script, popup. А ревью в Chrome Web Store похоже на чёрный ящик — непонятно, за что работу могут отклонить.
Скиллы превращают кодинг-агента в эксперта по расширениям, который умеет:
- собрать каркас проекта за секунды;
- разрабатывать фичи с правильным использованием Chrome API;
- генерировать оптимальный
manifest.jsonс минимальным набором разрешений; - проверять код на уязвимости и соответствие правилам Chrome Web Store;
- тестировать во всех контекстах расширения;
- создавать иконки и материалы для карточки магазина;
- публиковать расширение с автоматизацией через CI/CD;
- переносить старые расширения с Manifest V2 на V3.
Двенадцать скиллов
| Скилл | Что делает | Когда использовать |
|---|---|---|
| extension-create | Автосборка каркаса проекта на WXT или create-crxjs | Начало нового проекта |
| extension-dev | Разработка фич с автоопределением фреймворка | Новые фичи, отладка |
| extension-manifest | Генерация manifest.json с минимальными разрешениями |
Настройка и обновление манифеста |
| extension-analyze | Аудит безопасности и соответствия правилам магазина | Проверка перед публикацией |
| extension-test | Юнит-, интеграционные и E2E-тесты с Puppeteer | Написание и запуск тестов |
| extension-assets | Генерация иконок и картинок для карточки магазина | Подготовка визуальных ассетов |
| extension-payment | Приём платежей: Stripe, Paddle, Lemon Squeezy, Polar и ещё 10 сервисов | Монетизация, подписки, лицензии |
| extension-backend | Бэкенд-API на NestJS и MongoDB для авторизации и вебхуков | Нужна серверная логика |
| extension-ui | Доводка интерфейса popup, sidepanel и options | Постройка и улучшение UI |
| extension-review | Поиск рисков отклонения при ревью с отчётом и правками | Проверка перед публикацией |
| extension-publish | Публикация в Chrome Web Store с CI/CD через GitHub Actions | Выпуск и обновления |
| extension-migration | Пошаговый перенос с Manifest V2 на V3 | Обновление старых расширений |
Отдельно стоит extension-review: скилл сканирует код по официальному списку причин отклонения — удалённый код, обфускация, лишние разрешения, отсутствие политики приватности, майнинг криптовалют. На выходе — отчёт с серьёзностью проблемы, файлом и готовыми правками, плюс вердикт: «скорее одобрят», «нужны правки» или «отклонят».
Совместимые агенты
Нативная загрузка скиллов работает в Claude Code. Остальные агенты подключают их через файлы правил проекта:
| Агент | Как подключить |
|---|---|
| Cursor | через .cursor/rules/ |
| Windsurf | через .windsurfrules |
| GitHub Copilot | через .github/copilot-instructions.md |
| Cline | через .clinerules |
| Aider | через .aider.conf.yml |
| Continue | через конфиг .continue/ |
| Roo Code | через .roo/rules/ |
| Augment Code | через инструкции проекта |
| Amazon Q Developer | через контекст проекта |
Установка
Рекомендуемый способ — Skills CLI от Vercel (vercel-labs/skills):
# Все скиллы в текущий проект
npx skills add quangpl/browser-extension-skills
# Глобально, доступны во всех проектах
npx skills add quangpl/browser-extension-skills -g
# Только нужные скиллы
npx skills add quangpl/browser-extension-skills -s extension-create,extension-dev
Ручной вариант — склонировать репозиторий и скопировать папки в каталог скиллов агента:
git clone https://github.com/quangpl/browser-extension-skills.git
cp -r browser-extension-skills/skills/* .claude/skills/
Для глобальной установки в Claude Code копируйте в ~/.claude/skills/, для выборочной — только нужные папки, например skills/extension-create.
Быстрый старт
Типичный цикл работы выглядит так. Вы пишете обычный запрос агенту, а тот сам активирует нужный скилл:
- «Создай Chrome-расширение, которое подсвечивает все ссылки на странице» — агент вызывает
extension-create, спрашивает предпочтения по фреймворку, выбирает WXT или create-crxjs и собирает каркас. - «Добавь попап со счётчиком ссылок и переключателем подсветки» — включается
extension-dev, определяет WXT + React и реализует popup черезchrome.tabs. - «Сгенерируй все иконки и скриншоты для магазина» — за дело берётся
extension-assetsи создаёт иконки 16/32/48/128 px. - «Проверь расширение на уязвимости и соответствие правилам» —
extension-analyzeсканирует разрешения, CSP и обработчики сообщений. - «Подготовь и опубликуй расширение в Chrome Web Store» —
extension-publishпроверяет карточку, пакует и отправляет на модерацию.
Архитектура: progressive disclosure
Каждый скилл построен по паттерну progressive disclosure ради экономии токенов:
skills/
├── extension-create/
│ ├── SKILL.md # краткая шпаргалка (< 150 строк, грузится всегда)
│ └── references/ # подробные доки (агент читает по необходимости)
│ ├── wxt-scaffold-guide.md
│ ├── wxt-entrypoints.md
│ ├── extension-templates.md
│ └── chrome-samples-reference.md
├── extension-dev/
├── extension-manifest/
└── ...
Файл SKILL.md всегда попадает в контекст при активации скилла. Он короткий — до 150 строк. Подробные документы из references/ агент подгружает только когда нужна глубина, и каждый тоже ограничен 150 строками.
Требования
| Требование | Детали |
|---|---|
| Claude Code | CLI или расширение для IDE |
| Node.js | v18 или новее |
| Пакетный менеджер | npm, pnpm, yarn или bun |
| Chrome | для тестирования и отладки |
| Ключ Gemini API | опционально, для AI-генерации картинок |
Советы из репозитория
Авторы собрали практику, которую сами скиллы и применяют:
- Разрешения. Предпочитайте
activeTabвместо широкихtabsи host-разрешений. Несущественные возможности выносите в optional permissions. - Производительность. Держите content scripts до 50 КБ, тяжёлую логику подгружайте лениво. Service worker должен работать по событиям, без поллинга. Временные данные храните в
chrome.storage.session. - Безопасность. Проверяйте отправителя каждого сообщения (
sender.id === chrome.runtime.id). Не используйтеinnerHTMLс недоверенными данными. Не храните API-ключи в коде — выносите на прокси-сервер. - Тестирование. Расширения не запускаются в headless-режиме Chrome, поэтому E2E-тесты идут с
headless: false. На каждый тест — свежий экземпляр браузера, аchrome.*-API мокайте черезjest-chrome. - Публикация. Первые 150 символов описания попадают в поисковую выдачу магазина. Скриншоты 1280x800 с живыми фичами конвертируют лучше всего. Одна позиция в политике — одна понятная функция у расширения.
Итог
Проект молодой, но уже собрал первые звёзды и форки на GitHub. Для тех, кому мало, авторы предлагают премиум-версию набора с расширенными шаблонами и дополнительными скиллами. Если вы делаете расширения для Chrome с помощью агентов — это самый полный набор скиллов под эту задачу: от пустой папки до кнопки «опубликовать». Подробные правила для контрибьюторов описаны в CONTRIBUTING.md.