xml-gen-cli
$
npx mdskill add SteelMorgan/1c-agent-based-dev-framework/xml-gen-cliValidates and modifies XML files for forms, roles, and configurations using XmlGen CLI commands.
- Helps with checking XML structure and semantics for various file types like forms and EPF.
- Integrates with XmlGen CLI tool for executing validation and edit operations.
- Decides actions based on command-line arguments specifying file types and operations.
- Presents results through exit codes and optional output formats like text or JSON.
SKILL.md
.github/skills/xml-gen-cliView on GitHub ↗
--- name: xml-gen-cli description: Правила работы с XmlGen CLI — validate (form/role/skd/mxl/epf/config/subsystem/interface/meta/extension), edit-команды и универсальные операции (form/template/help add/remove). Используй при валидации XML и модификации существующих Form, Role, EPF, SKD. --- # XmlGen CLI — validate и edit-команды ## Команда validate ```bash xml-gen validate [--type <form|role|skd|mxl|epf>] [--format designer|edt] [--level structure|semantic] [--output text|json] <file> [file2 ...] ``` Exit codes: 0=ok, 1=errors, 2=warnings (можно продолжать) Доменные validate: ```bash xml-gen config validate <configPath> xml-gen subsystem validate <subsystemPath> xml-gen interface validate <ciPath> xml-gen meta validate <objectPath> xml-gen extension validate <extensionPath> ``` ## Универсальные операции ```bash xml-gen form add <objectPath> <formName> xml-gen form remove <objectPath> <formName> xml-gen template add <objectPath> <name> --type <spreadsheet|html|text|dcs|binary> xml-gen template remove <objectPath> <name> xml-gen help add <objectPath> ``` ## Edit-команды ### Form ```bash xml-gen form add-attribute --name <Name> --type <Type> <Form.xml> xml-gen form add-element --type <XmlType> --name <Name> [--path <DataPath>] [--parent <ParentName>] [--after <AfterName>] <Form.xml> xml-gen form add-command --name <Name> [--title <Title>] [--action <Action>] <Form.xml> xml-gen form remove-element --name <Name> <Form.xml> xml-gen form move-element --name <Name> [--after <Name>] [--before <Name>] [--into <ParentName>] <Form.xml> ``` **XmlType:** `InputField`, `CheckBoxField`, `Button`, `UsualGroup`, `Table`, `LabelDecoration`, `Page`, `Pages` и др. ### Role (Rights.xml) ```bash xml-gen role add-object --name <ObjectName> --rights <Right1,Right2,...> <Rights.xml> xml-gen role add-right --object <ObjectName> --name <RightName> --value <true|false> <Rights.xml> ``` ### EPF (корневой XML) ```bash xml-gen epf add-attribute --name <Name> [--type <Type>] [--synonym <Synonym>] <EpfRoot.xml> xml-gen epf add-tabular-section --name <Name> [--synonym <Synonym>] <EpfRoot.xml> ``` ### SKD ```bash xml-gen skd add-parameter --name <Name> [--title <Title>] [--type <Type>] <Schema.xml> xml-gen skd add-field --dataset <DataSetName> --name <FieldName> --path <DataPath> [--title <Title>] <Schema.xml> ``` ## Правила для агента 1. **Перед модификацией** — `validate` для проверки текущего состояния. 2. **После модификации** — авто-валидация; при ошибке rollback автоматический. 3. **EPF** — корневой XML: `output/MyProcessor.xml`. Form в EPF: `output/MyProcessor/Forms/MainForm/Ext/Form.xml`. ## Правильно / Неправильно ```bash # ❌ form add-element без --path (DataPath не создастся, элемент не отобразит данные) xml-gen form add-element --type InputField --name Наименование Form.xml # ✅ --path связывает элемент с реквизитом xml-gen form add-element --type InputField --name Наименование --path Наименование Form.xml ``` ```bash # ❌ role add-object с "view" (нужен enum: Read,View) xml-gen role add-object --name Catalog.Номенклатура --rights view Rights.xml # ✅ права через запятую, регистр из enum RoleRight xml-gen role add-object --name Catalog.Номенклатура --rights Read,View Rights.xml ``` ## Workarounds | Проблема | Решение | |----------|---------| | "Parent element not found" | Проверь точное имя родителя в Form.xml (регистр важен) | | "Object already exists" (role) | `role add-right` вместо `add-object` | | "DataSet not found" (skd) | Проверь имя набора данных в Schema.xml | --- depends_on: [] metadata: category: 1c-development version: "1.0" ---
More from SteelMorgan/1c-agent-based-dev-framework
- 1c-ai-agent-cliCLI 1C BSL Agent Framework — tools/install.py (clone, install). Используй при клонировании репозитория, установке компонентов в проект, настройке IDE (Cursor, Claude Code, Windsurf, VS Code+Continue).
- agent-debugПаттерн отладочных сообщений для 1С BSL. Используй, когда стандартная диагностика (event-log, скриншоты) не даёт понять фактическое поведение системы — нужно вставить временные точки логирования в код, запустить тест и проанализировать записи ЖР.
- agent-developmentCreate custom subagents for specialized AI tasks. Use when the user wants to create a new type of subagent, set up task-specific agents, configure code reviewers, debuggers, or domain-specific assistants with custom prompts.
- agent-development-ext>
- agent-git-workflowStandardizes git workflow for the AI agent in the sandbox devcontainer: work in agent/<task>-<yyyymmdd>, integrate via agent, never push to main/master, open PRs via GitHub CLI. Use when the user asks to create branches, push changes, open PRs, or follow this sandbox repo setup.
- auto-skill-bootstrapDeterministic helper to inventory existing project skills, detect missing capability coverage, search skills.sh via Skills CLI, and (optionally) install missing skills under a trust policy. Uses skills-manifest.json + state.json to stay idempotent across changing requirements.
- code-navigationНавигация по коду (Code Navigation). Навык учит агента **эффективно перемещаться по BSL-коду** с помощью LSP (Language Server Protocol).
- config-operationsОперации с конфигурацией 1С (CF) — init, info, edit, validate. Используй при создании конфигурации, анализе структуры, изменении свойств и ChildObjects, валидации Configuration.xml.
- epf-buildСобрать EPF/ERF из XML-исходников. Используй после внесения временных диагностических правок в разобранную обработку.
- epf-dumpРазобрать EPF/ERF в XML-исходники. Используй, когда нужно быстро получить исходный код внешней обработки или отчета для анализа и временной модификации.