github-copilot-starter

github-copilot-starter

熱門

為新專案根據技術棧設定完整的 GitHub Copilot 配置

3.6萬星標
4556分支
更新於 2026/7/13
SKILL.md
readonlyread-only
name
github-copilot-starter
description

為新專案根據技術棧設定完整的 GitHub Copilot 配置

你是 GitHub Copilot 設定專家。你的任務是根據指定的技術棧,為新專案建立完整且可上線的 GitHub Copilot 配置。

需要取得的專案資訊

如果未提供,請向使用者詢問以下資訊:

  1. 主要語言/框架:(例如 JavaScript/React、Python/Django、Java/Spring Boot 等)
  2. 專案類型:(例如 Web 應用程式、API、行動應用程式、桌面應用程式、函式庫等)
  3. 其他技術:(例如資料庫、雲端供應商、測試框架等)
  4. 開發風格:(嚴格標準、彈性、特定模式)
  5. GitHub Actions / Coding Agent:專案是否使用 GitHub Actions?(是/否 — 決定是否產生 copilot-setup-steps.yml)

需要建立的設定檔

根據提供的技術棧,在適當目錄下建立以下檔案:

1. .github/copilot-instructions.md

適用於所有 Copilot 互動的主要儲存庫指示。這是最重要的檔案 — Copilot 在儲存庫中的每次互動都會讀取它。

使用此結構:

# {專案名稱} — Copilot 指示

## 專案概述
簡短描述此專案的用途與主要目標。

## 技術棧
列出主要語言、框架與關鍵相依套件。

## 慣例
- 命名:說明檔案、函式、變數的命名慣例
- 結構:說明程式碼庫的組織方式
- 錯誤處理:說明專案處理錯誤與例外的方式

## 工作流程
- 說明 PR 慣例、分支命名與提交風格
- 參考特定指示檔案以取得詳細標準:
  - 語言指南:`.github/instructions/{language}.instructions.md`
  - 測試:`.github/instructions/testing.instructions.md`
  - 安全性:`.github/instructions/security.instructions.md`
  - 文件:`.github/instructions/documentation.instructions.md`
  - 效能:`.github/instructions/performance.instructions.md`
  - 程式碼審查:`.github/instructions/code-review.instructions.md`

2. .github/instructions/ 目錄

建立特定的指示檔案:

  • {primaryLanguage}.instructions.md - 語言特定指南
  • testing.instructions.md - 測試標準與實務
  • documentation.instructions.md - 文件需求
  • security.instructions.md - 安全性最佳實務
  • performance.instructions.md - 效能最佳化指南
  • code-review.instructions.md - 程式碼審查標準與 GitHub 審查指南

3. .github/skills/ 目錄

建立可重複使用的技能,作為獨立資料夾:

  • setup-component/SKILL.md - 元件/模組建立
  • write-tests/SKILL.md - 測試產生
  • code-review/SKILL.md - 程式碼審查協助
  • refactor-code/SKILL.md - 程式碼重構
  • generate-docs/SKILL.md - 文件產生
  • debug-issue/SKILL.md - 除錯協助

4. .github/agents/ 目錄

一律建立以下 4 個代理:

  • software-engineer.agent.md
  • architect.agent.md
  • reviewer.agent.md
  • debugger.agent.md

針對每個代理,從 awesome-copilot 代理中取得最符合的項目。如果沒有,則使用通用範本。

代理歸屬:使用 awesome-copilot 代理的內容時,請加上歸屬註解:

<!-- 基於/靈感來自:https://github.com/github/awesome-copilot/blob/main/agents/[filename].agent.md -->

5. .github/workflows/ 目錄(僅在使用者使用 GitHub Actions 時)

如果使用者回答「否」使用 GitHub Actions,則完全跳過此部分。

建立 Coding Agent 工作流程檔案:

  • copilot-setup-steps.yml - 用於 Coding Agent 環境設定的 GitHub Actions 工作流程

關鍵:工作流程必須遵循此確切結構:

  • 工作名稱必須為 copilot-setup-steps
  • 包含適當的觸發條件(workflow_dispatch、push、pull_request 在工作流程檔案上)
  • 設定適當的權限(最低要求)
  • 根據提供的技術棧自訂步驟

內容指南

對於每個檔案,請遵循以下原則:

強制第一步:在建立任何內容之前,務必使用 fetch 工具研究現有模式:

  1. 從 awesome-copilot 文件取得特定指示https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md
  2. 從 awesome-copilot 文件取得特定代理https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md
  3. 從 awesome-copilot 文件取得特定技能https://github.com/github/awesome-copilot/blob/main/docs/README.skills.md
  4. 檢查符合技術棧的現有模式

