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>
72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
---
|
|
name: cfe-init
|
|
description: Создать расширение конфигурации 1С (CFE) — scaffold XML-исходников. Используй когда нужно создать новое расширение для исправления, доработки или дополнения конфигурации
|
|
argument-hint: <Name> [-ConfigPath <path>] [-Purpose Patch|Customization|AddOn] [-CompatibilityMode Version8_3_24]
|
|
allowed-tools:
|
|
- Bash
|
|
- Read
|
|
- Glob
|
|
---
|
|
|
|
# /cfe-init — Создание расширения конфигурации 1С
|
|
|
|
Создаёт scaffold расширения: `Configuration.xml`, `Languages/Русский.xml`, опционально `Roles/`.
|
|
|
|
## Подготовка
|
|
|
|
Если есть выгрузка базовой конфигурации, передай `-ConfigPath` — скрипт автоматически определит `CompatibilityMode` и UUID языка из базовой конфигурации.
|
|
|
|
### Авто-определение ConfigPath
|
|
|
|
Если пользователь не указал `-ConfigPath` — попробуй определить автоматически:
|
|
1. Прочитай `.v8-project.json` из корня проекта
|
|
2. Разреши целевую базу (по имени, ветке или `default` — алгоритм из `/db-list`)
|
|
3. Если у базы есть поле `configSrc` — используй как `-ConfigPath`
|
|
4. Если `configSrc` нет — спроси у пользователя
|
|
|
|
Если `.v8-project.json` не найден и `-ConfigPath` не задан — расширение создастся с предупреждением (UUID языка = нули, CompatibilityMode по умолчанию).
|
|
|
|
## Параметры
|
|
|
|
| Параметр | Описание | По умолчанию |
|
|
|----------|----------|--------------|
|
|
| `Name` | Имя расширения (обязат.) | — |
|
|
| `Synonym` | Синоним | = Name |
|
|
| `NamePrefix` | Префикс собственных объектов | = Name + "_" |
|
|
| `OutputDir` | Каталог для создания | `src` |
|
|
| `Purpose` | `Patch` (исправление) / `Customization` (доработка) / `AddOn` (дополнение) | `Customization` |
|
|
| `Version` | Версия расширения | — |
|
|
| `Vendor` | Поставщик | — |
|
|
| `CompatibilityMode` | Режим совместимости | `Version8_3_24` |
|
|
| `ConfigPath` | Путь к выгрузке базовой конфигурации (авто-определяет CompatibilityMode и Language UUID) | — |
|
|
| `NoRole` | Без основной роли | false |
|
|
|
|
## Команда
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/cfe-init.ps1" -Name "МоёРасширение"
|
|
```
|
|
|
|
## Примеры
|
|
|
|
```powershell
|
|
# Расширение для ERP с авто-определением совместимости из базовой конфигурации
|
|
... -Name Расш1 -ConfigPath C:\WS\tasks\cfsrc\erp_8.3.24 -OutputDir src
|
|
|
|
# Расширение-исправление с явным режимом совместимости
|
|
... -Name Расш1 -Purpose Patch -CompatibilityMode Version8_3_17 -OutputDir src
|
|
|
|
# Расширение-доработка с версией
|
|
... -Name МоёРасширение -Version "1.0.0.1" -Vendor "Компания" -OutputDir src
|
|
|
|
# Без роли, с явным префиксом
|
|
... -Name ИсправлениеБага -NamePrefix "ИБ_" -Purpose Patch -NoRole -OutputDir src
|
|
```
|
|
|
|
## Верификация
|
|
|
|
```
|
|
/cfe-validate <OutputDir>
|
|
```
|
|
|