AgentSkillsCN

subagent-driven-development

当您在当前会话中执行具有独立任务的实施计划时,可使用此功能。

SKILL.md
--- frontmatter
name: subagent-driven-development
description: 當在當前會話中執行具有獨立任務的實作計劃時使用

子代理驅動開發

透過為每個任務分派新的子代理來執行計劃,每個任務後進行兩階段審查:首先是規格符合性審查,然後是程式碼品質審查。

核心原則: 每個任務一個新子代理 + 兩階段審查(規格然後品質)= 高品質,快速迭代

何時使用

dot
digraph when_to_use {
    "有實作計劃?" [shape=diamond];
    "任務大多獨立?" [shape=diamond];
    "留在這個會話?" [shape=diamond];
    "subagent-driven-development" [shape=box];
    "executing-plans" [shape=box];
    "手動執行或先腦力激盪" [shape=box];

    "有實作計劃?" -> "任務大多獨立?" [label="是"];
    "有實作計劃?" -> "手動執行或先腦力激盪" [label="否"];
    "任務大多獨立?" -> "留在這個會話?" [label="是"];
    "任務大多獨立?" -> "手動執行或先腦力激盪" [label="否 - 緊密耦合"];
    "留在這個會話?" -> "subagent-driven-development" [label="是"];
    "留在這個會話?" -> "executing-plans" [label="否 - 平行會話"];
}

與執行計劃(平行會話)比較:

  • 同一會話(無上下文切換)
  • 每個任務一個新子代理(無上下文污染)
  • 每個任務後兩階段審查:首先是規格符合性,然後是程式碼品質
  • 更快的迭代(任務之間無人工介入)

流程

dot
digraph process {
    rankdir=TB;

    subgraph cluster_per_task {
        label="每個任務";
        "分派實作者子代理 (./implementer-prompt.md)" [shape=box];
        "實作者子代理有問題?" [shape=diamond];
        "回答問題,提供上下文" [shape=box];
        "實作者子代理實作、測試、提交、自我審查" [shape=box];
        "分派規格審查者子代理 (./spec-reviewer-prompt.md)" [shape=box];
        "規格審查者子代理確認程式碼符合規格?" [shape=diamond];
        "實作者子代理修復規格缺口" [shape=box];
        "分派程式碼品質審查者子代理 (./code-quality-reviewer-prompt.md)" [shape=box];
        "程式碼品質審查者子代理批准?" [shape=diamond];
        "實作者子代理修復品質問題" [shape=box];
        "在 TodoWrite 中標記任務完成" [shape=box];
    }

    "閱讀計劃,提取所有任務完整文字,記錄上下文,建立 TodoWrite" [shape=box];
    "還有更多任務?" [shape=diamond];
    "分派最終程式碼審查者子代理審查整個實作" [shape=box];
    "使用 hi-skills:finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];

    "閱讀計劃,提取所有任務完整文字,記錄上下文,建立 TodoWrite" -> "分派實作者子代理 (./implementer-prompt.md)";
    "分派實作者子代理 (./implementer-prompt.md)" -> "實作者子代理有問題?";
    "實作者子代理有問題?" -> "回答問題,提供上下文" [label="是"];
    "回答問題,提供上下文" -> "分派實作者子代理 (./implementer-prompt.md)";
    "實作者子代理有問題?" -> "實作者子代理實作、測試、提交、自我審查" [label="否"];
    "實作者子代理實作、測試、提交、自我審查" -> "分派規格審查者子代理 (./spec-reviewer-prompt.md)";
    "分派規格審查者子代理 (./spec-reviewer-prompt.md)" -> "規格審查者子代理確認程式碼符合規格?";
    "規格審查者子代理確認程式碼符合規格?" -> "實作者子代理修復規格缺口" [label="否"];
    "實作者子代理修復規格缺口" -> "分派規格審查者子代理 (./spec-reviewer-prompt.md)" [label="重新審查"];
    "規格審查者子代理確認程式碼符合規格?" -> "分派程式碼品質審查者子代理 (./code-quality-reviewer-prompt.md)" [label="是"];
    "分派程式碼品質審查者子代理 (./code-quality-reviewer-prompt.md)" -> "程式碼品質審查者子代理批准?";
    "程式碼品質審查者子代理批准?" -> "實作者子代理修復品質問題" [label="否"];
    "實作者子代理修復品質問題" -> "分派程式碼品質審查者子代理 (./code-quality-reviewer-prompt.md)" [label="重新審查"];
    "程式碼品質審查者子代理批准?" -> "在 TodoWrite 中標記任務完成" [label="是"];
    "在 TodoWrite 中標記任務完成" -> "還有更多任務?";
    "還有更多任務?" -> "分派實作者子代理 (./implementer-prompt.md)" [label="是"];
    "還有更多任務?" -> "分派最終程式碼審查者子代理審查整個實作" [label="否"];
    "分派最終程式碼審查者子代理審查整個實作" -> "使用 hi-skills:finishing-a-development-branch";
}

