GitHub Copilotを自分好みにカスタマイズする copilot-instructions.md
製造ビジネステクノロジー部の小林です。
GitHub Copilot を使っていて、こんな経験はありませんか?
- 「プロジェクトでは snake_case を使っているのに、Copilot が camelCase で提案してくる」
- 「チームのコーディング規約を毎回 Copilot に伝えるのが面倒」
- 「人によって Copilot への指示がバラバラで、生成されるコードに一貫性がない」
こうした悩みを解決してくれるのが、.github/copilot-instructions.md です。
この記事では、copilot-instructions.md の概要から具体的な書き方をご紹介します。
copilot-instructions.md とは
リポジトリのルートに .github/copilot-instructions.md というファイルを配置すると、GitHub Copilot Chat がそのファイルの内容をコンテキストとして自動的に読み込んでくれる仕組みです。
プロジェクト固有のルールやコーディング規約を一度書いておけば、チームメンバー全員の Copilot が同じ前提知識を持って回答してくれるようになります。
your-repo/
├── .github/
│ └── copilot-instructions.md ← このファイル
├── src/
├── package.json
└── ...
何が嬉しいのか?
チーム全体で一貫したコード生成ができる
個人ごとにプロンプトを工夫する必要がなくなります。リポジトリに push しておくだけで、全員の Copilot Chat に同じ指示が適用されます。
プロジェクトの暗黙知を明文化できる
「うちのプロジェクトではこうする」というルールは、意外とドキュメント化されていないものです。この仕組みを活用すれば、暗黙知の明文化にもつながります。
バージョン管理できる
Git で管理されるため、ルールの変更履歴を追跡でき、プルリクエストでレビューすることも可能です。
書き方の例
## プロジェクト概要
このリポジトリは社内向けの勤怠管理システムです。
## 技術スタック
- Backend: TypeScript + Serverless Express
- Frontend: TypeScript + Next.js
- DB: Aurora Serverless v2(PostgreSQL 16)
- ORM: Prisma
- Node.js のバージョンは 22 を使用しています
## コーディング規約
- 変数名・関数名は camelCase を使用してください
- コンポーネントは PascalCase で命名してください
- インデントはスペース 2 つです
- セミコロンは省略しないでください
- マジックナンバーは定数として定義してください
- コメントは日本語で書いてください
## アーキテクチャ
- バックエンドはレイヤードアーキテクチャを採用しています
- ディレクトリ構成:
- `router/` - ルーティング定義
- `handler/` - HTTP リクエストの受け取りとレスポンスの返却
- `service/` - ビジネスロジック
- `database/` - DB アクセスとクエリの実行
## やってはいけないこと
- `any` 型の使用は避けてください
- グローバル変数は使わないでください
- `init()` 関数は使わないでください
使ってみる
では copilot-instructions.md が実際に機能するか確認してみます。
ファイルを配置する
.github/copilot-instructions.md をリポジトリに push します。
Copilot Chat で質問する
設定が反映されているか、以下のような質問で確認してみましょう。
コーディング規約の確認
以下のように質問してみます。
「lambda/index.ts に Todo を削除する DELETE メソッドの処理を追加してください」
結果は以下のとおりです。


コーディング規約が守られていることが確認できます。
- camelCase が守られている(pathParameters, id)
- セミコロンあり
- any 型なし
ただし、if 文がネストされている点は少し気になります。こうしたスタイルの指針も copilot-instructions.md に追加しておくとよいかもしれません。
アーキテクチャとやってはいけないことの確認
以下のように質問してみます。
「Lambda 関数の初期化処理をまとめてください」
結果は以下のとおりです。copilot-instructions.md がきちんと読み込まれていることが分かります。

アーキテクチャの指定どおりにソースが生成されています。

「やってはいけないこと」に記載したルールも守られていることが確認できます。

- init() 関数を使わず、モジュールトップレベルで初期化している(
const docClient = ...のスタイル) - コメントが日本語で書かれている
- セミコロンあり
- any 型なし
まとめ
.github/copilot-instructions.md は、たった 1 ファイルを追加するだけで Copilot の出力品質をチーム全体で底上げできる施策です。導入のハードルも低いので、ぜひ試してみてください。
参考リンク








