一键导入
round-trip-yaml
Диагностирует полный metadata round-trip (XML -> модель -> YAML -> модель -> XML) и показывает single/triage diff'ы без создания reproducer.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Диагностирует полный metadata round-trip (XML -> модель -> YAML -> модель -> XML) и показывает single/triage diff'ы без создания reproducer.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Finish a completed development branch by verifying tests, pushing the branch, creating a GitHub PR, merging it, deleting the remote branch, removing the git worktree, and deleting the local branch. Use when the user asks to finish the cycle, ship via PR, merge and clean up, or says this is the end of a worktree/PR cycle.
Подсвечивает пачки расхождений short round-trip (XML → модель → XML) для анализа и автоматически генерирует одиночный reproducer для выбранного diff'а после подтверждения пользователя.
Use when the user asks to measure YAML project validation speed or memory through the compiled standalone validation path.
Диагностирует XML -> YAML -> XML без reference и проверяет загрузку результата в файловую базу 1С через ibcmd.
Исследование прикладного объекта метаданных 1С перед реализацией — глубокий анализ фикстур, XSD, справки 1С и соседей в codebase. Рекурсивно выявляет подчинённые объекты и извлекает для них XML-фикстуры. Выдаёт консолидированный отчёт для `/write-a-prd`. Используй при добавлении нового прикладного объекта (Документ, Последовательность, Перечисление, Нумератор и т.п.).
Создание нового объекта метаданных (metadataItem) по фикстурам и схемам. При добавлении новых объектов метаданных используй этот скилл.
| name | round-trip-yaml |
| description | Диагностирует полный metadata round-trip (XML -> модель -> YAML -> модель -> XML) и показывает single/triage diff'ы без создания reproducer. |
Перед диагностикой metadata round-trip обязательно прочитай:
.agents/knowledge/metadata/INDEX.md.agents/knowledge/metadata/sources-of-truth.md.agents/knowledge/metadata/round-trip-cycle.md.agents/knowledge/metadata/yaml-contract.mdСкилл запускает полный цикл:
XML -> модель -> YAML -> модель -> XML
На выходе он показывает XML diff'ы, появившиеся после nkdk import <xml-dir> <tmp-yaml-dir>, nkdk sync <tmp-yaml-dir> <tmp-xml-dir> --reference <xml-dir> и полной замены активного XML-каталога результатом временного XML-каталога.
У скилла два режима:
Скилл только диагностирует. Он не создаёт ветки, slug, фикстуры, тесты, планы исправления, коммиты и PR.
nkdk-core. Если git status не чистый — стоп, попросить пользователя.pnpm test. Это диагностический skill.Вызови ./.agents/skills/round-trip-yaml/round-trip.sh из корня nkdk-core.
Скрипт:
NKDK_XML_REPO (обязательная), NKDK_XML_DIR (опциональная) и NKDK_ROUND_TRIP_YAML_DIR (опциональная) из .env;nkdk-core чистое;NKDK_XML_REPO является git-репозиторием;git restore . в XML-репо;nkdk import <xml-dir> <tmp-yaml-dir>;nkdk sync <tmp-yaml-dir> <tmp-xml-dir> --reference <xml-dir>;sync копирует reference-only файлы, которые не являются частью YAML-договора, из активного XML-каталога во временный XML-каталог;git diff;--all-configs.Если скрипт написал === Round-trip чистый: диффов нет === — стоп, нечего анализировать.
Если скрипт упал на guard'е dirty-tree — попроси пользователя сохранить/откатить правки. Не запускай git stash, git restore, git clean сам.
По умолчанию временный YAML-каталог создаётся в ${TMPDIR:-/tmp}/round-trip-yaml/<config>.
Если в .env задан NKDK_ROUND_TRIP_YAML_DIR, скрипт использует этот каталог как базу выгрузки YAML. Для одиночного запуска YAML пишется прямо в указанный каталог, например:
NKDK_ROUND_TRIP_YAML_DIR=/Users/nikita/git/erp_nkdk
При запуске нескольких конфигураций через --all-configs каждая конфигурация получает подпапку внутри NKDK_ROUND_TRIP_YAML_DIR, чтобы результаты не перетирали друг друга.
Для экспорта YAML обратно в XML скрипт использует временный XML-каталог ${TMPDIR:-/tmp}/round-trip-yaml-xml/<config>.
Перед sync каталог очищается. Активный XML-каталог передаётся в sync только как --reference: старые XML-файлы не копируются во временный XML-каталог. Результат после успешного sync полностью заменяет активный XML-каталог, поэтому любые файлы, которые не были восстановлены из YAML, становятся удалениями в git diff. Сам временный XML-каталог не считается диагностическим результатом; анализировать нужно diff в XML-репо и сохраненный YAML-каталог.
Исключение: reference-only файлы, которые намеренно не входят в YAML-договор, копируются из активного XML-каталога во временный XML-каталог после sync и до замены активного каталога. Сейчас это Ext/ParentConfigurations.bin и Ext/ParentConfigurations/*.cf.
Команды:
./.agents/skills/round-trip-yaml/round-trip.sh
./.agents/skills/round-trip-yaml/round-trip.sh --diff-index 3
После запуска сформируй краткий разбор:
XML-файл: <абсолютный локальный путь из SELECTED_XML_FILE_ABS>
XML-каталог: <значение ACTIVE_XML_DIR>
YAML-каталог: <значение YAML_DIR>
Diff: <SELECTED_DIFF_FILE>
Вероятный модуль: packages/core/metadata/<...> или неизвестно
Вероятный код: packages/core/metadata/<...>/rules.ts или неизвестно
Категория: потеря пустого тега / порядок XML-узлов / лишний default / потеря атрибута / потеря xsi:type / потеря id или ссылки / YAML-default / YAML-исключение / неизвестно
Описание: <что изменилось при полном round-trip>
Diff:
<релевантный фрагмент или полный diff, если он короткий>
Сомнения: <почему модуль или причина неочевидны, если есть сомнения>
Используй этот режим, когда пользователь просит показать несколько ошибок для анализа: «покажи следующие 5 ошибок», «дай пачку с 6-й», «покажи 10 diff'ов».
Команды:
./.agents/skills/round-trip-yaml/round-trip.sh --triage --batch-size 5
./.agents/skills/round-trip-yaml/round-trip.sh --triage --batch-size 5 --start-index 6
./.agents/skills/round-trip-yaml/round-trip.sh --triage --all-configs --batch-size 20
После запуска сформируй краткий список. Каждый пункт должен содержать:
1. <относительный XML-путь из diff>
XML-файл: <абсолютный локальный путь из XML_FILE_ABS>
XML-каталог: <значение ACTIVE_XML_DIR>
YAML-каталог: <значение YAML_DIR>
Вероятный модуль: packages/core/metadata/<...> или неизвестно
Вероятный код: packages/core/metadata/<...>/rules.ts или неизвестно
Категория: потеря пустого тега / порядок XML-узлов / лишний default / потеря атрибута / потеря xsi:type / потеря id или ссылки / YAML-default / YAML-исключение / неизвестно
Описание: <что изменилось при полном round-trip>
Diff:
<короткий релевантный фрагмент>
Сомнения: <почему модуль или причина неочевидны, если есть сомнения>
Правила triage-ответа:
XML-файл всегда бери из XML_FILE_ABS. Если путь абсолютный и файл существует локально, оформи его кликабельной ссылкой.YAML-каталог всегда бери из YAML_DIR.packages/core/metadata/**/rules.ts, types.ts, fromYAML.test.ts, toYAML.test.ts, fromXML.test.ts, toXML.test.ts.Остановись и спроси пользователя, если:
nkdk import падает;nkdk sync падает;Скилл не коммитит, не пушит, не создаёт PR, не запускает тесты и не исправляет код.