提示模板

  • ./implementer-prompt.md - 分派實作者子代理
  • ./spec-reviewer-prompt.md - 分派規格符合性審查者子代理
  • ./code-quality-reviewer-prompt.md - 分派程式碼品質審查者子代理

範例工作流程

code
你:我正在使用子代理驅動開發來執行這個計劃。

[讀取計劃檔案一次:docs/plans/feature-plan.md]
[提取所有 5 個任務的完整文字和上下文]
[建立包含所有任務的 TodoWrite]

任務 1:Hook 安裝腳本

[獲取任務 1 文字和上下文(已提取)]
[分派實作子代理,附完整任務文字 + 上下文]

實作者:"在我開始之前 - hook 應該安裝在用戶級別還是系統級別?"

你:"用戶級別 (~/.config/hi-skills/hooks/)"

實作者:"明白了。現在實作中..."
[稍後] 實作者:
  - 實作了 install-hook 命令
  - 新增測試,5/5 通過
  - 自我審查:發現我漏掉了 --force 標誌,已新增
  - 已提交

[分派規格符合性審查者]
規格審查者:✅ 符合規格 - 所有需求已滿足,沒有多餘的

[獲取 git SHA,分派程式碼品質審查者]
程式碼審查者:優點:良好的測試覆蓋率,乾淨。問題:無。已批准。

[標記任務 1 完成]

任務 2:恢復模式

[獲取任務 2 文字和上下文(已提取)]
[分派實作子代理,附完整任務文字 + 上下文]

實作者:[沒有問題,繼續]
實作者:
  - 新增 verify/repair 模式
  - 8/8 測試通過
  - 自我審查:一切正常
  - 已提交

[分派規格符合性審查者]
規格審查者:❌ 問題:
  - 缺少:進度報告(規格說"每 100 項報告")
  - 多餘:新增了 --json 標誌(未請求)

[實作者修復問題]
實作者:移除 --json 標誌,新增進度報告

[規格審查者再次審查]
規格審查者:✅ 現在符合規格

[分派程式碼品質審查者]
程式碼審查者:優點:穩固。問題(重要):魔術數字 (100)

[實作者修復]
實作者:提取 PROGRESS_INTERVAL 常數

[程式碼審查者再次審查]
程式碼審查者:✅ 已批准

[標記任務 2 完成]

...

[所有任務後]
[分派最終程式碼審查者]
最終審查者:所有需求已滿足,準備合併

完成!

優勢

與手動執行比較:

  • 子代理自然遵循 TDD
  • 每個任務新上下文(無混淆)
  • 平行安全(子代理不會互相干擾)
  • 子代理可以提問(工作前和期間)

與執行計劃比較:

  • 同一會話(無交接)
  • 持續進展(無等待)
  • 審查檢查點自動化

效率提升:

  • 無檔案讀取開銷(控制器提供完整文字)
  • 控制器精確策劃需要什麼上下文
  • 子代理預先獲得完整資訊
  • 問題在工作開始前浮現(而不是之後)

品質把關:

  • 自我審查在交接前捕獲問題
  • 兩階段審查:規格符合性,然後程式碼品質
  • 審查迴圈確保修復真正有效
  • 規格符合性防止過度/不足建置
  • 程式碼品質確保實作良好

成本:

  • 更多子代理調用(每個任務有實作者 + 2 個審查者)
  • 控制器做更多準備工作(預先提取所有任務)
  • 審查迴圈增加迭代
  • 但早期捕獲問題(比稍後除錯便宜)

危險信號

絕不:

  • 跳過審查(規格符合性或程式碼品質)
  • 在未修復問題下繼續
  • 平行分派多個實作子代理(衝突)
  • 讓子代理讀取計劃檔案(改為提供完整文字)
  • 跳過場景設定上下文(子代理需要理解任務的位置)
  • 忽略子代理問題(在讓他們繼續之前回答)
  • 接受規格符合性上的"差不多"(規格審查者發現問題 = 未完成)
  • 跳過審查迴圈(審查者發現問題 = 實作者修復 = 再次審查)
  • 讓實作者自我審查取代實際審查(兩者都需要)
  • 在規格符合性通過 ✅ 之前開始程式碼品質審查(順序錯誤)
  • 在任一審查有未解決問題時移動到下一個任務

如果子代理提問:

  • 清楚完整地回答
  • 如果需要提供額外上下文
  • 不要催促他們進入實作

如果審查者發現問題:

  • 實作者(同一子代理)修復它們
  • 審查者再次審查
  • 重複直到批准
  • 不要跳過重新審查

如果子代理任務失敗:

  • 分派修復子代理,附具體指示
  • 不要嘗試手動修復(上下文污染)

整合

必要工作流程技能:

  • hi-skills:writing-plans - 建立此技能執行的計劃
  • hi-skills:requesting-code-review - 審查者子代理的程式碼審查模板
  • hi-skills:finishing-a-development-branch - 所有任務後完成開發

子代理應該使用:

  • hi-skills:test-driven-development - 子代理為每個任務遵循 TDD

替代工作流程:

  • hi-skills:executing-plans - 用於平行會話而不是同一會話執行