Skip to main content

에 대한 사용자 지정 지침 추가 GitHub Copilot 명령 줄 인터페이스 (CLI)

프로젝트를 이해하는 방법과 변경 내용을 빌드, 테스트 및 유효성 검사하는 방법에 대한 추가 컨텍스트를 제공합니다 Copilot .

GitHub Copilot는 충분한 컨텍스트를 제공하면 개인적인 선호, 팀의 작업 방식, 사용하는 도구 또는 프로젝트의 세부 사항에 맞춘 응답을 제공할 수 있습니다. 프롬프트에 이 상황별 세부 정보를 반복적으로 추가하는 대신 자동으로 이 정보를 추가하는 사용자 지정 지침을 만들 수 있습니다. 추가 정보는 표시되지 않지만, 더 높은 품질의 응답을 생성할 수 있도록 Copilot에 제공됩니다.

사용자 지정 지침 유형

GitHub Copilot 명령 줄 인터페이스 (CLI) 는 다음 위치의 지침을 지원합니다.

아래 표에 나와 있지 않은 경우 리포지토리 루트, 코파일럿 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표준 위치에서 검색된 에이전트 지침입니다.
코파일럿 CLI 또한 .claude/CLAUDE.md을 사용합니다.
GEMINI.md표준 위치에서 검색된 에이전트 지침입니다.
COPILOT_CUSTOM_INSTRUCTIONS_DIRS에 나열된 디렉터리추가 AGENTS.md*.instructions.md 파일. 여러 디렉터리를 쉼표로 구분합니다.

환경 변수 COPILOT_HOME 를 코파일럿 CLI 설정하는 경우 사용자 수준 명령 위치 대신 $HOME/.copilot 해당 디렉터리를 사용합니다.

명령을 /instructions 사용하여 현재 세션에 대해 검색된 명령 파일을 보고 개별 파일을 사용하거나 사용하지 않도록 설정합니다.

여러 명령 파일이 상호 작용하는 방법

적용 가능한 여러 사용자 수준 및 리포지토리 명령 파일이 있는 코파일럿 CLI 경우 해당 지침을 결합합니다. 동일한 사용자 수준 copilot-instructions.md, 리포지토리 전체 및 에이전트 명령의 중복 복사본을 제거하지만 이러한 파일 간의 일반적인 우선 순위 순서는 정의하지 않습니다. 충돌하는 지침을 피합니다.

경로별 지침은 해당 applyTo 값이 작업 중인 파일 코파일럿 CLI 과 일치하는 경우에만 포함됩니다. /instructions를 사용하여 비활성화한 지시 파일은 포함되지 않습니다.

리포지토리 전체 사용자 지정 지침 생성하기

  1. 리포지토리의 루트에서 .github/copilot-instructions.md 파일을 만듭니다.

    아직 없는 경우 .github 디렉터리를 만듭니다.

  2. 파일에 자연어 지침을 Markdown 형식으로 추가하세요

    지침 사이의 공백은 무시되므로 지침을 새 줄에 각각 하나의 단락으로 작성하거나 가독성을 위해 빈 줄로 구분할 수 있습니다.

    효과적인 사용자 지정 지침을 작성하는 방법에 대한 도움말은 GitHub Copilot 응답을 사용자 지정하는 방법에 대한 정보을 참조하세요.

다른 파일 참조

.github/copilot-instructions.md, AGENTS.md 또는 CLAUDE.md에서는 @ 뒤에 상대 경로를 사용하여 다른 파일을 포함합니다. 코파일럿 CLI 는 참조된 파일을 즉시 읽고 참조된 파일 내의 참조를 지원합니다.

참조된 파일은 리포지토리 내에 있거나 로컬 지침에 대한 사용자 지정 지침 디렉터리 내에 있어야 합니다. 시작 ~/ 하는 절대 경로 및 경로 로드 되지 않습니다. GEMINI.md 또는 *.instructions.md 파일에서는 파일 참조가 확장되지 않습니다.

경로별 사용자 지정 지침 만들기

  1. .github/instructions 디렉터리가 아직 없는 경우, 새로 만듭니다.

  2. 필요에 따라 .github/instructions의 하위 디렉터리를 만들어 명령 파일을 체계적으로 정리할 수 있습니다.

  3. 하나 이상의 NAME.instructions.md 파일을 만드세요. 여기서 NAME은 지침의 목적을 나타냅니다. 파일 이름은 .instructions.md로 끝나야 합니다.

  4. 파일의 시작 부분에, applyTo 키워드를 포함하는 프론트매터 블록을 만드세요. glob 구문을 사용하여 지침이 적용될 파일이나 디렉터리를 지정합니다.

    예시:

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

    쉼표로 여러 패턴을 구분하여 지정할 수 있습니다. 예를 들어, 리포지토리의 모든 TypeScript 파일에 지침을 적용하려면, 다음과 같은 프론트매터 블록을 사용할 수 있습니다.

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

    Glob 예제:

    • * - 현재 디렉터리의 모든 파일과 일치합니다.
    • ** 또는 **/* - 모든 디렉터리에 있는 모든 파일과 일치합니다.
    • *.py - 현재 디렉터리의 모든 .py 파일과 일치합니다.
    • **/*.py - 모든 디렉터리에 있는 모든 .py 파일을 재귀적으로 일치합니다.
    • src/*.py - .py 디렉터리 내 모든 src 파일을 일치시킵니다. 예를 들어, src/foo.pysrc/bar.py 그러나 아니src/foo/bar.py.
    • src/**/*.py - 디렉터리의 모든 .py 파일 src 과 재귀적으로 일치합니다. 예: src/foo.py, src/foo/bar.pysrc/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 클라우드 에이전트 또는 Copilot 코드 검토에 의해 사용되는 것을 방지하려면, 프런트매터 블록의 앞부분에 excludeAgent 키워드를 추가하십시오. 또는 "code-review"``"cloud-agent".를 사용합니다.

    예를 들어 다음 파일은 Copilot 클라우드 에이전트에서만 읽힙니다.

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

    키워드가 excludeAgent 프론트 머터블록에 포함되지 않은 경우, Copilot 코드 검토와 Copilot 클라우드 에이전트는 둘 다 귀하의 지침을 사용합니다.

  6. Markdown 형식을 사용하여 자연어로 사용자 지정 지침을 추가합니다. 지침 사이의 공백은 무시되므로 지침을 새 줄에 각각 단일 단락으로 작성하거나 가독성을 위해 빈 줄로 구분할 수 있습니다.

사용 중인 사용자 지정 지침

사용자 지정 지침 파일에 대한 변경 내용은 활성 CLI 세션에서 즉시 사용할 수 없습니다. 변경 내용을 적용하려면 현재 세션을 종료한 다음 다시 시작하거나(예: 실행 copilot --continue) 새 세션을 시작합니다(예: 대화형 세션 내에서 사용 /new ).

추가 읽기