見出し画像

[AIDD Lv.1]カスタムインストラクション活用による開発一貫性アップ術

チームの“お作法”、メンバー全員に浸透していますか?
GitHub Copilot なら、カスタムインストラクションを置くだけでコード生成が規約準拠に。
秘密は Copilotカスタムインストラクション――その仕組みと作り方を解説します。


リポジトリ/エリア別の「お作法」を教えるファイル(カスタムインストラクション)

.github/copilot-instructions.md – リポジトリ全体のカスタムインストラクション

用途

リポジトリ全体に共通する コーディング規約や開発ガイドライン を記述する Markdown ファイルです。ファイルに書かれた内容は、VS Code・JetBrains・Visual Studio・GitHub Web など Copilot を利用するすべての環境で 追加インストラクション として自動付与されます。たとえば「React フックではなく Redux を採用する」「ユニットテストを必須にする」など、規約を 1 行ずつ並べておくことで、Copilot の提案やチャット回答が常にそれらを考慮したものになります。

ファイル構造

  1. YAML フロントマター

  • なし

  1. 本文(追加プロンプト)

ファイル内の改行や空行は無視されるため、可読性のために空行で区切っても問題ありません。
記述が長すぎると、すべてのリクエストでトークンを圧迫するため、プロジェクト横断で本当に共有したい指示に絞ると効率的です。

以下の4点を簡潔に表現しましょう。

  1. プロジェクト概要の明示

    • 目的や目標、関連する背景情報を簡潔にまとめる。

  2. リポジトリ構造の提示

    • 主要なディレクトリやファイルを示し、フォルダー構成を把握できるようにする。

  3. コーディング標準の指定

    • 名前付け規則、書式設定ルール、ベストプラクティスなど、守るべきガイドラインを明記する。

  4. 使用ツール/ライブラリ情報の記載

    • プロジェクトで使用するツールやライブラリ、フレームワークと、そのバージョンや設定を含める。

サンプル

# プロジェクト概要

このプロジェクトは、ユーザーがタスクやToDoリストを管理できるWebアプリケーションです。ReactとNode.jsで構築されており、データストレージにはMongoDBを使用しています。

## フォルダ構成

* `/src`: フロントエンドのソースコードが含まれています。
* `/server`: Node.jsバックエンドのソースコードが含まれています。
* `/docs`: API仕様書やユーザーガイドなど、プロジェクトのドキュメントが含まれています。

## ライブラリとフレームワーク

* フロントエンドにReactとTailwind CSSを使用。
* バックエンドにNode.jsとExpressを使用。
* データストレージにMongoDBを使用。

## コーディング規約

* 各文の末尾にセミコロンを付けること。
* 文字列にはシングルクォートを使用すること。
* Reactでは関数ベースのコンポーネントを使用すること。
* コールバックにはアロー関数を使用すること。

## UIガイドライン

* ライトモードとダークモードを切り替えるトグルを用意する。
* アプリケーションはモダンでクリーンなデザインにする。

作成方法

  1. チャットパネル上の チャットの構成… から 指示 を選択

  2. 指示の生成… を選択
    各種設定ファイルを読み取って自動で .github/copilot-instructions.md を作成してくれます

配置と共有

このファイルをリポジトリに置くだけで、Copilot は上記ルールを常に前提に提案を生成します(VS Code 1.102 以降、github.copilot.chat.codeGeneration.useInstructionFiles がデフォルトで有効)。


*.instructions.md – 複数配置できるスコープ限定カスタムインストラクション

用途

言語・ディレクトリ・用途ごとに 指示を分割 したい場合に使用する Markdown ファイルです。.github/instructions/ 配下に置き、ファイル名を frontend.instructions.mddatabase.instructions.md のように命名します。Copilot は同ディレクトリ内のすべての .instructions.md を読み込み、フロントマターに記述した条件に合致したときだけ自動で指示を付与します。

ファイル構造

  1. YAML フロントマター

  • applyTo – 適用対象をグロブパターンで指定(例: "/.ts,**/.tsx"

  • description – 指示ファイルの説明(UI 上のツールチップに表示)

applyTo が特に重要です。用途を絞って適切に指示を与えることで生成の精度が良くなります。

  1. プロンプト本文

ファイル内の改行や空行は無視されるため、可読性のために空行で区切っても問題ありません。
.github/copilot-instructions.md を肥大化させないために用途別の指示は *.instructions.md に書くようにしましょう。

サンプル

---
applyTo: "app/models/**/*.rb"
description: Rails モデルのコーディング規約
---
- 各モデルファイルの先頭に `# frozen_string_literal: true` を追加してください。
- バリデーションはモデル内に集約し、重複を避けてください。

このファイルを .github/instructions/rails-model.instructions.md として配置すると、app/models/ 配下の Ruby ファイルを編集・質問するときだけ、上記 2 行の指示が自動で付与されます。他のファイル種別や場所では無視されるため、指示の 粒度を柔軟 に調整できます。

作成方法

  1. チャットパネル上の チャットの構成… から 指示 を選択

  2. 新しい命令ファイル… を選択
    既存の命令ファイルを選択すると修正できます

  3. 作成場所として .github/instructionsユーザーデータフォルダー を選択

  4. ファイル名を入力


カスタムインストラクション を活用すれば、リポジトリ全体でもフォルダ単位でも「守ってほしいルール」を自動でプロンプトに注入できます。結果、コードレビューで指摘していたスタイル差分やテスト漏れは激減し、開発は本質的な議論に集中できます。まだ導入していないなら、まずは .github/copilot-instructions.md を 1 行から作成してみましょう。
カスタムインストラクションの活用は AIDD Level.2 の必須要件です! カスタムインストラクションを使いこなしてAI駆動開発を一歩前に進めましょう。


知識は武器とかけまして、レゴブロックと解く、その心は?
知識のひとつひとつは小さなレゴブロック
でも、組み合わせれば世界を変えるアイディアをカタチにする武器になる!

また Knowledge Oasis でお会いしましょう。
案内人は koふみ でした。


次のステップ

Copilotの一時実行環境をセットアップしておくことで高速化を実現!

いいなと思ったら応援しよう!