← 返回部落格
·5 min 閱讀·技術筆記

SpecFlow,讓 Agent 開發變成可控流程

SpecFlowAgentClaude Code開發流程自動化

概述

最近這一年,我開始大量使用 AI(目前主要用 Claude Code)來寫程式碼。

老實說,現在我幾乎已經不太親自下去寫 code 了。

在工作上的 task 通常都比較小:

  • 下 prompt
  • 看結果
  • 確認有沒有符合預期

但當我開始做 side project(從 0 到 1) 的時候,事情就完全不一樣了。

你會需要:

  • 訂 spec
  • 做 UI 設計
  • 設計資料結構
  • 測試功能
  • Review 成千上萬行 code

問題是:

人類的 review 速度,根本追不上 AI 的產出速度

於是我開始思考一件事:

有沒有可能讓 AI 不只是寫 code,而是「幫我完成整個開發流程」?

開發發想

一開始在做 side project 時,我也試過一些 spec-driven 工具,例如:

  • openspec
  • get-shit-done

但都會遇到一個狀況就是:

手動的東西實在太多了

每個開發階段都要驗證 AI 的產出,get-shit-done 光是一個 phase 我就需要手動給指令 3 次,我根本不想做這些,結果最後是好的就好了,但我又不能不驗證,怎麼辦呢?

好像可以請另外一個 agent 來幫我 QA 測 e2e 跟瀏覽器交互的狀況,並在測出問題時可以回報給開發 agent 處理。

有個大概輪廓了,於是就開始設計開發流程。

設計

在最初期我覺得至少要有這些角色:

  • PM:用來跟我確認要開發什麼專案,大致的方向是如何
  • UI Designer:設計產品的設計語言,讓後續前端開發的產出視覺上保持一致性
  • Tech Lead:負責規劃產品開發,要把太大的 task 切成多個 sub task,分散下去做
  • Engineer:就碼農
  • QA:負責驗證 engineer 的產出是否有符合預期

參考 openspec 的做法,我選擇把 spec 存在 repo 中,讓所有 agent 以 GitHub 作為協作中心:

  • spec → 定義要做的事情
  • issue → 任務分配
  • comment → agent 溝通
  • PR → 結果驗證

流程大致如下:

  1. PM 定義需求 → 撰寫 spec
  2. Tech Lead 拆解 feature → 建立 issue
  3. Engineer 根據 issue 開發
  4. QA 同步設計測試項目
  5. Engineer 完成後 → QA 開始測試
  6. QA 發現問題 → 開 bug issue
  7. Engineer 修復
Loading diagram...

為什麼用 GitHub?

除了 workflow 清楚之外,還有幾個額外好處:

  • 可以透過 API 做可視化管理
  • 可以串接 auto review(例如 OpenAI Codex 類型工具)
  • 所有紀錄都是 persistent,可追蹤
  • 整體的可靠性變高

使用心得

後來用這套開發了幾個專案的感想:

我需要手動介入的部分真的變少了

他會分派 agent 去平行的幫我處理任務,而這帶來了另一個好處:主要的 context 不會消耗,個別 agent 的 context 獨立。

不過需要搭配 Claude Code 新出的 auto mode 或是把 permission 全開,不然還是要常常手動按 yes 是也滿麻煩的。

未來方向

目前 SpecFlow 還在 early stage,現在部署 infra 還需要手動處理,希望可以用簡單交互的方式完成它。

專案連結:github.com/gpwork4u/specflow