mcpField
S
skd-decompile

skd-decompile

github.com/nikolay-shirokovDevelopment74147 installsUpdated today
Repository

About skd-decompile

skd-decompile reads a 1C Data Composition System Template.xml and emits a draft JSON in skd-compile format. It is intended for scaffolding reports from examples or structural refactoring, with unsupported constructs flagged for manual handling rather than silently treated as reversible output.

Key features

  1. 01Convert Template.xml to draft JSON
  2. 02Represent supported structures as DSL nodes
  3. 03Mark unsupported constructs with sentinels
  4. 04Write a warnings file with source coordinates
  5. 05Reject templates with critical unsupported structures

Use cases

  1. 01Scaffold a new report from an existing SKD example
  2. 02Refactor report variants and field sets
  3. 03Review uncovered constructs before recompiling

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nikolay-shirokov/cc-1c-skills --skill skd-decompile

After installing, type/skd-decompilein Claude Code to confirm it loaded.

Bundled filesscripts/skd-decompile.ps1scripts/skd-decompile.py

Details

From the project README

/skd-decompile — JSON-черновик из Template.xml СКД

Читает Template.xml и эмитит JSON в формате skd-compile. Результат — черновик, а не обратимое представление: см. раздел «Что получаешь».

Когда использовать

  • Scaffold нового отчёта по образцу — взять существующий СКД, получить JSON, поправить и скомпилировать в новый.
  • Структурный рефакторинг — переписать вариант, перерисовать шаблон, перебрать набор полей.

Когда не использовать

  • Точечные правки готового отчёта (добавить поле, фильтр, итог, переименовать) → /skd-edit. Цикл «декомпиляция → правка JSON → компиляция» переписывает шаблон целиком, может терять непокрытые конструкции и даёт большой diff в исходниках. /skd-edit правит адресно, без полной реконструкции.

Параметры

ПараметрОписание
TemplatePathПуть к Template.xml (обязательный)
OutputPathПуть к выходному JSON. Если не задан — JSON в stdout
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/skd-decompile.ps1" -TemplatePath "<Template.xml>" -OutputPath "<out.json>"

Что получаешь

JSON-черновик в формате /skd-compile — не полное обратимое представление СКД. На вход компилятору такой JSON напрямую может не пойти: в нём встречаются sentinel-узлы (маркер __unsupported__).

  • Готовые узлы — большая часть СКД (поля, параметры, шаблоны, варианты со structure/filter/order/conditionalAppearance и т.п.) ложится в JSON как обычные узлы DSL.
  • Sentinel-узлы — места, где встретилась конструкция, которую декомпилятор не умеет выразить в DSL. JSON остаётся валидным, но компилятор откажется его собирать, пока sentinel не заменён ручной реализацией (явный raw template, прописанный appearance и т.п.) или не удалён, если в новом отчёте конструкция не нужна. Это намеренный барьер — чтобы непокрытое не уехало в финальный отчёт незамеченным.
  • <basename>.warnings.md рядом с OutputPath — список всех sentinel-узлов с координатами в исходнике, по нему удобно обходить места под ручную доработку.
  • Критичные конструкции (Picture cells, ХранилищеЗначения, вложенные схемы, не-СКД root) — скрипт падает с ненулевым кодом и сообщением в stderr; такой Template как образец не годится.

Workflow

  1. /skd-decompile <Template.xml> -OutputPath draft.json — получить черновик.
  2. Открыть draft.warnings.md, посмотреть, что не покрылось.
  3. Поправить JSON под задачу. Sentinel-узлы — заменить на ручную реализацию (через явный raw template, через ручное описание appearance и т.п.) либо удалить, если конструкция в новом отчёте не нужна.
  4. /skd-compile -DefinitionFile draft.json -OutputPath new-Template.xml — собрать обратно.
  5. /skd-validate + /skd-info — проверить.

Comments

Markdown supported