dev-flow

👤 user_8e4c5a5c 📦 v3.0.0 ⭐ 4.5 ⬇️ 406 下載
💻 開發程式設計 免費

📖 技能介紹


name: dev-flow version: 3.0.0 updated: 2026-05-16 user-invocable: true description: | 開發流程引擎——將非平凡開發任務路由到 7 條標準化流程,強制執行工程紀律(先規劃後編碼、TDD、逐任務審查、文件同步、進度持久化),覆蓋從評估到上線的完整生命週期。 適用於:多檔案功能開發、bug修復、重構、依賴升級、緊急熱修復、跨會話任務。 當用戶描述一個非平凡開發任務時,主動建議使用——在任何程式碼編寫之前。 triggers: - dev-flow - 開發流程 - 開發工作流 - which workflow - how should I structure - new feature workflow - bug fix process - refactor process - emergency fix - dependency upgrade process - 新增功能 - 修復bug - 重構 - 緊急修復 - 依賴升級 allowed-tools: - Bash - Read - Write - Edit - Grep - Glob - AskUserQuestion - Skill - Task - TodoWrite


dev-flow

工程原則

六條鐵律,適用於所有流程:

  1. 無計劃不編碼 — 動手前必須有書面方案(設計文件、實施計劃、或 markdown 步驟清單)
  2. 無測試不改碼 — 修改程式碼前必須有測試覆蓋:新功能先寫失敗測試,bug 先寫復現測試
  3. 無審查不釋出 — 程式碼變更必須經過審查(工具審查或自查 diff),不能跳過
  4. 無根因不修復 — bug 修復前必須定位根因,禁止猜測試探
  5. 無安全網不重構 — 重構前必須有測試覆蓋,小步推進,每步可獨立驗證
  6. 改了程式碼必須改文件 — 文件落後於程式碼 = 技術債務

階段自檢

完成任何階段後,確認以下三項:

  • 做了什麼: 一句話描述當前階段的產出
  • 下一步是什麼: 明確下一個階段
  • 有無跳過: 如跳過了某個步驟,說明原因("覺得沒必要" 不是正當理由)

場景引導

收到任務後,按以下決策鏈選擇流程:

1. 會改程式碼嗎?
   ├── 不會 → 純評估/分析/調研 → 流程E
   └── 會 →
       2. 是生產緊急問題嗎?(線上掛了、大面積受影響)
          ├── 是 → 流程F
          └── 否 →
               3. 是依賴/框架升級嗎?
                  ├── 是 → 流程G
                  └── 否 →
                       4. 現有功能有正確行為可參考嗎?
                          ├── 有,但它壞了 → 流程B
                          ├── 有,但要推倒重來 → 流程C
                          ├── 有,但要調整內部實現(行為不變)→ 流程D
                          ├── 沒有,這是全新的 → 流程A
                          └── 無法判斷 → 用邊界判定表分析模糊點,輸出分析後詢問使用者確認

邊界判定:

易混淆 區分標準
Bug vs 重做 預期行為已定義但產出不對 → Bug;預期行為本身要改 → 重做
重構 vs 重做 外部介面不變 → 重構;介面/契約變化 → 重做
重構 vs 新功能 不改變使用者可見行為 → 重構;使用者有新能力 → 新功能
評估 vs 重構 只看不摸 → 評估;動手改 → 重構
評估 vs 新功能 回答"要不要做" → 評估;直接開始做 → 新功能
Bug vs 緊急修復 非緊急可走完整TDD → Bug;線上掛了需立刻修 → 緊急修復
升級 vs 重構 只改版本號不改程式碼 → 升級;改動內部實現 → 重構

一句話速判:

不知道要不要做 → E · 線上掛了 → F · 它壞了 → B · 它沒錯但要翻新 → C · 它沒錯但要更好 → D · 全新 → A · 升級依賴 → G

場景路由

