framework_eng/rules/no-manual-xml-edit/SKILL.md
When editing 1C XML/MXL, use xml-generation
npx skillsauth add steelmorgan/1c-agent-based-dev-framework no-manual-xml-editInstall 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.
Trigger: any attempt to use Edit/Write/sed/awk/Bash on a
*.mxlor*.xmlfile in 1C directories. When triggered, apply thexml-generationskill (framework/skills/tool-usage/platform-data/xml-generation/SKILL.md).
xmlgen.xmlgen validate.Why: 1C metadata has a strict schema plus non-obvious runtime dependencies. Direct editing regularly produces a non-canonical schema that passes build and LSP, but breaks runtime UI. Precedent: OC-22444 F-01 - 6 iterations of Developer-Code could not stabilize the form.
*.mxl (any).*.xml inside **/Ext/, Configuration.xml, or 1C root folders: Catalogs/, Documents/, *Registers/, Roles/, Subsystems/, CommonModules/, ChartsOf*, Reports/, DataProcessors/, Enums/, Constants/, ExchangePlans/, Tasks/, BusinessProcesses/, HTTPServices/, WebServices/, EventSubscriptions/, ScheduledJobs/, DefinedTypes/, DocumentJournals/ and so on.pom.xml, build.gradle.kts, settings.gradle.kts - build descriptors..gitignore, .editorconfig, CI/CD YAML/XML.In Claude Code, the hook blocks automatically. In all other environments, self-check is mandatory before every Edit/Write/apply_patch/sed on a path with the .xml or .mxl extension:
python3 tools/hooks/block-direct-xml-edit.py --check "<path>" --tool Edit
2 -> the path belongs to 1C metadata, do not make the edit. Read stderr - it contains a hint about the required xml-gen command.0 -> not 1C metadata, editing is allowed.Some platform capabilities (conditional form formatting, dynamic list filters, MXL cell coloring by condition) are not stored in XML and are implemented programmatically - this is design, not an xml-gen defect; do not look for a manual XML workaround. The list and examples are in the
xml-generationskill.
If xml-gen explicitly does not support the required operation, record the fact of manual editing (MANUAL_XML_EDIT: with the file, operation, reason, validation method) in {role}-context.md and notify the orchestrator (MANUAL_XML_EDIT_REPORTED:) in orchestrator-context.md. The recording format is in the xml-generation skill.
depends_on:
development
1C server maintenance webhooks: container restart and external component cache cleanup
development
Interactive DAP debugging of a single BSL procedure
tools
Rules for using RLM tools for project search and navigation in 1C/BSL
development
Creates web applications and routes on Winow (a web server on OneScript and Autumn). Use when working with a web server on OneScript, routing, or Winow controllers.