suggest-awesome-github-copilot-instructions について
リポジトリ内のCopilot指示ファイルをGitHubのawesome-copilotと比較し、不足分や更新を提案するスキルです。提案を提示して確認を待ち、承認後にのみファイルを追加または更新します。
主な機能
- 01ローカルのCopilot指示ファイルを検索
- 02リモートの指示を取得して比較
- 03ローカルの古い版を検出
- 04リポジトリの状況に沿った候補選定
- 05変更前に承認を待機
活用シーン
- 01プロジェクトの技術構成に不足する指示の発見
- 02ローカル指示の更新確認
- 03ファイル追加前の指示範囲の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill suggest-awesome-github-copilot-instructionsインストール後、Claude Code で/suggest-awesome-github-copilot-instructionsを入力して読み込まれたか確認します。
詳細
Awesome GitHub Copilot Instructions の提案
現在のリポジトリのコンテキストを分析し、このリポジトリにまだ存在しない、GitHub awesome-copilot リポジトリから関連する copilot-instruction ファイルを提案します。
プロセス
- 利用可能な instructions の取得: awesome-copilot README.instructions.mdから instruction のリストと説明を抽出します。
#fetchツールを使用する必要があります。 - ローカル instructions のスキャン:
.github/instructions/フォルダ内の既存の instruction ファイルを検出します - 説明の抽出: ローカルの instruction ファイルの front matter を読み取り、説明と
applyToパターンを取得します - リモートバージョンの取得: 各ローカル instruction について、raw GitHub URL(例:
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>)を使用して awesome-copilot リポジトリから対応するバージョンを取得します - バージョンの比較: ローカル instruction の内容とリモートバージョンを比較して、以下を特定します:
- 最新の instruction(完全一致)
- 古くなった instruction(内容が異なる)
- 古くなった instruction の主な差分(説明、applyTo パターン、内容)
- コンテキストの分析: チャット履歴、リポジトリのファイル、現在のプロジェクトのニーズを確認します
- 既存のものとの比較: このリポジトリですでに利用可能な instruction と照合します
- 関連性のマッチング: 利用可能な instruction を、特定されたパターンと要件に照らして比較します
- オプションの提示: 関連する instruction を、説明、根拠、利用可否のステータス(古くなった instruction を含む)とともに表示します
- 検証: 提案された instruction が、既存の instruction ではカバーされていない付加価値をもたらすことを確認します
- 出力: 提案、説明、および awesome-copilot の instruction と類似するローカル instruction の両方へのリンクを含む構造化された表を提供します 特定の instruction のインストールまたは更新を進めるためのユーザーのリクエストを 待機 します。指示がない限り、インストールまたは更新を行わないでください。
- アセットのダウンロード/更新: 要求された instruction について、自動的に以下を行います:
- 新しい instruction を
.github/instructions/フォルダにダウンロードします - 古くなった instruction を awesome-copilot の最新バージョンに置き換えて更新します
- ファイルの内容は調整しないでください
- アセットのダウンロードには
#fetchツールを使用しますが、すべての内容が取得されることを確実にするために#runInTerminalツールを使用してcurlを使ってもかまいません - 進捗を追跡するために
#todosツールを使用します
- 新しい instruction を
コンテキスト分析の基準
🔍 リポジトリのパターン:
- 使用されているプログラミング言語(.cs、.js、.py、.ts など)
- フレームワークの指標(ASP.NET、React、Azure、Next.js など)
- プロジェクトの種類(Web アプリ、API、ライブラリ、ツール)
- 開発ワークフローの要件(テスト、CI/CD、デプロイ)
🗨️ チャット履歴のコンテキスト:
- 最近の議論と課題
- 技術固有の質問
- コーディング標準に関する議論
- 開発ワークフローの要件
出力形式
awesome-copilot の instructions と既存のリポジトリの instructions を比較した構造化テーブルで分析結果を表示します:
| Awesome-Copilot Instruction | 説明 | インストール済み | 類似のローカル Instruction | 提案の根拠 |
|---|---|---|---|---|
| blazor.instructions.md | Blazor 開発ガイドライン | ✅ はい | blazor.instructions.md | 既存の Blazor instructions で既にカバーされています |
| reactjs.instructions.md | ReactJS 開発標準 | ❌ いいえ | なし | 確立されたパターンで React 開発を強化できます |
| java.instructions.md | Java 開発のベストプラクティス | ⚠️ 古い | java.instructions.md | applyTo パターンが異なります: リモートは '**/*.java' を使用しているのに対し、ローカルは '*.java' です - 更新を推奨します |
ローカル Instructions の検出プロセス
instructions/ディレクトリ内のすべての*.instructions.mdファイルを一覧表示します- 検出された各ファイルについて、front matter を読み取り、
descriptionとapplyToパターンを抽出します - 適用可能なファイルパターンとともに、既存の instructions の包括的なインベントリを構築します
- このインベントリを使用して、重複した提案を避けます
バージョン比較プロセス
- 各ローカル instruction ファイルについて、リモートバージョンを取得するための raw GitHub URL を構築します:
- パターン:
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>
- パターン:
#fetchツールを使用してリモートバージョンを取得します- ファイル全体の内容 (front matter と本文を含む) を比較します
- 具体的な差分を特定します:
- front matter の変更 (description、applyTo パターン)
- 内容の更新 (ガイドライン、例、ベストプラクティス)
- 古い instructions について、主な差分を文書化します
- 更新が必要かどうかを判断するために類似度を計算します
ファイル構造の要件
GitHub のドキュメントに基づくと、copilot-instructions ファイルは次のとおりであるべきです:
- リポジトリ全体の instructions:
.github/copilot-instructions.md(リポジトリ全体に適用されます) - パス固有の instructions:
.github/instructions/NAME.instructions.md(applyTofrontmatter を介して特定のファイルパターンに適用されます) - コミュニティの instructions:
instructions/NAME.instructions.md(共有および配布用)
Front Matter の構造
awesome-copilot の instructions ファイルは、この front matter 形式を使用します:
---
description: 'Brief description of what this instruction provides'
applyTo: '**/*.js,**/*.ts' # Optional: glob patterns for file matching
---
要件
githubRepoツールを使用して awesome-copilot リポジトリの instructions フォルダからコンテンツを取得します.github/instructions/ディレクトリ内の既存の instructions についてローカルファイルシステムをスキャンします- ローカルの instruction ファイルから YAML front matter を読み取り、description と
applyToパターンを抽出します - ローカルの instructions とリモートバージョンを比較して、古い instructions を検出します
- このリポジトリの既存の instructions と比較して、重複を避けます
- 現在の instructions ライブラリのカバレッジにおけるギャップに焦点を当てます
- 提案された instructions がリポジトリの目的と標準に合致することを検証します
- 各提案について明確な根拠を提供します
- awesome-copilot の instructions と類似のローカル instructions の両方へのリンクを含めます
- 古い instructions を具体的な差分とともに明確に特定します
- 技術スタックの互換性とプロジェクト固有のニーズを考慮します
- テーブルと分析以外に追加の情報やコンテキストを提供しないでください
アイコンの参照
- ✅ インストール済みで最新
- ⚠️ インストール済みだが古い (更新が利用可能)
- ❌ リポジトリに未インストール
更新の処理
古い手順が特定された場合:
- ⚠️ ステータスを付けて出力テーブルに含めます
- 「提案の根拠」列に具体的な相違点を記載します
- 主な変更点を示したうえで更新を推奨します
- ユーザーが更新を要求した場合は、ローカルファイル全体をリモートバージョンで置き換えます
- ファイルの場所は
.github/instructions/ディレクトリ内に維持します
コメント
Markdown 対応