From 28b8061d64e4f83fe92c0cd004bbccea18f8d7c6 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Wed, 11 Feb 2026 20:10:49 +0300 Subject: [PATCH] Compact skd-edit SKILL.md: remove redundant examples section Reduce from 309 to 183 lines by removing duplicate full-command examples (already shown inline per operation) and consolidating remove-*/clear-* into a single table. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/skd-edit/SKILL.md | 274 +++++++++---------------------- 1 file changed, 74 insertions(+), 200 deletions(-) diff --git a/.claude/skills/skd-edit/SKILL.md b/.claude/skills/skd-edit/SKILL.md index 4c57e648..987f2de7 100644 --- a/.claude/skills/skd-edit/SKILL.md +++ b/.claude/skills/skd-edit/SKILL.md @@ -36,269 +36,143 @@ powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 -Te -Operation add-field -Value "Цена: decimal(15,2) ;; Количество: decimal(15,3) ;; Сумма: decimal(15,2)" ``` -Работает для всех операций кроме `set-query` и `set-structure`. Каждое значение обрабатывается последовательно. +Работает для всех операций кроме `set-query` и `set-structure`. ## Операции ### add-field — добавить поле в набор данных -Shorthand-формат: `"Имя [Заголовок]: тип @роль #ограничение"`. +Shorthand: `"Имя [Заголовок]: тип @роль #ограничение"`. -```powershell --Operation add-field -Value "Цена: decimal(15,2)" --Operation add-field -Value "Организация [Орг-ция]: CatalogRef.Организации @dimension" --Operation add-field -Value "Служебное: string #noFilter #noOrder" +``` +"Цена: decimal(15,2)" +"Организация [Орг-ция]: CatalogRef.Организации @dimension" +"Служебное: string #noFilter #noOrder" ``` -Поддержка заголовка (title) в квадратных скобках: `"Цена [Цена, руб.]: decimal(15,2)"`. - -Поле добавляется перед `` в наборе, а также в `` первого варианта (если нет `-NoSelection`). При дубликате dataPath — предупреждение, поле не добавляется. +Поле добавляется в набор и в selection варианта (если нет `-NoSelection`). Дубликат dataPath — предупреждение, пропуск. ### add-total — добавить итог -```powershell --Operation add-total -Value "Цена: Среднее" --Operation add-total -Value "Стоимость: Сумма(Кол * Цена)" ``` - -При дубликате dataPath — предупреждение. +"Цена: Среднее" +"Стоимость: Сумма(Кол * Цена)" +``` ### add-calculated-field — добавить вычисляемое поле -Формат: `"Имя [Заголовок]: тип = Выражение"` или `"Имя = Выражение"`. +Shorthand: `"Имя [Заголовок]: тип = Выражение"`. -```powershell --Operation add-calculated-field -Value "Маржа = Продажа - Закупка" --Operation add-calculated-field -Value "Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100" +``` +"Маржа = Продажа - Закупка" +"Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100" ``` -Также добавляется в selection варианта (если нет `-NoSelection`). При дубликате dataPath — предупреждение. +Также добавляется в selection варианта. ### add-parameter — добавить параметр -```powershell --Operation add-parameter -Value "Период: StandardPeriod = LastMonth @autoDates" --Operation add-parameter -Value "Организация: CatalogRef.Организации" +``` +"Период: StandardPeriod = LastMonth @autoDates" +"Организация: CatalogRef.Организации" ``` -`@autoDates` генерирует дополнительные параметры `ДатаНачала` и `ДатаОкончания`. При дубликате name — предупреждение. +`@autoDates` генерирует `ДатаНачала` и `ДатаОкончания` автоматически. -### add-filter — добавить фильтр в вариант настроек +### add-filter — добавить фильтр в вариант + +Shorthand: `"Поле оператор значение @флаги"`. Флаги: `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`. -```powershell --Operation add-filter -Value "Номенклатура = _ @off @user" --Operation add-filter -Value "Дата >= 2024-01-01T00:00:00" --Operation add-filter -Value "Статус filled" ``` - -Формат: `"Поле оператор значение @флаги"`. Флаги: `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`. +"Номенклатура = _ @off @user" +"Дата >= 2024-01-01T00:00:00" +"Статус filled" +``` ### add-dataParameter — добавить параметр данных в вариант -```powershell --Operation add-dataParameter -Value "Период = LastMonth @user" --Operation add-dataParameter -Value "Организация @off @user" +Shorthand: `"Имя [= значение] @флаги"`. + +``` +"Период = LastMonth @user" +"Организация @off @user" ``` -Формат: `"Имя [= значение] @флаги"`. Для StandardPeriod варианты (LastMonth, ThisYear и т.д.) распознаются автоматически. +### add-order — добавить сортировку -### add-order — добавить элемент сортировки в вариант +Shorthand: `"Поле [desc]"`. По умолчанию asc. `Auto` — авто-элемент. -```powershell --Operation add-order -Value "Количество desc" --Operation add-order -Value "Наименование" --Operation add-order -Value "Auto" +``` +"Количество desc" +"Auto" ``` -Формат: `"Поле [desc]"`. По умолчанию — asc. `Auto` добавляет авто-элемент. +### add-selection — добавить элемент выборки -### add-selection — добавить элемент выборки в вариант - -```powershell --Operation add-selection -Value "Номенклатура" --Operation add-selection -Value "Auto" +``` +"Номенклатура" +"Auto" ``` ### add-dataSetLink — добавить связь наборов данных -```powershell --Operation add-dataSetLink -Value "Набор1 > Набор2 on Поле1 = Поле2" --Operation add-dataSetLink -Value "Набор1 > Набор2 on Поле1 = Поле2 [param Связь]" -``` +Shorthand: `"Источник > Приёмник on ВырИсточника = ВырПриёмника [param Имя]"`. -Формат: `"Источник > Приёмник on ВыражениеИсточника = ВыражениеПриёмника [param ИмяПараметра]"`. Параметр связи опционален. +``` +"Набор1 > Набор2 on Поле1 = Поле2" +"Набор1 > Набор2 on Поле1 = Поле2 [param Связь]" +``` ### set-query — заменить текст запроса -```powershell --Operation set-query -Value "ВЫБРАТЬ 1 КАК Тест" -``` - -Не поддерживает пакетный режим. +Не поддерживает пакетный режим. Value — полный текст запроса. ### set-outputParameter — установить параметр вывода -```powershell --Operation set-outputParameter -Value "Заголовок = Мой отчёт" --Operation set-outputParameter -Value "ВыводитьЗаголовок = true" +``` +"Заголовок = Мой отчёт" +"ВыводитьЗаголовок = true" ``` -Если параметр уже существует — заменяет значение. Поддерживаемые параметры: Заголовок/Title, ВыводитьЗаголовок/OutputTitle, ВертикальноеРасположениеОбщихИтогов/VerticalOverallPlacement, ГоризонтальноеРасположениеОбщихИтогов/HorizontalOverallPlacement, РасположениеРеквизитов/AttributePlacement, РасположениеГруппировки/GroupPlacement, РасположениеПолейГруппировки/GroupFieldsPlacement, РасположениеИтогов/OverallPlacement, РасположениеОтбора/FilterOutput, ВыводитьОтбор/OutputFilter. +Если параметр уже существует — заменяет значение. ### set-structure — установить структуру варианта -```powershell --Operation set-structure -Value "Организация > Номенклатура > details" --Operation set-structure -Value "details" +Shorthand: `"Поле1 > Поле2 > details"`. `details`/`детали` — детальные записи. Заменяет всю структуру. Не поддерживает пакетный режим. + +``` +"Организация > Номенклатура > details" +"details" ``` -Формат: `"ПолеГруппировки1 > ПолеГруппировки2 > details"`. `details`/`детали` — группа детальных записей (пустой groupBy). Заменяет всю существующую структуру варианта. Не поддерживает пакетный режим. +### modify-field — изменить существующее поле -### modify-field — изменить существующее поле в наборе данных +Тот же shorthand что и `add-field`. Находит по dataPath, объединяет свойства (непустые переопределяют), сохраняет позицию. -```powershell --Operation modify-field -Value "Цена [Цена USD]: decimal(10,4) @dimension" --Operation modify-field -Value "Цена: decimal(10,2)" +``` +"Цена [Цена USD]: decimal(10,4) @dimension" ``` -Использует тот же shorthand что и `add-field`. Находит поле по dataPath, объединяет с переданными свойствами (непустые переопределяют), сохраняет позицию. Если тип/заголовок/роли/ограничения не указаны в shorthand — берутся из существующего поля. +### modify-filter — изменить существующий фильтр -### modify-filter — изменить существующий фильтр в варианте +Тот же shorthand что и `add-filter`. Находит по полю, обновляет оператор/значение/флаги. -```powershell --Operation modify-filter -Value "Организация >= bar @off" --Operation modify-filter -Value "Дата = 2025-01-01T00:00:00 @user @quickAccess" -``` +### modify-dataParameter — изменить параметр данных -Находит фильтр по полю (left), обновляет оператор, значение и флаги. Используется тот же shorthand что и `add-filter`. +Тот же shorthand что и `add-dataParameter`. Находит по имени, обновляет значение/флаги. -### modify-dataParameter — изменить существующий параметр данных +### remove-* и clear-* -```powershell --Operation modify-dataParameter -Value "Период = ThisYear" --Operation modify-dataParameter -Value "Организация @off @user" -``` - -Находит dataParameter по имени, обновляет значение и флаги. Используется тот же shorthand что и `add-dataParameter`. - -### clear-selection — очистить выборку варианта - -```powershell --Operation clear-selection -Value "*" -``` - -Удаляет все элементы из ``. Value игнорируется. - -### clear-order — очистить сортировку варианта - -```powershell --Operation clear-order -Value "*" -``` - -Удаляет все элементы из ``. Value игнорируется. - -### clear-filter — очистить фильтры варианта - -```powershell --Operation clear-filter -Value "*" -``` - -Удаляет все элементы из ``. Value игнорируется. - -### remove-field — удалить поле из набора данных - -```powershell --Operation remove-field -Value "Цена" -``` - -Удаляет поле с указанным dataPath. Также удаляет соответствующий элемент из selection варианта. - -### remove-total — удалить итог - -```powershell --Operation remove-total -Value "Цена" -``` - -### remove-calculated-field — удалить вычисляемое поле - -```powershell --Operation remove-calculated-field -Value "Маржа" -``` - -Также удаляет из selection варианта. - -### remove-parameter — удалить параметр - -```powershell --Operation remove-parameter -Value "Организация" -``` - -### remove-filter — удалить фильтр из варианта - -```powershell --Operation remove-filter -Value "Номенклатура" -``` - -Удаляет первый фильтр с указанным полем. - -## Примеры - -```powershell -# Добавить числовое поле с заголовком -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-field -Value "Цена [Цена, руб.]: decimal(15,2)" - -# Пакетное добавление полей -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-field ` - -Value "Количество: decimal(15,3) ;; Сумма: decimal(15,2) ;; Валюта: string" - -# Добавить итог -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-total -Value "Цена: Среднее" - -# Добавить параметр данных -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-dataParameter -Value "Период = LastMonth @user" - -# Установить заголовок -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation set-outputParameter -Value "Заголовок = Мой отчёт" - -# Удалить поле -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation remove-field -Value "Цена" - -# Добавить фильтр -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-filter -Value "Организация = _ @off @user" - -# Заменить запрос -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation set-query -Value "ВЫБРАТЬ 1 КАК Тест" - -# Установить структуру группировок -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation set-structure -Value "Организация > Номенклатура > details" - -# Модифицировать поле -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation modify-field -Value "Цена [Цена USD]: decimal(10,4) @dimension" - -# Модифицировать фильтр -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation modify-filter -Value "Организация >= bar @off" - -# Очистить выборку и установить заново -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation clear-selection -Value "*" -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-selection -Value "Auto" - -# Добавить связь наборов данных -powershell.exe -NoProfile -File .claude\skills\skd-edit\scripts\skd-edit.ps1 ` - -TemplatePath test-tmp\edit-test.xml -Operation add-dataSetLink -Value "Набор1 > Набор2 on Поле1 = Поле2" -``` +| Операция | Value | Действие | +|----------|-------|----------| +| `remove-field` | dataPath | Удаляет поле из набора + из selection варианта | +| `remove-total` | dataPath | Удаляет итог | +| `remove-calculated-field` | dataPath | Удаляет вычисляемое поле + из selection | +| `remove-parameter` | name | Удаляет параметр | +| `remove-filter` | поле | Удаляет первый фильтр с указанным полем | +| `clear-selection` | `*` | Очищает все элементы selection | +| `clear-order` | `*` | Очищает все элементы order | +| `clear-filter` | `*` | Очищает все элементы filter | ## Верификация