Каталог skills, slash-команд и глобального CLAUDE.md для Claude Code. Один репозиторий выполняет две роли:
- Плагины для установки через
/plugin marketplace add monkey-di/push-cat— namespaced скиллы и команды, ставятся одной командой у любого пользователя. - Standalone-конфиг для собственного
~/.claude/—CLAUDE.mdи личные плоские скиллы/команды, синхронизируются утилитойpush-cat.mjs.
push-cat/
├── .claude-plugin/
│ └── marketplace.json # автогенерится из plugins/
├── plugins/ # публикуемая часть
│ ├── bitrix/ # /bitrix:agent, /bitrix:component, ...
│ ├── bitrix-cdd/ # /bitrix-cdd:data-requirements-analyzer, ...
│ ├── php/ # /php:class, /php:pattern, ...
│ ├── context-engineering/ # /context-engineering:decompose, ...
│ ├── git/ # /git:clone-here
│ └── sdlc/ # /sdlc:1-define-new-task, ...
├── standalone/ # личная часть, не публикуется как плагины
│ ├── CLAUDE-GLOBAL.md → ~/.claude/CLAUDE.md
│ ├── skills/<имя>/SKILL.md → ~/.claude/skills/<имя>/SKILL.md
│ └── commands/<имя>/*.md → ~/.claude/commands/<имя>/*.md
├── config/profile/ # личные референсы, вне синка
├── shared/ # общие .md-фрагменты для include, вне синка
└── push-cat.mjs # утилита синка и регенерации marketplace
/plugin marketplace add monkey-di/push-cat
/plugin install bitrix@push-cat
/plugin install php@push-cat
Доступные плагины (см. marketplace.json): bitrix, bitrix-cdd, php, context-engineering, git, sdlc. Каждый плагин даёт namespaced слэш-команды, например /bitrix:iblock, /sdlc:1-define-new-task.
npm install
npm run push-cat # или: node push-cat.mjsИнтерактивный CLI спросит, что синхронизировать:
- CLAUDE.md —
standalone/CLAUDE-GLOBAL.md→~/.claude/CLAUDE.md(с разрешением конфликтов). - Standalone skills — папки из
standalone/skills/копируются в~/.claude/skills/плоско. - Standalone commands — папки из
standalone/commands/копируются в~/.claude/commands/плоско. - Marketplace — регенерация
.claude-plugin/marketplace.jsonиз манифестов вplugins/*/.claude-plugin/plugin.json. Запускать после добавления нового плагина или изменения версии/описания.
- Создать
plugins/<name>/.claude-plugin/plugin.json(поля:name,description,version,author). - Положить скиллы в
plugins/<name>/skills/<skill-name>/SKILL.mdи/или команды вplugins/<name>/commands/<cmd>.md. - Запустить
npm run push-catи отметить Marketplace — он перепишетmarketplace.json. - Закоммитить и запушить — пользователи получат новый плагин.
- Положить в
standalone/skills/<имя>/SKILL.mdилиstandalone/commands/<имя>/*.md. - Запустить
npm run push-cat, отметить нужный раздел.
Чтобы не дублировать один и тот же кусок в нескольких скиллах (например, общую преамбулу под разные ролевые маски), есть build-time склейка. В любом .md ставится маркер:
<!-- include: preamble -->При синхронизации push-cat.mjs заменяет его содержимым shared/preamble.md (.md дописывается автоматически). Источник остаётся DRY — правишь фрагмент в одном файле; а в ~/.claude и в публикуемые плагины попадает уже собранный файл, без маркера и без рантайм-чтений. Если файла во shared/ нет — выводится предупреждение, маркер остаётся на месте.
Работает во всех .md: плагинных и standalone скиллах/командах, а также в CLAUDE-GLOBAL.md. Сам каталог shared/ не публикуется и не синкается — это только сырьё для подстановки.
Node.js ESM. Зависимости: @inquirer/prompts, chalk. Без сборки, тестов и линтера — весь код в push-cat.mjs.