場景 典型關鍵詞 走哪個流程
新功能 "新增"、"開發"、"實現"、"新增" 流程A: 新功能開發
Bug修復 "修復"、"報錯"、"bug"、"壞了" 流程B: Bug修復
功能重做 "重做"、"重寫"、"翻新"XX模組 流程C: 功能重做
最佳化重構 "最佳化"、"重構"、"改進"XX模組 流程D: 模組最佳化重構
功能評估 "評估"、"分析"、"調研"、"是否值得"、"可行性" 流程E: 功能評估
緊急修復 "緊急"、"線上"、"hotfix"、"掛了"、"崩了" 流程F: 緊急修復
依賴升級 "升級"、"更新版本"、"依賴" 流程G: 依賴升級

不適用: 單行修復、改配置、改文案 — 直接改即可。

流程定義

流程定義檔案按需載入。根據場景引導選定流程後,讀取對應檔案執行:

流程 檔案 觸發場景
A: 新功能開發 flows/A.md 全新功能
B: Bug修復 flows/B.md 現有功能壞了
C: 功能重做 flows/C.md 推翻重寫
D: 模組最佳化重構 flows/D.md 內部最佳化,行為不變
E: 功能評估 flows/E.md 只分析不改程式碼
F: 緊急修復 flows/F.md 線上掛了
G: 依賴升級 flows/G.md 版本升級

載入方式: 用 Read 工具讀取對應檔案路徑(如 flows/A.md),然後按其步驟執行。

可選工具套件

三個工具套件可以加速流程,但不是硬依賴。下方流程步驟中每個外部技能都有"如可用/否則"雙路徑。

技能名稱約定: 帶 / 字首的是 slash 命令(gstack),不帶字首的是技能名(Superpowers)。兩者都通過 Skill 工具呼叫。

如何判斷工具是否可用: 嘗試呼叫技能(通過 Skill 工具)。如果技能不存在,執行"否則"路徑。

工具套件 技能名 不可用時
gstack /plan-eng-review, /review, /investigate, /ship, /document-release, /office-hours, /plan-ceo-review, /freeze 見各流程步驟中的"否則"路徑
Superpowers writing-plans, executing-plans, subagent-driven-development, requesting-code-review, test-driven-development 見各流程步驟中的"否則"路徑
planning-with-files planning-with-files-zh 手工建立和維護 task_plan.md(帶核取方塊)、progress.md(進度記錄)、findings.md(發現記錄)

自動安裝依賴套件: 當流程中反覆命中"否則"路徑時,按以下流程處理:

  1. 檢測: 用 Bash 檢查技能是否存在
  2. 詢問: 向用戶確認是否安裝(僅首次詢問)
  3. 安裝: 使用者確認後執行對應命令
  4. 驗證: 再次檢測確認安裝成功

路徑約定: 所有檢測和安裝統一使用 SKILLS_DIR 變數,優先 ~/.qoder/skills(如存在),否則 ~/.claude/skills

安裝命令:

套件 檢測命令 安裝命令
gstack SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills); test -d "$SKILLS_DIR/gstack" && echo "ok" 見下方指令碼
Superpowers SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills); for s in writing-plans executing-plans subagent-driven-development requesting-code-review test-driven-development; do test -e "$SKILLS_DIR/$s" || { echo "missing: $s"; exit 1; }; done && echo "ok" 見下方指令碼
planning-with-files SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills); test -e "$SKILLS_DIR/planning-with-files-zh" && echo "ok" 見下方指令碼

gstack 自動安裝:

SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills) && if [ -d "$SKILLS_DIR/gstack" ]; then cd "$SKILLS_DIR/gstack" && git pull && bash ./setup; else git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git "$SKILLS_DIR/gstack" && cd "$SKILLS_DIR/gstack" && bash ./setup; fi

Superpowers 自動安裝(從外掛快取連結到 skills 目錄):

SUPERPOWERS_SRC=$(find ~/.claude/plugins/cache -path "*/superpowers/*/skills" -type d 2>/dev/null | sort -V | tail -1) && if [ -z "$SUPERPOWERS_SRC" ]; then echo "ERROR: Superpowers plugin not found in cache. Install the plugin in Claude Code first."; exit 1; fi && SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills) && for skill in "$SUPERPOWERS_SRC"/*/; do name=$(basename "$skill"); ln -sfn "$skill" "$SKILLS_DIR/$name"; done && echo "Superpowers installed: $(ls "$SKILLS_DIR" | grep -cE 'writing-plans|executing-plans|subagent-driven|requesting-code|test-driven') skills linked"

planning-with-files 自動安裝(從外掛快取連結):

PWF_SRC=$(find ~/.claude/plugins/cache -path "*planning-with-files*/planning-with-files-zh" -type d 2>/dev/null | sort -V | tail -1) && if [ -z "$PWF_SRC" ]; then echo "ERROR: planning-with-files plugin not found in cache. Install the plugin in Claude Code first."; exit 1; fi && SKILLS_DIR=$(test -d ~/.qoder/skills && echo ~/.qoder/skills || echo ~/.claude/skills) && ln -sfn "$PWF_SRC" "$SKILLS_DIR/planning-with-files-zh" && echo "planning-with-files-zh installed"

如果使用者明確表示不需要某個套件,後續不再提示。


流程入口前置檢查

啟動任何流程前,先確認以下事項(所有流程通用):

  • [ ] 已在專案 Git 倉庫根目錄
  • [ ] 依賴已安裝(npm install / pip install / 等),無安裝錯誤
  • [ ] 測試套件基線已通過(記錄當前測試狀態,作為迴歸基準)

    這個技能的最新版本可以在7w4.net小蔥技能站找到。

  • [ ] 已讀取專案 CLAUDE.md / CONTRIBUTING.md / README(如有)

如任一項不滿足,先修復再進入流程。


子代理使用判斷

走"否則"路徑(無 Superpowers 的 subagent-driven-development / executing-plans)時,按以下標準決定是否用 Task 子代理:

場景 用 Task 子代理 自己做
多檔案、多步驟實現 每個獨立模組派一個子代理並行
單檔案、單步驟實現 直接編碼
程式碼審查 code-reviewer 子代理
探索/搜尋程式碼庫 explore-agent 子代理 目標明確的單次搜尋
除錯調查 自己逐步排查

並行條件:2+ 個子任務彼此無共享狀態、無順序依賴。否則序列。


測試隔離規則

技能測試或子代理實驗禁止在主工作區執行,必須用 git worktree 隔離:

git worktree add /tmp/task-test -b test/task-name
# 子代理在 /tmp/task-test 裡操作
git worktree remove /tmp/task-test --force
git branch -D test/task-name

持久化規則(強制)

有 planning-with-files 用其技能(如可用: planning-with-files-zh),否則手工維護這些檔案。

時機 操作
會話開始 檢查 task_plan.md 是否存在,讀取當前進度
每完成一個 Task 更新 task_plan.md(打勾)+ progress.md(記錄)
發現關鍵資訊 寫入 findings.md
上下文即將耗盡時 必須先更新 progress.md,然後開啟新會話,新會話從 progress.md 恢復

檔案格式(走"否則"路徑時手工建立,放在專案根目錄):

task_plan.md:

# 任務計劃:[任務標題]

- [ ] 步驟1:[描述]
- [ ] 步驟2:[描述]
- [x] 步驟3:[描述] ← 完成後打勾

progress.md:

# 進度記錄

## [日期] 會話 N
- 完成了:[描述]
- 當前狀態:[在步驟 X / 已完成]
- 下一步:[描述]
- 阻塞項:[無 / 描述]

findings.md:

# 發現記錄

## [主題]
- **日期**:YYYY-MM-DD
- **發現**:[內容]
- **證據**:[檔案路徑 / 程式碼行 / 資料]
- **影響**:[描述]
- **建議**:[描述]

檔案位置與 Git 策略:

檔案 存放位置 是否提交 Git
task_plan.md Git 倉庫根目錄 不提交(本地臨時任務追蹤)
progress.md Git 倉庫根目錄 不提交(本地臨時進度記錄)
findings.md Git 倉庫根目錄 建議提交(跨會話的長期知識積累)

