Skip to content

Устранение неполадок: решение распространённых проблем OpenSkills

Что вы научитесь делать

  • Быстро диагностировать и исправлять распространённые проблемы при использовании OpenSkills
  • Понимать причины возникновения сообщений об ошибках
  • Освоить техники поиска неисправностей, связанных с Git-клонированием, правами доступа и форматами файлов
  • Знать, когда необходимо переустановить навык

Ваша текущая ситуация

При использовании OpenSkills возникает ошибка, и вы не знаете, что делать:

Error: No SKILL.md files found in repository

Или клонирование Git не удалось, ошибка прав доступа, неправильный формат файла... Все эти проблемы могут привести к тому, что навыки не будут работать должным образом.

Когда нужно читать этот туториал

Когда вы столкнётесь со следующими ситуациями:

  • Ошибка установки: ошибка при установке из GitHub или локального пути
  • Ошибка чтения: openskills read сообщает, что навык не найден
  • Ошибка синхронизации: openskills sync сообщает об отсутствии навыков или ошибке формата файла
  • Ошибка обновления: openskills update пропускает некоторые навыки
  • Ошибка прав доступа: сообщение об ограниченном доступе к пути или ошибке безопасности

Основная концепция

Ошибки OpenSkills в основном делятся на 4 категории:

Тип ошибкиРаспространённые причиныПодход к решению
Связанные с GitПроблемы с сетью, конфигурация SSH, несуществующий репозиторийПроверить сеть, настроить учётные данные Git, проверить адрес репозитория
Связанные с файламиОтсутствие SKILL.md, ошибка формата, ошибка путиПроверить существование файла, проверить формат YAML
Связанные с правамиПрава доступа к каталогу, обход пути, символические ссылкиПроверить права доступа к каталогу, проверить путь установки
Связанные с метаданнымиПотеря метаданных при обновлении, изменение исходного путиПереустановить навык для восстановления метаданных

Техники поиска неисправностей:

  1. Смотрите сообщение об ошибке: красный вывод обычно содержит конкретную причину
  2. Смотрите жёлтые подсказки: обычно это предупреждения и советы, например Tip: For private repos...
  3. Проверьте структуру каталогов: используйте openskills list для просмотра установленных навыков
  4. Просмотрите расположение исходного кода: сообщения об ошибках перечисляют пути поиска (4 каталога)

Ошибка установки

Проблема 1: Ошибка клонирования Git

Сообщение об ошибке:

Failed to clone repository
fatal: repository '...' not found
Tip: For private repos, ensure git SSH keys or credentials are configured

Возможные причины:

ПричинаСценарий
Репозиторий не существуетНеправильно написан owner/repo
Приватный репозиторийSSH key или учётные данные Git не настроены
Проблема с сетьюНет доступа к GitHub

Решение:

  1. Проверьте адрес репозитория:

    bash
    # Посетите URL репозитория в браузере
    https://github.com/owner/repo
  2. Проверьте конфигурацию Git (для приватных репозиториев):

    bash
    # Проверьте конфигурацию SSH
    ssh -T [email protected]
    
    # Настройте учётные данные Git
    git config --global credential.helper store
  3. Тест клонирования:

    bash
    git clone https://github.com/owner/repo.git

Вы должны увидеть:

  • Репозиторий успешно клонирован в локальный каталог

Проблема 2: SKILL.md не найден

Сообщение об ошибке:

Error: No SKILL.md files found in repository
Error: No valid SKILL.md files found

Возможные причины:

ПричинаОписание
В репозитории нет SKILL.mdЭто не репозиторий навыков
SKILL.md без frontmatterОтсутствуют метаданные YAML
Неправильный формат SKILL.mdОшибка синтаксиса YAML

