[AI 工具] · · 19min read

zenbu-powers 是什麼?從這個 0 star 的 Claude Code Plugin 偷到的 5 個架構設計

一個 0 star、沒人注意的 Claude Code Plugin,但翻完整個 repo 後我直接把兩個設計搬進自己的 CLAUDE.md。本文拆解值得偷的 5 個架構模式,以及為什麼不建議整包安裝。

章節目錄 · 11
TL;DR
- 本文解決:Claude Code 玩家想自己長大 ~/.claude/,有沒有現成範本可參考?
- 推薦給:已經在用 Claude Code、會手寫 skill / agent / hook 的工程師
- 讀完你會知道:zenbu-powers 的 5 個值得偷的設計模式、哪些可以直接抄、為什麼不建議整包安裝

最近在研究 Claude Code Plugin 生態,被一個叫 zenbu-powers 的 repo 吸住三個小時。它在 GitHub 上 0 stars、1 fork,完全不紅,但翻完整個專案後我直接把兩個設計搬進自己的 ~/.claude/CLAUDE.md

這篇就講為什麼一個沒人按星的 plugin 值得寫一篇文章,以及哪 5 個設計模式可以直接抄回家。

zenbuapps/zenbu-powers GitHub repo 社群預覽,展示 Claude Code Plugin 主頁、stars 與作者資訊

📌 目錄

  • zenbu-powers 是什麼

  • vs superpowers vs 自建 ~/.claude 比較

  • 值得偷的 5 個設計模式

  • 我自己偷了哪些、改寫進 CLAUDE.md

  • 不建議整包安裝的 3 個理由

  • 常見問題

  • 延伸資源
  • 🧠 zenbu-powers 是什麼

    簡單講:台灣 zenbu org 內部用的 Claude Code Plugin,GitHub 上是 zenbuapps/zenbu-powers,作者 j7-dev,License MIT。

    幾個基本事實先攤開:

    項目數字
    版本v3.11.3(README 還寫 v3.3.1,文件沒同步)
    Stars / Forks0 / 1
    最近 commit2026-05-08(寫這篇的當天)
    Agent 數22 個
    Skill 數150 個
    HooksSessionStart / UserPromptSubmit / Stop
    核心架構是三層委派:
    你(使用者)
        ↓
    Orchestrator(Claude 主窗口)
        ├─→ 22 個 Agent(WordPress / React / NestJS / 審查 / DevOps / 文件)
        └─→ 150 個 Skill(流程心法 / 框架知識 / Library 參考)

    主窗口被定位成「不下場實作的協調者」,負責拆任務、派 agent、整合報告;真正寫 code 的是 sub-agent。Skill 則是被動載入的知識庫,只有被 Claude 判斷需要時才讀進來。

    技術棧偏 WordPress / React + Refine + Ant Design / NestJS,加上一套自家發明的 AIBDD(AI Behavior-Driven Development)三語言整合測試套件,涵蓋 TypeScript / PHP / C#。

    obra/superpowers 是什麼關係?作者自己 README 講白:zenbu-powers 是 superpowers 的超集,把 systematic-debuggingfinishing-branchtdd-workflow 的 verification-gate、SessionStart hook 架構整套搬過來,再疊上自己 org 的技術棧。所以兩個不要同時裝,會打架。

    obra/superpowers GitHub repo 社群預覽,zenbu-powers 致敬的源頭專案

    ⚖️ vs superpowers vs 自建 ~/.claude 比較

    維度zenbu-powersobra/superpowers自建 ~/.claude
    開箱可用
    跨技術棧通用△(偏 WP/React/Nest)
    Orchestrator 心法✓(自動注入)✓(自動注入)△(要自己寫)
    Stop hook 自動驗收✓(round_count 防迴圈)
    AIBDD 三語言整合測試✓(獨家)
    跟現有 skill 衝突風險高(150 個)
    文件同步△(版本號落後)自己決定
    客製彈性低(整包設計)
    簡單講:zenbu-powers 是「拿來就用」、自建是「想清楚再用」,看你 Claude Code 玩多深、有沒有自己的 workflow 包袱。

    ⭐ 值得偷的 5 個設計模式

    我從整個 repo 翻出 5 個可以單獨抽出來、不用整包裝的設計。

    1. SessionStart Hook 注入 Orchestrator 心法

    每次 Claude Code session 啟動、/clear/compact 時,自動把一份「主窗口應該怎麼工作」的長文塞進 context。

    實作藏在 hooks/session-start(bash 寫的),核心動作三步:

    # 1. 讀 skills/using-zenbu-powers/SKILL.md
    using_zp_content=$(cat "${PLUGIN_ROOT}/skills/using-zenbu-powers/SKILL.md")
    

    # 2. JSON-escape(用純 bash parameter substitution,比 Python jq 快很多)
    using_zp_escaped=$(escape_for_json "$using_zp_content")

    # 3. 依平台輸出對應格式
    # Cursor → additional_context
    # Claude Code → hookSpecificOutput.additionalContext
    # Copilot CLI → additionalContext

    為什麼值得偷: 你不用每次新開 session 都重講「請當 orchestrator、不要動手實作、優先派 sub-agent」,這些紀律寫一次注入一次,Claude 第一個回應之前就知道規則。

    怎麼自己抄:~/.claude/skills/ 開一個 meta-skill(例:using-bob-rules/SKILL.md),寫一個 SessionStart hook 把它讀出來、escape、塞 hookSpecificOutput.additionalContext,設定 ~/.claude/settings.json 讓 hook 啟動。

    2. Stop Hook + acceptance-evaluator + round_count 防無限迴圈

    這個是整包最值得偷的東西。

    hooks/hooks.json 註冊 Stop hook,每次主 agent 結束 → 自動 dispatch 一個 acceptance-evaluator sub-agent,做意圖對齊驗收。Evaluator 檢查產出是否真的滿足使用者原始需求,沒過就回 {"ok": false, "reason": "..."} 讓主 orchestrator 繼續修

    關鍵設計是 round_count 上限:

    {
      "hooks": [{
        "type": "agent",
        "prompt": "讀 ${HOME}/.claude/data/zenbu-loop-state.json 取本 session round_count。
                  若 >= 3,回 {ok: true, reason: '3 輪驗收上限已達'} 升級給用戶。
                  否則 dispatch evaluator → PASS 重置 count、FAIL count++ 寫回 state file"
      }]
    }

    為什麼值得偷: 解決一個很常見的痛點 ── agent 寫完跟你說「完成了」,結果根本沒滿足需求,你還要自己抓。Evaluator 自動補這道驗收,3 輪沒過才升級給人,既不會無限燒 token、又不會把爛產出直接丟出來。

    Stop hook 還含一個必看細節:stop_hook_active flag 防無限迴圈,因為 hook 自己 dispatch 的 sub-agent 結束時也會觸發 Stop,沒擋會炸。

    3. 自主決策授權 + 三類窄門

    寫在 using-zenbu-powers/SKILL.md,直接抄一段(我有改寫過,原文更長):

    規則: 遇到多個合理方案時,orchestrator 必須自己選一個並推進,不得把選擇題丟回給用戶。決策 heuristic(依優先順序):與既有架構/慣例一致 → 可逆性高 → 最小驚訝 → 保守(blast radius 低)→ 資訊充足者勝。

    例外只有三類「窄門」(暫停問用戶才合法):

  • 不可逆操作(force push、刪資料、發外部訊息)

  • 用戶獨有資訊(密碼、業務目標、規格未定的個人偏好)

  • 連續 3 輪修不好要升級
  • 為什麼值得偷: 一般 Claude 的預設行為偏「禮貌詢問」,動不動丟兩三個選項給你選,打斷思路。這套規則明確切割「自己決」跟「先問」的邊界,事後在報告補 trade-off,讓你保留 informed override 權但不被中斷。

    4. 任務分級(輕量自評 vs 重量必走 evaluator)

    不是所有任務都要走完整驗收 loop。zenbu-powers 切兩級:

    級別條件驗收方式
    輕量1 個 sub-agent + 單一驗收維度 + 改錯字/reformat/解釋類orchestrator 自評
    重量≥ 2 個 sub-agent / ≥ 2 個驗收維度 / 不可逆操作 / 用戶含「驗收 / 不能出包 / final / 上線」等關鍵詞必須 dispatch evaluator
    而且明確規定判定不確定時偏向重量任務 ── 寧可多做一輪驗收,不要漏審大事。

    為什麼值得偷: 解決 over-engineering 跟 under-engineering 同時發生的問題 ── 改個錯字也要 evaluator 太煩、改 schema 不審又危險。用任務體質決定流程粒度。

    5. Polyglot Hook Wrapper(cmd.exe / bash 共用)

    這個比較工程小巧,但很妙。hooks/run-hook.cmd 同一個檔案,Windows cmd.exe 跟 macOS / Linux bash 都能解析:

    • Windows 端 → cmd 讀檔頭 batch 指令、自動偵測 Git Bash 跑
    • macOS / Linux → bash 直接跳過 batch 段執行 shell 邏輯
    外加一個小細節:bash 5.3+ heredoc 有 hang bug,作者改用 printf 拼 JSON 規避(原始 issue)。

    為什麼值得偷: 如果你會把自己的 plugin 分享給跨平台同事,這個 wrapper pattern 直接套。如果你只在 mac 上跑(像我),用不到,但規避 heredoc bug 那招值得記

    🔥 我自己偷了哪些、改寫進 CLAUDE.md

    實際做了什麼:把上面 #3 跟 #4 改寫成更貼合自己 workflow 的版本,加進 ~/.claude/CLAUDE.md 約 30 行。原本 zenbu-powers 是「全部自主」哲學,但我跟 Claude 是有人在線、隨時 push 回的協作模式,設計層還是要丟選項給我選,所以改寫成「三層決策權」:

    ## 決策權分層
    
    層級範圍行為
    實作層命名、檔案位置、import 順序、helper 抽不抽自己決定,事後補 trade-off
    設計層技術選型、資料模型、API 形狀、UI 流程給 2-3 選項 + trade-off + 推薦
    業務層密碼、發外部訊息、不可逆動作一定先問

    卡關升級規則

    同一個問題嘗試 3 次仍無進展 → 停下升級給我,不要無限重試。

    重量任務 self-review

    跨 ≥3 檔 / 跨層 / 含不可逆操作 / 用戶含「驗收 / 不能出包」關鍵詞
    → 交付前自己先掃一輪(邏輯、邊界、是否破壞既有測試)再回報

    沒偷的東西: Stop hook + evaluator 那套(設計 #2)。為什麼?我現有 Stop hook 已經有 mempalace-stop-quiet.shline-dispatch.sh,硬塞 evaluator 進去要先想清楚順序跟 race condition,先擱著,有空再做。

    整包安裝?完全不考慮。 跟我現有 150+ skills 大量重名(tdd-workflowbrainstormingsystematic-debugging...),衝突率太高。

    ⚠️ 不建議整包安裝的 3 個理由

    老實講出來,免得有人看完上面就 claude plugin install:

    理由 1:技術棧不合

    zenbu-powers 重心是 WordPress / PHP / Refine + Ant Design / NestJS。如果你寫 Java / Go / Rust / Python 後端,150 個 skill 裡能用的不到 30 個,其他都在硬碟上吃位子。

    雖然 README 說「skill 是被動載入,不影響 context」,但 agent 命名(wordpress-master、nestjs-master)會誘導 Claude 往這些方向想,容易產生不貼合的建議。

    理由 2:Skill 命名衝突

    如果你已經裝過 obra/superpowers、或自己寫過 tdd-workflowbrainstormingsystematic-debugging 這種通用流程 skill,會跟 zenbu-powers 重名。Claude 拿到兩個同名 skill 行為不一致,結果就是不穩定。

    作者自己 README 也明說兩個不要並存。

    理由 3:文件同步不嚴謹

    最直接的證據:README 開頭寫 v3.3.1,但 plugin.json 寫 v3.11.3。中間 8 個 minor 版本沒在 README 反映。

    不是說作者懶,有專門開 docs(readme): commit 修文件,但只在重大改版才更新一次。如果你照 README 的 skill / agent 清單去用,會跟實際目錄對不上

    要參考設計哲學沒問題,要照清單操作就直接讀 agents/skills/ 目錄,不要信 README。

    ❓ 常見問題

    zenbu-powers 跟 superpowers 差在哪?要選哪個?

    zenbu-powers 是 superpowers 的超集,把 superpowers 的核心方法論(systematic-debugging、finishing-branch、tdd-workflow verification-gate、SessionStart hook)整套搬過來,再疊上 zenbu org 的 WordPress / React / NestJS 技術棧。兩個不要並存會打架。如果你寫 WordPress 多 → zenbu-powers;如果你只想要核心心法 → superpowers。

    我不寫 WordPress / PHP,還用得到 zenbu-powers 嗎?

    整包不建議裝(理由見上)。但單獨偷某些設計模式完全可以,例如 SessionStart 注入心法、Stop hook + evaluator、自主決策授權。我自己就只偷了兩個改寫進 CLAUDE.md,沒裝整包。

    怎麼只偷它的設計模式不裝整包?

    gh repo clone zenbuapps/zenbu-powers /tmp/zenbu-powers 下來當參考,看 hooks/skills/using-zenbu-powers/SKILL.md 兩個目錄就夠。把要的設計手抄進你自己的 ~/.claude/CLAUDE.md~/.claude/skills/,不要直接 plugin install。

    SessionStart hook 注入會吃掉很多 context 嗎?

    using-zenbu-powers/SKILL.md 本身約 200-400 行(含 references),escape 後塞進 hookSpecificOutput.additionalContext會吃 context,但只在 SessionStart / clear / compact 觸發,平時不會重複。如果你 context 已經很緊,可以拆成精簡版只保留核心紀律,把詳細 reference 改成「需要時再讀檔案」的引用模式。

    為什麼 stars 是 0 還值得寫?

    Stars 反映「多少人發現這 repo」,不直接反映設計品質。zenbu-powers 是台灣團隊內部 plugin,沒做行銷推廣,但設計成熟度、hook 工程細節、Orchestrator 心法的條理遠超過很多上千 star 的 dotfiles repo。stars 只是 popularity proxy,不是 quality proxy。

    🔗 延伸資源

    author
    陳彥彤

    AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

    support

    覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

    related

    相關文章

    [AI 工具] · 20min
    Superpowers 暴衝 121k stars、Anthropic 收編,該裝嗎?跟手寫 skill 怎麼選
    obra/superpowers 7 個月 121k stars、2026/01 進 Anthropic 官方 plugin marketplace,14 個內建 skill 把資深工程師工作流(brainstorm/TDD/debug)強行套到 Claude Code 上,token -14%、首次成功率 +40%。但我自己跑兩週發現:小任務反而 +20% token、demo 前急著修 bug 被 brainstorming 拖住、Haiku 跑不動。本文拆 14 個 skill 各自解什麼、5 個踩坑、跟自己手寫 skill 的對照表(從適用任務、學習曲線、客製化彈性、維護成本四個維度比較)、Jesse Vincent 的設計哲學(讓 Claude 暫停,不是變聰明)。
    [AI 工具] · 23min
    Ralph Loop 實戰:6 個官方 README 沒講的坑(重度使用者觀點)
    Ralph Loop 不是新模型也不是黑科技,本質就是 Stop hook 攔住 exit + 同 prompt 重餵。本文拆解機制、實戰場景、4 個踩坑、2 個進階組合,以及一份可複製貼上的 prompt 模板,特別針對 TDD 收斂這類最常見的場景。
    [AI 工具] · 21min
    MemPalace 知識管理工具完整教學:3.3.5 救援、HNSW 修復、claude -p proxy 省 API 錢
    MemPalace 是 AI agent 用的長期記憶系統。chromadb 1.5.x 在 macOS 26.4 ARM64 必 SIGSEGV,所有 CLI 全死、只剩 MCP server 苟活。MemPalace 3.3.5 用兩個機制救回來:HNSW segment quarantine 自動隔離壞索引、repair --mode from-sqlite 從 sqlite3 直接撈資料重灌新 palace。本文記錄完整升級路徑、3.3.5 兩個救命機制原理、外加 180 行 Python claude-p-openai-proxy.py 把 claude -p CLI 包成 OpenAI 相容 HTTP 端點,讓 mempalace compress 走 Max 訂閱、零 API 成本。