Skip to main content

Добавление пользовательских инструкций для GitHub Copilot CLI

Дайте Copilot дополнительный контекст о том, как понять ваш проект и как строить, протестировать и проверять его изменения.

GitHub Copilot может дать ответы, адаптированные к вашим личным предпочтениям, работе вашей команды, используемым инструментам или особенностям вашего проекта, если вы предоставите достаточно контекста для этого. Вместо того, чтобы постоянно добавлять эту контекстную информацию в свои запросы, вы можете создать пользовательские инструкции, которые автоматически добавят эту информацию за вас. Дополнительная информация не отображается, но доступна Copilot для генерации ответов более высокого качества.

Типы пользовательских инструкций

GitHub Copilot CLI поддерживает инструкции из следующих расположений.

Если в таблице ниже не указано, Copilot CLI обнаруживает файлы инструкций репозитория и агента в стандартных расположениях: корневой каталог репозитория, текущий рабочий каталог, промежуточные каталоги между ними и все каталоги, вложенные в путь к файлу, над которым он работает. Модульные файлы инструкций ( *.instructions.mdсоответствующие) зависят от пути— файл со applyTo значением применяется только к соответствующим файлам.

МестоположениеОбласть и поведение
$HOME/.copilot/copilot-instructions.mdИнструкции на уровне пользователя, которые применяются к репозиториям.
$HOME/.copilot/instructions/**/*.instructions.mdИнструкции на уровне модульных пользователей.
.github/copilot-instructions.mdИнструкции по всему репозиторию, обнаруженные в стандартных расположениях.
.github/instructions/**/*.instructions.mdИнструкции модульного репозитория, обнаруженные в стандартных расположениях, но не промежуточные каталоги.
AGENTS.mdИнструкции агента, обнаруженные в стандартных расположениях. Для получения дополнительной информации смотрите репозиторий agentsmd/agents.md.
CLAUDE.mdИнструкции агента, обнаруженные в стандартных расположениях.
Copilot CLI также используется .claude/CLAUDE.md.
GEMINI.mdИнструкции агента, обнаруженные в стандартных расположениях.
Каталоги, перечисленные в COPILOT_CUSTOM_INSTRUCTIONS_DIRSДополнительные AGENTS.md и *.instructions.md файлы. Разделите несколько каталогов запятыми.

Если вы задаете COPILOT_HOME переменную среды, Copilot CLI использует этот каталог вместо $HOME/.copilot обоих расположений инструкций на уровне пользователя.

/instructions Используйте команду, чтобы просмотреть файлы инструкций, обнаруженные для текущего сеанса, и включить или отключить отдельные файлы.

Взаимодействие нескольких файлов инструкций

Если существуют несколько применимых файлов инструкций на уровне пользователя и репозитория, Copilot CLI объединяет их инструкции. Он удаляет повторяющиеся копии идентичных пользовательских copilot-instructions.md, репозиторий и инструкций агента, но не определяет общий порядок приоритета между этими файлами. Избегайте конфликтующих инструкций.

Инструкции, относящиеся к пути, включаются только в том случае, если их applyTo значение соответствует файлу, с которым Copilot CLI работает работа. Файл инструкций, который вы отключаете использование /instructions , не включается.

Создание пользовательских инструкций на уровне репозитория

  1. В корне вашего репозитория создайте файл с именем .github/copilot-instructions.md.

    Создайте папку .github, если её ещё нет.

  2. Добавьте инструкции по естественному языку в файл в формате Markdown.

    Пробелы между инструкциями игнорируются, поэтому инструкции могут быть написаны как один абзац, каждый из которых находится на новой строке или разделен пустыми строками для удобочитаемости.

    Для помощи в написании эффективных индивидуальных инструкций см. О кастомизации ответов GitHub Copilot.

Ссылка на другие файлы

В .github/copilot-instructions.md, AGENTS.mdили CLAUDE.mdиспользуйте @ относительный путь для включения другого файла. Copilot CLI считывает указанный файл немедленно и поддерживает ссылки в ссылочных файлах.

Ссылки на файлы должны оставаться в репозитории или в пользовательском каталоге инструкций для локальных инструкций. Абсолютные пути и пути, начинающиеся с ~/ , не загружаются. Ссылки на файлы не развернуты или GEMINI.md``*.instructions.md не развернуты.

Создание пользовательских инструкций для конкретного пути

  1. Создайте каталог, .github/instructions если он еще не существует.

  2. По желанию создайте подкаталоги .github/instructions для организации ваших файлов инструкций.

  3. Создайте один или несколько NAME.instructions.md файлов, где NAME указывается назначение инструкций. Имя файла должно заканчиваться .instructions.md.

  4. В начале файла создайте блок frontmatter, содержащий ключевое applyTo слово. Используйте синтаксис glob, чтобы указать, к каким файлам или каталогам применяются инструкции.

    Например:

    ---
    applyTo: "app/models/**/*.rb"
    ---
    

    Можно указать несколько шаблонов, разделив их запятыми. Например, чтобы применить инструкции ко всем файлам TypeScript в репозитории, можно использовать следующий блок frontmatter:

    ---
    applyTo: "**/*.ts,**/*.tsx"
    ---
    

    Примеры Glob:

    • * - все будут совпадать со всеми файлами текущей директории.
    • ** или **/* — все совпадут со всеми файлами во всех каталогах.
    • *.py - будет совпадать со всеми .py файлами текущей папки.
    • **/*.py - будет рекурсивно совпадать со всеми .py файлами во всех каталогах.
    • src/*.py- будет .py совпадать со всеми src файлами в каталоге. Например src/foo.py , и src/bar.pyнетsrc/foo/bar.py.
    • src/**/*.py - будет рекурсивно совпадать со всеми .py файлами в src каталоге. Например, src/foo.py, src/foo/bar.pyи src/foo/bar/baz.py.
    • **/subdir/**/*.py - будет рекурсивно совпадать со всеми .py файлами в любой subdir папке на любой глубине. Например, subdir/foo.py, subdir/nested/bar.py, parent/subdir/baz.py, и deep/parent/subdir/nested/qux.py, но неfoo.py на пути, не содержащем каталога subdir .
  5. Опционально, чтобы предотвратить использование файла либо Copilot cloud agent одним из вариантов Copilot code review, добавьте excludeAgent ключевое слово в блок фронтматтера. Используйте либо или "code-review"``"cloud-agent".

    Например, следующий файл будет читаться только .Copilot cloud agent

    ---
    applyTo: "**"
    excludeAgent: "code-review"
    ---
    

    Если ключевое excludeAgent слово не включено в передний блок Matterblock, оба Copilot code review и Copilot cloud agent будут использовать ваши инструкции.

  6. Добавьте пользовательские инструкции на естественном языке с помощью формата Markdown. Пробелы между инструкциями игнорируются, поэтому инструкции могут быть написаны как один абзац, каждый из которых находится на новой строке или разделен пустыми строками для удобочитаемости.

Пользуемые инструкции

Изменения, внесенные в пользовательские файлы инструкций, не сразу доступны для использования в активных сеансах CLI. Чтобы применить изменения, выйти из текущего сеанса и возобновить его (например, запустить copilot --continue) или запустить новый сеанс (например, использовать /new в интерактивном сеансе).

Дополнительные материалы