framework_eng/skills/tool-usage/platform-data/xml-generation/skd-edit/SKILL.md
Targeted editing of an existing 1C data composition schema (SKD, DataCompositionSchema). Use when you need to atomically modify Schema.xml - add/remove/change fields, totals, parameters, field roles, change the variant structure, or query text. Complements skd-dsl (compile), but does not overlap.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework skd-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 | Action |
|---------|----------|
| Create a new SKD from scratch | xml-gen skd compile → skd-dsl |
| Add a field/total/parameter to an existing Schema.xml | xml-gen skd edit ... add-field/add-total/add-parameter |
| Change a field role (balance, dimension, period) | set-field-role |
| Completely rewrite the data set query | set-query |
| Patch a specific piece of query text | patch-query @once |
| Rename/reorder parameters | rename-parameter, reorder-parameters |
| Change grouping fields in the structure without losing Selection/CA | modify-structure with @name= |
| Remove all conditional appearance from a variant | clear-conditionalAppearance |
xml-gen skd edit <SchemaPath> <operation> "<value>" [--dataSet <name>] [--variant <name>] [--no-selection]
| Parameter | Description |
|----------|----------|
| SchemaPath | Path to Template.xml / Schema.xml. The folder is extended to Ext/Template.xml. |
| --dataSet | Name of the target data set. By default - the first one. |
| --variant | Name of the settings variant. By default - the first one. |
| --no-selection | For add-field - do not add the field to the variant selection. |
| Group | Shorthand | Reference |
|--------|-----------|-----------|
| add-field, modify-field, remove-field | "Name [Caption]: type @role #constraint" | fields.md |
| set-field-role | "dataPath [@flags] [kv=value]" | fields.md |
| add-parameter, modify-parameter, remove-parameter | "Name [Caption]: type = value [@flags]" | parameters.md |
| rename-parameter | "OldName => NewName" | parameters.md |
| reorder-parameters | "Name1, Name2, Name3" | parameters.md |
| add-total, remove-total | "<dataPath>: <expression>" / "<dataPath>" | totals.md |
| modify-structure | "Field1, Field2 @name=GroupName" | structure.md |
| set-query | query text or "@path/query.sql" | query.md |
| patch-query | "old => new [@once]" | query.md |
| clear-conditionalAppearance | "*" | (below) |
Multiple values separated by ;;:
xml-gen skd edit Schema.xml add-field "Цена: decimal(15,2) ;; Количество: decimal(15,3)"
Batch is not supported by: set-query, patch-query without @once, modify-structure. A query may literally contain ;;, so set-query is always single.
xml-gen skd edit Schema.xml clear-conditionalAppearance "*"
Removes all CA rules in the specified variant. The value is always *. Idempotent.
set-field-role, @hidden/@always, clear-*, remove-* - a repeated call does not change the file. remove-*: absence of the target = noop with warning, not an error.add-*. If an object with that name already exists - warning + skip. To update it, use modify-*.@once for patch-query. If the text has 0 or ≥2 matches - error, the file does not change. Without the flag - replaces all occurrences.availableValue= in modify-parameter - full replacement, not merge. Old values are removed.set-query vs patch-query. Full replacement versus targeted edit. Large changes - via set-query (can be loaded from a file @path). A local fix - patch-query @once.modify-structure requires @name=. Without an explicit name the operation fails. The name is set when creating the structure in skd-dsl (set-structure "... @name=ДанныеОтчета").patch-query @once by default. If you are editing query text and are not sure the substring is unique, set @once.set-field-role and modify-field. modify-field does NOT touch the role (it is in <role>, while field properties are in <field>).modify-structure make sure the grouping has a name. Otherwise - set-structure from skd-dsl (full replacement).@hidden/@always are idempotent. Typical pattern for constant query parameters.availableValue= in modify-parameter - destructive. To add one value - read the file, enumerate all values in a new line.xml-gen validate --type skd Schema.xml # 1. валидировать
xml-gen skd edit Schema.xml add-field "Цена: decimal(15,2) ;; Количество: decimal(15,3)"
xml-gen skd edit Schema.xml add-total "Цена: Среднее ;; Количество: Сумма"
xml-gen skd edit Schema.xml set-field-role "СуммаНач @balance balanceGroupName=Сумма balanceType=OpeningBalance"
xml-gen skd edit Schema.xml patch-query "СубконтоДт1) В => СубконтоКт1) В @once"
xml-gen validate --type skd --level semantic Schema.xml # 3. финальная валидация
set-structure with @name=.validate, replace-text, §3.depends_on:
tools
Diagnostics for Vanessa Automation runs. Use when a feature scenario failed, artifacts were not created, or you need to classify a failure after launch.
tools
Creating and refining Vanessa Automation feature scenarios based on real project requirements. Use when you need to write or update a scenario test, not just run it.
tools
--- name: v8-session-manager description: Use when working with the 1С session manager (v8-session-manager) - launch, configuration, connecting 1С clients, reading session_list, calling proxied MCP-tools from 1С extensions, diagnostics. Triggers: mention of `v8-session-manager`, `session_list`, 1С extension MCP showcase, error “no active sessions” / “session_id required”, connecting a client to the manager via `mcpMode=ws`. provides_capabilities: # Built-in manager tools — always available whi
tools
Use when Codex needs to manage v8-runner on local 1C projects through the CLI: configure v8project.yaml, initialize infobases or EDT workspaces, build sources from Designer or EDT, run syntax checks and tests, dump infobase changes, convert source formats, load or export artifacts, launch 1C clients, or choose safe 1C automation command sequences.