xdto-validate — Claude Code skill: what it does, how to install
Statically validates 1C XDTO packages before applying them to a configuration. Catches missing types and broken metadata relations in source files.
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skillsWhat xdto-validate does
The skill executes xdto-validate.ps1 via powershell.exe to inspect XDTO package structures, metadata files, and their links to 1C configuration source trees. Each issue appears on a separate line tagged with [ERROR] or [WARN]. Any critical failure exits with code 1.
Static inspection catches issues that the 1C engine overlooks during import. When a referenced type from another namespace cannot be resolved, the platform silently substitutes it with xs:anyType. That leaves the package visually valid until runtime operations fail or return untyped data.
Target inputs accept a directory path, an Ext/Package.bin binary, or an XML metadata file via PackagePath. The checker stops after 20 errors by default unless overridden with MaxErrors. Without PowerShell in the host environment, validation scripts will not run.
What it helps with
- detect unresolved namespace types prior to importing packages into 1C
- verify metadata links between XDTO definitions and configuration sources
- export detailed issue logs to a file with
-OutFile - prevent silent type fallback to
xs:anyTypeduring runtime data extraction
Example prompts for the agent
- /xdto-validate PackagePath "src/XDTOpackages/OrderExchange"
- /xdto-validate PackagePath "Ext/Package.bin" -Detailed -OutFile "report.txt"
- /xdto-validate PackagePath "Order.xml" -ConfigDir "src/cf" -MaxErrors 5
How to install xdto-validate
1Plugin marketplace
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills/plugin install 1c-skills@cc-1c-skillsThis installs the whole 1c-skills plugin with all its skills
2Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill xdto-validate -a claude-code3Manually: put the files in place
~/.claude/skills/xdto-validate/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/xdto-validate/
1Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill xdto-validate -a codex2Manually: put the files in place
.agents/skills/xdto-validate/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/xdto-validate/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Nikolay-Shirokov/cc-1c-skills xdto-validate2Manually: put the files in place
.github/skills/xdto-validate/SKILL.mdPlatform CLI
gemini skills install https://github.com/Nikolay-Shirokov/cc-1c-skills --path .claude/skills/xdto-validateManually: put the files in place
.devin/skills/xdto-validate/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about xdto-validate
How to install xdto-validate in Claude Code?
In Claude Code, run /plugin marketplace add Nikolay-Shirokov/cc-1c-skills and then run /plugin install 1c-skills@cc-1c-skills.
What does xdto-validate do?
It checks 1C XDTO package models and metadata integrity, returning exit code 1 when critical flaws are detected.
Why run validation if 1C loads the package without errors?
The 1C runtime often masks unresolved schema references by replacing missing types with xs:anyType, which leads to untyped objects during runtime processing.
Source text
SKILL.md · MIT
---
name: xdto-validate
description: Валидация пакета XDTO 1С. Используй после создания или модификации пакета XDTO для проверки корректности
argument-hint: <PackagePath> [-ConfigDir <каталог>] [-Detailed] [-MaxErrors N] [-OutFile <файл>]
allowed-tools:
- Bash
- Read
- Glob
---
# /xdto-validate — Валидация пакета XDTO
Проверяет модель пакета, объект метаданных и его связь с конфигурацией.
Каждая находка выводится отдельной строкой с объяснением. Exit code `1` при ошибках.
## Параметры
| Параметр | Обязательный | Описание |
|----------|--------------|----------|
| `PackagePath` | да | Каталог пакета, `Ext/Package.bin` или `<Имя>.xml` объекта метаданных. Псевдоним — `-Path` |
| `ConfigDir` | нет | Корень исходников. По умолчанию определяется по расположению пакета |
| `Detailed` | нет | Показывать успешные проверки, а не только проблемы |
| `MaxErrors` | нет | Остановиться после N ошибок. По умолчанию 20 |
| `OutFile` | нет | Записать отчёт в файл |
```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/xdto-validate.ps1" -PackagePath "<путь>"
```
`[ERROR]` — платформа такой пакет не примет либо примет неправильно.
`[WARN]` — пакет рабочий, но есть риск, о котором стоит знать.
## Зачем запускать, если пакет и так грузится
Часть дефектов платформа не диагностирует: неразрешённый тип из чужого пространства
имён она молча подменяет на `xs:anyType`, и пакет выглядит загруженным, пока
`ФабрикаXDTO` не отдаст в рантайме бесструктурное значение. Такие вещи видно только
статически — до загрузки в базу.
## Типичный workflow
1. `/xdto-compile`, `/xdto-edit` или переработка через `/xdto-decompile` → `/xdto-compile -Force`
2. `/xdto-validate <путь>` — до загрузки в базу
3. `/db-load-xml` + `/db-update`
© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills