GH-300 GitHub Copilot 認證 - 第四天課程筆記
第四天終於碰到最燒腦的部分。什麼是規範驅動開發?為什麼 Coding Agent 需要三種模型跑完同一套流程?上下文炸裂了怎麼辦?這堂課塞了太多東西。
Coding Agent - 自動化 PR 流程
你有一個 GitHub Issue,想讓 Copilot 自動寫 PR?指派給 Coding Agent 就行。Agent 會:
- 建立獨立 Branch
- 產出 Draft PR(給人類 Review)
- 支援 Issue 和 PR 整合
真香的是同一個 Issue 可以指派多個 Agent,比如 Claude + Codex 各跑一遍,看哪個方案更讚。這樣就不用擲骰子決定用哪個模型了。
與 SDD 結合時威力倍增:把一個 50 個 Task 的大功能拆進 SpecKit,自動生成 50 個 GitHub Issue,然後批量指派給 Coding Agent。每個 Agent 獨立工作,最後由人類收兵。整個流程變成準自動化,當然 Code Review 還是得真人親自來。
SDD 規範驅動開發與 SpecKit 框架
TDD(測試驅動)講究 Red→Green→Refactor。SDD 則更重:它不只寫程式,還制定遊戲規則。
六步驟流程(循環式)
Constitution:全局唯一公約。定義命名規範、設計原則、DI 規則等。一個專案就一份,SpecKit 內建。
Specify:需求定義。建 Feature Branch,寫清楚要做什麼。
Plan:需求轉實現計畫。這步會 Check 一遍 Constitution,看計畫是否違反公約。
Task:拆解成可編碼的任務。細化到工程師能寫程式的程度。
Implement:逐項編碼。用 Coding Agent 批量執行也行。
Sync/Analyze:檢測程式碼與 Constitution 衝突。刻意不自動修復,改由人類判斷修不修。
流程不是線性的。Sync 發現問題時,往往要回頭更新 Constitution 或重新 Plan。
三份核心記憶文件
1 | project/ |
為什麼不把所有規範都丟進 Instructions?因為會佔爆上下文窗口,牽扯不相關的內容反而亂了判斷。Knowledge Base 支援用 # 符號顯式引用,需要再拉,才是聰明做法。
Sync 的設計哲學
Sync 不會自動修復。它產出:
- 衝突清單
- 嚴重程度評級
- 修復建議
然後靜靜等人類決策。微軟在觀察:工程師怎麼決策?模式出現後,未來版本才可能進化到半自動。現在就是刻意留著人類判斷權。
Business vs Enterprise:Knowledge Base 差異
Enterprise 版比 Business 多了兩個東西:
Knowledge Base:跨 Repo 的結構化知識庫。存全局規範、內部 API、開發規範。場景:公司 50 套系統,每個 Repo 只用一部分規範。用 KB 就不用每個專案複製一份。
模型微調:針對公司內部代碼風格微調模型。
TDD 代理流程(輕量版本)
有人覺得完整 SDD 太重?試試 TDD 代理流程。
Red Phase → Green Phase → Refactor Phase,各指派一個 Agent。Handoff 是 Hint 而非自動跳轉,Agent 會看前一步的提示再動作。
- Red:寫會失敗的測試
- Green:最小實現讓測試過
- Refactor:改善程式碼品質
輕量化,適合快速迭代。不過如果要確保全局一致性,還是得上 SDD。
上下文管理與模型選擇
中等 Feature 用 SDD 跑一遍,上下文基本爆掉。真的爆了怎麼辦?
先跑 Analyze 定位問題。壓縮前先找出瓶頸在哪,才不會亂砍。
關於模型選擇:SpecKit 流程建議同一個模型走完。不滿意的話從 Constitution 重來,不是中途換馬。
非框架場景下呢?Claude 擅長規劃和理解需求,Codex 擅長排 Bug 和實作細節。各展所長。
舊專案導入 SDD
手上有個老專案要導入?步驟很簡單:
- 安裝 SpecKit(純檔案拷貝,沒依賴)
- 生成 Constitution
- 生成 Architecture Map(重構專案一定要建這個)
- 開始新功能
提示技巧:提供目錄導向、指定 Gold Standard 範例、用挑戰式互動讓 AI 解釋設計。
Code Spaces 與自訂擴展
雲端開發環境 Code Spaces 用 devcontainer.json 設定:
1 | { |
SpecKit 可自訂擴展。改 Agent 提示詞、Templates、Scripts、自訂 Skill 都行。注意:升級 SpecKit 會覆蓋 Agent 目錄,改動要留備份。
SpecKit vs OpenSpec
兩套框架都能用,選擇取決於功能大小:
- SpecKit:中大型 Feature、全量重構。反覆 Sync 的工作量可能超過 1/5。
- OpenSpec:小功能、快速迭代。架構輕薄。
SDD 流程踩坑最多的是定義 Constitution 時過度設計。記得,Constitution 是指南針,不是法律。
第四天最大收穫:規範 + Agent + 記憶系統三合一,才是真正的「自動化開發」。不是 AI 完全自主,而是人類制訂遊戲規則,AI 在規則內執行,衝突時人類仲裁。這套流程爽度真香。
下一堂課會不會更炸?敬請期待。










