make-instructions について
Copilot にコードベース固有の背景を提供する、範囲を限定した VS Code の `.instructions.md` ファイルを作成するスキルです。対象範囲の調査、既存ルールとの重複回避、YAML フロントマター付きファイルの作成、評価の検証を案内します。
主な機能
- 01対象範囲と既存指示の調査
- 02ファイルの配置場所と名前の選定
- 03YAML フロントマター付き指示の作成
- 04対応する評価の作成と検証
- 05ルールの重複と設定の確認
活用シーン
- 01特定のコード領域の規約を記述
- 02ファイルパターン別の Copilot 指示を追加
- 03指示の対象範囲と適用方法を確認
- 04新しい指示の評価を準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dotnet/ efcore --skill make-instructionsインストール後、Claude Code で/make-instructionsを入力して読み込まれたか確認します。
詳細
ファイルベースの指示を作成する
このスキルは、コードベースの特定の部分について Copilot に背景知識を提供する、VS Code のファイルベースの指示(.instructions.md ファイル)のひな形を作成するのに役立ちます。これらのファイルは、グロブパターンまたはセマンティックマッチングに基づいて自動的に適用され、該当するファイルを扱うときに Copilot に対象分野固有のコンテキストを提供します。
使用しない場合
- プロジェクト全体に適用する指示を設定する場合は、代わりに
.github/copilot-instructions.mdまたはAGENTS.mdを使用してください - 構造化された手順を持つ再利用可能なエージェントのワークフローを作成する場合は、代わりに Agent Skills を使用してください
- 必要に応じて呼び出せる指示を追加する場合は、代わりに Agent Skills を使用してください
ワークフロー
ステップ 1:対象を調査する
指示が対象とする領域について理解を深めます。以下を特定してください。
- 指示が適用されるファイルまたはファイルパターン
- その領域における重要な規約、パターン、またはアーキテクチャ上のルール
- Copilot が避けるべきよくある落とし穴
- コードだけでは把握できない、明らかでない対象分野の知識
同じパスに適用されるリポジトリ全体の指示ファイルを読み、明示的な除外リストを作成してください。対象領域の具体例として関連がある場合でも、新しいファイルでそれらのルールを繰り返さないでください。より狭い範囲に合わせて具体化された、または実質的に異なる指針のみを含めてください。
対象範囲が不明確な場合や、既存の指示と重複する場合は、ユーザーに確認してください。
ステップ 2:ファイルの配置場所を選ぶ
既定では、指示ファイルを .github/instructions/ に配置します。内容がわかるファイル名を選んでください。
.github/instructions/<topic>.instructions.md
例:csharp-style.instructions.md、query-pipeline.instructions.md、test-conventions.instructions.md
ステップ 3:YAML フロントマターを付けてファイルを生成する
必須の YAML フロントマターヘッダーを付けてファイルを作成します。
---
name: '<Display Name>' # Optional. Display name in the UI. Defaults to filename.
description: '<Short description>' # Optional. Shown on hover. Also used for semantic matching.
applyTo: '<glob pattern>' # Optional. Glob pattern relative to workspace root. Omit to require manual attachment or rely on semantic matching only.
---
applyTo の一般的なパターン:
**/*.cs— すべての C# ファイルtest/**— 特定のフォルダー内のファイル
ステップ 4:本文を作成する
簡潔で、実行に移しやすい Markdown の内容を作成します。以下の原則に従ってください。
- 簡潔にする — 指示はコンテキストウィンドウを共有するため、エージェントがすでに知っていることは含めないでください
- 具体的にする — 曖昧な指針ではなく、具体的なルールを使ってください
- 例を含める — 推奨するパターンと避けるべきパターンを示す短いコードスニペットが特に効果的です
- 理由を説明する — 明らかでない理由でルールが設けられている場合は、エージェントが例外的な状況でも正しく適用できるよう、その理由を記載してください
- リンターで強制されるルールは省く — フォーマッターやリンターで検出できる内容を繰り返さないでください
- 追加のコンテキストについては、特定のファイルや URL を参照する Markdown リンクを使用してください
推奨セクション(必要に応じて調整してください):
- <タイトル> — 対象領域を説明する 1 行の見出し
- コンテキスト段落 — この領域の概要と、これらのルールが重要な理由の簡単な説明
- ガイドライン/規約 — 具体的なルールの箇条書き
- 例 — 避けるべきパターンと推奨するパターンを示す短いコードブロック(任意)
- 主要ファイル — 重要なファイルを把握するための表(任意)
- よくある落とし穴 — 避けるべき注意点(任意)
ステップ 5:ハーネス評価を作成して検証する
eng/harness-evaluation/instructions/<id>/eval.yaml を作成します。ここで <id> は .github/instructions/ からの相対パスから拡張子を除き、ネストされたパス区切り文字を -- に置き換えたものです。
eng/harness-evaluation/README.md の作成および検証ルールに従ってください。その指示に固有のガイダンスを評価し、指示を省略した対照条件をその指示が有意に上回ることを確認してください。
最初の作成時は、動作を比較する前に、要求された指示と評価を作成し、リントしてください。
ファイルの作成後、次の点を確認してください。
- ファイルが
.github/instructions/(または設定された指示フォルダー)にある - ファイル名が
.instructions.mdで終わり、小文字、数字、ハイフンのみを含む - YAML フロントマターが有効である
-
applyToのグロブが意図したファイルに一致する - 内容が簡潔である(500 行または 5000 トークン未満を目安にする)。長い指示は効果を薄めます
- シークレット、トークン、内部 URL が含まれていない
-
.github/copilot-instructions.mdまたは.agents/skills/内にすでにある内容と重複していない - 対応する評価によって、指示を省略した対照条件では安定して得られない動作が示される
よくある落とし穴
| 落とし穴 | 解決策 |
|---|---|
applyTo の範囲が広すぎる | 具体的なグロブを使用します。** はすべてのファイルに適用され、コンテキストを無駄にします |
applyTo がない | これがないと指示は自動適用されません。手動で添付するか、description によるセマンティックマッチングが必要です |
| ガイダンスが曖昧 | 「適切なテストを書く」ではなく、「[ConditionalFact] メソッドを使って、肯定的なテストケースと否定的なテストケースの両方を追加する」のように具体化します |