用 Claude Code 和 Cursor 做規範驅動開發
Claude Code 是一個代理式寫程式工具,它讀取程式碼庫、編輯檔案並執行命令。Cursor 是編輯器,其專案規則放在 .cursor/rules,形式是 .mdc 檔案。規範驅動開發(SDD,spec-driven development)是先寫規格、再寫程式,並把規格當作事實來源的做法。產品需求文件(PRD,product requirements document)是在把工作拆成任務之前,陳述問題和範圍的散文。在 SpecScore 裡,功能規範是一項產品能力的檔案,需求(REQ,requirement)是該功能內部一條有名字的規則,驗收標準(AC,acceptance criterion)是可選的抽象條件,指向其中一條或多條規則。持續整合(CI,continuous integration)是對每一項提議變更的自動檢查。這項檢查是一條命令列介面(CLI,command-line interface)的命令 specscore spec lint,來自 specscore/specscore-cli 裡的 CLI。本頁所說的 Cursor 規格,是那份功能檔案,加上告訴代理去檢查它的 Cursor 專案規則。
最近更新:2026年11月6日
什麼放進功能,什麼放進代理檔案
功能檔案持有義務。spec/features/ 下的功能 README 載有 #### REQ: 規則和 ### AC: 標準。填好的形態、計畫、任務就是Markdown 中的 PRD 範本。specscore spec lint 檢查這個形態:標題、必要的小節、索引行和參照。它不判斷產品想法是不是個好主意。在 CI 中用規格檢查器檢查規格是這條命令的更長說明。
代理檔案持有針對一個工具的指示。Anthropic 的概述說,CLAUDE.md 是專案根目錄的 Markdown 檔案,Claude Code 在每次工作階段開始時讀取它。Cursor 的規則文件說,專案規則是 .mdc 檔案,位於 .cursor/rules,該目錄裡沒有 frontmatter 的普通 .md 檔案會被忽略。這些檔案告訴代理如何在儲存庫裡工作。它們不是檢查器所檢查的規格。只存在於 CLAUDE.md,或只存在於 .cursor/rules/specscore.mdc 的需求,對 specscore spec lint 不可見。
specscore agent setup 寫入什麼
CLI README 說,specscore agent setup 寫入每個代理的指示檔案,並且在該代理有技能目錄時,把 SpecScore 技能包複製進去。除非傳入 --force,命令會略過既有檔案。契約是 agent-setup 功能,位於 specscore/specscore-cli。
那份契約把呼叫端 id claude 對應到 CLAUDE.md 和 .claude/skills/,把呼叫端 id cursor 對應到 .cursor/rules/specscore.mdc 和 .cursor/skills/。在已經有 specscore.yaml 的專案裡執行這條命令。如果缺少該檔案,命令以 6 結束,訊息建議 specscore init。一次點名兩個代理的呼叫是 specscore agent setup claude,cursor。功能說,逗號分隔的清單與分開的參數相同。父目錄會被建立。每條路徑都被報告為已新增、已修改或已略過。
產生的 CLAUDE.md 包含專案標題、傳入 --caller claude 的 CLI 範例,以及安裝行 /plugin install specscore@specscore。Cursor 的檔案是帶 YAML frontmatter 的 Markdown。frontmatter 含有 description 和 alwaysApply: true。Cursor 的規則表說,alwaysApply: true 表示這條規則被納入每一次聊天。--no-skills 寫入指示檔案,不複製技能包。同一張契約表還點名 codex、copilot、antigravity.google、pi.dev、opencode 和 deepseek。本頁寫的是標題裡的兩個代理。
specscore agent setup claude,cursor
CLAUDE.md
.claude/skills/
.cursor/rules/specscore.mdc
.cursor/skills/
指示檔案指向功能樹。它不取代功能樹。設定之後,Claude Code 仍然必須讀取 spec/features/,Cursor 的規則仍然必須指向同一棵樹。功能規範仍然是 specscore spec lint 接受或拒絕的文件。
在迴圈裡執行 specscore spec lint
先安裝 CLI。安裝方法在安裝頁面上。然後把功能和檢查器保持在與代理相同的迴圈裡。
在提示之前寫下功能
用PRD 範本加入功能 README、功能索引行和 specscore.yaml。把每條義務放在 ## Behavior 下,寫成 #### REQ: {slug}。用 **Requirements:** 讓驗收標準指向那些 id。把 CLAUDE.md 和 .cursor/rules/ 留到下一步。
在代理編輯程式之前檢查
在儲存庫裡執行 specscore spec lint。乾淨的樹印出 0 violations found 並以 0 結束。失敗報告——檔案、行、嚴重程度、規則、訊息——在 在 CI 中用規格檢查器檢查規格。把功能改到那條命令乾淨為止。從檢查器已經拒絕的功能起步的代理,會照抄壞掉的形態。
讓 Claude Code 和 Cursor 指向這棵樹
執行 specscore agent setup claude,cursor。閱讀新增的 CLAUDE.md 和 .cursor/rules/specscore.mdc,確認它們點名規格樹和 CLI,包括 --caller。如果其中任一檔案已經存在,命令就略過它。只有在你打算替換那個檔案時才傳入 --force。
要求一項點名標準的任務
在代理的工作階段裡,點名這項工作必須滿足的功能和驗收標準。計畫裡的任務用 **Verifies:** 和驗收標準的 id 來做這件事。讓代理在結束前再次執行 specscore spec lint,並在行為改變時修改功能檔案。指示檔案告訴代理去執行命令。命令檢查的是功能檔案。
露出 lint、feature 和 task 的技能
對包裝外掛,CLI README 的安裝行是 /plugin marketplace add specscore/ai-marketplace 和 /plugin install specscore@specscore。外掛儲存庫是 specscore/ai-plugin-specscore,採用 MIT 授權。它的 skills README 說,使用者呼叫 /specscore:<skill-name>。隨附的包裝包括 /specscore:spec,它包裝 specscore spec lint;/specscore:feature,它包裝 specscore feature(list、info、tree、deps、refs、new 和 change-status);以及 /specscore:task,它包裝 specscore task。/specscore:change-status 涵蓋功能和想法的狀態變更。本站的 CLI Skills 頁面就是那個包裝。specscore agent setup 把那些技能包複製進 .claude/skills/ 和 .cursor/skills/,除非傳入 --no-skills。
外掛 README 說,Cursor 沒有遠端安裝命令,並從專案裡的 .cursor/skills/ 或從 ~/.cursor/skills/ 載入技能。它展示的手動複製是 git clone ai-plugin-specscore,以及 cp -R skills/* 到 .cursor/skills/。specscore agent setup cursor 就是替你做這次複製的命令,來自功能規範點名的市集。
SpecStudio Skills 是有引導的工作流程。儲存庫是 specscore/specstudio-skills,採用 MIT 授權。它的 README 裡 Claude Code 的安裝行是 /plugin install specstudio@specscore,並且說 Claude Code 把 specscore 外掛作為相依安裝。狀態一節點名版本 0.0.7,並說 ideate、specify、plan、implement、verify 和 recap 技能已經活躍到足以 dogfood。同一份 README 的清單表詳細記錄了 specstudio:ideate 和 specstudio:specify。那些技能寫下 SpecScore 產物。它們不取代 specscore spec lint。
CI 裡的同一條命令
dogfood.yml 在 specscore/specscore 裡把 SPECSCORE_VERSION 設為 v0.39.1,並在 pull request 以及向 main 的 push 上執行 specscore spec lint。工作流程摘錄和文字報告在 在 CI 中用規格檢查器檢查規格。弄壞標題的功能會讓那個作業失敗,不論檔案是 Claude Code 還是 Cursor 寫的。代理迴圈和 CI 呼叫同一條命令。
格式授權是 CC BY 4.0,位於 specscore/specscore。CLI 授權是 Apache-2.0,位於 specscore/specscore-cli。
其他規範驅動工具公布的檢查各不相同。下面的句子只用那些專案自己的頁面所說的內容。工具彙整把同樣的頁面記為 2026年10月30日讀過,Spec Kit 文件首頁除外,那一頁印著 2026年9月28日。
OpenSpec 在它的 CLI 參考 裡記錄了 openspec validate。該命令檢查 OpenSpec 的變更和規格結構。它不檢查 SpecScore 的 ### AC: 標題。
Task Master 的 README 描述用 task-master parse-prd 把 PRD 解析成任務。它沒有描述針對那份 PRD 的檢查器。
GitHub Spec Kit 描述一套代理工作流程,其階段寫下 Markdown 產物。那份文件首頁沒有描述一條在 CI 中檢查 SpecScore 功能 README 的命令。
常見問題
什麼是 Claude Code 的規範驅動開發?
就是在 Claude Code 寫程式之前寫下 SpecScore 功能,然後把 CLAUDE.md 保持為指向該功能的指示檔案。功能持有需求(REQ)和驗收標準(AC)。specscore spec lint 檢查功能。specscore agent setup claude 把 CLAUDE.md 寫進已經有 specscore.yaml 的專案。
Cursor 的規格放在哪裡?
產品義務放在 spec/features/ 下的功能 README 裡。Cursor 專案規則放在 .cursor/rules/specscore.mdc。技能檔案放在 .cursor/skills/。specscore agent setup cursor 寫入規則,並且除非傳入 --no-skills,還複製技能包。Cursor 自己的文件是 .mdc 規則如何被套用的來源。
CLAUDE.md 會取代功能規範嗎?
不是。CLAUDE.md 是 Claude Code 當作指示來讀的檔案。功能 README 是 specscore spec lint 所檢查的檔案。agent-setup 功能說,產生的檔案把規格樹和 CLI 命令教給代理。它沒有說指示檔案就是規格。
如果 CLAUDE.md 或 Cursor 規則已經存在呢?
命令略過既有檔案,並印出一行提到 --force 的略過說明。既有的位元組保持不變。只有在替換正是你想要的時候才傳入 --force。同一條略過規則也適用於已經存在的技能檔案。
哪個技能執行檢查器?
在外掛的 skills README 裡,/specscore:spec 包裝 specscore spec lint。你也可以自己執行那條 CLI 命令,在代理的工作階段裡或在 CI 裡。/specscore:feature 和 /specscore:task 包裝功能和任務命令。它們自己並不檢查。
檢查器為散文打分嗎?
不。specscore spec lint 檢查結構。在 CI 中用規格檢查器檢查規格給出報告。一次乾淨的結構檢查並不是產品評審。
來源
agent-setup 的行為是 main 上 specscore-cli spec/features/cli/agent/setup/README.md 裡的契約,閱讀日期為 2026年11月6日。技能名稱來自 main 上的 ai-plugin-specscore skills/README.md,同一天閱讀。SpecStudio 的安裝行和版本 0.0.7 的狀態列表來自 main 上的 specstudio-skills README.md,同一天閱讀。Claude Code 的說明和 CLAUDE.md 那一句來自 code.claude.com/docs/en/overview。Cursor 專案規則路徑來自 cursor.com/docs/rules。本儲存庫的 dogfood.yml 把 SPECSCORE_VERSION 釘在 v0.39.1。競爭頁面就是下面連結的那些;工具彙整把它們記為 2026年10月30日讀過,Spec Kit 文件首頁除外,那一頁印著 2026年9月28日。
- Claude Code — 概述(CLAUDE.md)
- Cursor — 規則(專案規則是 .mdc 檔案)
- specscore-cli — agent-setup 功能
- specscore-cli — README(agent setup 與外掛安裝)
- specscore/specscore-cli
- specscore-cli — Apache-2.0 授權
- specscore/specscore
- specscore/specscore — CC BY 4.0 授權
- specscore/specscore — dogfood.yml(CLI v0.39.1)
- specscore/ai-plugin-specscore
- ai-plugin-specscore — MIT 授權
- ai-plugin-specscore — skills README
- ai-plugin-specscore — README(複製到 Cursor)
- specscore/specstudio-skills
- specstudio-skills — MIT 授權
- specstudio-skills — README(版本 0.0.7)
- CLI Skills
- SpecStudio Skills
- 給 AI 寫程式用的 Markdown PRD 範本
- 在 CI 中用規格檢查器檢查規格
- 功能規範
- 驗收標準規範
- OpenSpec CLI 參考 — openspec validate
- Fission-AI/OpenSpec
- eyaltoledano/claude-task-master
- GitHub Spec Kit 文件(頁面日期 2026年9月28日)
- 規範驅動開發工具