mcpField
S
skd-decompile

skd-decompile

github.com/nikolay-shirokov開発74147 回インストール今日更新
リポジトリ

skd-decompile について

skd-decompileは1CデータコンポジションシステムのTemplate.xmlを読み込み、skd-compile形式のJSON草案を出力します。既存例を基にしたレポートのひな型作成や構造的なリファクタリング向けで、未対応の構造は可逆変換として扱わず、手動対応が必要な箇所として示します。

主な機能

  1. 01Template.xmlをJSON草案に変換
  2. 02対応する構造をDSLノードで表現
  3. 03未対応の構造をsentinelで表示
  4. 04ソース位置付きの警告ファイルを生成
  5. 05重大な未対応構造を含むテンプレートを拒否

活用シーン

  1. 01既存のSKD例から新しいレポートを作成
  2. 02レポートのバリアントやフィールド構成を再設計
  3. 03再コンパイル前に未対応箇所を確認

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/skd-decompileを入力して読み込まれたか確認します。

同梱ファイルscripts/skd-decompile.ps1scripts/skd-decompile.py

README(原文)English

プロジェクトの README より

この 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 — проверить.

コメント