Copilot Memory · 図解ウォークスルー

Copilot Memory とカスタム指示の違い:メモリの保存場所と削除方法

GitHub Copilot Memory はパブリックプレビュー中の、リポジトリ単位で GitHub がホストするメモリです——ディスク上で見つけたフォルダーとは別物です。このウォークスルーでは、種類ごとにメモリがどこへ保存されるのか、確認と削除の方法、個人と組織それぞれでクラウド版をオン/オフにする手順、そしてメモリでは代替できないルールを書くためのコピペ用カスタム指示テンプレートを、12 ステップで解説します。内容は docs.github.com と VS Code のメモリ関連ドキュメントと突き合わせて確認しています。

要点まとめ

  • メモリはリポジトリ内のフォルダーではありません。GitHub Copilot Memory は GitHub が保存し、1 つのリポジトリに紐づきます。確認と削除は Repository → Settings → Code & automation → Copilot → Memory で行います。ディスク上で見つかるメモリフォルダーは、VS Code の別系統であるローカルメモリツールのものです。
  • ローカルに 3 つ、クラウドに 1 つのスコープがあります。VS Code のメモリツールは User・Session・Repository のメモを /memories/、/memories/session/、/memories/repo/ に置いて手元のマシンに保存します。GitHub Copilot Memory はリポジトリスコープを、coding agent・code review・Copilot CLI が共通で読むホスト型のスコープに置き換えます。
  • 既定値はプランで決まります。Copilot Pro と Pro+ は Copilot Memory が既定でオン、Copilot Business と Enterprise はエンタープライズまたは組織のオーナーが有効化するまでオフです。2 つの組織からライセンスを受けている場合は、より制限の厳しい設定が優先されます。
  • メモリは失効しますが、指示は失効しません。メモリは Copilot が書き込み、生成元のコードと照合して検証され、使われ続けなければ 28 日で削除されます。失いたくないルール——テストコマンドやセキュリティ要件——は .github/copilot-instructions.md に書いてください。このページがテンプレートで締めくくられている理由でもあります。

I tried out all the memory features in GitHub Copilot (User / Session / Repository / Copilot Memory)

デモ動画:Yuzubon — ゆずぼん15:00

元の動画を開く

Instruction Files & /chronicle — Teaching Copilot Your Codebase

デモ動画:Casey Irvine17:37

元の動画を開く

The latest in managing and auditing GitHub Copilot agents

デモ動画:GitHub4:12

元の動画を開く

Managing and curating Copilot Memory (official docs, public preview)

公式ドキュメント:docs.github.com

元の動画を開く

Copilot Memory はパブリックプレビュー中で、設定への導線もまだ動いています。本ページの有効化手順、28 日で失効する仕様、リポジトリのメモリページは、docs.github.com の「Managing and curating Copilot Memory」ハウツーと VS Code の「Use memory with agents」リファレンスから引用しました。ローカルのメモリフォルダーのパスは録画そのものから取っているため Windows 固有のもので、macOS と Linux では同じ VS Code の global storage ディレクトリ以下に読み替えてください。

スクリーンショットは出典の録画を明記し、各ステップは該当の秒へ深リンクしています。本文の手順・比較表・テンプレートは本ページのオリジナルで、字幕の転載はありません。

全 12 ステップ:ディスク上のフォルダーからコミットする指示テンプレートまで

