delivery-harness:給 Claude Code 的交付 pipeline
原始碼:https://github.com/NatChung/delivery-harness
做什麼
delivery-harness 是一套給 Claude Code 用的 agent-native 交付 pipeline:skills + 狀態機引擎,帶一張功能需求或 bug 走完從 intake 到 done 的完整軌道。
三塊承重結構支撐這條 pipeline:
- ticket 是唯一真相來源。 每張需求或 bug 是一個 markdown 檔(
docs/features/<NNN>-<slug>/ticket.md),frontmatter 持有目前 phase 和驗收條件,body 累積 gate 紀錄與 phase 變更歷史。agent 每次先讀 ticket 再動作——跨 session、跨機器都能從上次中斷的地方接續。 - CLI 是被強制執行的狀態機。
scripts/feature/cli.py的new/status/advance/lint是唯一能改 ticket phase 的途徑。advance拒絕不合法的跳轉並印出合法集合——規則活在 code 裡,不是 agent 能說服自己繞過的 prompt。 - skills 是懂 phase 的進入點。
/feature、/bug、/orchestrator各帶一張 ticket 走完對應軌道,並把「先讀 ticket、code graph 先摸結構、產出物過 fresh-context review」這些操作紀律編進 skill 本身。
目前有四條交付軌道:full(含 UI prototype)、lite(無 prototype)、bug、spike。
為什麼這樣做
即興發揮的 agent 有三個慢性問題:狀態只活在對話裡(跨 session 就失憶)、不留「為什麼這樣做」的紀錄、也沒有東西攔著它跳過關鍵步驟。
核心答案是把工作流狀態從模型的記憶裡搬到磁碟上。ticket 是狀態的載體,CLI 是強制執行的邊界——不是靠 prompt 叫 agent 自律,而是讓不合法的轉移在程式層就被拒絕。這樣同一張 ticket 可以跨 session、跨機器接續,每次 phase 變更都留有紀錄,AC 也在實作前寫定而不是事後補。
各 phase 的實作沿用 superpowers 的通用開發 skills;delivery-harness 加的是把它們串成一條有狀態機、ticket、prototype-first 自訂階段與平行編排的交付 pipeline。superpowers 是必要依賴,安裝流程自動檢查並協助安裝。
怎麼用·repo 導覽
安裝見 INSTALL.md(三步驟 fork 指南)。就緒後建一張新需求:
python3 scripts/feature/cli.py new my-feature --track full
# 在 Claude Code 裡:
/feature
repo 結構:
| 路徑 | 用途 |
|---|---|
skills/feature/ | /feature skill — full / lite / spike 軌道 |
skills/bug/ | /bug skill — bug 軌道 |
skills/orchestrator/ | /orchestrator — 平行多 CR 協調 |
scripts/feature/cli.py | 狀態機 CLI |
scripts/orch/wt.sh | 平行 worktree 管理 |
config/pipeline.config.example | codebase 對照表模板 |
hooks/settings.snippet.json | 併入 .claude/settings.json |
docs/ | 完整 spec 與設計文件 |
平行編排:/orchestrator 為每張 in-flight CR 派背景 subagent,由 wt.sh 給每個並行 implement 一個隔離的 worktree——讓你在人類的時間尺度上提問、決策、委派,背景 agent 去做緩慢的實作。