文件更新規則

程式碼變更後必須確保專案文件與程式碼一致。各流程步驟表中已標註"更新文件"步驟及對應工具。通用原則:改了什麼,就更新對應的描述文件。文件落後於程式碼 = 技術債務。

版本號

手工釋出時(/ship 不可用):

  • 按語義版本規則 bump 版本號(通常改 VERSION 檔案、package.json 或等效位置)
  • 在 CHANGELOG 中記錄本次變更
  • 版本號和 CHANGELOG 應包含在同一個 commit 中

禁止事項

  • 無書面計劃直接編碼
  • 修改程式碼前不寫測試
  • 上下文耗盡前不更新 progress.md
  • 定位根因之前修改程式碼
  • 跳過審查直接釋出
  • 重構時無測試安全網
  • 技能測試/子代理實驗在主工作區執行

常見錯誤與 Red Flags

反模式 後果 正確做法
"這個bug很簡單,直接改" 治標不治本、引入新bug 先定位根因(如可用 /investigate,否則手工排查),寫復現測試
"重構順手加個功能" 混雜變更、難以審查 重構和新功能必須分開走不同流程
"測試後面再補" TDD 被反轉 先寫失敗測試 → 實現 → 通過
"舊程式碼我大概懂了" 破壞呼叫方 必須列出所有呼叫方和介面簽名
"跳過審查直接釋出" 缺少審查 審查是強制步驟,不能只在腦中過一遍
"線上緊急,先改了再說" 事後永遠不補 走流程F,事後必補測試
"升級應該沒風險" 引入相容性故障 先讀 CHANGELOG,必須有回滾方案
跳過架構審查直接寫程式碼 方案錯誤 新功能必走架構審查(如可用 /plan-eng-review,否則手寫設計文件)
不更新 progress.md 會話中斷後丟失進度 每次變更後更新

異常處理

情況 處理方式
步驟執行失敗 停止當前步驟,記錄失敗原因到 findings.md,不要跳過繼續
同一問題修復失敗 3 次 停止,寫入 findings.md,向用戶彙報。可能是架構問題,考慮升級為流程C。跨會話計數:每次失敗記錄到 progress.md(失敗次數: N/3),新會話從 progress.md 讀取繼續計數
測試套件無法通過 不釋出。修復測試或修復程式碼,二選一,不允許跳過測試
發現計劃有遺漏 回到規劃階段補充,不要邊寫邊改計劃
上下文即將耗盡 立即更新 progress.md → 開啟新會話 → 從 progress.md 恢復
流程執行中途發現走錯流程 停止當前流程,記錄已完成的步驟,切換到正確流程重新開始
複合任務(涉及多個流程) 按優先順序拆解為獨立子任務,依次執行。優先順序:流程F(緊急)> 流程B(bug)> 流程G(升級)> 流程D(重構)> 流程A(新功能)。每個子任務獨立走完完整流程,不交叉執行

🤖 AI 評測

這個 Skill 質量不錯,結構清晰、文件完善,流程設計很專業。它能幫你把開發任務分類並走標準流程,避免常見的工程錯誤。優點是規則明確、工具鏈完整,缺點是對小任務來說有點複雜,部分場景的適用性還需要實際驗證。整體上是一個可靠的開發流程工具。

📊 多維度評分

適應性4.7
規範性4.3
有效性4.7
可靠性4.3
可信度4.8

📁 包含檔案 (11 個)

📄 CHANGELOG.md 1.4 KB
📄 README.md 2.6 KB
📄 SKILL.md 14.7 KB
📄 docs/2026-05-16-dev-flow-improvements.md 38.1 KB
📄 flows/A.md 2.2 KB
📄 flows/B.md 1.8 KB
📄 flows/C.md 2.5 KB
📄 flows/D.md 1.8 KB
📄 flows/E.md 1.9 KB
📄 flows/F.md 1.6 KB
📄 flows/G.md 2.1 KB