mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-04 01:00:52 +03:00
Replace literal `.claude/skills/<owner>/...` paths in SKILL.md with the
`${CLAUDE_SKILL_DIR}` variable that Claude Code substitutes at invocation
time. Same-skill references become `${CLAUDE_SKILL_DIR}/<rest>`,
cross-skill references (erf-* → epf-*) become
`${CLAUDE_SKILL_DIR}/../<other>/<rest>`. All paths now wrapped in double
quotes to handle install locations with spaces.
This unblocks plugin-mode installation: literal `.claude/skills/...`
paths fail when the skill is loaded from `~/.claude/plugins/cache/...`
or from a personal `~/.claude/skills/` install. Drop-in mode continues
to work because Claude Code resolves the variable in all install scopes.
Verified via pilot:
- Project drop-in (cc-1c-skills repo)
- Personal `~/.claude/skills/cf-info/`
- Plugin via `/plugin marketplace add <local-path>`
Scope: 61 SKILL.md, 125 path replacements (8 cross-skill).
Scripts unchanged — they already use \$PSScriptRoot and ../<sibling>
patterns that resolve correctly under the bundled cache layout.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.7 KiB
5.7 KiB
name, description, argument-hint, allowed-tools
| name | description | argument-hint | allowed-tools | ||||||
|---|---|---|---|---|---|---|---|---|---|
| template-add | Добавить пустой макет к объекту 1С. Используй когда нужно создать у объекта новый макет | <ObjectName> <TemplateName> <TemplateType> |
|
/template-add — Добавление макета
Создаёт макет указанного типа и регистрирует его в корневом XML объекта.
Usage
/template-add <ObjectName> <TemplateName> <TemplateType>
| Параметр | Обязательный | По умолчанию | Описание |
|---|---|---|---|
| ObjectName | да | — | Имя объекта |
| TemplateName | да | — | Имя макета |
| TemplateType | да | — | Тип: HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema |
| Synonym | нет | = TemplateName | Синоним макета |
| SrcDir | нет | src |
Путь к папке типа объектов (Reports, DataProcessors, Catalogs, Documents...), внутри которой лежит <ObjectName>.xml. Дефолт src подходит для каталогов с внешними обработками/отчётами, лежащими рядом |
| -SetMainSKD | нет | — | Принудительно установить MainDataCompositionSchema |
Команда
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "<ObjectName>" -TemplateName "<TemplateName>" -TemplateType "<TemplateType>" [-Synonym "<Synonym>"] [-SrcDir "<SrcDir>"] [-SetMainSKD]
Пример
Добавить основную СКД к отчёту в расширении:
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/add-template.ps1" -ObjectName "ОтчётПродажи" -TemplateName "ОсновнаяСхемаКомпоновкиДанных" -TemplateType "DataCompositionSchema" -SrcDir "src/cfe/МоёРасширение/Reports"
Маппинг типов
Пользователь может указать тип в свободной форме. Определи нужный по контексту:
| Пользователь пишет | TemplateType | Расширение | Содержимое |
|---|---|---|---|
| HTML | HTMLDocument | .html |
Пустой HTML-документ |
| Text, текстовый документ, текст | TextDocument | .txt |
Пустой файл |
| SpreadsheetDocument, табличный документ, MXL | SpreadsheetDocument | .xml |
Минимальный spreadsheet |
| BinaryData, двоичные данные | BinaryData | .bin |
Пустой файл |
| DataCompositionSchema, СКД, схема компоновки | DataCompositionSchema | .xml |
Минимальная DCS-схема |
Конвенция именования
Для макетов печатных форм (тип SpreadsheetDocument) применяй префикс ПФ_MXL_:
| Контекст | Формат имени | Пример |
|---|---|---|
| Печатная форма (дополнительная обработка вида ПечатнаяФорма, или пользователь явно говорит «печатная форма») | ПФ_MXL_<КраткоеИмя> |
ПФ_MXL_М11, ПФ_MXL_СчётФактура, ПФ_MXL_КонвертDL |
| Прочие макеты (загрузка данных, служебные, настройки) | Без префикса | МакетЗагрузки, НастройкиПечати |
Если пользователь указал имя макета без префикса, но контекст — печатная форма, добавь префикс ПФ_MXL_ автоматически и сообщи об этом.
MainDataCompositionSchema (авто)
При добавлении макета типа DataCompositionSchema к ExternalReport или Report:
- Если
MainDataCompositionSchemaпуст — автоматически заполняется ссылкой на макет - Используй
--SetMainSKDчтобы перезаписать существующее значение
Что создаётся
<SrcDir>/<ObjectName>/Templates/
├── <TemplateName>.xml # Метаданные макета (1 UUID)
└── <TemplateName>/
└── Ext/
└── Template.<ext> # Содержимое макета
Что модифицируется
<SrcDir>/<ObjectName>.xml— добавляется<Template>в конецChildObjects- Для ExternalReport/Report: может обновляться
MainDataCompositionSchema