1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Copilot】カスタムインストラクションを活用しよう

Last updated at Posted at 2025-01-06

はじめに

GitHub Copilotにカスタムインストラクションという新機能が追加され、プロジェクトのルールや方針を事前に設定することで、それらが継続的にCopilotの提案に反映されるようになりました。これまでは都度指示が必要だった内容も、リポジトリ固有のコーディング規約やアーキテクチャ設計方針、さらには業務ドメイン特有の複雑なルールを自動的に考慮したコード提案を継続的に受けられるようになります。
このページでは、カスタムインストラクションの機能とvscodeでの利用方法についてまとめます。

カスタムインストラクションとは?

カスタムインストラクションとは、Copilotに対して開発者が事前に設定できる指示や制約のことです。コードの生成、テスト、レビューなどの場面で、Copilotの動作を開発者の意図に沿ったものにカスタマイズできます。

例えば、以下のようなコードのレビューをCopilotにしてもらうとします。

func calcDiff(start, end time.Time) int32 {
    diff := end.Sub(start)
    return int32(diff.Seconds())
}

何も指定していない状態でレビューを受けると
スクリーンショット 2025-01-06 23.29.26.png

のようにコメントしてくれます。

そこで、カスタムインストラクションで時間の差分は分単位で扱うものとする。指定すると、
スクリーンショット 2025-01-06 23.32.38.png
このようにコメントしてくれるようになります。分単位で扱う前提で指摘してました。

指定方法

vscodeでは、setting.jsonに

  "github.copilot.chat.reviewSelection.instructions": [
    {
      "file": ".copilot-instructions.md"
    },
    {
      "text": "時間の差分は分単位で扱うものとする。"
    }
  ],

と指定すると、対象のファイルと、直書きしたtextを読み取りその内容を反映したアウトプットをしてくれます。簡単ですね。

現在vscodeでは以下の利用シーンでそれぞれ別のインストラクションを指定することができるようです。

  • レビューとコメント
    • github.copilot.chat.codeGeneration.instructions
  • コード生成時
    • github.copilot.chat.codeGeneration.instructions
  • テスト生成時
    • github.copilot.chat.testGeneration.instructions
  • コミットメッセージ生成時
    • github.copilot.chat.commitMessageGeneration.instructions

まとめ

カスタムインストラクションは、AIが従来苦手としてきたプロジェクト固有の文脈に基づく判断を可能にする画期的な機能です。チーム内で策定した設計方針や業務ルールをinstructionsファイルとして管理し、Copilotと共有することで、より正確で実用的なコード提案を得られるようになります。積極的に活用していきましょう!!

と書きつつも、人間がコードを書く必要性が薄れていき、どこか寂しい気持ちにもなりますね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?