GitHub Copilotにおける「スキル」とは?
GitHub Copilotにおける「スキル」とは、プロジェクト固有の規約、特定のライブラリの使い方、あるいは特定の役割(コードレビュアー、セキュリティ専門家など)をAIに学習・固定させることを指します。
これを実現する最も強力な方法が、リポジトリのルートに配置する .github/copilot-instructions.md ファイルです。ここに指示を記述することで、Copilot Chatの回答精度と、コード補完の質を劇的に向上させることができます。
[Image: GitHub Copilotがカスタム命令(.github/copilot-instructions.md)を読み込み、コードに反映させるまでのワークフロー図解]
【完全網羅】GitHub Copilotスキルのユースケース100選
開発のライフサイクルに合わせて活用できる100のスキル(命令セット)を、10のカテゴリーに分けて紹介します。
1. フロントエンド・UI開発(1-10)
- アクセシビリティ・ポリス: WCAG 2.1準拠のARIA属性を常に提案する。
- Tailwind職人: インラインCSSを禁止し、Tailwindのユーティリティクラスのみを使用。
- React厳格モード: 状態管理に必ず
useContextやZustandを使用する設計。 - デザインシステム変換: Figmaから抽出したトークン(JSON)をCSS変数に自動変換。
- Next.js App Router最適化:
'use client'の最小化とサーバーコンポーネントの優先。 - i18nオートメーション: ハードコードされた文字列を検出し、多言語対応ファイルへ外出し。
- Storybook生成: コンポーネント作成時に
.stories.tsxを自動構成。 - SVGアイコン最適化: 埋め込みSVGの軽量化とReactコンポーネント化。
- レスポンシブ検証: 常にモバイルファーストのメディアクエリを提案。
- アニメーション設計: Framer Motionを使用した一貫性のあるUI演出。
2. バックエンド & API開発(11-20)
- RESTful APIデザイナー: リソース志向の命名規則と適切なHTTPステータスコードを強制。
- gRPC/Proto生成: サービス定義からのボイラープレートコード生成。
- データベースマイグレーション: PrismaやTypeORMのスキーマ変更とマイグレーションファイルの同期。
- クエリ最適化(N+1防止): ORM使用時に、関連データのEager Loadingを常に提案。
- 認証・認可ガード: 全てのエンドポイントにJWT検証と権限チェックを自動挿入。
- バリデーションマスタ: ZodやJoiを用いた入力データの型安全な検証。
- エラーハンドリング統一: プロジェクト共通のエラークラスによる例外処理。
- APIドキュメント同期: コード変更時にSwagger/OpenAPI定義を自動更新。
- キャッシング戦略: Redisを用いた効率的なデータキャッシュと無効化ロジック。
- Webhookハンドラー: 外部SaaS(Stripe等)からのシグネチャ検証付き受け口作成。
3. テスト & 品質保証(21-30)
- Jest/Vitest生成: 関数のシグネチャから正常系・異常系のテストケースを作成。
- Playwright/Cypress E2E: ユーザー操作フローのシナリオ自動生成。
- 境界値テスト抽出: 入力値の最大・最小・異常値に特化したテスト生成。
- カバレッジ向上アドバイザー: テスト不足のコード行を特定し、補完テストを作成。
- モックデータ生成: テスト用の巨大なダミーJSONデータを即座に生成。
- TDDコーチ: 実装コードの前に、まずパスしないテストコードを書くよう誘導。
- リファクタリング検知: 循環複雑度(Cyclomatic Complexity)が高い箇所の指摘。
- 回帰テストチェッカー: 既存機能への影響を考慮した修正案の提示。
- スナップショット管理: UI変更時の差分確認用スナップショットの更新。
- 負荷テストスクリプト: k6などを用いた負荷試験用コードの生成。
4. DevOps & クラウドインフラ(31-40)
- Dockerfile最適化: マルチステージビルドによるイメージ軽量化とセキュリティ設定。
- Terraform職人: AWS/Azureのリソース定義を、ベストプラクティスに従い作成。
- GitHub Actions YAML生成: CI/CDパイプラインの自動化(ビルド・テスト・デプロイ)。
- Kubernetesマニフェスト: Deployment, Service, Ingressの構造化された記述。
- CloudFormation/CDK生成: プログラマブルなインフラ定義の作成。
- 監視メトリクス埋め込み: DatadogやPrometheus用のカスタムメトリクス送信コード。
- サーバーレス設計: AWS LambdaやGoogle Cloud Functionsのイベント駆動設計。
- 秘密情報スキャナー: コード内にAPIキーなどの機密情報が含まれていないか監視。
- ネットワークポリシー設計: 最小権限に基づいたセキュリティグループ/VPC設定。
- コスト最適化エンジニア: インフラ費用の無駄を省くためのリソース選定提案。
[Image: カテゴリー別ユースケースの全体俯瞰マインドマップ]
5. セキュリティ & コンプライアンス(41-50)
- OWASP Top 10ガード: インジェクションやXSSなどの脆弱性をリアルタイム指摘。
- 暗号化標準化: 古いハッシュアルゴリズムを避け、常に最新の暗号化方式を提案。
- CORS設定アドバイザー: 不適切なワイルドカード設定などを警告。
- 依存関係脆弱性スキャン: 脆弱性のあるライブラリの使用を検知し、アップデートを促す。
- 入力クレンジング: ユーザー入力をサニタイズするロジックの徹底。
- セキュアコーディング規約: 組織特有のセキュリティ基準に基づいたコーディング。
- プライバシー保護: PII(個人情報)の不必要なログ出力を防止。
- OAuth/OpenID Connect実装: 複雑な認可フローの正しい実装手順。
- CSRF対策自動化: 全てのステートフルなリクエストへのトークン検証挿入。
- ライセンスチェッカー: プロジェクトで使用不可能なライセンスのライブラリ混入を防止。
6. データサイエンス & AI(51-60)
- Pandasデータクレンジング: 欠損値処理やデータ型変換の効率的記述。
- PyTorch/TensorFlowボイラープレート: モデル定義から訓練ループの基本構成。
- SQLクエリチューニング: 実行計画を考慮した高速なSQLへの書き換え。
- 特徴量エンジニアリング: 生データから分析に有効な特徴を抽出するコード。
- Jupyter Notebook構成: 分析ストーリーに基づいたセル構成と可視化。
- Matplotlib/Seaborn可視化: 読みやすいグラフ、ヒートマップの生成。
- Scikit-learnパイプライン: 前処理から学習までを一貫して管理するコード。
- 大容量データストリーミング: メモリを圧迫しないチャンク処理の実装。
- 実験ログ管理: MLflowやWeights & Biasesへの記録用コード。
- ベクトルデータベース連携: PineconeやMilvusへの埋め込みベクトル保存。
7. ドキュメント & マネジメント(61-70)
- README生成: 構成を読み取り、プロジェクトの概要・使い方を自動記述。
- JSDoc/TSDoc整備: 関数やクラスに対して、型情報に基づいた説明文を補完。
- アーキテクチャ図(Mermaid): Mermaid.js形式でシステム構成図を生成。
- リリースノート下書き: 前回のタグからのコミットログを要約。
- Pull Requestテンプレート埋め込み: 変更点、修正理由、テスト方法の自動抽出。
- コードレビュー・エージェント: 承認前にコードの不備をセルフチェック。
- API仕様書(Swagger)出力: コード内のアノテーションからYAMLを生成。
- トラブルシューティングガイド: よくあるエラーとその解決策のドキュメント化。
- オンボーディング資料: 新メンバーが環境構築するための手順書作成。
- コミットメッセージ規約: Conventional Commits形式でのメッセージ生成。
8. モバイルアプリ開発(71-80)
- SwiftUIレイアウト: 宣言的UIによる直感的な画面設計。
- Flutter Widget構成: リッチなUIを実現するためのWidgetツリー設計。
- Android Jetpack Compose: 状態管理を考慮したComposable関数の作成。
- オフライン同期: SQLiteやRealmを用いたローカルデータ保存と同期。
- プッシュ通知ハンドリング: Firebase Cloud Messagingなどの受信処理。
- ディープリンク設計: アプリ内の特定画面への遷移パス実装。
- バッテリー消費最適化: バックグラウンド処理の効率化。
- 権限リクエスト管理: カメラ、位置情報等のセキュアな許可取得フロー。
- ダークモード対応: カラーセットの自動切り替えとプレビュー作成。
- マルチプラットフォーム共有: Kotlin Multiplatformによるロジック共通化。
9. レガシー・リファクタリング(81-90)
- Java to Kotlin変換: 古いJavaコードをモダンなKotlin構文へ置換。
- jQuery脱却: 古いjQueryコードをVanilla JSやReactへ書き換え。
- モノリス解体: 巨大なクラスを単一責任の原則に基づいて分割。
- デッドコード検出: 使用されていない関数や変数の特定と削除提案。
- デザインパターン適用: FactoryやStrategyパターンによる抽象化。
- 型付け不足解消: JavaScriptプロジェクトへのTypeScript導入支援。
- 同期→非同期変換: ブロッキングな処理を
async/awaitへ変換。 - グローバル変数撲滅: 依存性の注入(DI)によるモジュール結合。
- コメントアウトコード清掃: 不要なコメントの整理と最新仕様への更新。
- コードベース統合: 重複している似たような関数の共通化。
10. 特殊ドメイン・新技術(91-100)
- Web3/Smart Contract: Solidityを用いたセキュアな契約実装。
- Unity C# スクリプティング: ゲームオブジェクトの挙動と物理演算。
- 組み込みC/C++: メモリ制限を考慮した効率的なドライバ記述。
- GraphQLスキーマ設計: 効率的なデータ取得のためのクエリ設計。
- WebAssembly連携: Rust/C++コードのWebフロントエンド呼び出し。
- AIエージェント設計: LangChainなどを用いた自律型AIのロジック構築。
- ブラウザ拡張機能作成: Chrome/Firefox向けのManifest V3対応開発。
- CLIツール作成: GoやNode.jsを用いた高機能なコマンドラインツール。
- エッジコンピューティング: Cloudflare Workersなどでの軽量ロジック。
- アクセシビリティ自動修正: フォーカス順序やコントラスト比の自動調整。
スキルの実装例:カスタム命令のテンプレート
実際に「スキル」を作成するには、リポジトリに .github/copilot-instructions.md を作成し、以下のように記述します。
# Go言語・パフォーマンス最適化エンジニアとしてのスキル
あなたは、Go言語のシニアエンジニアです。以下の制約に従ってください。
- **メモリ管理**: heapへの割り当てを最小限にし、stackを優先するコードを書いてください。
- **並行処理**: goroutineを使用する際は、必ず `context.Context` によるキャンセル処理を含めてください。
- **エラー処理**: `fmt.Errorf` ではなく、標準の `errors.New` または構造化されたカスタムエラーを使用してください。
- **テスト**: 常にテーブル駆動テスト(Table-Driven Tests)の形式でテストを生成してください。

