Dropstone Docs

Навыки агентов

Определяйте переиспользуемое поведение через определения SKILL.md

Навыки агентов позволяют Dropstone обнаруживать переиспользуемые инструкции из вашего репозитория или домашней директории. Навыки загружаются по требованию через встроенный инструмент skill: агенты видят, какие навыки доступны, и могут загрузить полное содержимое, когда навык соответствует задаче.


Размещение файлов

Создайте одну папку на каждый навык и поместите SKILL.md внутри неё. Dropstone ищет в этих местоположениях:

  • Конфиг проекта: .dropstone/skills/<name>/SKILL.md
  • Глобальный конфиг: ~/.config/dropstone/skills/<name>/SKILL.md
  • Совместимость с Claude проекта: .claude/skills/<name>/SKILL.md
  • Глобальная совместимость с Claude: ~/.claude/skills/<name>/SKILL.md
  • Совместимость с агентами проекта: .agents/skills/<name>/SKILL.md
  • Глобальная совместимость с агентами: ~/.agents/skills/<name>/SKILL.md

Понимание обнаружения

Для локальных путей проекта Dropstone поднимается вверх от вашей текущей рабочей директории до достижения git worktree. Он загружает любые соответствующие skills/*/SKILL.md в .dropstone/ и любые соответствующие .claude/skills/*/SKILL.md или .agents/skills/*/SKILL.md по пути.

Глобальные определения также загружаются из ~/.config/dropstone/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md и ~/.agents/skills/*/SKILL.md.


Написание frontmatter

Каждый SKILL.md должен начинаться с YAML frontmatter. Распознаются только эти поля:

  • name (обязательно)
  • description (обязательно)
  • license (опционально)
  • compatibility (опционально)
  • metadata (опционально, карта строка-строка)

Неизвестные поля frontmatter игнорируются.


Валидация имён

name должно:

  • Быть от 1 до 64 символов
  • Быть строчным буквенно-цифровым с разделителями в виде одного дефиса
  • Не начинаться и не заканчиваться на -
  • Не содержать последовательные --
  • Совпадать с именем директории, содержащей SKILL.md

Эквивалентный regex:

^[a-z0-9]+(-[a-z0-9]+)*$

Следуйте правилам длины

description должно быть от 1 до 1024 символов. Делайте его достаточно специфичным, чтобы агент мог правильно выбрать.


Используйте пример

Создайте .dropstone/skills/git-release/SKILL.md вот так:

---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: dropstone
metadata:
  audience: maintainers
  workflow: github
---

## What I do

- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command

## When to use me

Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.

Распознавание описания инструмента

Dropstone перечисляет доступные навыки в описании инструмента skill. Каждая запись включает имя навыка и описание:

<available_skills>
  <skill>
    <name>git-release</name>
    <description>Create consistent releases and changelogs</description>
  </skill>
</available_skills>

Агент загружает навык, вызывая инструмент:

skill({ name: "git-release" })

Настройка разрешений

Контролируйте, какие навыки могут использовать агенты, используя разрешения на основе шаблонов в dropstone.json:

{
  "permission": {
    "skill": {
      "*": "allow",
      "pr-review": "allow",
      "internal-*": "deny",
      "experimental-*": "ask"
    }
  }
}
РазрешениеПоведение
allowНавык загружается немедленно
denyНавык скрыт от агента, доступ отклонён
askПользователю предлагается одобрение перед загрузкой

Шаблоны поддерживают подстановочные знаки: internal-* соответствует internal-docs, internal-tools и т. д.


Переопределение для каждого агента

Дайте конкретным агентам другие разрешения, чем глобальные значения по умолчанию.

Для пользовательских агентов (в frontmatter агента):

---
permission:
  skill:
    "documents-*": "allow"
---

Для встроенных агентовdropstone.json):

{
  "agent": {
    "plan": {
      "permission": {
        "skill": {
          "internal-*": "allow"
        }
      }
    }
  }
}

Отключение инструмента skill

Полностью отключите навыки для агентов, которые их не должны использовать:

Для пользовательских агентов:

---
tools:
  skill: false
---

Для встроенных агентов:

{
  "agent": {
    "plan": {
      "tools": {
        "skill": false
      }
    }
  }
}

Когда отключено, раздел <available_skills> полностью опускается.


Устранение неполадок при загрузке

Если навык не отображается:

  1. Проверьте, что SKILL.md написано заглавными буквами
  2. Убедитесь, что frontmatter включает name и description
  3. Убедитесь, что имена навыков уникальны во всех местоположениях
  4. Проверьте разрешения: навыки с deny скрыты от агентов
Ctrl+I