一文讀懂 OpenSpec:AI 時代的“規(guī)格驅動”開發(fā)利器

一、為什么我們需要 OpenSpec?

隨著 AI 輔助編程工具被越來越廣泛地使用,開發(fā)者們遇到了一個難以回避的痛點:AI 能看懂代碼的語法和邏輯(當下存在的結果),卻無法憑空猜出這些代碼背后的“前世今生”(早期的業(yè)務考量與架構決策)。

當你在對話框里輸入一行指令時,AI 看到的是存量的源代碼和類型定義。然而,這段邏輯當初為什么要這么設計?有哪些邊界條件是必須繞過的坑?未來的架構演進方向是什么?這些隱藏在開發(fā)者大腦或碎片化文檔中的“軟上下文(Soft Context)”,是 AI 的盲區(qū)。

OpenSpec 這一開源框架正是為了打通這種“信息斷層”而誕生的。它不單是一套目錄規(guī)范,更是幫助 AI 搞懂項目背景的“意圖翻譯器”。通過一組簡單的斜杠命令(Slash Commands),OpenSpec 能把你和 AI 的協(xié)作從“直接隨性地生成代碼”升級為“規(guī)格驅動開發(fā)”(Spec-Driven Development)。這也意味著,在生成代碼前,AI 就已經(jīng)徹底搞懂了你的需求背景與技術底線。

二、OpenSpec 與 AI Skills 的比較

OpenSpecAI Skills (Agent Skills) 都是為了解決 AI 編程時代“如何讓 AI 更可靠地參與開發(fā)”的問題,但它們解決的問題完全不同,屬于兩個層級的體系。

簡單一句話總結:

  • OpenSpec = 規(guī)范開發(fā)流程(Specification Driven Development)
  • AI Skills = 為 AI Agent 提供可復用能力(Agent Capability Extension)

核心定位對比

維度 OpenSpec AI Skills
本質 開發(fā)流程框架 AI 能力擴展機制
作用 規(guī)范軟件開發(fā)流程 讓 AI 具備某種能力
解決問題 AI 不理解需求上下文 AI 不會做某件事情
作用層級 開發(fā)流程層 能力擴展層
主要對象 項目需求與規(guī)格 AI Agent
使用場景 讓 AI 深度參與軟件研發(fā) 讓 AI 執(zhí)行特定的工具任務

三、AI 規(guī)格驅動工具:GitHub Spec Kit vs. Fission-AI OpenSpec

在“規(guī)格驅動開發(fā)(SDD)”領域,目前有兩個備受關注的開源利器,它們雖然目標一致,但設計哲學各有千秋:

  • GitHub Spec Kit:由 GitHub 團隊推出,帶有濃厚的“企業(yè)級”基因。它強調嚴格的四階段驗證流(Specify → Plan → Tasks → Implement),并引入了獨特的“憲法文件(Constitution)”來約束 AI 的行為。它更像是嚴謹?shù)募軜嫀?,適合Greenfield 項目(從零開始的新項目)。
  • Fission-AI OpenSpec:則更像是一位敏捷的實戰(zhàn)派。它主張“變革隔離(Change Isolation)”,為每一個小的功能變更創(chuàng)建獨立的目錄,避免上下文污染;同時它的工作流更加輕量、靈活,非常適合在Brownfield 項目(已有存量代碼的項目)中進行增量開發(fā)。

OpenSpec 的優(yōu)勢在于:只為新的 Change 建立規(guī)格。也就是說:

  • 舊系統(tǒng) = 保持不動
  • 新功能 = 用 Spec 管理

隨著時間推移,Spec 會逐漸積累,最終形成完整的系統(tǒng)知識庫。這就是 OpenSpec 的核心設計哲學。本文將重點介紹 Fission-AI OpenSpec,探索它如何通過簡潔的指令流,在現(xiàn)有代碼庫中釋放 AI 的最大潛力。

四、OpenSpec 快速入門

# Node.js >= 20.19.0(必須,用于支持最新的文件系統(tǒng) API)
npm install -g @fission-ai/openspec@latest

然后導航到你的項目目錄并初始化:

cd your-project
openspec init

執(zhí)行 openspec init 命令后,根據(jù)提示選擇你常用的 AI 工具(例如 Claude Code、Cursor、Antigravity 等),選擇完成后按回車確認,最后重啟 IDE 使配置生效。

五、OpenSpec 核心目錄結構