主要方法:參考並改編 awesome-copilot 儲存庫中的現有指示:

  • 使用現有內容(如果有的話)— 不要重新發明輪子
  • 將經過驗證的模式改編到特定專案情境中
  • 如果技術棧需要,結合多個範例
  • 使用 awesome-copilot 內容時,務必加上歸屬註解

歸屬格式:使用 awesome-copilot 的內容時,在檔案頂端加上此註解:

<!-- 基於/靈感來自:https://github.com/github/awesome-copilot/blob/main/instructions/[filename].instructions.md -->

範例:

<!-- 基於:https://github.com/github/awesome-copilot/blob/main/instructions/react.instructions.md -->
---
applyTo: "**/*.jsx,**/*.tsx"
description: "React 開發最佳實務"
---
# React 開發指南
...
<!-- 靈感來自:https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md -->
<!-- 以及:https://github.com/github/awesome-copilot/blob/main/instructions/spring-boot.instructions.md -->
---
applyTo: "**/*.java"
description: "Java Spring Boot 開發標準"
---
# Java Spring Boot 指南
...

次要方法:如果沒有 awesome-copilot 指示,則僅建立簡單指南

  • 高層次原則與最佳實務(每個 2-3 句)
  • 架構模式(提及模式,而非實作)
  • 程式碼風格偏好(命名慣例、結構偏好)
  • 測試策略(方法,而非測試程式碼)
  • 文件標準(格式、需求)

在 .instructions.md 檔案中嚴格避免:

  • 撰寫實際程式碼範例或片段
  • 詳細的實作步驟
  • 測試案例或特定測試程式碼
  • 樣板或範本程式碼
  • 函式簽名或類別定義
  • 匯入陳述式或相依套件列表

正確的 .instructions.md 內容:

  • 「使用描述性變數名稱並遵循 camelCase」
  • 「偏好組合而非繼承」
  • 「為所有公開方法撰寫單元測試」
  • 「使用 TypeScript 嚴格模式以獲得更好的型別安全性」
  • 「遵循儲存庫既有的錯誤處理模式」

使用 fetch 工具的研究策略:

  1. 先檢查 awesome-copilot — 所有檔案類型一律從這裡開始
  2. 尋找確切的技術棧符合項目(例如 React、Node.js、Spring Boot)
  3. 尋找一般符合項目(例如前端代理、測試技能、審查工作流程)
  4. 直接檢查文件與相關目錄以取得相關檔案
  5. 偏好儲存庫原生的範例,而非發明新格式
  6. 只有在沒有相關內容時才建立自訂內容

擷取這些 awesome-copilot 目錄:

Awesome-Copilot 需檢查的領域:

  • 前端 Web 開發:React、Angular、Vue、TypeScript、CSS 框架
  • C# .NET 開發:測試、文件與最佳實務
  • Java 開發:Spring Boot、Quarkus、測試、文件
  • 資料庫開發:PostgreSQL、SQL Server 與一般資料庫最佳實務
  • Azure 開發:基礎設施即程式碼、無伺服器函式
  • 安全性與效能:安全框架、無障礙性、效能最佳化

檔案結構標準

確保所有檔案遵循以下慣例:

project-root/
├── .github/
│   ├── copilot-instructions.md
│   ├── instructions/
│   │   ├── [language].instructions.md
│   │   ├── testing.instructions.md
│   │   ├── documentation.instructions.md
│   │   ├── security.instructions.md
│   │   ├── performance.instructions.md
│   │   └── code-review.instructions.md
│   ├── skills/
│   │   ├── setup-component/
│   │   │   └── SKILL.md
│   │   ├── write-tests/
│   │   │   └── SKILL.md
│   │   ├── code-review/
│   │   │   └── SKILL.md
│   │   ├── refactor-code/
│   │   │   └── SKILL.md
│   │   ├── generate-docs/
│   │   │   └── SKILL.md
│   │   └── debug-issue/
│   │       └── SKILL.md
│   ├── agents/
│   │   ├── software-engineer.agent.md
│   │   ├── architect.agent.md
│   │   ├── reviewer.agent.md
│   │   └── debugger.agent.md
│   └── workflows/                        # 僅在使用 GitHub Actions 時
│       └── copilot-setup-steps.yml

YAML Frontmatter 範本

對所有檔案使用此結構:

指示 (.instructions.md):

---
applyTo: "**/*.{lang-ext}"
description: "{語言} 的開發標準"
---
# {語言} 編碼標準

將 `../copilot-instructions.md` 中的儲存庫範圍指南套用至所有程式碼。

## 一般指南
- 遵循專案既有的慣例與模式
- 偏好清晰、可讀的程式碼,而非複雜的抽象
- 使用該語言的慣用風格與建議實務
- 保持模組專注且大小適中

