diff --git a/content/copilot/how-tos/configure-custom-instructions/add-repository-instructions.md b/content/copilot/how-tos/configure-custom-instructions/add-repository-instructions.md index 1ed8986c09..d1342e3ff4 100644 --- a/content/copilot/how-tos/configure-custom-instructions/add-repository-instructions.md +++ b/content/copilot/how-tos/configure-custom-instructions/add-repository-instructions.md @@ -65,6 +65,14 @@ This version of this article is for using repository custom instructions in Xcod {% endxcode %} +{% copilotcli %} + +This version of this article is for using repository custom instructions with the {% data variables.product.prodname_copilot %} CLI. Click the tabs above for instructions on using custom instructions in other environments. + +{% data reusables.copilot.repository-custom-instructions-prerequisites %} + +{% endcopilotcli %} + {% eclipse %} > [!NOTE] This feature is currently in {% data variables.release-phases.public_preview %} and is subject to change. @@ -197,9 +205,45 @@ Once saved, these instructions will apply to the current project in Eclipse that {% endeclipse %} +{% copilotcli %} + +{% data variables.product.prodname_copilot %} supports three types of repository custom instructions. See the table above for details of which {% data variables.product.prodname_copilot %} features support these types of instructions. + +* **Repository-wide custom instructions**, which apply to all requests made in the context of a repository. + + These are specified in a `copilot-instructions.md` file in the `.github` directory of the repository. See [Creating repository-wide custom instructions](#creating-repository-wide-custom-instructions). + +* **Path-specific custom instructions**, which apply to requests made in the context of files that match a specified path. + + These are specified in one or more `NAME.instructions.md` files within the `.github/instructions` directory in the repository. See [Creating path-specific custom instructions](#creating-path-specific-custom-instructions). + + If the path you specify matches a file that {% data variables.product.prodname_copilot_short %} is working on, and a repository-wide custom instructions file also exists, then the instructions from both files are used. You should avoid potential conflicts between instructions as {% data variables.product.prodname_copilot_short %}'s choice between conflicting instructions is non-deterministic. + +* **Agent instructions** are used by AI agents. + + You can create one or more `AGENTS.md` files, stored anywhere within the repository. When {% data variables.product.prodname_copilot_short %} is working, the nearest `AGENTS.md` file in the directory tree will take precedence. For more information, see the [openai/agents.md repository](https://github.com/openai/agents.md). + + Alternatively, you can use a single `CLAUDE.md` or `GEMINI.md` file stored in the root of the repository. + +## Creating repository-wide custom instructions + +1. In the root of your repository, create a file named `.github/copilot-instructions.md`. + + Create the `.github` directory if it does not already exist. + +1. Add natural language instructions to the file, in Markdown format. + + Whitespace between instructions is ignored, so the instructions can be written as a single paragraph, each on a new line, or separated by blank lines for legibility. + +## Creating path-specific custom instructions + +{% data reusables.copilot.custom-instructions-path %} + +{% endcopilotcli %} + {% vscode %} -{% data variables.product.prodname_vscode_shortname %} supports two types of repository custom instructions: +{% data variables.product.prodname_vscode_shortname %} supports three types of repository custom instructions. See the table above for details of which {% data variables.product.prodname_copilot %} features support these types of instructions. * **Repository-wide custom instructions**, which apply to all requests made in the context of a repository. @@ -211,6 +255,10 @@ Once saved, these instructions will apply to the current project in Eclipse that If the path you specify matches a file that {% data variables.product.prodname_copilot_short %} is working on, and a repository-wide custom instructions file also exists, then the instructions from both files are used. +* **Agent instructions** are used by AI agents. + + For {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}, instructions must be in a file called `AGENTS.md` in the root of the workspace. For more information, see the [openai/agents.md repository](https://github.com/openai/agents.md). + ## Creating repository-wide custom instructions 1. In the root of your repository, create a file named `.github/copilot-instructions.md`. @@ -243,26 +291,20 @@ Once saved, these instructions will apply to the current project in Eclipse that {% webui %} -You can create several types of repository custom instructions for use on {% data variables.product.prodname_dotcom_the_website %}: +{% data variables.product.prodname_copilot_short %} on {% data variables.product.github %} supports three types of repository custom instructions. See the table above for details of which {% data variables.product.prodname_copilot %} features support these types of instructions. * **Repository-wide custom instructions** apply to all requests made in the context of a repository. - Supported by: **{% data variables.copilot.copilot_chat_short %}**, **{% data variables.copilot.copilot_coding_agent %}**, and **{% data variables.copilot.copilot_code-review_short %}**. - These are specified in a `copilot-instructions.md` file in the `.github` directory of the repository. See [Creating repository-wide custom instructions](#creating-repository-wide-custom-instructions-1). * **Path-specific custom instructions** apply to requests made in the context of files that match a specified path. - Supported by: **{% data variables.copilot.copilot_coding_agent %}** and **{% data variables.copilot.copilot_code-review_short %}**. - These are specified in one or more `NAME.instructions.md` files within the `.github/instructions` directory in the repository. See [Creating path-specific custom instructions](#creating-path-specific-custom-instructions-1). If the path you specify matches a file that {% data variables.product.prodname_copilot_short %} is working on, and a repository-wide custom instructions file also exists, then the instructions from both files are used. * **Agent instructions** are used by AI agents. - Supported by: **{% data variables.copilot.copilot_coding_agent %}** and {% data variables.copilot.copilot_cli_short %}. - You can create one or more `AGENTS.md` files, stored anywhere within the repository. When {% data variables.product.prodname_copilot_short %} is working, the nearest `AGENTS.md` file in the directory tree will take precedence. For more information, see the [openai/agents.md repository](https://github.com/openai/agents.md). Alternatively, you can use a single `CLAUDE.md` or `GEMINI.md` file stored in the root of the repository. @@ -453,7 +495,7 @@ Answer all questions in less than 1000 characters, and words of no more than 12 ## Repository custom instructions in use -The instructions in the file(s) are available for use by {% data variables.copilot.copilot_chat_short %} as soon as you save the file(s). The complete set of instructions will be automatically added to requests that you submit to {% data variables.product.prodname_copilot_short %} in the context of that repository. For example, they are added to the prompt you submit to {% data variables.copilot.copilot_chat_short %}. +The instructions in the file(s) are available for use by {% data variables.product.prodname_copilot_short %} as soon as you save the file(s). The complete set of instructions will be automatically added to requests that you submit to {% data variables.product.prodname_copilot_short %} in the context of that repository. For example, they are added to the prompt you submit to {% data variables.copilot.copilot_chat_short %}. {% webui %} diff --git a/data/reusables/copilot/repository-custom-instructions-support.md b/data/reusables/copilot/repository-custom-instructions-support.md index ee42aa3147..796bbfd834 100644 --- a/data/reusables/copilot/repository-custom-instructions-support.md +++ b/data/reusables/copilot/repository-custom-instructions-support.md @@ -10,7 +10,7 @@ The following table shows which {% data variables.product.prodname_copilot_short | | Eclipse | JetBrains IDEs | {% data variables.product.prodname_vs %} | {% data variables.product.prodname_vscode_shortname %} | {% data variables.product.prodname_dotcom_the_website %} | Xcode | | --- | --- | --- | --- | --- | --- | --- | -| {% data variables.copilot.copilot_chat_short %} | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | +| {% data variables.copilot.copilot_chat_short %} | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 3 | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 1 | | {% data variables.copilot.copilot_coding_agent %} | N/A | N/A | N/A | {% octicon "check" aria-label="Included" %} 3 | {% octicon "check" aria-label="Included" %} 3 | N/A | | {% data variables.copilot.copilot_code-review_short %} | N/A | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} 1 | {% octicon "check" aria-label="Included" %} 2 | {% octicon "check" aria-label="Included" %} 2 | {% octicon "x" aria-label="Not included" %} | diff --git a/src/tools/lib/all-tools.ts b/src/tools/lib/all-tools.ts index 2c062cc021..242d798ec7 100644 --- a/src/tools/lib/all-tools.ts +++ b/src/tools/lib/all-tools.ts @@ -15,6 +15,7 @@ export const allTools: ToolsMapping = { bash: 'Bash', cli: 'GitHub CLI', codespaces: 'Codespaces', + copilotcli: 'Copilot CLI', curl: 'curl', desktop: 'Desktop', eclipse: 'Eclipse',