Решение:

  1. Проверьте структуру репозитория:

    bash
    # Просмотрите корневой каталог
    ls -la
    
    # Найдите SKILL.md
    find . -name "SKILL.md"
  2. Проверьте формат SKILL.md:

    markdown
    ---
    name: Название навыка
    description: Описание навыка
    ---
    
    Содержание навыка...

    Обязательно:

    • YAML frontmatter в разделителях ---
    • Поля name и description
  3. Посмотрите официальный пример:

    bash
    git clone https://github.com/anthropics/skills.git
    cd skills
    ls -la

Вы должны увидеть:

  • В репозитории один или несколько файлов SKILL.md
  • Каждый SKILL.md начинается с YAML frontmatter

Проблема 3: Путь не существует или не является каталогом

Сообщение об ошибке:

Error: Path does not exist: /path/to/skill
Error: Path must be a directory

Возможные причины:

ПричинаОписание
Ошибка в путиВведён неверный путь
Путь указывает на файлДолжен быть каталог, а не файл
Путь не развёрнутПри использовании ~ необходимо разворачивать

Решение:

  1. Проверьте существование пути:

    bash
    # Проверьте путь
    ls -la /path/to/skill
    
    # Проверьте, является ли каталогом
    file /path/to/skill
  2. Используйте абсолютный путь:

    bash
    # Получите абсолютный путь
    realpath /path/to/skill
    
    # Используйте при установке
    openskills install /absolute/path/to/skill
  3. Используйте относительный путь:

    bash
    # В каталоге проекта
    openskills install ./skills/my-skill

Вы должны увидеть:

  • Путь существует и является каталогом
  • В каталоге есть файл SKILL.md

Проблема 4: Недействительный SKILL.md

Сообщение об ошибке:

Error: Invalid SKILL.md (missing YAML frontmatter)

Возможные причины:

ПричинаОписание
Отсутствуют обязательные поляОбязательны name и description
Ошибка синтаксиса YAMLПроблемы с форматированием двоеточий, кавычек и т.д.

