Claude Code 通過 OpenSpec 實現規格驅動開發

在 Spec-Driven Development(SDD)逐漸被討論的今天,除了 GitHub 推出的 Spec-Kit,社群也出現了另一個有趣的專案 —— OpenSpec。
它的定位很清楚:用一份規格文件,驅動整個開發流程,並且盡可能保持「開放、可組合、可驗證」。

這篇文章會示範如何安裝與使用 OpenSpec,並分享我在實際操作時的心得。

開發環境

  • Windows 11 Pro
  • Node.js 20.x
  • OpenSpec CLI(來自 GitHub Repo: Fission-AI/OpenSpec
  • Claude Code 2.0.27 

安裝 OpenSpec

透過 npm 安裝

npm install -g @fission-ai/openspec@latest

初始化專案(openspec init)

在一個專案資料夾中,執行:

openspec init

 openspec CLI 會跟你互動,確認你要甚麼 AI 工具

 

我選擇 Claude

 

接下來,會需要複製紅框處的資訊給 claude,進行初始化的動作

 

專案目錄結構

安裝完成,專案裡面會多一個 openspec 目錄:

Lab.CleanDuplicatesImage/
├── AGENTS.md              # AI助手指令
└── openspec/
    ├── AGENTS.md          # OpenSpec工作流說明
    ├── project.md         # 專案訊息
    ├── specs/             # 規範(目前狀態)
    └── changes/           # 變更(進行中的變更)

 

.claude 也多了 openspec 的 command:


初始化

接下在進入到 Claude,貼上以下內容

1. Populate your project context:
  "Please read openspec/project.md and help me fill it out
   with details about my project, tech stack, and conventions"
2. Create your first change proposal:
  "I want to add [YOUR FEATURE HERE]. Please create an
   OpenSpec change proposal for this feature"
3. Learn the OpenSpec workflow:
  "Please explain the OpenSpec workflow from openspec/AGENTS.md
   and how I should work with you on this project"

 

主要是要讓 OpenSpec 理解整個專案

 

完成後,openspec/project.md 填寫完成

 

建立提案(/openspec:proposal)

接下來,我想要替報表加上一個新的功能,報表分頁,所以我輸入以下內容

/openspec:proposal 替報表加上分頁功能

 

openspec 就會開始詢問你問題

 

建立提案文檔 proposal.md

 

建立設計文檔 design.md

 

建立規格文檔 spec.md

 

建立任務文檔 tasks.md

 

最後這個提案,被拆解出 proposal.md、design.md、spec.md、tasks.md

 

實作(/openspec:apply)

審核相關文件沒有問題就可以接著實作,可以交給 AI 自動實作,也可以在 claude 輸入以下

/openspec:apply add-virtual-scrolling


或是回覆 "開始實作"

 

實作的時候,就會按照 tasks.md 一項一項處理

 

完成任務會更新 tasks.md

 

歸檔(/openspec:archive)

功能完成之後,可以把 add-virtual-scrolling 這個功能放在 openspec/changes/archive/ 資料夾底下

/openspec:archive add-virtual-scrolling

心得

  • OpenSpec、Claude Code PM 會跟用戶互動,釐清需求。
  • OpenSpec、SpecKit 支援多種 AI Tool。
  • OpenSpec 沒有像 Claude Code PM、SpecKit 會介入 git 流程。

目前我個人覺得 OpenSpec 使用起來相對簡單許多

範例專案位置

sample.dotblog/Image/Lab.CleanDuplicatesImage at master · yaochangyu/sample.dotblog · GitHub

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo