SKILL.md
readonlyread-only
name
suggest-awesome-github-copilot-instructions
description
根據當前儲存庫上下文和聊天記錄,從 awesome-copilot 儲存庫建議相關的 GitHub Copilot 指令檔案,避免與此儲存庫中已有的指令重複,並識別需要更新的過時指令。
建議 Awesome GitHub Copilot 指令
分析當前儲存庫上下文,並從 GitHub awesome-copilot 儲存庫 建議此儲存庫中尚未提供的相關 copilot-instruction 檔案。
流程
- 取得可用指令:從 awesome-copilot README.instructions.md 提取指令清單與描述。必須使用
#fetch工具。 - 掃描本地指令:探索
.github/instructions/資料夾中的現有指令檔案。 - 提取描述:讀取本地指令檔案的 front matter,取得描述與
applyTo模式。 - 取得遠端版本:對於每個本地指令,使用原始 GitHub URL(例如
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>)從 awesome-copilot 儲存庫取得對應版本。 - 比較版本:比較本地指令內容與遠端版本,以識別:
- 最新的指令(完全相符)
- 過時的指令(內容不同)
- 過時指令的主要差異(描述、applyTo 模式、內容)
- 分析上下文:檢視聊天記錄、儲存庫檔案與當前專案需求。
- 比對現有指令:檢查此儲存庫中已有的指令。
- 比對相關性:將可用指令與識別出的模式和需求進行比對。
- 呈現選項:顯示相關指令及其描述、理由和可用狀態,包括過時指令。
- 驗證:確保建議的指令能增加現有指令未涵蓋的價值。
- 輸出:提供結構化表格,包含建議、描述、awesome-copilot 指令連結以及類似的本地指令連結。
等待使用者要求進行特定指令的安裝或更新。除非被指示,否則不要安裝或更新。 - 下載/更新資源:對於被要求的指令,自動:
- 將新指令下載至
.github/instructions/資料夾 - 用 awesome-copilot 的最新版本取代過時指令來更新
- 不要調整檔案內容
- 使用
#fetch工具下載資源,但可使用#runInTerminal工具的curl以確保取得所有內容 - 使用
#todos工具追蹤進度
- 將新指令下載至
上下文分析標準
🔍 儲存庫模式:
- 使用的程式語言(.cs、.js、.py、.ts 等)
- 框架指標(ASP.NET、React、Azure、Next.js 等)
- 專案類型(Web 應用程式、API、函式庫、工具)
- 開發工作流程需求(測試、CI/CD、部署)
🗨️ 聊天記錄上下文:
- 最近的討論與痛點
- 特定技術的問題
- 編碼標準討論
- 開發工作流程需求
輸出格式
以結構化表格顯示分析結果,比較 awesome-copilot 指令與現有儲存庫指令:
| Awesome-Copilot 指令 | 描述 | 已安裝 | 類似的本地指令 | 建議理由 |
|---|---|---|---|---|
| blazor.instructions.md | Blazor 開發指南 | ✅ 是 | blazor.instructions.md | 已由現有 Blazor 指令涵蓋 |
| reactjs.instructions.md | ReactJS 開發標準 | ❌ 否 | 無 | 可透過既有模式增強 React 開發 |
| java.instructions.md | Java 開發最佳實務 | ⚠️ 過時 | java.instructions.md | applyTo 模式不同:遠端使用 '**/*.java' 而本地使用 '*.java' - 建議更新 |
本地指令探索流程
- 列出
instructions/目錄中所有*.instructions.md檔案 - 對於每個發現的檔案,讀取 front matter 以提取
description與applyTo模式 - 建立現有指令的完整清單,包含其適用的檔案模式
- 使用此清單避免建議重複
版本比較流程
- 對於每個本地指令檔案,建構原始 GitHub URL 以取得遠端版本:
- 模式:
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>
- 模式:
- 使用
#fetch工具取得遠端版本 - 比較整個檔案內容(包括 front matter 與主體)
- 識別具體差異:
- Front matter 變更(描述、applyTo 模式)
- 內容更新(指南、範例、最佳實務)
- 記錄過時指令的主要差異
- 計算相似度以判斷是否需要更新
檔案結構需求
根據 GitHub 文件,copilot-instructions 檔案應為:
- 儲存庫級指令:
.github/copilot-instructions.md(適用於整個儲存庫) - 路徑特定指令:
.github/instructions/NAME.instructions.md(透過applyTofrontmatter 適用於特定檔案模式) - 社群指令:
instructions/NAME.instructions.md(用於分享與散佈)
Front Matter 結構
awesome-copilot 中的指令檔案使用此 front matter 格式:
---
description: '此指令提供的簡短描述'
applyTo: '**/*.js,**/*.ts' # 可選:用於檔案比對的 glob 模式
---
需求
- 使用
githubRepo工具從 awesome-copilot 儲存庫的 instructions 資料夾取得內容 - 掃描本地檔案系統中
.github/instructions/目錄的現有指令 - 從本地指令檔案讀取 YAML front matter 以提取描述與
applyTo模式 - 比較本地指令與遠端版本以偵測過時指令
- 與此儲存庫中現有指令比對以避免重複
- 專注於當前指令庫涵蓋範圍的缺口
- 驗證建議的指令與儲存庫目的和標準一致
- 為每個建議提供明確理由
- 包含 awesome-copilot 指令與類似本地指令的連結
- 清楚標示過時指令並註明具體差異
- 考慮技術堆疊相容性與專案特定需求
- 不要提供表格與分析之外的任何額外資訊或上下文
圖示參考
- ✅ 已安裝且為最新
- ⚠️ 已安裝但過時(有可用更新)
- ❌ 未安裝於儲存庫中
更新處理
當識別出過時指令時:
- 將其包含在輸出表格中,狀態標示為 ⚠️
- 在「建議理由」欄位中記錄具體差異
- 提供更新建議,並註明主要變更
- 當使用者要求更新時,以遠端版本取代整個本地檔案
- 保留檔案在
.github/instructions/目錄中的位置






