diff --git a/.claude/skills/xdto-compile/SKILL.md b/.claude/skills/xdto-compile/SKILL.md index c9b8c027..16ff88b2 100644 --- a/.claude/skills/xdto-compile/SKILL.md +++ b/.claude/skills/xdto-compile/SKILL.md @@ -102,4 +102,5 @@ XSD выразительнее модели XDTO. Всё, что не перен 3. `/xdto-validate <каталог-исходников>/XDTOPackages/<Имя>` — убедиться, что типы разрешились 4. `/db-load-xml` + `/db-update` -Правка существующего пакета: `/xdto-decompile` → правка XSD → `/xdto-compile -Force`. +Правка существующего пакета: точечно — `/xdto-edit`; переработать схему целиком — +`/xdto-decompile` → правка XSD → `/xdto-compile -Force`. diff --git a/.claude/skills/xdto-decompile/SKILL.md b/.claude/skills/xdto-decompile/SKILL.md index 45725f7b..7413388f 100644 --- a/.claude/skills/xdto-decompile/SKILL.md +++ b/.claude/skills/xdto-decompile/SKILL.md @@ -30,12 +30,15 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-decompile.ps1" ... -PackagePath src/XDTOPackages/ОбменСБанком -OutFile bank.xsd ``` -## Правка пакета +## Переработка схемы целиком `/xdto-decompile` → правка XSD → `/xdto-compile -Force` возвращает пакет без потерь, включая имя, синоним и комментарий объекта метаданных — они выгружаются -в `xs:annotation/xs:appinfo`. Это основной способ менять существующий пакет: -отдельных операций правки не нужно, схема читается и правится целиком. +в `xs:annotation/xs:appinfo`. + +Этот путь нужен, когда схему меняют широко или сначала надо разобраться, как она +устроена. Чтобы поправить одно свойство, схему целиком читать не нужно — `/xdto-edit`. +Если нужна не схема, а сводка «что присвоить и что обязательно», — `/xdto-info`. В схеме могут встретиться атрибуты с префиксом `xdto:` — так записано то, что XML Schema выразить не может (например `nillable` у атрибута). Схема при этом остаётся diff --git a/.claude/skills/xdto-edit/SKILL.md b/.claude/skills/xdto-edit/SKILL.md index 2cd1ba8e..58b53ec3 100644 --- a/.claude/skills/xdto-edit/SKILL.md +++ b/.claude/skills/xdto-edit/SKILL.md @@ -10,11 +10,11 @@ allowed-tools: # /xdto-edit — Точечное редактирование пакета XDTO -Меняет один элемент пакета, не требуя читать и переписывать всю схему. Для больших +Меняет один элемент пакета, не требуя читать и переписывать всю схему — для больших пакетов (`EnterpriseData` — около мегабайта) это единственный практичный путь. -Для маленького пакета проще связка `/xdto-decompile` → правка XSD → `/xdto-compile -Force`: -она даёт тот же результат и позволяет видеть схему целиком. +Если нужно переработать схему целиком или сперва разобраться, как она устроена, — +`/xdto-decompile` → правка XSD → `/xdto-compile -Force`. ## Параметры @@ -78,7 +78,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-edit.ps1" -Pac `set-namespace` меняет `targetNamespace`, все внутренние ссылки на собственные типы и `` объекта метаданных. Пакеты, импортирующие старое пространство имён, **не изменяются** — при версионировании они и должны продолжать смотреть на прежнее. -Навык их перечислит; если правка не версионная, поправь их импорты сами. +Навык их перечислит; если правка не версионная, поправь их импорты сам. После правки автоматически запускается `/xdto-validate` — отключается через `-NoValidate`. diff --git a/.claude/skills/xdto-info/SKILL.md b/.claude/skills/xdto-info/SKILL.md index 46411930..14292505 100644 --- a/.claude/skills/xdto-info/SKILL.md +++ b/.claude/skills/xdto-info/SKILL.md @@ -23,7 +23,7 @@ allowed-tools: | `Package` | нет | Выбрать пакет по имени объекта метаданных | | `Name` | нет | Имя типа. Без выбранного пакета ищется по всей конфигурации | | `Depth` | нет | Глубина разузлования вложенных объектов. По умолчанию 1 | -| `Mode` | нет | `used-by` — кто ссылается на тип. По умолчанию `auto` | +| `Mode` | нет | `used-by` — показать, кто ссылается на тип | | `Limit` / `Offset` | нет | Пагинация. По умолчанию 150 строк | | `OutFile` | нет | Записать результат в файл (UTF-8 BOM) | @@ -79,7 +79,8 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-info.ps1" -Pac - **`объект X`** — свойству нужно присвоить вложенный объект XDTO, а не значение. Раскрыть его состав — `-Depth 2` и больше. - **`[обязательный]`** — без заполнения запись XML не пройдёт. Непомеченное свойство - необязательно. `[список]` — коллекция, заполняется через `.Добавить()`. + необязательно. `[список]` — коллекция, заполняется через `.Добавить()`; + `[до N]` — коллекция с ограничением сверху. - **`← СуммаТип`** — исходное имя типа из схемы; слева от стрелки уже развёрнутое значение. - **`[значение элемента]`** — свойство хранит собственное значение элемента, остальные свойства такого типа лежат в атрибутах XML. diff --git a/.claude/skills/xdto-validate/SKILL.md b/.claude/skills/xdto-validate/SKILL.md index e1e919b3..890c5819 100644 --- a/.claude/skills/xdto-validate/SKILL.md +++ b/.claude/skills/xdto-validate/SKILL.md @@ -39,6 +39,6 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-validate.ps1" ## Типичный workflow -1. `/xdto-compile` или правка через `/xdto-decompile` → `/xdto-compile -Force` +1. `/xdto-compile`, `/xdto-edit` или переработка через `/xdto-decompile` → `/xdto-compile -Force` 2. `/xdto-validate <путь>` — до загрузки в базу 3. `/db-load-xml` + `/db-update`