Copilot が覚えていること、その保存場所

  1. 1

    設定を触る前にメモリフォルダーを確認する

    VS Code のメモリツールは、手元のマシンにただの Markdown ファイルを書き込むだけで、GitHub には送信しません。Windows では %APPDATA%\Code\User\globalStorage\github.copilot-chat\memory-tool\memories\ の下にあり、スクリーンショットの coding-style.md もまさにこのディレクトリにあります。macOS は ~/Library/Application Support/Code/User/globalStorage/、Linux は ~/.config/Code/User/globalStorage/ で、その下の github.copilot-chat/memory-tool/memories は同じ構成です。ここにあるものはコミットされないのでチームの誰も読めず、ファイルを削除すればメモリも消えます。

    Windows File Explorer opened at the VS Code memory tool folder AppData Roaming Code User globalStorage github.copilot-chat memory-tool memories holding the coding-style.md memory file
    memory-tool フォルダーを開いたエクスプローラー:VS Code のローカルメモリツールを支える Markdown ファイル群です。動画の 3:26 を見る
  2. 2

    ユーザーメモリは最初に読み込まれるファイル

    チャットで好みを伝えます——「I prefer early returns and longer, descriptive variable names」——するとメモリツールがユーザーメモリのファイルを作り、応答でもその旨を報告します。スクリーンショットでは coding-style.md が globalStorage › github.copilot-chat › memory-tool › memories から開かれ、チャットパネルに「Reviewed memory file coding-style.md」と表示され、ファイルが作成されたことが確認できます。ユーザーメモリは毎回の会話に自動で注入される唯一のスコープで、VS Code のドキュメントでは上限が最初の 200 行とされています。200 行ではなく、役に立つ 10 行を書きましょう。

    VS Code editor showing coding-style.md beside Copilot Chat confirming the user memory file was created from a prompt about early returns and long descriptive variable names
    意図的に短く保ったユーザーメモリ。チャットが書き込んだファイルを確認しています。動画の 3:56 を見る
  3. 3

    セッションメモリは、説明し直さなくて済む計画書

    セッションメモリが本領を発揮するのはプランモードです。Plan を選んだ状態で変更を依頼すると、エージェントは実装プランを /memories/session/plan.md に保存し、その会話の中だけで参照できるようにします——VS Code のドキュメントは Session を「現在の会話のみ」と説明しています。Agent モードに戻したら、打ち直すのではなくこのプランを指せば済みます。セッションメモリは最も寿命が短いスコープでもあり、最後のアクセスから 14 日で破棄されます。来月も必要になる判断はここに置かないでください。

    Copilot Chat in VS Code set to Plan mode with a request to add an update function to a TODO app, the request that makes the agent write a plan into session memory
    Plan モードにした Copilot Chat に、TODO アプリへ update 関数を追加する依頼を入力している場面。エージェントがセッションメモリにプランを書くきっかけです。動画の 7:06 を見る

リポジトリメモリと GitHub のクラウド層

  1. 4

    リポジトリメモリは、オプトインするまでローカルに留まる

    「in this repository, remember that every new function needs a test」と伝えると、エージェントはそれを /memories/repo/ に書き込みます——依然としてディスク上にあり、チームには見えず、1 つの設定を変えるまで GitHub のサーバーにも上がりません。スクリーンショットはその依頼を入力している場面です。これが一般に「Copilot memory folder」と呼ばれるスコープです。フォルダーは実在しますが、リポジトリの中ではなく VS Code の global storage の中にあるため、プロジェクト内を検索しても見つかりません。

    Copilot Chat in VS Code receiving the prompt asking it to remember a repository rule about writing tests, a write that stays in the local repository memory scope
    リポジトリのルールを Copilot に覚えさせる依頼。この書き込みはローカルのリポジトリスコープに入ります。動画の 10:00 を見る
  2. 5

    クラウドのスイッチを入れると、移動するのは新しいメモリだけ

    Copilot Memory はこの仕組みのうち GitHub がホストする側で、VS Code では個別のオプトインが必要です。github.copilot.chat.copilotMemory.enabled を .vscode/settings.json に追加します。VS Code のドキュメントは copilotMemory をオプトイン項目として扱い、ローカルのメモリツールとは別物としています。これが true になると、以前は /memories/repo/ に入っていた書き込みが GitHub へ送られます。変わらない点が 2 つあります。既存のローカルリポジトリメモリは移行されず、ツールは作成しか行いません——ホストされたメモリを確認・削除するには GitHub を開く必要があります。

    VS Code with .vscode settings.json open and modified next to a Copilot Chat session, the setting that switches repository memories to GitHub Copilot Memory cloud storage
    リポジトリメモリの保存先をローカルフォルダーから GitHub に切り替える .vscode/settings.json の編集です。動画の 13:10 を見る
  3. 6

    メモリの確認と削除は設定ではなくリポジトリで行う

    公式ドキュメントが案内するのはこのページです:Repository → Settings → Code & automation → Copilot → Memory(Preview 表示)。メモリは新しい順に本文とタグ付きで並び、ゴミ箱アイコンで 1 件、チェックボックスでまとめて削除できます。削除は重要です。誤ったメモリは、メモリが無い状態より悪いからです。Copilot は各メモリを生成元の引用と照合して検証し、そのコードが動けば無視しますが、読み違いから生まれたメモリはこの検証をすり抜け続けます。メモリは 28 日で自動的に失効もします。

    GitHub repository settings showing the Copilot memory page in public preview with one stored testing memory tagged testing and vscode beside the trash icon that deletes it
    リポジトリ設定内にある GitHub の Copilot memory ページ。保存されたメモリ 1 件と、その横の削除ボタン。動画の 12:09 を見る