openspec/
├── config.yaml          # 全局 CLI 配置文件
├── specs/               # 存放已同步的主規(guī)范文件
└── changes/             # 存放所有的變更(Changes)
    ├── archive/         # 已歸檔的變更目錄
    └── add-order-list-page/  # 當前正在進行的變更(新增訂單列表頁面)
        ├── proposal.md  # 變更提案(動機、變更內容、核心能力等)
        ├── design.md    # 技術設計文檔(架構決策、風險等)
        ├── tasks.md     # 任務清單(待辦事項列表)
        └── specs/       # 該變更相關的增量規(guī)范(Delta Specs)
            └── order-list-page/
                └── spec.md  # 訂單列表頁面的詳細功能規(guī)格

六、落地指南:業(yè)務需求如何轉化為 OpenSpec?

將現(xiàn)實中的業(yè)務需求翻譯成 AI 可理解的“規(guī)格”,是使用 OpenSpec 的關鍵所在。這不僅僅是把文字填進 Markdown,而是一次“需求工程”的提煉過程。

1. Change 拆分(Change Decomposition)

大需求不應畢其功于一役。為了讓 AI 的注意力保持集中,應當把大需求拆分為多個 Change,每個 Change 應遵循以下原則進行拆分:

  • 單一能力原則:每個 Change 只解決一個核心業(yè)務點,避免“套餐式”更新導致邏輯耦合。
  • 功能邊界清晰:明確定義“做什么”以及“不做什么”,防止 AI 在自動編碼時改動無關文件。
  • 領域驅動隔離:按業(yè)務領域(如用戶、訂單、支付)劃分 Change 集合。因為 Change 最終會通過 Sync 機制合并到主規(guī)格庫,只有源頭 Change 的邊界清晰,才能保證最終匯總的 openspec/specs/ 知識庫不會變成一團亂麻。

2. 需求轉化核心步驟(The Transformation Flow)

在每個拆分好的 Change 中,需求轉化為代碼的核心工作流如下:

階段一:需求 → Proposal

第一步不是寫 Spec,而是寫 Proposal。Proposal 需要說明:

  • 為什么要做這個功能
  • 解決什么問題
  • 影響哪些模塊
  • 是否有替代方案

?? Proposal 的本質是:記錄架構決策。

階段二:Proposal → Design

Design 描述技術實現(xiàn)思路,例如:

  • API 設計
  • 數(shù)據(jù)結構
  • 架構調整
  • 風險分析

?? Design 解決的問題是:系統(tǒng)要怎么實現(xiàn)這個需求。

階段三:Design → Tasks

Tasks 將設計拆分為具體任務,例如:

  • 新增導出 API
  • 新增導出按鈕
  • 新增文件下載邏輯
  • 新增權限校驗

?? Tasks 是 AI 生成代碼的主要依據(jù)。

3. 規(guī)格顆粒度控制(Spec Granularity)

Specs 是開發(fā)者與 AI 之間的“契約”。顆粒度的把握直接影響代碼質量:

  • 拒絕信息過載:不要在 Spec 中事無巨細地復述已有的代碼邏輯。AI 的長處是理解上下文,你應該只提供它無法通過直接閱讀源碼獲取的增量信息。
  • 補充關鍵盲區(qū):如果設計稿未出或接口文檔殘留,應在 Spec 中明確標注占位規(guī)則或 Mock 約定。
  • 動態(tài)迭代優(yōu)化:OpenSpec 允許在開發(fā)過程中不斷修正 Spec。如果發(fā)現(xiàn) AI 理解有偏差,應在 changes/xxx/specs/ 下補充細節(jié),然后再次執(zhí)行 /opsx:apply 進行增量修正。

七、工作流:從“標準”到“進階”

OpenSpec 提供了靈活的配置方案。通過 openspec config profile 命令,你可以在標準(Minimum)全量(Full)工作流之間切換。

1. 標準工作流:追求極致效率 (Fast Track)

適合需求明確、邏輯簡單的任務。這是默認的“快車道”,只需三個關鍵動作即可完成閉環(huán)。

指令 核心作用 執(zhí)行時機
/opsx:propose 一鍵初始化。自動創(chuàng)建目錄、編寫提案、規(guī)格、設計及任務列表。 明確需求,準備開始編碼。
/opsx:apply 自動化執(zhí)行。AI 會按任務列表逐一修改代碼并運行測試。 規(guī)劃文件生成后,開始實現(xiàn)。
/opsx:archive 閉環(huán)收尾。歸檔變更并將本次邏輯同步至主規(guī)格庫。 代碼驗證無誤,合并成果。
/opsx:explore 頭腦風暴。不產(chǎn)生文件,僅與 AI 討論方案。 可選。正式啟動前的設計調研。

