From 69f5e0b7aef65d47625bcd7cf838fed10be1c6f3 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 2 Apr 2026 14:15:26 +0300 Subject: [PATCH] docs(switch): mark --link as experimental Junction/symlink install mode may cause intermittent MSYS bash crashes on Windows (add_item / exit code 5). Demote from recommended to experimental; recommend copy-based install instead. Co-Authored-By: Claude Opus 4.6 (1M context) --- README.md | 14 ++++++-------- scripts/switch.py | 6 ++++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6daf6be0..2e22aa9c 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,7 @@ ## Быстрый старт -Скопируйте каталог `.claude/skills/` в корень вашего проекта — или создайте ссылки на папки навыков из склонированного репозитория. Навыки станут доступны при запуске Claude Code из этого каталога. - -Скопируйте каталог `.claude/skills/` из этого репозитория в корень вашего проекта: +Скопируйте каталог `.claude/skills/` из этого репозитория в корень вашего проекта. Навыки станут доступны при запуске Claude Code из этого каталога. ``` МойПроект/ @@ -23,12 +21,12 @@ ```bash git clone https://github.com/Nikolay-Shirokov/cc-1c-skills.git tools/cc-1c-skills -# Ссылки (рекомендуется): обновления подхватываются через git pull -python tools/cc-1c-skills/scripts/switch.py claude-code --project-dir . --link - -# Копия: независимая копия, обновление — повторный запуск +# Копия (рекомендуется): независимая копия, обновление — повторный запуск python tools/cc-1c-skills/scripts/switch.py claude-code --project-dir . +# Ссылки (экспериментально): обновления подхватываются через git pull +python tools/cc-1c-skills/scripts/switch.py claude-code --project-dir . --link + # Интерактивный режим: пошаговый выбор платформы, способа установки и рантайма python tools/cc-1c-skills/scripts/switch.py ``` @@ -78,7 +76,7 @@ python scripts/switch.py --undo cursor # удалить Если репозиторий склонирован внутрь проекта (например, в `tools/cc-1c-skills`), используйте `--project-dir` для установки навыков в целевой проект. -**Ссылки vs копии.** Флаг `--link` создаёт directory junction (Windows) или symlink (Linux/Mac) вместо копирования файлов. Обновления в источнике автоматически подхватываются во всех подключённых проектах — достаточно `git pull`. Ссылки доступны только для платформы Claude Code (для остальных платформ требуется перезапись путей в SKILL.md). Удаление ссылок: `--undo` — безопасно удаляет только ссылки, не трогая источник. +**Ссылки vs копии.** Флаг `--link` (экспериментальный) создаёт directory junction (Windows) или symlink (Linux/Mac) вместо копирования файлов. Обновления в источнике автоматически подхватываются во всех подключённых проектах — достаточно `git pull`. Ссылки доступны только для платформы Claude Code (для остальных платформ требуется перезапись путей в SKILL.md). Удаление ссылок: `--undo` — безопасно удаляет только ссылки, не трогая источник. На Windows при использовании ссылок возможны периодические ошибки запуска bash (MSYS `add_item` / exit code 5) — если столкнётесь, переключитесь на копирование. Поддерживаемые платформы: diff --git a/scripts/switch.py b/scripts/switch.py index b8f92c47..4c74b497 100644 --- a/scripts/switch.py +++ b/scripts/switch.py @@ -390,6 +390,8 @@ def cmd_link(platform, project_dir): print(f"\nГотово! {linked} навыков подключено через {link_type} " f"в {target_prefix}/") print("Обновления в источнике автоматически подхватятся.") + print("⚠ Режим --link экспериментальный. При ошибках запуска " + "скриптов переключитесь на копирование (без --link).") print_gitignore_recommendations(project_dir) print(f"\nДля удаления: python scripts/switch.py --undo claude-code" f" --project-dir \"{project_dir}\"") @@ -636,8 +638,8 @@ def main(): parser.add_argument('--project-dir', default=os.getcwd(), help='путь к целевому проекту (по умолчанию: текущий каталог)') parser.add_argument('--link', action='store_true', - help='создать ссылки (junction/symlink) вместо копирования ' - '(только для claude-code)') + help='[экспериментально] создать ссылки (junction/symlink) ' + 'вместо копирования (только для claude-code)') args = parser.parse_args()