チームで有効にしてから指示を書く

  1. 7

    エンタープライズと組織のオーナーが先に有効化する必要がある

    誰が何をするかはプランで決まります。個人の Copilot Pro と Pro+ は Copilot Memory が既定でオンで、Settings → Copilot → Features からオフにできます。Copilot Business と Enterprise は逆で、オーナーが有効化するまでオフのままです——エンタープライズのオーナーは AI Controls → Copilot → Features から Let organizations decide/Enabled everywhere/Disabled everywhere を選び、組織のオーナーは Organization settings → Code, planning and automation → Copilot → Policies → Features → Copilot Memory → Enabled で有効化します。2 つの組織からライセンスが割り当てられている場合は、より制限の厳しい設定が適用されます。

    GitHub enterprise AI Controls page showing the Agents, Copilot and MCP pages in the sidebar where a Copilot Memory enablement policy is set for every organization
    エンタープライズの AI Controls。Copilot Memory の有効化ポリシーはこの一群のページにあります。動画の 1:06 を見る
  2. 8

    カスタム指示は .github フォルダーから始まる

    メモリは Copilot が書き、指示はあなたが書いてコミットします。役割を担うファイルは 2 つです。リポジトリ全体に効くルールは .github/copilot-instructions.md、一部のパスにだけ効くルールは .github/instructions/NAME.instructions.md で、後者は Copilot が触っているファイルと突き合わせられます。スクリーンショットは Microsoft 自身の VS Code リポジトリで、.github の中に copilot-instructions.md が instructions/、agents/、skills/、prompts/、hooks/ と並んでいます——何か月も公開で運用してきたリポジトリの形をそのまま真似してください。

    GitHub file listing of the .github folder in microsoft/vscode showing copilot-instructions.md next to the instructions, agents, skills, prompts and hooks folders used by GitHub Copilot
    microsoft/vscode の .github フォルダー。copilot-instructions.md が instructions ディレクトリの隣にあります。動画の 1:40 を見る
  3. 9

    パス限定のルールは applyTo で決まる

    .instructions.md ファイルは、いつ読み込まれるかを YAML フロントマターで決めます。name は UI に表示されるラベル、description はこのファイルがどのタスク向けかをエージェントに伝える文、applyTo はリポジトリルートからの相対 glob です——スクリーンショットには実際の VS Code 指示ファイルの applyTo: src/vs/workbench/contrib/chat/browser/aiCustomization/** が写っています。applyTo がエージェントの作成・編集するファイルに一致すると VS Code が自動で添付し、description がタスクに合えばオンデマンドで読み込むこともできます。両方のフィールドを省くと、手動で添付したときだけ読み込まれます。

    GitHub blob view of ai-customization.instructions.md in microsoft/vscode showing the description and applyTo front matter that scopes a path-specific instruction file to one source folder
    applyTo の glob によって 1 つのフォルダーにだけ紐づく、実際の指示ファイル。動画の 5:20 を見る

カスタム指示テンプレート

  1. 10

    個人用の指示もファイルです

    リポジトリのテンプレートの前に、自分の既定値をどこに置くべきかを押さえてください。こちらの方が優先されるからです。Copilot CLI とエージェントホストは ~/.copilot/copilot-instructions.md を読み、スクリーンショットには ## Output、## Working style、## AI disclosure の各セクションを持つ実例が写っています——どれだけ短いかに注目してください。github.com では Copilot Chat → プロフィール画像 → Personal instructions が相当し、GitHub は [format] のようなプレースホルダー付きのテンプレートも用意しています。優先順位は個人、リポジトリ、組織の順で、一致したものはすべて送信されるため、2 つが矛盾しないようにしてください。

    VS Code showing the personal copilot-instructions.md inside the dot copilot home folder, with profile defaults covering output style, working style and AI disclosure rules
    .copilot ホームフォルダー内の個人用 copilot-instructions.md。output・working style・disclosure の各セクション付き。動画の 4:10 を見る
  2. 11

    まず /init で初稿を生成し、あとで置き換える

    白紙のファイルから始める必要はありません。リポジトリに指示ファイルが無いとき、Copilot CLI は「No copilot instructions found. Run /init to generate a copilot-instructions.md file for this project」と表示します——スクリーンショットはそのメッセージです。/init を実行し、その結果を下のテンプレートに照らして編集します。コマンド一覧は正確に保ち、コードを読めば分かることは削り、シークレット・トークン・顧客データは絶対に貼らないでください。このファイルはコミットされ、チームの全員とすべてのエージェントが読みます。

    GitHub Copilot CLI terminal stating that no copilot instructions were found and prompting to run the init command that generates a copilot-instructions.md file for the project
    指示ファイルがまだ無いと Copilot CLI が伝え、/init を案内しているところ。動画の 10:00 を見る
  3. 12

    セッションが実際に読み込んだファイルを確認する

    監査できないテンプレートは当て推量です。Copilot CLI では /instructions がセッションの読み込んだ指示ファイルをすべて一覧表示します——スクリーンショットではコマンドの上に「Loading environment: 18 custom instructions, 3 extensions, 26 hooks, 27 skills, 4 MCP servers」の行があります——各ファイルは削除せずに現在のセッションだけオフにできます。VS Code では Chat: Open Customizations の奥にある Agent Customizations エディターが相当し、リポジトリ指示についてはチャット応答の上部にある参照リストを展開して .github/copilot-instructions.md が使われたか確認できます。

    GitHub Copilot CLI terminal showing the slash instructions command underneath a loading environment line that counts eighteen custom instructions before a session starts
    Copilot CLI の /instructions コマンド。セッションが読み込んだコンテキストを確認する最短の方法です。動画の 7:10 を見る

Copilot Memory・カスタム指示・リポジトリ指示の比較

「Copilot memory」と呼ばれるものが 3 つあります。エージェントが書くのは最初の 1 つだけで、残る 2 つはあなたがコミットして保守するファイルです。この比較は優劣を決めるものではなく、2 つの機能が併存する理由を示すものです。誰も書き残していない慣習にはメモリを、証拠を示せるルールには指示を使ってください。

項目Copilot Memory(ホスト型)カスタム指示(.github/copilot-instructions.md)パス指示(.github/instructions/*.instructions.md)
何かCopilot がリポジトリで作業する中で推論した事実。主題と、それを裏づける引用の組として保存されます。一度書けば、リポジトリ内のすべてのリクエストに適用されるルール。リポジトリ内の特定のパス、言語、フォルダーにだけ書くルール。
書く人Copilot が自動で。機能を有効にした利用者の作業をきっかけに書き込みます。あなたが手書きで。Markdown で書きます。あなたが手書きで。YAML フロントマター付きの Markdown です。
保存場所GitHub 上で、1 つのリポジトリに紐づきます。確認と削除は Repository → Settings → Copilot → Memory。作業ツリーにファイルはありません。リポジトリ内、プロジェクトのルートにある .github/copilot-instructions.md。リポジトリ内の .github/instructions/ 以下に、スコープごとに 1 ファイル。
読み込まれる条件自動。ただし引用が現在のブランチと照合され、検証を通った場合のみ。そのリポジトリのすべてのリクエストに。チャット・エージェント・code review のいずれでも。applyTo の glob が対象ファイルに一致したとき、またはエージェントが description を関連ありと判断したときだけ。
保持期間28 日間。検証され再利用されたメモリは書き直され、寿命が延びます。誰かがファイルを変更・削除するまで。コードと一緒にバージョン管理されます。誰かがファイルを変更・削除するまで。
閲覧できる人そのリポジトリで Copilot Memory を有効にしている全員。メモリがリポジトリの外に出ることはありません。リポジトリにアクセスできる全員、さらにそれを読むすべてのエージェントとレビュアー。リポジトリにアクセスできる全員。
編集方法リポジトリ設定で削除します。メモリツールは作成しかできず、確認も削除もできません。他のファイルと同じように Pull Request を出します。他のファイルと同じように Pull Request を出します。
向いている用途誰も文書化していない慣習、レビュアーが繰り返し指摘する修正の型、このコードベースの安全なパターン。スタックとバージョン、正確なビルド・テストコマンド、フォルダー構成、セキュリティとレビューのルール。モノレポのフレームワーク規約、テストファイルの慣習、特定フォルダーのスタイル、特定言語のイディオム。

Copilot が本当に必要とする 6 つを押さえるカスタム指示テンプレート

GitHub 自身の指針は、ファイルを短く具体的に保つことです。スタックは何か、どう実行するか、コードはどこにあるか、どの規約が必須か、何を避けるか。以下のブロックはコピーしてから削る前提で書いています——エージェントがリポジトリを読めば分かる行は削ってください。肥大化した指示ファイルは、本当に重要なルールを薄めてしまいます。リポジトリのルートに .github/copilot-instructions.md として保存します。

# .github/copilot-instructions.md

## Project and stack
- Next.js 15 app router, TypeScript strict, Node 22.
- Package manager: pnpm. Never run npm or yarn install.

## Commands
- Build: pnpm build
- Lint: pnpm lint
- Test everything: pnpm test
- Test one file: pnpm test -- path/to/file.test.ts

## Layout
- Routes: src/app/**
- UI components: src/components/**
- Data access: src/lib/db.ts and src/lib/repositories/**
- Tests live next to the file they cover: *.test.ts

## Conventions
- Named exports only; no default exports from src/lib.
- Handle errors at the boundary and return early instead of nesting.
- Import order: node builtins, external packages, then @/ aliases.

## Testing and review
- Every behaviour change ships with a test in the same pull request.
- Run the single-file test before requesting review.
- Commit messages follow Conventional Commits.

## Do not
- Do not edit files under src/generated/**.
- Do not add a dependency without calling it out in the pull request.
- Do not log secrets, tokens or full request bodies.
リポジトリ全体用のテンプレート。貼り付けてすぐ使えます。各見出しは下で解説する 1 ブロックに対応します。
  • 1プロジェクトとスタック——フレームワーク、言語モード、パッケージマネージャーを 1 行で明記します。npm・pnpm・yarn の間でエージェントが推測し、頼んでいない lockfile を生成するのを止めるブロックです。
  • 2コマンド——ビルド、lint、テスト、単一ファイルのテストの正確なコマンド。記憶ではなく CI の設定からコピーしてください。テストコマンドの誤りは、最も高くつく一行です。
  • 3レイアウト——ルート、コンポーネント、データアクセス、テストがどこにあるか。アーキテクチャを文章で説明せず、ディレクトリを指してください。パスは検証できますが、段落は検証できません。
  • 4規約——命名、エラー処理、import の順序、チームが実際に守っているフォーマット規則。各ルールは二値で判定できる形にします。コードが従っているか、いないかです。
  • 5テストとレビュー——テストが必須の変更は何か、レビューで何を確認するか、コミットやブランチの規約。本来メモリに頼るはずのものを保証に変えるブロックです。
  • 6やってはいけないこと——アンチパターン。生成ファイル、無断の依存追加、無関係なリファクタリング、ログへのシークレット出力。悪い Pull Request をまとめて防ぐには、禁止ルールが最も安上がりです。

2 つ目のファイルで範囲を絞る

フォルダー固有のルールを .github/instructions/ 以下の別ファイルに移せば、リポジトリのファイルを短く保てます。効くのはフロントマターです。applyTo が一致するパスへ自動で添付し、description がエージェントに適切なタスクで読み込ませます。VS Code は対応フィールドとして name、description、applyTo を挙げています。

---
name: 'React components'
description: 'Use when creating or updating components under src/components.'
applyTo: 'src/components/**/*.tsx'
---

# React components
- One component per file, named after the file.
- Props are typed with an explicit interface; no React.FC.
- Colocate styles with the component; no global class names.
パス限定の指示ファイル:フロントマター 3 項目と、1 つのフォルダーにだけ効くルール。

自分の好みはリポジトリのファイルに書かない

プロジェクトではなく自分に関するもの——回答の長さ、トーン、diff の説明の好み——は個人用の指示に置きます。Copilot CLI とエージェントホストは ~/.copilot/copilot-instructions.md を読み、github.com では Copilot Chat を開いてプロフィール画像をクリックし Personal instructions を選びます。GitHub は [format] のようなプレースホルダー付きのテンプレートも用意しています。個人用の指示はリポジトリと組織の指示より優先されるため、そこで設定した好みをリポジトリごとに繰り返す必要はありません。

すべてのブロックに共通する最後の 2 つのルールです。コミットする指示ファイルにシークレット・トークン・顧客データを入れないこと。リポジトリの指示とメモリに食い違いを作らないこと——衝突した場合、Copilot は両方のコンテキストにできる範囲で従おうとするため、結果は予測できません。メモリが書き込んだルールと矛盾し続けるなら、ルールを緩めるのではなくメモリを削除してください。

Copilot Memory のよくある質問

さらに探す