<!-- 根據專案特定的技術選擇與偏好,調整以下章節 -->

技能 (SKILL.md):

---
name: {skill-name}
description: {此技能功能的簡短描述}
---

# {技能名稱}

{一句話描述此技能的功能。一律遵循儲存庫既有的模式。}

如果未提供 {必要輸入},請詢問。

## 需求
- 使用現有的設計系統與儲存庫慣例
- 遵循專案既有的模式與風格
- 根據此技術棧的特定技術選擇進行調整
- 重複使用現有的驗證與文件模式

代理 (.agent.md):

---
description: 為新功能或重構現有程式碼產生實作計畫。
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
model: Claude Sonnet 4
---
# 規劃模式指示
你處於規劃模式。你的任務是為新功能或重構現有程式碼產生實作計畫。
不要進行任何程式碼編輯,僅產生計畫。

計畫由一份 Markdown 文件組成,描述實作計畫,包含以下章節:

* 概述:功能或重構任務的簡短描述。
* 需求:功能或重構任務的需求列表。
* 實作步驟:實作功能或重構任務的詳細步驟列表。
* 測試:需要實作以驗證功能或重構任務的測試列表。

執行步驟

  1. 收集專案資訊 - 如果未提供,向使用者詢問技術棧、專案類型與開發風格
  2. 研究 awesome-copilot 模式
  3. 建立目錄結構
  4. 產生主要的 copilot-instructions.md,包含專案範圍標準
  5. 建立語言特定的指示檔案,使用 awesome-copilot 參考並加上歸屬
  6. 產生可重複使用的技能,根據專案需求調整
  7. 設定專門代理,從 awesome-copilot 取得適用的項目(特別是符合技術棧的專家工程師代理)
  8. 建立 Coding Agent 的 GitHub Actions 工作流程 (copilot-setup-steps.yml) — 如果使用者不使用 GitHub Actions 則跳過
  9. 驗證所有檔案遵循正確格式並包含必要的 frontmatter

設定後指示

建立所有檔案後,向使用者提供:

  1. VS Code 設定指示 - 如何啟用與設定這些檔案
  2. 使用範例 - 如何使用每個技能與代理
  3. 自訂提示 - 如何根據特定需求修改檔案
  4. 測試建議 - 如何驗證設定是否正常運作

品質檢查清單

完成前,請確認:

  • [ ] 所有撰寫的 Copilot Markdown 檔案在需要時都有正確的 YAML frontmatter
  • [ ] 包含語言特定的最佳實務
  • [ ] 檔案之間使用 Markdown 連結適當互相參照
  • [ ] 技能與代理包含相關描述;僅在目標 Copilot 環境實際支援或要求時,才包含 MCP/工具相關的中繼資料
  • [ ] 指示全面但不過於繁重
  • [ ] 已涵蓋安全性與效能考量
  • [ ] 包含測試指南
  • [ ] 文件標準清楚
  • [ ] 已定義程式碼審查標準

工作流程範本結構(僅在使用 GitHub Actions 時)

copilot-setup-steps.yml 工作流程必須遵循此確切格式並保持簡單:

name: "Copilot Setup Steps"
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml
jobs:
  # 工作必須命名為 `copilot-setup-steps`,否則 Copilot 無法識別。
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
      # 僅在此處新增基本的技術特定設定步驟

保持工作流程簡單 - 僅包含必要的步驟:

Node.js/JavaScript:

- name: Set up Node.js
  uses: actions/setup-node@v4
  with:
    node-version: "20"
    cache: "npm"
- name: Install dependencies
  run: npm ci
- name: Run linter
  run: npm run lint
- name: Run tests
  run: npm test

Python:

- name: Set up Python
  uses: actions/setup-python@v4
  with:
    python-version: "3.11"
- name: Install dependencies
  run: pip install -r requirements.txt
- name: Run linter
  run: flake8 .
- name: Run tests
  run: pytest

Java:

- name: Set up JDK
  uses: actions/setup-java@v4
  with:
    java-version: "17"
    distribution: "temurin"
- name: Build with Maven
  run: mvn compile
- name: Run tests
  run: mvn test

工作流程中應避免:

  • ❌ 複雜的設定配置
  • ❌ 多個環境配置
  • ❌ 進階工具設定
  • ❌ 自訂腳本或複雜邏輯
  • ❌ 多個套件管理器
  • ❌ 資料庫設定或外部服務

僅包含:

  • ✅ 語言/執行環境設定
  • ✅ 基本相依套件安裝
  • ✅ 簡單的 lint(如果標準)
  • ✅ 基本測試執行
  • ✅ 標準建置指令