Skip to content

建立 2026-09-19 更新 2026-09-19

GitHub Copilot:Custom Instructions

GitHub Copilot 深度整合在 GitHub 生態系裡,同一套設定會跨 VS Code、Visual Studio、JetBrains、GitHub.com 上的 Copilot Chat、Copilot 編碼代理(coding agent)與 Copilot CLI 生效。它的自訂機制稱為 Custom Instructions(自訂指令),走的是「規則檔」路線,沒有像 Claude/Codex 那樣資料夾式的可攜技能包。

檔案放哪裡

  • Repository 全域指令.github/copilot-instructions.md。整份檔案套用到這個 repo 裡的所有請求,適合放專案架構、建置與測試指令、程式風格這類「幾乎每次都用得到」的內容。
  • 路徑限定指令.github/instructions/ 資料夾下可以放多個 *.instructions.md 檔,各自用 applyTo 指定只在編輯特定檔案時套用,讓不同資料夾(例如前端 vs 後端)可以有不同規範。
  • Prompt files(提示範本).github/prompts/*.prompt.md,用來存可重複使用的提示樣板(例如「產生單元測試」),目前僅支援 VS Code、Visual Studio、JetBrains,需在 settings.json 打開 "chat.promptFiles": true 才會出現。
  • 個人指令:在 IDE 或 GitHub 帳號設定內填寫,只套用到你自己的請求,不會進版控、也不會影響團隊其他人。

優先順序:個人指令 > repository 指令 > organization 指令;repository 全域指令與路徑限定指令會同時套用、疊加生效。

撰寫格式

.github/copilot-instructions.md 就是一般 Markdown,段落之間的空白會被忽略,寫成一段話、每行一條,或用空行分隔都可以:

本專案是用 TypeScript 寫的 Express API。

- 所有路由都要寫在 src/routes 底下,一個檔案一個資源。
- 錯誤處理一律丟自訂的 AppError,不要直接 throw Error。
- commit message 請用繁體中文,格式為「類型: 說明」。

路徑限定的 .instructions.md 需要 YAML frontmatter 指定 applyTo(glob 語法,可用逗號分隔多個樣式),選填 excludeAgent 排除特定情境:

---
applyTo: "app/models/**/*.rb,app/serializers/**/*.rb"
excludeAgent: "code-review"
---

這個資料夾內的 Model 一律加上型別註記,並在檔案頂端引用 `T::Sig`

實際應用

.github/
├── copilot-instructions.md         # repo 全域:專案簡介、建置指令
├── instructions/
│   ├── frontend.instructions.md    # applyTo: src/components/**/*.tsx
│   └── backend.instructions.md     # applyTo: server/**/*.py
└── prompts/
    └── write-tests.prompt.md       # 可重複使用的提示範本

要確認 Copilot 真的有讀到指令,可以在 Chat 面板展開回覆上方的「參考來源」清單,看是否列出 .github/copilot-instructions.md

推薦影音

掌握 Custom Instructions

簡述:完整示範如何建立 copilot-instructions.md 與路徑限定的 .instructions.md,說明如何避免重複下達相同的程式風格、安全性要求給 Copilot。

Copilot CLI 的 Agents、Skills 與 Instructions

簡述:介紹 GitHub Copilot CLI 系列教學的第 6 集,講解 CLI 情境下的 agents、skills 與 custom instructions 怎麼互相搭配,適合已經熟悉編輯器內 Copilot、想延伸到終端機的讀者。

相關資料