<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitHub Copilot on KTDEVX</title><link>/en/tags/github-copilot/</link><description>KTDEVX (GitHub Copilot)</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>ktdevx@gmail.com
(Kaito Takemura)</managingEditor><lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0900</lastBuildDate><atom:link href="/en/tags/github-copilot/index.xml" rel="self" type="application/rss+xml"/><item><title>Basic GitHub Copilot Usage in VS Code</title><link>/en/blog/github-copilot-basic-usage/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0900</pubDate><author>ktdevx@gmail.com (Kaito Takemura)</author><guid>/en/blog/github-copilot-basic-usage/</guid><description>&lt;p>GitHub Copilot in Visual Studio Code (VS Code) can help you write, investigate, and modify code with AI assistance.&lt;/p>
&lt;p>This article explains how to set up GitHub Copilot in VS Code and try its basic features, including code completion and chat. Always review generated code and run tests when appropriate.&lt;/p>
&lt;h2 id="prerequisites" >
&lt;div>
&lt;a href="#prerequisites">
#
&lt;/a>
Prerequisites
&lt;/div>
&lt;/h2>
&lt;p>Prepare the following:&lt;/p>
&lt;ul>
&lt;li>VS Code&lt;/li>
&lt;li>A GitHub account&lt;/li>
&lt;li>A plan or free allowance that supports GitHub Copilot&lt;/li>
&lt;/ul>
&lt;p>Use a recent version of VS Code when possible. GitHub Copilot plans and usage limits may change, so check the &lt;a href="https://github.com/features/copilot/plans">GitHub Copilot plans page&lt;/a> for the latest information.&lt;/p>
&lt;h2 id="install-the-github-copilot-extension" >
&lt;div>
&lt;a href="#install-the-github-copilot-extension">
#
&lt;/a>
Install the GitHub Copilot extension
&lt;/div>
&lt;/h2>
&lt;ol>
&lt;li>Start VS Code.&lt;/li>
&lt;li>Select the Extensions icon in the Activity Bar.&lt;/li>
&lt;li>Enter &lt;code>GitHub Copilot&lt;/code> in the search box.&lt;/li>
&lt;li>Select the GitHub Copilot extension published by GitHub.&lt;/li>
&lt;li>Select &lt;strong>Install&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;p>Depending on the version, GitHub Copilot Chat may be included in the same extension. Check the publisher and description in the search results before installing an extension.&lt;/p>
&lt;h2 id="sign-in-with-your-github-account" >
&lt;div>
&lt;a href="#sign-in-with-your-github-account">
#
&lt;/a>
Sign in with your GitHub account
&lt;/div>
&lt;/h2>
&lt;p>After installing the extension, VS Code may ask you to sign in to your GitHub account.&lt;/p>
&lt;ol>
&lt;li>Start GitHub sign-in from the status bar or the Accounts menu in VS Code.&lt;/li>
&lt;li>When your browser opens, sign in to your GitHub account.&lt;/li>
&lt;li>Authorize VS Code.&lt;/li>
&lt;li>Return to VS Code and confirm that the Accounts menu shows you are signed in.&lt;/li>
&lt;/ol>
&lt;p>If sign-in does not work, restart VS Code and check the Accounts menu again. If you use an organization account, check whether an administrator has restricted GitHub Copilot access.&lt;/p>
&lt;h2 id="use-code-completion" >
&lt;div>
&lt;a href="#use-code-completion">
#
&lt;/a>
Use code completion
&lt;/div>
&lt;/h2>
&lt;p>Code completion suggests continuations based on the code and comments you are entering. For example, enter the following comment in a Python file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Return the sum of all numbers from 1 through the given number&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Start entering a function on the next line. A suggested implementation may appear as faint text. To accept the suggestion, press &lt;code>Tab&lt;/code> in the usual configuration. To dismiss it and continue typing, press &lt;code>Esc&lt;/code>.&lt;/p>
&lt;p>When a suggestion does not match your goal, make the comment more specific. Including argument names, the return value, and whether error handling is required can make your intent clearer.&lt;/p>
&lt;h2 id="review-multiple-suggestions" >
&lt;div>
&lt;a href="#review-multiple-suggestions">
#
&lt;/a>
Review multiple suggestions
&lt;/div>
&lt;/h2>
&lt;p>When a suggestion is displayed, other suggestions may be available. The keyboard commands for switching suggestions can vary with the VS Code version, extension version, and keyboard layout.&lt;/p>
&lt;p>To view available commands, right-click in the editor and inspect the GitHub Copilot menu, or search for &lt;code>Copilot&lt;/code> in the Command Palette (&lt;code>Ctrl+Shift+P&lt;/code>). Before accepting a suggestion, review its logic, error handling, and treatment of external input.&lt;/p>
&lt;h2 id="ask-questions-in-copilot-chat" >
&lt;div>
&lt;a href="#ask-questions-in-copilot-chat">
#
&lt;/a>
Ask questions in Copilot Chat
&lt;/div>
&lt;/h2>
&lt;p>Copilot Chat lets you ask questions about code and errors in natural language.&lt;/p>
&lt;ol>
&lt;li>Open Chat from the Activity Bar.&lt;/li>
&lt;li>Enter a question in the input box.&lt;/li>
&lt;li>Add relevant files or code as context when necessary.&lt;/li>
&lt;li>Send the question and review the answer.&lt;/li>
&lt;/ol>
&lt;p>For example, enter a specific request such as:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Explain what this function does. Also check whether it handles an empty input safely.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Do not assume that the answer is correct. Check that the explanation matches the actual code. Including the project goal, libraries in use, and relevant error messages can make your question more useful.&lt;/p>
&lt;h2 id="choose-ask-plan-or-agent-mode" >
&lt;div>
&lt;a href="#choose-ask-plan-or-agent-mode">
#
&lt;/a>
Choose Ask, Plan, or Agent mode
&lt;/div>
&lt;/h2>
&lt;p>The mode selector in Copilot Chat lets you choose an interaction style for your task. The available modes and their names may vary with the VS Code and Copilot versions.&lt;/p>
&lt;h3 id="ask-mode" >
&lt;div>
&lt;a href="#ask-mode">
##
&lt;/a>
Ask mode
&lt;/div>
&lt;/h3>
&lt;p>Ask mode is for asking questions about code, explaining behavior, and investigating errors. It is generally useful when you want an answer or code example without asking Copilot to modify files.&lt;/p>
&lt;p>For example, you could enter:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Find the files that handle authentication in this project and explain the flow.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="plan-mode" >
&lt;div>
&lt;a href="#plan-mode">
##
&lt;/a>
Plan mode
&lt;/div>
&lt;/h3>
&lt;p>Plan mode is for organizing the investigation and implementation steps before making changes. For work involving several files, creating a plan first can make the target files, sequence of changes, and verification steps easier to review.&lt;/p>
&lt;p>Review the plan and provide any corrections before asking Copilot to implement it. Creating a plan does not mean that the code has been changed correctly.&lt;/p>
&lt;h3 id="agent-mode" >
&lt;div>
&lt;a href="#agent-mode">
##
&lt;/a>
Agent mode
&lt;/div>
&lt;/h3>
&lt;p>Agent mode lets Copilot work through a task step by step, which can include inspecting files, editing code, and running tests or commands. For example, you could ask:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Add input validation to the user registration form and create tests for it.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Agent mode may change files or run commands. Review any confirmation request before allowing the action, then review the diff, test results, and commands after it finishes. As a simple rule, use Ask for a small investigation, Plan for work that needs preparation, and Agent for a clearly defined implementation task.&lt;/p>
&lt;h2 id="choose-a-model" >
&lt;div>
&lt;a href="#choose-a-model">
#
&lt;/a>
Choose a model
&lt;/div>
&lt;/h2>
&lt;p>The model picker in Chat lets you switch between available AI models. Models can differ in response speed, strengths, context handling, and how usage is calculated.&lt;/p>
&lt;p>Consider the balance between the task and usage when choosing a model:&lt;/p>
&lt;ul>
&lt;li>Choose a standard or faster model for short explanations and simple questions.&lt;/li>
&lt;li>Choose a model with stronger reasoning for complex design, debugging, or multi-file changes.&lt;/li>
&lt;li>When you want to reduce usage, check the multiplier or description shown next to the model name.&lt;/li>
&lt;/ul>
&lt;p>The available models and multipliers depend on your Copilot plan, organization settings, and the current service. A particular model may not always be available, so use the latest information shown in the Chat model picker.&lt;/p>
&lt;h2 id="choose-thinking-effort" >
&lt;div>
&lt;a href="#choose-thinking-effort">
#
&lt;/a>
Choose thinking effort
&lt;/div>
&lt;/h2>
&lt;p>Models that support reasoning may provide a thinking effort setting. A higher effort can make it easier to work through a complex problem, but it may take longer and use more of your allowance.&lt;/p>
&lt;ul>
&lt;li>Low effort: checking terminology, short explanations, and simple changes&lt;/li>
&lt;li>Medium effort: ordinary debugging and test creation&lt;/li>
&lt;li>High effort: complex design, isolating a difficult cause, and broad changes&lt;/li>
&lt;/ul>
&lt;p>Not every model or plan provides a thinking effort setting. Use it when the selector is available and match it to the complexity of the task. A higher effort does not guarantee a correct answer, so review the generated result.&lt;/p>
&lt;h2 id="understand-credits" >
&lt;div>
&lt;a href="#understand-credits">
#
&lt;/a>
Understand credits
&lt;/div>
&lt;/h2>
&lt;p>Credits are a way to measure AI usage in GitHub Copilot. The amount available each month depends on the plan, and the amount consumed can vary by the request, model, and feature. An advanced model or task may consume more than one credit for a single request.&lt;/p>
&lt;p>Credits are not a score for code quality or correctness. The quantity and terminology shown in VS Code can also vary with your subscription and GitHub&amp;rsquo;s billing system. Check your account settings or usage page for the remaining amount and reset date. When appropriate, choose a lower-cost model or Ask mode to manage usage.&lt;/p>
&lt;h2 id="explain-or-modify-selected-code" >
&lt;div>
&lt;a href="#explain-or-modify-selected-code">
#
&lt;/a>
Explain or modify selected code
&lt;/div>
&lt;/h2>
&lt;p>You can ask questions about a selected section of code.&lt;/p>
&lt;ol>
&lt;li>Select the code you want to understand in the editor.&lt;/li>
&lt;li>Right-click and open the GitHub Copilot menu.&lt;/li>
&lt;li>Choose an action such as explaining the code, modifying it, or creating tests.&lt;/li>
&lt;li>Review the proposed change.&lt;/li>
&lt;/ol>
&lt;p>When asking for a modification, state the goal precisely. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Add input validation to this code. Keep the existing return value format unchanged.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Review the diff before applying the proposed change. If the change is broad, inspect each part and undo anything unnecessary.&lt;/p>
&lt;h2 id="use-inline-chat" >
&lt;div>
&lt;a href="#use-inline-chat">
#
&lt;/a>
Use inline chat
&lt;/div>
&lt;/h2>
&lt;p>Inline chat lets you make a request about the current code without leaving the editor.&lt;/p>
&lt;ol>
&lt;li>Select the target code in the editor.&lt;/li>
&lt;li>Search for &lt;code>Copilot&lt;/code> in the Command Palette and choose the command that starts inline chat.&lt;/li>
&lt;li>Enter the change you want.&lt;/li>
&lt;li>Review the displayed diff, then apply or cancel it.&lt;/li>
&lt;/ol>
&lt;p>Include both the scope and constraints in your request. For example: &lt;code>Modify only this function and do not change the name of its public API&lt;/code>.&lt;/p>
&lt;h2 id="review-and-apply-suggestions" >
&lt;div>
&lt;a href="#review-and-apply-suggestions">
#
&lt;/a>
Review and apply suggestions
&lt;/div>
&lt;/h2>
&lt;p>Use the following process when adopting a GitHub Copilot suggestion:&lt;/p>
&lt;ol>
&lt;li>Review the diff before and after the change.&lt;/li>
&lt;li>Confirm that the generated logic matches your request.&lt;/li>
&lt;li>Check types, return values, exceptions, and boundary cases.&lt;/li>
&lt;li>Run tests and static analysis.&lt;/li>
&lt;li>Save and commit the change only after it passes your checks.&lt;/li>
&lt;/ol>
&lt;p>When fixing an error, investigate the error message instead of hiding it. Do not assume that an error is resolved just because Copilot suggested a change. Run the application or tests to verify the result.&lt;/p>
&lt;h2 id="things-to-keep-in-mind" >
&lt;div>
&lt;a href="#things-to-keep-in-mind">
#
&lt;/a>
Things to keep in mind
&lt;/div>
&lt;/h2>
&lt;h3 id="do-not-enter-sensitive-information" >
&lt;div>
&lt;a href="#do-not-enter-sensitive-information">
##
&lt;/a>
Do not enter sensitive information
&lt;/div>
&lt;/h3>
&lt;p>Do not enter API keys, passwords, personal information, customer information, or confidential company information in prompts or chat. Replace real values with a minimal example that does not expose sensitive data.&lt;/p>
&lt;h3 id="verify-generated-code" >
&lt;div>
&lt;a href="#verify-generated-code">
##
&lt;/a>
Verify generated code
&lt;/div>
&lt;/h3>
&lt;p>Generated code may contain errors, vulnerabilities, or inefficient processing. Review code involving authentication, authorization, input validation, encryption, and database operations against official documentation and test results.&lt;/p>
&lt;h3 id="check-licenses-and-dependencies" >
&lt;div>
&lt;a href="#check-licenses-and-dependencies">
##
&lt;/a>
Check licenses and dependencies
&lt;/div>
&lt;/h3>
&lt;p>If you use generated code in publicly distributed software, check the project&amp;rsquo;s license and the terms of dependent libraries. Investigate any concerns about the origin or usage conditions of code before adopting it.&lt;/p>
&lt;h3 id="keep-changes-small" >
&lt;div>
&lt;a href="#keep-changes-small">
##
&lt;/a>
Keep changes small
&lt;/div>
&lt;/h3>
&lt;p>Small, focused requests make generated diffs easier to review than a request to generate a large feature all at once. Consider working on a Git branch so you can restore the previous state when necessary.&lt;/p>
&lt;h2 id="summary" >
&lt;div>
&lt;a href="#summary">
#
&lt;/a>
Summary
&lt;/div>
&lt;/h2>
&lt;p>In VS Code, GitHub Copilot can help with code completion, questions in chat, explanations and modifications of selected code, and inline chat.&lt;/p>
&lt;p>Copilot is a development aid, not a replacement for review. Check the request and the diff, and use tests, static analysis, and security reviews as part of your workflow.&lt;/p>
&lt;p>For detailed setup instructions, see &lt;a href="https://docs.github.com/en/copilot/how-tos/set-up">Setting up GitHub Copilot (GitHub Docs)&lt;/a>.&lt;/p></description></item><item><title>How to Configure GitHub Copilot Context Files</title><link>/en/blog/github-copilot-context-files/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0900</pubDate><author>ktdevx@gmail.com (Kaito Takemura)</author><guid>/en/blog/github-copilot-context-files/</guid><description>&lt;p>GitHub Copilot can use more than the file you have open or the code you are typing. It can also use instructions stored in your project when generating answers and changes. Keeping project rules in context files reduces the need to repeat the same explanation in every request.&lt;/p>
&lt;p>This article explains the main types of context files available in Visual Studio Code (VS Code) and how to configure them in a repository. The supported files and labels can vary by Copilot version and agent. Check the latest official documentation when you use these features.&lt;/p>
&lt;h2 id="prerequisites" >
&lt;div>
&lt;a href="#prerequisites">
#
&lt;/a>
Prerequisites
&lt;/div>
&lt;/h2>
&lt;p>Prepare the following:&lt;/p>
&lt;ul>
&lt;li>VS Code&lt;/li>
&lt;li>A GitHub account with access to GitHub Copilot&lt;/li>
&lt;li>A project managed with Git&lt;/li>
&lt;/ul>
&lt;p>This article uses &lt;code>PROJECT_ROOT&lt;/code> to represent the root directory of the project. If you already opened the project in VS Code, replace &lt;code>PROJECT_ROOT&lt;/code> with its actual location.&lt;/p>
&lt;h2 id="types-of-context-files" >
&lt;div>
&lt;a href="#types-of-context-files">
#
&lt;/a>
Types of context files
&lt;/div>
&lt;/h2>
&lt;p>Use the following files for different types of shared project instructions in VS Code.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>File&lt;/th>
&lt;th>Main purpose&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>.github/copilot-instructions.md&lt;/code>&lt;/td>
&lt;td>Instructions for the entire repository&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>.github/instructions/NAME.instructions.md&lt;/code>&lt;/td>
&lt;td>Instructions for specific files or directories&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>AGENTS.md&lt;/code>&lt;/td>
&lt;td>Instructions for an agent, applied to work under its directory&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Use &lt;code>copilot-instructions.md&lt;/code> for the project purpose and common development rules. Changing its file name or location can prevent it from being discovered automatically.&lt;/p>
&lt;p>Path-specific instruction files use &lt;code>applyTo&lt;/code> in front matter to define their targets. For example, the following applies to all TypeScript files:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>applyTo: &amp;#34;**/*.ts,**/*.tsx&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>AGENTS.md&lt;/code> is useful when different directories in a monorepo need different rules. Support can vary by agent and execution environment, so check the documentation for the agent you use.&lt;/p>
&lt;h2 id="add-repository-wide-instructions" >
&lt;div>
&lt;a href="#add-repository-wide-instructions">
#
&lt;/a>
Add repository-wide instructions
&lt;/div>
&lt;/h2>
&lt;p>Start by writing the rules that should be shared across all work in &lt;code>.github/copilot-instructions.md&lt;/code>.&lt;/p>
&lt;h3 id="create-the-file" >
&lt;div>
&lt;a href="#create-the-file">
##
&lt;/a>
Create the file
&lt;/div>
&lt;/h3>
&lt;p>Create the following directory and file at the project root:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>PROJECT_ROOT/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── .github/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── copilot-instructions.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Keep the instructions short and specific. For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span># Project instructions
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> This project is a multilingual website built with Hugo Extended.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Content is managed separately in content/ja/ and content/en/.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> When changing a blog post, check both the Japanese and English versions.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Run hugo --minify after changes to verify the build.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Do not edit generated public/ or resources/_gen/ files directly.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Include the project purpose, the role of important directories, required commands, and rules to follow when making changes. Focus on information that is needed repeatedly instead of copying a long document into the file.&lt;/p>
&lt;h2 id="add-path-specific-instructions" >
&lt;div>
&lt;a href="#add-path-specific-instructions">
#
&lt;/a>
Add path-specific instructions
&lt;/div>
&lt;/h2>
&lt;p>When rules differ by language or directory, create instruction files in &lt;code>.github/instructions/&lt;/code>.&lt;/p>
&lt;p>For example, save Markdown rules in the following location:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>PROJECT_ROOT/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── .github/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── instructions/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── markdown.instructions.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>applyTo: &amp;#34;**/*.md&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Use short headings that describe the content.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Put commands in code blocks.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Include a way to verify each procedure after it runs.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To target only one directory, use a glob such as &lt;code>content/en/**/*.md&lt;/code>. Separate multiple file extensions with commas in the &lt;code>applyTo&lt;/code> value.&lt;/p>
&lt;p>When a repository-wide instruction and a path-specific instruction both match a request, both may be used. Conflicting instructions can reduce the quality of answers and changes, so keep common rules and local rules clearly separated.&lt;/p>
&lt;h2 id="use-agentsmd" >
&lt;div>
&lt;a href="#use-agentsmd">
#
&lt;/a>
Use AGENTS.md
&lt;/div>
&lt;/h2>
&lt;p>Use &lt;code>AGENTS.md&lt;/code> for rules specific to an agent&amp;rsquo;s work. Put it at the repository root to provide instructions for agent work across the project.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>PROJECT_ROOT/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── AGENTS.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In a monorepo, place additional files closer to the subproject when its rules differ:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>PROJECT_ROOT/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── AGENTS.md
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── packages/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── web/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── AGENTS.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For work in a subdirectory, the nearest &lt;code>AGENTS.md&lt;/code> takes precedence. Keep the root rules and subproject rules consistent where they overlap.&lt;/p>
&lt;p>&lt;code>AGENTS.md&lt;/code> is not necessarily applied in the same way to every Copilot feature. Code completion, Chat, Agent, GitHub.com Cloud Agent, and Code Review can support different customization types.&lt;/p>
&lt;h2 id="write-useful-instructions" >
&lt;div>
&lt;a href="#write-useful-instructions">
#
&lt;/a>
Write useful instructions
&lt;/div>
&lt;/h2>
&lt;p>Include information that helps Copilot make verifiable decisions:&lt;/p>
&lt;ul>
&lt;li>The project purpose and main technologies&lt;/li>
&lt;li>The role of directories and files&lt;/li>
&lt;li>Coding conventions and naming rules&lt;/li>
&lt;li>Test, build, and static analysis commands&lt;/li>
&lt;li>Files that must not be changed and compatibility requirements&lt;/li>
&lt;li>Checks to perform after making changes&lt;/li>
&lt;/ul>
&lt;p>For example, instead of writing “make the code clean,” write “do not rename the public API and run the existing tests.” Split instructions into small bullet points and state important conditions and exceptions.&lt;/p>
&lt;h2 id="check-whether-instructions-are-applied" >
&lt;div>
&lt;a href="#check-whether-instructions-are-applied">
#
&lt;/a>
Check whether instructions are applied
&lt;/div>
&lt;/h2>
&lt;p>After saving the file, open Copilot Chat in VS Code and check whether the instructions are being used.&lt;/p>
&lt;ol>
&lt;li>Open the project root in VS Code.&lt;/li>
&lt;li>Save an instruction file such as &lt;code>.github/copilot-instructions.md&lt;/code>.&lt;/li>
&lt;li>Ask Chat about the project structure or the checks required after a change.&lt;/li>
&lt;li>Check whether the answer reflects the content of the instruction file.&lt;/li>
&lt;li>If you ask an Agent to work, review the changed files and commands it ran.&lt;/li>
&lt;/ol>
&lt;p>To check path-specific instructions, ask about a file that matches &lt;code>applyTo&lt;/code>. For example, if instructions target Markdown files, ask about headings or links in a Markdown article.&lt;/p>
&lt;p>Seeing an instruction file in the context does not guarantee that the answer is correct. Check the response references or Agent debug logs, and compare the result with a request that states the relevant requirement explicitly.&lt;/p>
&lt;h2 id="troubleshoot-missing-instructions" >
&lt;div>
&lt;a href="#troubleshoot-missing-instructions">
#
&lt;/a>
Troubleshoot missing instructions
&lt;/div>
&lt;/h2>
&lt;p>If a context file does not appear to be used, check the following:&lt;/p>
&lt;ol>
&lt;li>Confirm that the file name is &lt;code>copilot-instructions.md&lt;/code> or follows the &lt;code>NAME.instructions.md&lt;/code> pattern.&lt;/li>
&lt;li>Confirm that &lt;code>copilot-instructions.md&lt;/code> is inside the repository&amp;rsquo;s &lt;code>.github&lt;/code> directory.&lt;/li>
&lt;li>Confirm that path-specific files are inside &lt;code>.github/instructions&lt;/code>.&lt;/li>
&lt;li>Confirm that the &lt;code>applyTo&lt;/code> glob matches the target file path.&lt;/li>
&lt;li>Confirm that the repository root is open in VS Code.&lt;/li>
&lt;li>Update VS Code and GitHub Copilot when possible.&lt;/li>
&lt;li>If you use an Agent, inspect the Agent debug logs for loaded files.&lt;/li>
&lt;/ol>
&lt;p>When you open only a subdirectory of a monorepo, a setting for discovering customizations in parent repositories may affect the result. The setting name and default value can change with VS Code versions, so check the official documentation.&lt;/p>
&lt;h2 id="things-to-keep-in-mind" >
&lt;div>
&lt;a href="#things-to-keep-in-mind">
#
&lt;/a>
Things to keep in mind
&lt;/div>
&lt;/h2>
&lt;h3 id="keep-instructions-short-and-specific" >
&lt;div>
&lt;a href="#keep-instructions-short-and-specific">
##
&lt;/a>
Keep instructions short and specific
&lt;/div>
&lt;/h3>
&lt;p>Too many instructions can hide important conditions or create conflicts. Separate repository-wide rules from rules for a particular type of file.&lt;/p>
&lt;h3 id="verify-generated-results" >
&lt;div>
&lt;a href="#verify-generated-results">
##
&lt;/a>
Verify generated results
&lt;/div>
&lt;/h3>
&lt;p>A context file does not guarantee correct code. Review the diff, types, exception handling, boundary cases, and security concerns, then run tests and static analysis.&lt;/p>
&lt;h3 id="do-not-include-sensitive-information" >
&lt;div>
&lt;a href="#do-not-include-sensitive-information">
##
&lt;/a>
Do not include sensitive information
&lt;/div>
&lt;/h3>
&lt;p>Do not put API keys, passwords, personal information, customer information, or confidential company information in context files. When a repository is shared, other people or services may be able to access the content.&lt;/p>
&lt;h3 id="check-feature-support" >
&lt;div>
&lt;a href="#check-feature-support">
##
&lt;/a>
Check feature support
&lt;/div>
&lt;/h3>
&lt;p>The Copilot features that use a context file depend on its type. VS Code, GitHub.com, Cloud Agent, and Code Review may not behave the same way. Check the official documentation for the environment you use.&lt;/p>
&lt;h2 id="summary" >
&lt;div>
&lt;a href="#summary">
#
&lt;/a>
Summary
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot context files can reduce the need to repeat a project&amp;rsquo;s purpose, development rules, and verification steps.&lt;/p>
&lt;ul>
&lt;li>Put shared rules in &lt;code>.github/copilot-instructions.md&lt;/code>.&lt;/li>
&lt;li>Put file- or directory-specific rules in &lt;code>.github/instructions/*.instructions.md&lt;/code>.&lt;/li>
&lt;li>Put agent-specific rules in &lt;code>AGENTS.md&lt;/code>.&lt;/li>
&lt;li>Keep instructions short and specific, and always verify generated results.&lt;/li>
&lt;/ul>
&lt;p>For details, see &lt;a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot">Repository custom instructions for GitHub Copilot (GitHub Docs)&lt;/a> and &lt;a href="https://code.visualstudio.com/docs/copilot/copilot-customization">Copilot customization in VS Code&lt;/a>.&lt;/p></description></item><item><title>How to Create and Use Agent Skills in VS Code</title><link>/en/blog/agent-skills-in-vs-code/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0900</pubDate><author>ktdevx@gmail.com (Kaito Takemura)</author><guid>/en/blog/agent-skills-in-vs-code/</guid><description>&lt;p>Agent Skills let AI agents such as GitHub Copilot use additional procedures and decision criteria for specialized tasks. They make a repeatable workflow available for tasks such as investigation, editing, and testing.&lt;/p>
&lt;p>This article explains how to create a project Agent Skill in VS Code and use it in chat. The hands-on example creates a &lt;code>release-notes&lt;/code> skill that drafts release notes from a repository&amp;rsquo;s changes.&lt;/p>
&lt;h2 id="prerequisites" >
&lt;div>
&lt;a href="#prerequisites">
#
&lt;/a>
Prerequisites
&lt;/div>
&lt;/h2>
&lt;p>Prepare the following:&lt;/p>
&lt;ul>
&lt;li>VS Code with access to GitHub Copilot Chat and Agent features&lt;/li>
&lt;li>A GitHub account that can use GitHub Copilot&lt;/li>
&lt;li>A Git repository where you can add a skill&lt;/li>
&lt;/ul>
&lt;p>Menu names and available models may vary by version and subscription.&lt;/p>
&lt;h2 id="what-are-agent-skills" >
&lt;div>
&lt;a href="#what-are-agent-skills">
#
&lt;/a>
What are Agent Skills?
&lt;/div>
&lt;/h2>
&lt;p>Agent Skills are an open standard that can be used by multiple AI agents. An Agent Skill is a specialized workflow that an AI agent loads when it is relevant. This article uses the skill through the GitHub Copilot extension for VS Code. For a project skill, a common location is:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>.github/skills/&amp;lt;skill-name&amp;gt;/SKILL.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The YAML front matter in &lt;code>SKILL.md&lt;/code> must contain at least these fields:&lt;/p>
&lt;ul>
&lt;li>&lt;code>name&lt;/code>: The identifier of the skill. Use lowercase letters, numbers, and hyphens only, and make it match the parent directory name.&lt;/li>
&lt;li>&lt;code>description&lt;/code>: A description of what the skill does and when to use it.&lt;/li>
&lt;/ul>
&lt;p>The body describes the procedure, constraints, and verification steps. You can also add scripts, examples, and reference files in the same directory.&lt;/p>
&lt;p>Custom instructions and Agent Skills serve different purposes. Custom instructions are useful for continuously applying project conventions. Agent Skills are useful for loading task-specific procedures, such as testing, debugging, or deployment, when they are needed.&lt;/p>
&lt;h2 id="prepare-the-hands-on-exercise" >
&lt;div>
&lt;a href="#prepare-the-hands-on-exercise">
#
&lt;/a>
Prepare the hands-on exercise
&lt;/div>
&lt;/h2>
&lt;p>Open a practice Git repository in VS Code. If you use an existing repository, commit its current state first so that generated changes are easy to review.&lt;/p>
&lt;p>Create the following directory from the project root:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>.github/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── skills/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── release-notes/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── SKILL.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can create it in the Explorer or run these commands in PowerShell:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-powershell" data-lang="powershell">&lt;span style="display:flex;">&lt;span>New-Item -ItemType Directory -Force .github\skills\release-notes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>New-Item -ItemType File -Force .github\skills\release-notes\SKILL.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="write-the-skill" >
&lt;div>
&lt;a href="#write-the-skill">
#
&lt;/a>
Write the skill
&lt;/div>
&lt;/h2>
&lt;p>Open &lt;code>SKILL.md&lt;/code> and paste the following content:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>name: release-notes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>description: Create a release notes draft from the changes in the current Git repository. Use when preparing a release summary, changelog entry, or pull request release notes.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>---
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span># Release notes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Create a concise release notes draft from the current repository changes.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">## Procedure
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">1.&lt;/span> Inspect the current branch and the changes compared with the default branch.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">2.&lt;/span> Read relevant commit messages and changed files. Do not include secrets or full sensitive values in the draft.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">3.&lt;/span> Group changes into Added, Changed, Fixed, and Removed. Omit empty groups.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">4.&lt;/span> Write each item for a user who needs to understand the effect of the change.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">5.&lt;/span> Ask a clarifying question when the comparison branch or release scope is unclear.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">6.&lt;/span> Do not edit project files unless the user explicitly asks for a file change.
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">## Output format
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Return the following sections:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> A one-sentence summary
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> A Markdown release notes draft
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> A short list of files or commits inspected
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">-&lt;/span> Open questions and verification items
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Keep the draft factual. Do not invent issue numbers, performance results, compatibility claims, or breaking changes.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Make the &lt;code>description&lt;/code> specific about both the capability and the requests that should activate it. An unclear description makes automatic selection less reliable. Use the body to define the order of work and output format.&lt;/p>
&lt;p>It is also useful to describe what the agent must not do. This example prevents file edits unless the user explicitly asks for them. For skills that run commands or edit files, document the scope, verification steps, and treatment of secrets.&lt;/p>
&lt;h2 id="check-that-vs-code-recognizes-the-skill" >
&lt;div>
&lt;a href="#check-that-vs-code-recognizes-the-skill">
#
&lt;/a>
Check that VS Code recognizes the skill
&lt;/div>
&lt;/h2>
&lt;p>Save &lt;code>SKILL.md&lt;/code> and open the Chat view. Type &lt;code>/&lt;/code> in the input field. &lt;code>release-notes&lt;/code> should appear in the list of available skills.&lt;/p>
&lt;p>If it does not appear, check the following:&lt;/p>
&lt;ol>
&lt;li>Confirm that VS Code opened the repository root folder.&lt;/li>
&lt;li>Confirm that the file is named exactly &lt;code>SKILL.md&lt;/code>.&lt;/li>
&lt;li>Confirm that &lt;code>name: release-notes&lt;/code> matches the &lt;code>release-notes&lt;/code> directory.&lt;/li>
&lt;li>Make sure &lt;code>name&lt;/code> does not contain uppercase letters, slashes, colons, or dots.&lt;/li>
&lt;li>Confirm that the front matter starts and ends with &lt;code>---&lt;/code>.&lt;/li>
&lt;li>Close and reopen the Chat view to refresh the skill list.&lt;/li>
&lt;/ol>
&lt;p>Agent Skills can be loaded automatically when they are relevant to a request. To guarantee that this skill is used, select it explicitly with &lt;code>/release-notes&lt;/code>.&lt;/p>
&lt;h2 id="run-the-skill" >
&lt;div>
&lt;a href="#run-the-skill">
#
&lt;/a>
Run the skill
&lt;/div>
&lt;/h2>
&lt;p>In a repository with changes, enter this prompt in Chat:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>/release-notes Create a draft for the next release from the changes on the current branch.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Review the result carefully:&lt;/p>
&lt;ul>
&lt;li>Is every described feature present in the actual diff?&lt;/li>
&lt;li>Are changes grouped correctly as Added, Changed, Fixed, or Removed?&lt;/li>
&lt;li>Are breaking-change or compatibility claims supported by evidence?&lt;/li>
&lt;li>Does the output contain any secrets or personal information?&lt;/li>
&lt;li>Are remaining verification items clearly identified?&lt;/li>
&lt;/ul>
&lt;p>You can also test automatic selection without using &lt;code>/release-notes&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Summarize the changes for the next release as user-facing release notes.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If the skill is not selected automatically, make its &lt;code>description&lt;/code> more specific or invoke it with the slash command. After changing the skill body, start a new chat before testing again.&lt;/p>
&lt;h2 id="use-additional-files" >
&lt;div>
&lt;a href="#use-additional-files">
#
&lt;/a>
Use additional files
&lt;/div>
&lt;/h2>
&lt;p>For a longer workflow, split supporting material into files in the skill directory instead of putting everything in &lt;code>SKILL.md&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>.github/skills/release-notes/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── SKILL.md
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├── examples/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ └── release-notes.md
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>└── templates/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> └── changelog.md
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Reference additional files with relative links from &lt;code>SKILL.md&lt;/code>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-markdown" data-lang="markdown">&lt;span style="display:flex;">&lt;span>Use the [&lt;span style="color:#f92672">changelog example&lt;/span>](&lt;span style="color:#a6e22e">./templates/changelog.md&lt;/span>) as the template.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Referencing a file tells the agent where to find the material when it needs it. If you include a script, review its input validation, network access, and file deletion behavior before using it.&lt;/p>
&lt;h2 id="agent-skill-design-guidelines" >
&lt;div>
&lt;a href="#agent-skill-design-guidelines">
#
&lt;/a>
Agent Skill design guidelines
&lt;/div>
&lt;/h2>
&lt;h3 id="keep-one-purpose" >
&lt;div>
&lt;a href="#keep-one-purpose">
##
&lt;/a>
Keep one purpose
&lt;/div>
&lt;/h3>
&lt;p>A skill that combines testing, deployment, and release-note writing will have vague activation conditions and procedures. Split different goals into separate skills so only the relevant workflows are combined.&lt;/p>
&lt;h3 id="define-the-procedure-and-completion-criteria" >
&lt;div>
&lt;a href="#define-the-procedure-and-completion-criteria">
##
&lt;/a>
Define the procedure and completion criteria
&lt;/div>
&lt;/h3>
&lt;p>Phrases such as “check appropriately” are difficult to follow. Specify commands, files to inspect, output format, and what to do when a step fails.&lt;/p>
&lt;h3 id="limit-permissions" >
&lt;div>
&lt;a href="#limit-permissions">
##
&lt;/a>
Limit permissions
&lt;/div>
&lt;/h3>
&lt;p>Agent Skills describe procedures, but the agent may run commands or modify files while following them. For deletion, external communication, or deployment, document the scope and checkpoints, and review commands and diffs before execution.&lt;/p>
&lt;h3 id="keep-secrets-out" >
&lt;div>
&lt;a href="#keep-secrets-out">
##
&lt;/a>
Keep secrets out
&lt;/div>
&lt;/h3>
&lt;p>Do not put API keys, passwords, access tokens, or customer information in &lt;code>SKILL.md&lt;/code> or its examples. Check the visibility and access permissions of any file that will be committed to the repository.&lt;/p>
&lt;h2 id="summary" >
&lt;div>
&lt;a href="#summary">
#
&lt;/a>
Summary
&lt;/div>
&lt;/h2>
&lt;p>Agent Skills let you store task-specific procedures, decision criteria, and output formats in a project and load them into GitHub Copilot when relevant.&lt;/p>
&lt;p>To create one, add &lt;code>.github/skills/&amp;lt;skill-name&amp;gt;/SKILL.md&lt;/code>, set &lt;code>name&lt;/code> and &lt;code>description&lt;/code>, and write specific instructions in the body. Start with a small skill such as &lt;code>release-notes&lt;/code>, then improve it by reviewing its results against real requests.&lt;/p>
&lt;p>See &lt;a href="https://code.visualstudio.com/docs/copilot/customization/agent-skills">Agent Skills in VS Code&lt;/a> and the &lt;a href="https://agentskills.io/">Agent Skills specification&lt;/a> for details.&lt;/p></description></item><item><title>What Is GitHub Copilot?</title><link>/en/blog/what-is-github-copilot/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0900</pubDate><author>ktdevx@gmail.com (Kaito Takemura)</author><guid>/en/blog/what-is-github-copilot/</guid><description>&lt;p>GitHub Copilot is a service that uses AI to support software development. It improves developers&amp;rsquo; productivity by suggesting code as they type and answering questions in natural language.&lt;/p>
&lt;p>This article explains what GitHub Copilot is, what it can do, and what to keep in mind when using it.&lt;/p>
&lt;h2 id="what-is-github-copilot" >
&lt;div>
&lt;a href="#what-is-github-copilot">
#
&lt;/a>
What Is GitHub Copilot?
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot is an AI coding assistant that generates code suggestions based on the context of the code and comments written by the developer.&lt;/p>
&lt;p>It can do more than generate code automatically. You can also use it to explain code, investigate the cause of errors, create test code, and discuss implementation approaches. It is a support tool that helps developers work with suggestions, rather than a tool that makes every decision on their behalf.&lt;/p>
&lt;h2 id="what-can-github-copilot-do" >
&lt;div>
&lt;a href="#what-can-github-copilot-do">
#
&lt;/a>
What Can GitHub Copilot Do?
&lt;/div>
&lt;/h2>
&lt;h3 id="code-completion" >
&lt;div>
&lt;a href="#code-completion">
##
&lt;/a>
Code Completion
&lt;/div>
&lt;/h3>
&lt;p>When you enter code or comments in an editor, GitHub Copilot suggests possible continuations.&lt;/p>
&lt;p>This can reduce the effort required to write function templates and other routine code. You can review the suggestions before accepting them.&lt;/p>
&lt;h3 id="ask-questions-in-chat" >
&lt;div>
&lt;a href="#ask-questions-in-chat">
##
&lt;/a>
Ask Questions in Chat
&lt;/div>
&lt;/h3>
&lt;p>You can ask questions about code and errors through a chat interface.&lt;/p>
&lt;p>For example, you can ask GitHub Copilot to:&lt;/p>
&lt;ul>
&lt;li>Explain what selected code does&lt;/li>
&lt;li>Suggest the cause of an error and ways to fix it&lt;/li>
&lt;li>Convert code to another programming language&lt;/li>
&lt;li>Create test code&lt;/li>
&lt;li>Suggest ways to improve code&lt;/li>
&lt;/ul>
&lt;h3 id="use-it-from-the-command-line" >
&lt;div>
&lt;a href="#use-it-from-the-command-line">
##
&lt;/a>
Use It from the Command Line
&lt;/div>
&lt;/h3>
&lt;p>GitHub Copilot can also be used from the command line through GitHub CLI. It can help you discuss shell commands and understand what commands do.&lt;/p>
&lt;p>However, you should check the target files and options before executing a suggested command instead of running it without review.&lt;/p>
&lt;h3 id="support-pull-requests-and-code-reviews" >
&lt;div>
&lt;a href="#support-pull-requests-and-code-reviews">
##
&lt;/a>
Support Pull Requests and Code Reviews
&lt;/div>
&lt;/h3>
&lt;p>GitHub Copilot can create descriptions of changes and support code reviews. It can help organize an overview of changes and identify items that are easy to overlook.&lt;/p>
&lt;h3 id="support-development-as-an-agent" >
&lt;div>
&lt;a href="#support-development-as-an-agent">
##
&lt;/a>
Support Development as an Agent
&lt;/div>
&lt;/h3>
&lt;p>Depending on the available features and plan, GitHub Copilot can support tasks such as researching implementation approaches, creating plans, changing code, and creating Pull Requests.&lt;/p>
&lt;p>Even in this case, developers should review the generated changes and run tests and other checks before incorporating them into a project.&lt;/p>
&lt;h2 id="where-can-you-use-github-copilot" >
&lt;div>
&lt;a href="#where-can-you-use-github-copilot">
#
&lt;/a>
Where Can You Use GitHub Copilot?
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot is available in multiple development environments, including Visual Studio Code. Common places where it can be used include:&lt;/p>
&lt;ul>
&lt;li>IDEs such as Visual Studio Code&lt;/li>
&lt;li>The GitHub website&lt;/li>
&lt;li>GitHub Mobile&lt;/li>
&lt;li>The command line through GitHub CLI&lt;/li>
&lt;li>Development environments such as Visual Studio, Xcode, and JetBrains IDEs&lt;/li>
&lt;/ul>
&lt;p>Supported environments and available features may change. Before getting started, check the official documentation to confirm that your environment is supported.&lt;/p>
&lt;h2 id="benefits-of-github-copilot" >
&lt;div>
&lt;a href="#benefits-of-github-copilot">
#
&lt;/a>
Benefits of GitHub Copilot
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot can reduce the time required to enter routine code and research implementation approaches. It can also provide useful examples when you are working with a programming language or library that you are not familiar with.&lt;/p>
&lt;p>Because you can ask it to explain code and suggest improvements, it can also help you begin understanding an existing codebase. However, its answers are not always correct. You should understand the code yourself instead of relying on it for every learning or design decision.&lt;/p>
&lt;h2 id="things-to-keep-in-mind" >
&lt;div>
&lt;a href="#things-to-keep-in-mind">
#
&lt;/a>
Things to Keep in Mind
&lt;/div>
&lt;/h2>
&lt;h3 id="verify-generated-code" >
&lt;div>
&lt;a href="#verify-generated-code">
##
&lt;/a>
Verify Generated Code
&lt;/div>
&lt;/h3>
&lt;p>Code generated by GitHub Copilot may contain errors, inefficient processing, or vulnerabilities. Before using it, review the code and run tests and static analysis.&lt;/p>
&lt;p>Security-sensitive code involving authentication, authorization, input validation, encryption, and database operations requires especially careful review.&lt;/p>
&lt;h3 id="do-not-enter-sensitive-information" >
&lt;div>
&lt;a href="#do-not-enter-sensitive-information">
##
&lt;/a>
Do Not Enter Sensitive Information
&lt;/div>
&lt;/h3>
&lt;p>Do not include API keys, passwords, personal information, or confidential company information in chat messages or prompts. When using GitHub Copilot in an organization, also check the company&amp;rsquo;s security policies and GitHub&amp;rsquo;s administrative settings.&lt;/p>
&lt;h3 id="check-licenses" >
&lt;div>
&lt;a href="#check-licenses">
##
&lt;/a>
Check Licenses
&lt;/div>
&lt;/h3>
&lt;p>Generated code may resemble existing code. If you use it in publicly distributed software, check the project&amp;rsquo;s license and the terms of any dependent libraries, and take any required action.&lt;/p>
&lt;h3 id="check-usage-limits" >
&lt;div>
&lt;a href="#check-usage-limits">
##
&lt;/a>
Check Usage Limits
&lt;/div>
&lt;/h3>
&lt;p>Available models, the number of completions and chat requests, and AI credits vary by plan and feature. Plan details and prices may change, so check the official pricing page for the latest information.&lt;/p>
&lt;h2 id="pricing-plans-and-getting-started" >
&lt;div>
&lt;a href="#pricing-plans-and-getting-started">
#
&lt;/a>
Pricing Plans and Getting Started
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot offers a free plan and paid plans for individuals, as well as plans for organizations and enterprises. Available features and usage limits vary by plan.&lt;/p>
&lt;p>For the latest pricing, available features, and supported environments, see the following official pages:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://docs.github.com/en/copilot/about-github-copilot/what-is-github-copilot">What is GitHub Copilot? (GitHub Docs)&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/features/copilot/plans">GitHub Copilot Plans&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://docs.github.com/en/copilot/how-tos/set-up">Setting up GitHub Copilot (GitHub Docs)&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>To get started, sign in to the official website with your GitHub account and choose a plan that fits your needs. Then install the required extensions or configure the tools for your IDE or GitHub CLI.&lt;/p>
&lt;h2 id="summary" >
&lt;div>
&lt;a href="#summary">
#
&lt;/a>
Summary
&lt;/div>
&lt;/h2>
&lt;p>GitHub Copilot is an AI service that supports software development through code completion, chat, the command line, and code reviews. It can make routine tasks more efficient and serve as a partner when considering implementation approaches.&lt;/p>
&lt;p>However, generated code is not guaranteed to be correct. Do not enter sensitive information, check security and licensing requirements, and use GitHub Copilot alongside testing and code review.&lt;/p></description></item></channel></rss>