Решение:

  1. Проверьте YAML frontmatter:

    markdown
    ---              ← Начальный разделитель
    name: my-skill   ← Обязательно
    description: Описание навыка  ← Обязательно
    ---              ← Конечный разделитель
  2. Используйте онлайн-валидатор YAML:

    • Посетите YAML Lint или аналогичный инструмент для проверки синтаксиса
  3. Посмотрите официальный пример:

    bash
    openskills install anthropics/skills
    cat .claude/skills/*/SKILL.md | head -20

Вы должны увидеть:

  • SKILL.md начинается с правильного YAML frontmatter
  • Содержит поля name и description

Проблема 5: Ошибка безопасности обхода пути

Сообщение об ошибке:

Security error: Installation path outside target directory

Возможные причины:

ПричинаОписание
В названии навыка есть ..Попытка доступа к пути за пределами целевого каталога
Символическая ссылка указывает наружуsymlink указывает за пределы целевого каталога
Вредоносный навыкНавык пытается обойти ограничения безопасности

Решение:

  1. Проверьте название навыка:

    • Убедитесь, что название навыка не содержит .., / и других спецсимволов
  2. Проверьте символические ссылки:

    bash
    # Просмотрите символические ссылки в каталоге навыков
    find .claude/skills/skill-name -type l
    
    # Просмотрите цель символической ссылки
    ls -la .claude/skills/skill-name
  3. Используйте безопасные навыки:

    • Устанавливайте навыки только из доверенных источников
    • Просматривайте код навыка перед установкой

Вы должны увидеть:

  • Название навыка содержит только буквы, цифры, дефисы
  • Отсутствуют символические ссылки, указывающие наружу

Ошибка чтения

Проблема 6: Навык не найден

Сообщение об ошибке:

Error: Skill(s) not found: my-skill

Searched:
  .agent/skills/ (project universal)
  ~/.agent/skills/ (global universal)
  .claude/skills/ (project)
  ~/.claude/skills/ (global)

Install skills: npx openskills install owner/repo

Возможные причины:

ПричинаОписание
Навык не установленЭтот навык не установлен ни в одном из каталогов
Ошибка в названии навыкаНазвание не совпадает
Установлен в другом местеНавык установлен в нестандартный каталог

Решение:

  1. Просмотрите установленные навыки:

    bash
    openskills list
  2. Проверьте название навыка:

    • Сравните с выводом openskills list
    • Убедитесь в точном совпадении названия (с учётом регистра)
  3. Установите отсутствующий навык:

    bash
    openskills install owner/repo
  4. Поиск во всех каталогах:

    bash
    # Проверьте 4 каталога навыков
    ls -la .agent/skills/
    ls -la ~/.agent/skills/
    ls -la .claude/skills/
    ls -la ~/.claude/skills/

Вы должны увидеть:

  • openskills list показывает целевой навык
  • Навык существует в одном из 4 каталогов

Проблема 7: Название навыка не указано

Сообщение об ошибке:

Error: No skill names provided

Возможные причины:

ПричинаОписание
Забыли передать параметрПосле openskills read нет параметров
Пустая строкаПередана пустая строка

Решение:

  1. Укажите название навыка:

    bash
    # Один навык
    openskills read my-skill
    
    # Несколько навыков (через запятую)
    openskills read skill1,skill2,skill3
  2. Сначала просмотрите доступные навыки:

    bash
    openskills list

Вы должны увидеть:

  • Содержимое навыка успешно выведено в стандартный вывод

Ошибка синхронизации

Проблема 8: Выходной файл не является Markdown

Сообщение об ошибке:

Error: Output file must be a markdown file (.md)

Возможные причины:

ПричинаОписание
Выходной файл не .mdУказан формат .txt, .json и т.д.
Ошибка в параметре --outputПуть не заканчивается на .md

Решение:

  1. Используйте файл .md:

    bash
    # Правильно
    openskills sync -o AGENTS.md
    openskills sync -o custom.md
    
    # Неправильно
    openskills sync -o AGENTS.txt
    openskills sync -o AGENTS
  2. Настройте пользовательский путь вывода:

    bash
    # Вывод в подкаталог
    openskills sync -o .ruler/AGENTS.md
    openskills sync -o docs/agents.md

Вы должны увидеть:

  • Файл .md успешно создан
  • Файл содержит разделы XML навыков

Проблема 9: Навыки не установлены

Сообщение об ошибке:

No skills installed. Install skills first:
  npx openskills install anthropics/skills --project

Возможные причины:

ПричинаОписание
Навыки никогда не устанавливалисьПервое использование OpenSkills
Каталог навыков удалёнФайлы навыков удалены вручную

Решение:

  1. Установите навыки:

    bash
    # Установка официальных навыков
    openskills install anthropics/skills
    
    # Установка из другого репозитория
    openskills install owner/repo
  2. Проверьте установку:

    bash
    openskills list

Вы должны увидеть:

  • openskills list показывает хотя бы один навык
  • Синхронизация успешна

Ошибка обновления

Проблема 10: Отсутствуют исходные метаданные

Сообщение об ошибке:

Skipped: my-skill (no source metadata; re-install once to enable updates)

Возможные причины:

ПричинаОписание
Установка старой версииНавык установлен до появления функции метаданных
Ручное копированиеПрямое копирование каталога навыка без установки через OpenSkills
Повреждение файла метаданных.openskills.json повреждён или потерян

Решение:

  1. Переустановите навык:

    bash
    # Удалите старый навык
    openskills remove my-skill
    
    # Переустановите
    openskills install owner/repo
  2. Проверьте файл метаданных:

    bash
    # Просмотр метаданных навыка
    cat .claude/skills/my-skill/.openskills.json
  3. Сохранение навыка с добавлением метаданных:

    • Вручную создайте .openskills.json (не рекомендуется)
    • Переустановка проще и надёжнее

Вы должны увидеть:

  • Обновление успешно, нет предупреждений о пропуске

Проблема 11: Отсутствует локальный источник

Сообщение об ошибке:

Skipped: my-skill (local source missing)

Возможные причины:

ПричинаОписание
Локальный путь перемещёнИзменилось расположение исходного каталога
Локальный путь удалёнИсходный каталог не существует
Путь не развёрнутИспользуется ~, но в метаданных сохранён развёрнутый путь

Решение:

  1. Проверьте локальный путь в метаданных:

    bash
    cat .claude/skills/my-skill/.openskills.json
  2. Восстановите исходный каталог или обновите метаданные:

    bash
    # Если исходный каталог перемещён
    openskills remove my-skill
    openskills install /new/path/to/skill
    
    # Или редактируйте метаданные вручную (не рекомендуется)
    vi .claude/skills/my-skill/.openskills.json

Вы должны увидеть:

  • Локальный путь источника существует и содержит SKILL.md

Проблема 12: SKILL.md не найден в репозитории

Сообщение об ошибке:

SKILL.md missing for my-skill
Skipped: my-skill (SKILL.md not found in repo at subpath)

Возможные причины:

ПричинаОписание
Изменилась структура репозиторияИзменился подпуть или название навыка
Навык удалёнРепозиторий больше не содержит этот навык
Ошибка в подпутиНеправильно записанный подпуть в метаданных

Решение:

  1. Посетите репозиторий для просмотра структуры:

    bash
    # Клонируйте репозиторий для просмотра
    git clone https://github.com/owner/repo.git
    cd repo
    ls -la
    find . -name "SKILL.md"
  2. Переустановите навык:

    bash
    openskills remove my-skill
    openskills install owner/repo/subpath
  3. Проверьте историю обновлений репозитория:

    • На GitHub просмотрите историю коммитов репозитория
    • Найдите записи о перемещении или удалении навыка

Вы должны увидеть:

  • Обновление успешно
  • SKILL.md существует по записанному подпути

Проблемы с правами доступа

Проблема 13: Ограниченные права доступа к каталогу

Проявления:

ОперацияПроявление
Ошибка установкиСообщение об ошибке прав доступа
Ошибка удаленияСообщение о невозможности удалить файл
Ошибка чтенияСообщение об ограничении доступа к файлу

Возможные причины:

ПричинаОписание
Недостаточные права доступа к каталогуУ пользователя нет прав на запись
Недостаточные права доступа к файлуФайл только для чтения
Защита системыОграничения macOS SIP, Windows UAC

Решение:

  1. Проверьте права доступа к каталогу:

    bash
    # Просмотрите права доступа
    ls -la .claude/skills/
    
    # Измените права доступа (используйте осторожно)
    chmod -R 755 .claude/skills/
  2. Используйте sudo (не рекомендуется):

    bash
    # Крайняя мера
    sudo openskills install owner/repo
  3. Проверьте защиту системы:

    bash
    # macOS: проверьте статус SIP
    csrutil status
    
    # Чтобы отключить SIP (требуется режим восстановления)
    # Не рекомендуется, использовать только при необходимости

Вы должны увидеть:

  • Нормальное чтение и запись каталогов и файлов

Проблемы с символическими ссылками

Проблема 14: Повреждённые символические ссылки

Проявления:

ПроявлениеОписание
Пропуск навыка при перечисленииopenskills list не показывает этот навык
Ошибка чтенияСообщение о несуществующем файле
Ошибка обновленияНедействительный исходный путь

Возможные причины:

ПричинаОписание
Целевой каталог удалёнСимволическая ссылка указывает на несуществующий путь
Повреждение символической ссылкиСам файл ссылки повреждён
Межустройственная ссылкаНекоторые системы не поддерживают символические ссылки между устройствами

Решение:

  1. Проверьте символические ссылки:

    bash
    # Найдите все символические ссылки
    find .claude/skills -type l
    
    # Просмотрите цель ссылки
    ls -la .claude/skills/my-skill
    
    # Протестируйте ссылку
    readlink .claude/skills/my-skill
  2. Удалите повреждённые символические ссылки:

    bash
    openskills remove my-skill
  3. Переустановите:

    bash
    openskills install owner/repo

Вы должны увидеть:

  • Отсутствие повреждённых символических ссылок
  • Навык нормально отображается и читается

Полезные советы

Распространённые ошибочные операции

❌ Не делайте этого:

  • Непосредственное копирование каталога навыков → Приведёт к отсутствию метаданных и сбою обновления
  • Ручное редактирование .openskills.json → Легко повредить формат, что приведёт к сбою обновления
  • Использование sudo для установки навыков → Создаст файлы, принадлежащие root, и последующие операции могут потребовать sudo
  • Удаление .openskills.json → Приведёт к пропуску навыка при обновлении

✅ Делайте это:

  • Устанавливайте через openskills install → Автоматически создаётся метаданные
  • Удаляйте через openskills remove → Правильная очистка файлов
  • Обновляйте через openskills update → Автоматическое обновление из источника
  • Проверяйте через openskills list → Подтверждение состояния навыка

Техники поиска неисправностей

  1. Начните с простого: сначала запустите openskills list для подтверждения состояния
  2. Смотрите полное сообщение об ошибке: жёлтые подсказки обычно содержат советы по решению
  3. Проверьте структуру каталогов: используйте ls -la для просмотра файлов и прав доступа
  4. Проверьте расположение исходного кода: сообщения об ошибках перечисляют 4 каталога поиска
  5. Используйте -y для пропуска интерактива: используйте флаг -y в CI/CD или скриптах

Резюме урока

В этом уроке мы изучили методы поиска и устранения неисправностей для распространённых проблем OpenSkills:

Тип проблемыКлючевое решение
Ошибка клонирования GitПроверьте сеть, настройте учётные данные, проверьте адрес репозитория
SKILL.md не найденПроверьте структуру репозитория, проверьте формат YAML
Ошибка чтенияИспользуйте openskills list для проверки состояния навыка
Ошибка обновленияПереустановите навык для восстановления метаданных
Проблемы с правами доступаПроверьте права доступа к каталогу, избегайте использования sudo

Запомните:

  • Сообщения об ошибках обычно содержат чёткие подсказки
  • Переустановка — это самый простой способ решить проблемы с метаданными
  • Устанавливайте навыки только из доверенных источников

Следующие шаги


Приложение: Ссылки на исходный код

Нажмите, чтобы развернуть и посмотреть расположение исходного кода

Обновлено: 2026-01-24

ФункцияПуть к файлуНомера строк
Обработка ошибки клонирования Gitsrc/commands/install.ts162-168
Ошибка несуществующего путиsrc/commands/install.ts205-207
Ошибка "не является каталогом"src/commands/install.ts210-213
Недействительный SKILL.mdsrc/commands/install.ts241-243
Ошибка безопасности обхода путиsrc/commands/install.ts256-259
SKILL.md не найденsrc/commands/install.ts378-380
Не указано название навыкаsrc/commands/read.ts10-12
Навык не найденsrc/commands/read.ts26-34
Выходной файл не Markdownsrc/commands/sync.ts23-25
Навыки не установленыsrc/commands/sync.ts40-43
Пропуск из-за отсутствия метаданных источникаsrc/commands/update.ts57-61
Отсутствует локальный источникsrc/commands/update.ts66-71
SKILL.md не найден в репозиторииsrc/commands/update.ts102-107

Ключевые функции:

  • hasValidFrontmatter(content): проверяет, имеет ли SKILL.md действительный YAML frontmatter
  • isPathInside(targetPath, targetDir): проверяет, находится ли путь внутри целевого каталога (проверка безопасности)
  • findSkill(name): ищет навык в 4 каталогах по приоритету
  • readSkillMetadata(path): читает метаданные источника установки навыка

Ключевые константы:

  • Порядок поиска в каталогах (src/utils/skills.ts):
    1. .agent/skills/ (project universal)
    2. ~/.agent/skills/ (global universal)
    3. .claude/skills/ (project)
    4. ~/.claude/skills/ (global)