framework/skills/tool-usage/platform-data/xml-generation/subsystem-interface/SKILL.md
Use for создания подсистем, управления их составом и настройки CommandInterface.xml (видимость, порядок команд, размещение в группах). Helps поддерживать навигацию конфигурации через xml-gen subsystem/interface compile/edit/validate.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework subsystem-interfaceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Триггер | Действие |
|---------|----------|
| Создать подсистему из JSON | subsystem compile subsystem.json <output_dir> |
| Посмотреть состав подсистемы | subsystem info <subsystemPath> |
| Добавить объект в подсистему | subsystem edit <path> --op add-content --value "Catalog.Товары" |
| Проверить подсистему | subsystem validate <subsystemPath> |
| Дерево подсистем | subsystem info --mode tree <subsystemPath> |
| Скрыть/показать команду | xml-gen interface edit … --op hide/show |
| Разместить команду в группе | xml-gen interface edit … --op place |
| Задать порядок команд/подсистем/групп | xml-gen interface edit … --op set-order/set-subsystem-order/set-group-order |
| Проверить CommandInterface.xml | xml-gen interface validate <ciPath> |
| Видимость по роли | xml-gen interface edit … --op hide --role <RoleName> |
xml-gen subsystem compile <subsystem.json> <output_dir> [--parent <parentSubsystem.xml>] [--no-stubs]
--parent <path> — bottom-up регистрация: новая подсистема добавляется в ChildObjects родительской (а не в Configuration.xml).--no-stubs — отключить автосоздание stub-XML для content/children без файлов. По умолчанию включено — нужно чтобы валидация не падала в промежуточном состоянии.xml-gen subsystem info [--mode brief|overview|full|tree|ci] <subsystemPath>
xml-gen subsystem edit <subsystemPath> --op <operation> --value <value>
Операции: add-content / remove-content / add-child / remove-child / set-property
add-content — "Catalog.Товары" или ["Catalog.Товары","Document.Заказ"]add-child — если файл <Parent>/Subsystems/<childName>.xml отсутствует — создаётся stub-XML.set-property — "IncludeInCommandInterface=true", "Synonym=Торговля", "Picture=CommonPicture.ТорговляИСклад"13 проверок: XML-структура, Properties, Content, ChildObjects, файлы, CommandInterface.
xml-gen subsystem validate <subsystemPath>
xml-gen interface edit <ciPath> --op <operation> --value <value> [--role <RoleName>] [--create-if-missing] [--no-validate] [--definition-file <file.json>]
ciPath — путь к CommandInterface.xml или к директории подсистемы (Ext/CommandInterface.xml добавляется автоматически).--definition-file — JSON-файл с массивом операций (пакетный режим; несовместим с --op).--create-if-missing — создать новый файл если отсутствует.--no-validate — пропустить авто-валидацию после изменений.| Операция | Аргумент --value |
|----------|--------------------|
| hide | "Catalog.Товары.StandardCommand.Create" или ["Cmd1","Cmd2"] |
| show | "Report.Продажи.Command.Отчёт" |
| place | "command=Catalog.X.StandardCommand.Create group=CommandGroup.Документы" |
| set-order | '{"group":"CommandGroup.Отчеты","commands":["Cmd1","Cmd2"]}' |
| set-subsystem-order | '["Subsystem.X.Subsystem.A","Subsystem.X.Subsystem.B"]' |
| set-group-order | '["NavigationPanelOrdinary","NavigationPanelImportant"]' |
[
{ "op": "hide", "value": "Catalog.Товары.StandardCommand.OpenList" },
{ "op": "show", "value": "Report.Продажи.Command.Отчёт" },
{ "op": "place", "value": "command=CommonCommand.Настройки group=CommandGroup.Сервис" }
]
xml-gen interface validate <ciPath> [--detailed] [--max-errors <N>]
13 проверок: корневой элемент <CommandInterface>, допустимые секции (CommandsVisibility/CommandsPlacement/CommandsOrder/SubsystemsOrder/GroupsOrder), канонический порядок секций, формат ссылок, дубликаты, значения true/false, ссылки на группы, формат Subsystem.X.Subsystem.Y, encoding UTF-8 BOM, лишние атрибуты.
Субагент reviewer обязан вызвать interface validate перед финальным ревью изменений в CommandInterface.xml.
| Тип | Пример |
|-----|--------|
| Общая команда | CommonCommand.ОткрытьСправочник |
| Стандартная команда каталога | Catalog.Товары.StandardCommand.Create |
| Стандартная команда (список) | Catalog.Товары.StandardCommand.OpenList |
| Команда объекта | Catalog.Товары.Command.ПечатьЭтикетки |
| Команда отчёта | Report.Продажи.Command.Отчёт |
| UUID-ссылка | 0:<uuid> |
По умолчанию interface edit запускает interface validate после каждого изменения.
testing
MUST use BEFORE making a judgment about the cause of a conflict, a test failure, or an artifact dispute. Defines the end-to-end verification method L1→L6 and the classification of the first broken link.
development
MUST use AFTER a work cycle with ≥2 iterations (wrote → error → fixed → success). Provides the retrospective procedure and the format for recording practice/anti-patterns in references/learned-patterns.md or {project}/.context/learned-patterns.md.
tools
MUST use WHEN you are writing reusable knowledge into RLM (pattern / architectural decision / stable domain fact) OR reading it before a non-trivial task/solution in the domain. Provides the breakdown of native-push vs RLM-pull, tools for writing and reading RLM, H-MEM levels, and hygiene.
testing
MUST use WHEN the task is classified as simple (< 20 lines, 1 file, no new metadata objects, no architectural decisions). Provides a short cycle of 3 steps with a guard on the self path and mandatory verify.