meta-decompile — скилл для Claude Code: черновик объекта 1С из XML
Читает XML объекта метаданных 1С и выдаёт компактный JSON в формате meta-compile. Пригодится, когда новый объект проще собрать по образцу существующего, чем писать DSL с нуля.
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skillsЧто делает meta-decompile
Скилл разбирает XML вроде Catalogs/Имя.xml и эмитит JSON-заготовку для /meta-compile. В неё попадают структура и свойства объекта. UUID, тела модулей, формы, макеты и права не сохраняются.
Из этого следует главное: это не обратимая выгрузка. Скомпилированный черновик даёт новый объект с новой идентичностью, поэтому ссылки на исходный объект из кода, других объектов, состава подсистем и предопределённых данных сломаются. Никогда не компилируйте черновик поверх объекта-источника и не выдавайте его за реимпорт.
Запускается скриптом scripts/meta-decompile.ps1 через PowerShell. Обязательный параметр — путь к XML объекта, OutputPath необязателен: без него JSON уходит в stdout. Неподдерживаемый тип объекта или не-MetaDataObject root дают ненулевой код выхода и сообщение в stderr. Для точечной правки существующего объекта берите /meta-edit, для бэкапа и переноса — штатную выгрузку 1С, а чтобы просто посмотреть состав — /meta-info.
Какие задачи решает
- собрать DSL-заготовку нового объекта по образцу рабочего
- переименовать и адаптировать состав реквизитов и табличных частей
- получить черновик для
/meta-compileбез ручного описания структуры - проверить, что за структура лежит в XML объекта, перед пересборкой
Примеры запросов агенту
- /meta-decompile Catalogs/Образец.xml -OutputPath draft.json
- собери по этому образцу новый справочник: поменяй name в draft.json и скомпилируй
- декомпилируй Catalogs/Номенклатура.xml и покажи, какие реквизиты попадут в заготовку
Как установить meta-decompile
1Через маркетплейс плагинов
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills/plugin install 1c-skills@cc-1c-skillsКоманда ставит плагин 1c-skills целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill meta-decompile -a claude-code3Вручную: положить файлы
~/.claude/skills/meta-decompile/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/meta-decompile/
1Через Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill meta-decompile -a codex2Вручную: положить файлы
.agents/skills/meta-decompile/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/meta-decompile/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Nikolay-Shirokov/cc-1c-skills meta-decompile2Вручную: положить файлы
.github/skills/meta-decompile/SKILL.mdКомандой платформы
gemini skills install https://github.com/Nikolay-Shirokov/cc-1c-skills --path .claude/skills/meta-decompileВручную: положить файлы
.devin/skills/meta-decompile/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о meta-decompile
Как установить meta-decompile в Claude?
Через маркетплейс: сначала /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, затем /plugin install 1c-skills@cc-1c-skills.
Что делает meta-decompile?
Читает XML объекта метаданных 1С и выдаёт JSON-заготовку формата meta-compile со структурой и свойствами объекта.
Чем meta-decompile отличается от meta-edit?
meta-edit правит существующий объект точечно. Цикл decompile→compile даёт объект с новой идентичностью и теряет модули с формами, поэтому для правки он не годится.
Исходный текст
SKILL.md · MIT
---
name: meta-decompile
description: Декомпиляция объекта метаданных 1С в JSON-заготовку формата meta-compile. Используй когда нужно получить черновик DSL-описания нового объекта по образцу другого. Не сохраняет UUID/модули/формы.
argument-hint: <ObjectPath> [-OutputPath <out.json>]
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
- Glob
---
# /meta-decompile — DSL-заготовка из XML объекта метаданных
Читает XML объекта метаданных (`Catalogs/Имя.xml` и т.п.) и эмитит компактный JSON в формате `/meta-compile`. Назначение — **взять существующий объект образцом и собрать по нему НОВЫЙ**: декомпилировать → поправить → скомпилировать под другим именем.
## ⚠️ Главное: это НЕ обратимая выгрузка
Компиляция черновика создаёт **новый объект с новой идентичностью**, а не копию исходного. В JSON **не** попадают: UUID (идентичность самого объекта и всех дочерних), тела модулей, формы, макеты, права. Захватываются только структура и свойства.
Отсюда правило: **никогда не компилируй черновик поверх объекта-источника и не выдавай его за «реимпорт»** — у пересобранного объекта другие UUID, поэтому все ссылки на исходный объект (из кода, других объектов, состава подсистем, предопределённых данных) сломаются, а код модулей и формы пропадут.
## Когда использовать
**Собрать новый объект по образцу существующего** — получить DSL-заготовку рабочего объекта, переименовать и адаптировать состав, скомпилировать в новый. Быстрее, чем писать DSL с нуля для богатого объекта.
## Когда **не** использовать
- **Точечная правка существующего объекта** (добавить реквизит, ТЧ, свойство) → `/meta-edit`. Цикл decompile→compile тут вреден: даёт объект с новой идентичностью и теряет модули/формы.
- **Сохранить / восстановить / перенести тот же объект** (бэкап, миграция между конфигурациями с сохранением ссылок) → штатная выгрузка 1С (`/db-dump-xml` ↔ `/db-load-xml`, CF), а не decompile.
- **Просто понять структуру** объекта (реквизиты, ТЧ, типы) без пересборки → `/meta-info` (дешевле, не плодит файл).
## Параметры
| Параметр | Описание |
|----------|----------|
| `ObjectPath` | Путь к XML объекта (`Catalogs/Имя.xml`), обязательный |
| `OutputPath` | Путь к выходному JSON. Если не задан — JSON в stdout |
```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/meta-decompile.ps1" -ObjectPath "<Объект.xml>" -OutputPath "<out.json>"
```
Неподдерживаемый тип объекта или не-`MetaDataObject` root → ненулевой код выхода и сообщение в stderr.
## Workflow (сборка нового объекта по образцу)
1. `/meta-decompile <Образец.xml> -OutputPath draft.json` — получить заготовку.
2. В `draft.json` **сменить `name`** на имя нового объекта и адаптировать состав (реквизиты/ТЧ/свойства). Ссылки на *другие* объекты (владельцы, ввод на основании, типы) — по имени, сохраняются как есть.
3. `/meta-compile -JsonPath draft.json -OutputDir <ConfigDir>` — собрать (объект получит свежие UUID).
4. `/meta-validate` + `/meta-info` — проверить.
5. Модули, формы, макеты, права — добавить отдельно (в черновик они не попадают).
© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills