SpecScore vs CodeSpeak
對於「規範應當用來做什麼」的兩種答案。CodeSpeak 把規範當作原始碼——由 LLM 編譯它,你維護規範而非程式碼。 SpecScore 把規範當作一份持久、開放的契約—— 你保留你的程式碼,任何代理(或不用代理)都能讀取、lint 並追溯它。
兩者的共同點。
CodeSpeak 的優勢。
CodeSpeak是一個由 LLM 驅動的程式設計系統,能把結構化英文規範編譯成程式碼。
大膽的論點,論證可信
「維護規範,而非程式碼」是一次真正的重新定義,而非增量式的小修小補。 它出自 Kotlin 語言的設計者,值得認真對待:如果規範才是原始碼, 那麼產生的程式碼就成了一個實現細節。
程式碼到規範的接管
codespeak takeover 讀取現有原始碼並產出一份 捕捉其行為的規範——為存量程式碼提供低摩擦的入口匝道, 據報導規範對程式碼的壓縮比約為 5–10×。
從代理對話中恢復意圖
CodeSpeak 的 Intent Studio 從先前的代理對話中擷取需求—— 收穫你已經表達過的意圖,而不是讓你從一張白紙開始撰寫 規範。
功能對比。
兩者下的是不同的賭注,所以這張表對比的是理念與機制,而非勝負。
| 能力 | CodeSpeak | SpecScore |
|---|---|---|
| 事實來源 | 規範(編譯輸入) | 規範是契約;程式碼是交付物 |
| 產生的程式碼 | 由 LLM 產出,非手工維護 | 你和你的代理編寫並擁有程式碼 |
| 規範格式 | 純英文,由 CodeSpeak 定義 | 開放的 Markdown + YAML 標準,已發布 schema |
| 規範 → 程式碼 | 核心功能(專有 LLM 編譯器) | 不在範圍內 — 由任意代理實現 |
| 脫離廠商仍可用 | 規範需經 CodeSpeak 編譯 | 可以 — 規範適用於任意代理,或不用代理 |
| 規範 linting | 無文件說明 | 內容品質 — 模糊動詞、缺失驗收標準、懸空引用 |
| 程式碼到規範的可追溯性 | 透過重新產生 | specscore: 註解 + Verifies: 尾註 |
| 確定性 | LLM 編譯(非確定性) | 確定性的 CLI 查詢;程式碼照常編寫 |
| 程式碼 → 規範 | codespeak takeover | survey + 撰寫 |
| 開放性 | 專有系統 | 開放 — CC BY 4.0 格式,MIT / Apache-2.0 工具 |
| 階段 | Alpha 預覽 | 已發布 |
SpecScore 的不同之處。
你保留你的程式碼
CodeSpeak 產生並重新產生實現;程式碼是一種輸出,而非一項資產。 SpecScore 把程式碼留在它該在的地方——在你手中、用你的語言、 可逐行審查。規範在不帶走程式碼的前提下,增添清晰度 和可追溯性。
你的規範是可攜的
一份 CodeSpeak 規範之所以有價值,是因為 CodeSpeak 編譯它。一份 SpecScore 規範本身就有價值——它是結構良好的 Markdown,任何 代理都能讀取,而且即便完全沒有安裝任何 SpecScore 工具,它依然有用。 用任意工具採用它,或不用工具。隨時離開。
歧義在產生代價之前被捕捉
使用 LLM 編譯器時,一份有歧義的規範會在構建時變成錯誤的程式碼。 SpecScore 的 lint 會在代理據此行動之前, 浮現出模糊動詞、缺失的驗收標準和懸空引用。
$ specscore lint checkout/apply-discount.md ✗ R3 no acceptance criteria ✗ verb "handle gracefully" — unmeasurable
確定性與可追溯性
CodeSpeak 對「哪些程式碼實現了這個?」的回答是「全部,重新產生」。 SpecScore 的回答是一個具體的檔案和行號,透過specscore code refs 和 Verifies: 提交 尾註——確定性、可稽核、可 diff。
結構化的產物圖譜
CodeSpeak 的單元是一份散文形式的規範檔案。SpecScore 擁有具型別的 階層結構——Idea 晉升為 Feature,Feature 攜帶帶 ID 的 Requirement 和 Acceptance Criteria,Plan 引用 AC,Task 引用 Plan—— 所有這些都可機器導覽。
構建路徑中沒有廠商
SpecScore 是單一 Go 二進位檔案。Lint 在 CI 和 pre-commit 鉤子中執行, 無需帳號、無需服務呼叫、構建中沒有 LLM 往返。
何時使用哪一個。
以下場景適合使用 CodeSpeak……
- 你想停止維護程式碼,讓規範成為原始碼。
- 你樂於為那份槓桿而依賴某廠商的編譯器。
- 你想把一個現有程式碼庫壓縮成一份短得多的規範。
以下場景適合使用 SpecScore……
- 你想要比任何單一工具都更長久的規範——在構造上即可攜。
- 你想保留你的程式碼,用你的語言,可審查、可擁有。
- 你需要規範品質的強制執行——lint 儘早捕捉歧義。
- 你需要確定性的程式碼到規範可追溯性。
- 你想要構建路徑中沒有廠商、沒有 LLM 往返。
兩種不同的賭注。
CodeSpeak 押注於編譯器:把規範交給它,並信任它產出 並重現程式碼。SpecScore 押注於格式:讓規範保持開放 且可攜,讓程式碼歸你所有,並讓任何代理基於它工作。
一方以可攜性換取槓桿。另一方讓你保持自由——而且可 lint。
回饋
本對比基於公開文件與原始碼。發現不準確或過時的資訊?請 提交勘誤 issue. 希望我們將 SpecScore 與其他工具對比?請 提交請求.