Skip to content

技術選型

本節說明實施規格驅動工作流程所需的關鍵技術選擇。

LLM 服務提供者

首選:Claude Code

Claude Code 是首選的 LLM 服務提供者。它原生支援 CLAUDE.md 與專案指引檔案,讓代理能有效消費結構化脈絡。內建的 MCP (Model Context Protocol) 支援讓工具能力可以彈性擴展。在程式碼生成、重構、錯誤修正等核心開發任務上,Claude Code 表現優異,同時提供企業級的安全性與隱私保護。對於高頻開發場景,Pro/Max 訂閱提供類似「吃到飽」的大量使用能力,不用擔心 API 呼叫次數限制。整體生態系與 OpenSpec、各種 IDE 擴充套件都有良好整合。

替代方案:OpenCode

當 Claude Code 無法使用時(例如網路限制、成本考量),OpenCode 可作為替代方案。

OpenCode 是開源專案,可以自行部署,不會有供應商鎖定的問題。它支援多種 LLM 後端,可以使用本地模型或較低成本的 API,資料也能完全留在本地環境。

選擇建議:

  • 企業環境、需要最佳品質 → Claude Code
  • 有網路限制或合規要求 → OpenCode(本地部署)
  • 成本敏感的實驗專案 → OpenCode
  • 需要特定模型微調 → OpenCode
  • 不確定 → Claude Code(較安全的選擇)

規格管理框架:OpenSpec

為何需要框架

當團隊開始導入 AI 輔助開發,很快會發現一個問題:AI 需要規格作為脈絡,但規格散落各處。有人寫在 Confluence,有人放在 Google Doc,有人直接寫在 Jira ticket 裡。每個團隊發明自己的格式,AI 代理每次都要重新理解結構。

更麻煩的是變更追蹤。當一個功能橫跨三個月開發,中間改了五次規格,最後沒人說得清楚現在的規格到底是什麼。實作跟規格漸行漸遠,直到某天發現兩者完全脫節。

OpenSpec 解決的就是這個問題:給規格一個固定的家、統一的格式、清楚的生命週期。AI 代理知道去哪裡找規格、怎麼解析內容、如何追蹤變更。人類也終於能回答「X 功能的規格在哪裡」這個簡單問題。

架構

openspec/
├── project.md              # 專案慣例與脈絡
├── specs/                  # 當前真相 - 已建置的內容
│   └── [capability]/
│       └── spec.md         # 需求與情境
├── changes/                # 提案 - 應該變更的內容
│   └── [change-id]/
│       ├── proposal.md     # 為什麼、什麼、影響
│       ├── tasks.md        # 實作檢查清單
│       └── specs/          # 每個能力的差異變更
└── archive/                # 已完成變更(歷史)

簡單來說:specs/ 放的是當前真相(已經建好的東西),changes/ 放的是提案(應該要改的東西),archive/ 放的是歷史(曾經改過的東西)。

CLI 快速參考

bash
# 發現
openspec list                    # 進行中的變更
openspec list --specs            # 當前能力
openspec show [item]             # 檢視細節

# 驗證
openspec validate [change] --strict

# 生命週期
openspec archive [change] --yes  # 完成並合併

框架轉換策略

OpenSpec 的規格檔案是純 Markdown,沒有專屬格式。標題結構遵循固定慣例,任何文字處理工具都能解析。所有內容存放於 Git,遷移時歷史紀錄完整保留。

如果未來需要換用其他框架,內容不需要大幅度重寫。

技術堆疊總覽

層級首選替代方案
LLM 服務Claude CodeOpenCode
規格框架OpenSpec純 Markdown + Git
API 規格任何 schema 化的 API 描述格式(依專案需求選擇)-
規格格式Gherkin(OpenSpec 採用,BDD 業界慣例)-
版本控制Git-
文件格式Markdown-
為什麼沒有指定 API 規格格式?

API 規格格式應依專案需求選擇。重點是採用 schema 化的描述方式,讓 AI 代理能準確理解 API 結構。常見選項包括 OpenAPI、AsyncAPI、GraphQL Schema 等。

Agent Skill 框架

為什麼需要 Skill 框架

AI 程式碼代理缺乏內在紀律——它們不會自動釐清需求、先寫測試、或在聲稱完成前驗證結果。Skill 框架提供「AI 代理的員工手冊」,透過結構化工作流程強制執行專業開發實踐。

沒有明確的流程紀律,代理會跳過步驟、合理化捷徑、並過早聲稱完成。Skill 框架將隱性團隊知識轉換為明確、可執行的工作流程。

推薦:Superpowers

儲存庫: github.com/obra/superpowers

Superpowers 是一個可組合的 skill 框架,引導 AI 代理通過紀律化的開發工作流程。它不是建議性的指導,而是從需求釐清到驗證的強制性流程。該框架提供 15 個結構化 skills,涵蓋完整開發生命週期。

與我們工作流程對應的關鍵 Skills

Skill對應工作流程用途
Brainstorming功能開發流程編碼前的蘇格拉底式提問;YAGNI 執行
Writing PlansAPI 設計流程詳細實作任務(每個 2-5 分鐘)
Systematic Debugging錯誤修復流程4 階段調查:根因 → 模式 → 假設 → 修復
Test-Driven Development原則 E4(嚴謹驗證)RED-GREEN-REFACTOR 執行
Verification Before Completion原則 E4(嚴謹驗證)基於證據的完成聲明

與 OpenSpec 的整合

Superpowers 與 OpenSpec 互補:OpenSpec 定義要建造什麼(規格),Superpowers 定義代理如何工作(流程紀律)。團隊同時使用兩者——OpenSpec 用於規格生命週期,Superpowers 用於執行紀律。

詳細採用指南請參閱 Agent Skill 採用 提案。

參考資料