2. 精細工作流:深度掌控質量 (Control Mode)

對于涉及核心業(yè)務邏輯、跨模塊修改或高風險任務,建議開啟全量模式。

擴展指令 核心作用
/opsx:new 手動起手。僅創(chuàng)建變更目錄,不生成具體文檔,由開發(fā)手動控制節(jié)奏。
/opsx:continue 步進式生成。一次只生成一個規(guī)劃件(如提案),等人類評審修改后再進行下一步。
/opsx:ff 補全快進。在修改了部分文檔(如修改了提案)后,讓 AI 補完剩下的規(guī)格和任務。
/opsx:verify 二次校對。在歸檔前對照規(guī)格書(Specs)檢查實現(xiàn)是否有錯漏。
/opsx:sync 增量同步。在長周期任務中,隨時將已確定的邏輯同步到主庫,以便其他變更參考。
/opsx:onboard 新手引導。帶你用一個微型任務走一遍完整流程的交互式教程。

八、進階:規(guī)格的“自我生長”與迭代

很多開發(fā)者關心:“下次迭代已存在的功能時,AI 會參考之前的設計嗎?”

答案是:會,但這依賴于 OpenSpec 的 Sync(同步)機制。

  1. 物理傳承而非記憶/opsx:sync 會將當前 Change 中的 Delta Specs 合并到 openspec/specs/ 主規(guī)格庫,使后續(xù)變更可以參考這些已有規(guī)格。
  2. 增量設計:再次迭代同一功能時,AI 會先掃描主規(guī)格庫,識別出已有的“項目憲法”,在新的方案中明確說明:“基于現(xiàn)有 order-list-page/spec.md,我們將新增...”。
  3. 價值積累:你每一次歸檔,都是在給 AI “喂”項目知識。隨著項目迭代,AI 會越來越懂你的業(yè)務邏輯和設計規(guī)范。

九、核心避坑與進階技巧

1. 規(guī)范同步:別讓 AI 變成“斷網(wǎng)式”協(xié)作

關鍵提醒:在執(zhí)行 /opsx:archive 時,并非所有 AI 工具都會自動觸發(fā)增量規(guī)范(Delta Spec)的同步。

為了確保你的架構決策能被永久記錄并傳承給下一次迭代,強烈建議在歸檔前手動執(zhí)行 /opsx:sync。

2. 精準選擇:/opsx:propose vs. /opsx:ff

兩者分別對應了開發(fā)者對 AI 信任度的兩種狀態(tài):

模式 指令 邏輯比喻 適用場景
全自動 /opsx:propose 直線沖刺:從 0 到 100,一氣呵成。 需求明確、路徑標準的任務(如:增加一個工具函數(shù))。
半自動 /opsx:ff 中場加油:在 N 處停下微調,再快進到 100。 邏輯復雜、需要人類介入設計決策的任務(如:重構核心業(yè)務邏輯)。
  • Propose 細節(jié):AI 會從創(chuàng)建文件夾、寫提案到任務拆解全部包辦。
  • FF 細節(jié):先執(zhí)行 /opsx:new 創(chuàng)建空變更,接著運行 /opsx:continue 讓 AI 生成初步的 proposal.md。在你手動修改并確認核心方案無誤后,再用 /opsx:ff 讓 AI 補完剩下的規(guī)格和技術實現(xiàn)細節(jié)。

3. 多任務管理與靈活性

  • 多任務并存:OpenSpec 支持同時開啟多個變更(Change),但同一時刻只有一個“當前激活”狀態(tài)。
  • 靈活切換:想新增任務用 /opsx:new;想續(xù)接之前的任務,直接輸入 /opsx:continue <change-name>。
  • 動態(tài)調整:即使已經(jīng)進入編碼階段,你依然可以修改任何規(guī)劃件(如 tasks.md),修改完成后再次運行 /opsx:apply,AI 會自動識別差異并更新實現(xiàn)。

十、結語

在這個 AI 編程效率百倍提升的時代,比“寫得快”更重要的,是“控得住”。OpenSpec 提供的規(guī)格驅動流程,正是我們從“AI 編碼”邁向“AI 研發(fā)管理”的關鍵一環(huán)。本文內容僅代表個人觀點,不足之處,敬請諒解。

參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容