AI 協作 開源專案 · 第 14 / 17 篇

Workflow Skill Router v2.1.0 正式支援 Claude Code:同一份 Skill Tree,Claude Code 和 Codex 都能用

Workflow Skill Router v2.1.0 新增 Claude Code Plugin:兩行指令從 marketplace 安裝,跑的是和 Codex 版同一套本機 MCP Server 與 Python Runtime,個人 Skill Tree 兩邊共用。這篇也交代和 Codex 版的差異,以及這次用 Claude 模型跑的發布評測結果與限制。

快速導覽 查看本文目錄

30 秒看懂這篇

  • Workflow Skill Router v2.1.0 在 2026-11-01 正式發布,開始支援 Claude Code:用 /plugin marketplace add 加上 /plugin install 兩行就能裝,Codex 版則改成固定 --ref v2.1.0。
  • Claude Code 版沒有另寫一套 Router,它和 Codex 版跑同一份 MCP Server 與 Python Runtime,只靠 WORKFLOW_SKILL_ROUTER_HOST=claude-code 區分 Host,個人 Profile 與本機狀態兩邊共用。
  • Workspace Profile 會先讀 .claude/workflow-skill-router.json,沒有才讀 .codex/;兩邊都用的專案放一份 .codex/ 設定就夠了。
  • 這次的發布評測用 Claude Sonnet 5.5 跑了 36 次:加上 Router 後,最終路由的 6 個欄位每次都符合,不加只有三分之二;但兩邊都還沒通過完整契約,也沒有證明開發成果變好。

安安~我是ChiYu~

Workflow Skill Router 從第一版開始就只給 Codex 用。可是這陣子我待在 Claude Code 的時間越來越長,手上的 Skills 兩邊都有裝,麻煩就來了:在 Codex 寫好的工作流程,換到 Claude Code 就不算數,每個任務開頭又得重新交代一次「這個階段由誰主導」。

同一套 Skills、同一個人、同一個專案,只因為換了工具就要重講一遍規則,這件事我忍不了太久。

今天(2026 年 11 月 1 日) v2.1.0 正式發布,Workflow Skill Router 有了自己的 Claude Code Plugin。兩行指令就能裝,跑的是和 Codex 版同一套本機 MCP Server 與 Python Runtime,你的個人 Skill Tree 兩邊共用。

Workflow Skill Router 社群預覽圖,上方是專案名稱,左側寫著 One lead Skill per phase, for Claude Code and Codex,右側列出 contract、implementation、verification 三個階段,分別由 api-designer、csharp-developer、qa-test-planner 主導,目前由 contract 階段的 api-designer 主導

Workflow Skill Router 的新版社群預覽圖:每個階段一個主導 Skill,Claude Code 和 Codex 共用

如果你還不知道 Workflow Skill Router 是什麼,一句話:它在 AI Agent 開始動手前,先幫目前這個階段挑一個主導 Skill,只補上這個階段真的需要的輔助 Skill,再把路由攤開給你看。完整的設計想法寫在上一篇 Workflow Skill Router V2 正式版 ,這篇只講 Claude Code 這一塊。

先講版本:v2.1.0 起正式支援 Claude Code

這段放最前面,免得大家裝錯版本。

你要裝的怎麼裝版本
Claude Code Plugin/plugin marketplace add eric861129/Workflow-skill-routerPlugin manifest 帶 2.1.0,版本變更時 Claude Code 會提示更新
Codex Plugincodex plugin marketplace add eric861129/Workflow-skill-router --ref v2.1.0固定 v2.1.0;原本固定 v2.0.2 的人,把 --ref 換成 v2.1.0
Skill-only下載 Release 裡的 workflow-skill-router-skill-v2.1.0.zip只有路由指引,沒有可保存的狀態

Claude Code 版的 Plugin manifest 現在有寫 version,Claude Code 看到版本變了就會提示你更新。想手動更新,執行:

claude plugin update workflow-skill-router@workflow-skill-router

v2.1.0 除了 Claude Code,還帶了兩個變動,這篇不展開,簡單交代:

  • Workflow Memory,預設關閉。 新增 8 個 MCP 工具,可以記錄完成的路由、提出可審查的 Profile 更新,也能回滾和清除。要自己在 policy 裡打開才會開始記錄,沒有背景學習,也沒有 telemetry。工具數從 12 個變成 20 個。
  • 分類器看得懂繁體中文了。 新的 deterministic-objective-v2 認得常見的繁中修復、需求、跨專案和保留進度的說法,也會忽略「不要長時間執行」這類否定句。

沒有另寫一套:同一個 Runtime,多認得一個 Host

做 Claude Code 版的時候,我最不想做的就是 fork 一份 Router 出來各自維護。兩套路由規則只要放著不管幾個月,一定會開始各講各的。

所以 Claude Code Plugin 裡面裝的東西,跟 Codex Plugin 幾乎一模一樣:

  • MCP Server:同一份 server.bundle.mjs,由 Claude Code 透過 node ${CLAUDE_PLUGIN_ROOT}/mcp/server.bundle.mjs 啟動。
  • Python Runtime:同一份 workflow_skill_router.pyz,負責分類任務、比對 Profile、保存計畫與同意紀錄。
  • Router SKILL:這是唯一改寫的部分。Claude Code 版的 SKILL 用 Claude Code 的工具名稱描述同一套路由規則,也寫明 Claude Code 對話裡列出的 Skills 只代表「看得到」,不代表已經啟用;寫檔、執行指令這些權限,仍由 Claude Code 自己的 permission mode 決定,Skill 同意不等於工具權限。

這兩份共用的檔案不是手動複製的。scripts/sync-claude-plugin.py 會從 Codex Plugin 和標準 Skill 逐位元組複製過來,CI 再用 --check 確認兩邊沒有走鐘。

flowchart TB
    subgraph CX["Codex Plugin"]
        S2["Codex 版 Router SKILL"]
        M2["MCP Server + Python Runtime<br/>HOST=codex"]
    end
    subgraph CC["Claude Code Plugin"]
        S1["Claude Code 版 Router SKILL"]
        M1["MCP Server + Python Runtime<br/>HOST=claude-code"]
    end
    M2 -- "sync-claude-plugin.py<br/>逐位元組複製,CI 檢查" --> M1
    M1 --> Data["共用的本機資料目錄<br/>個人 Profile、計畫、同意紀錄"]
    M2 --> Data

那 Runtime 怎麼知道自己是被誰叫起來的?靠一個環境變數:WORKFLOW_SKILL_ROUTER_HOST。Codex 是預設值 codex,Claude Code Plugin 的 .mcp.json 則會把它設成 claude-code。

{
  "mcpServers": {
    "workflow-skill-router": {
      "command": "node",
      "args": ["${CLAUDE_PLUGIN_ROOT}/mcp/server.bundle.mjs"],
      "env": {
        "WORKFLOW_SKILL_ROUTER_HOST": "claude-code"
      }
    }
  }
}

這個值寫錯會怎樣?我拿 cursor 試了一下,Runtime 直接拒絕啟動:

unsupported WORKFLOW_SKILL_ROUTER_HOST: 'cursor'; expected one of claude-code, codex

這是故意的。Host 決定 Router 要去哪裡讀 workspace 設定,Host 不明的時候,寧可在讀任何 workspace 檔案之前就停下來,也不要猜一個位置去讀。

兩行安裝,再花一分鐘確認它真的接上了

安裝前要有的東西

  • 支援 Plugin 的 Claude Code
  • 啟動 Claude Code 的 PATH 上有 Node.js 24 以上
  • Python 3.11 以上

Plugin 已經包含編好的 MCP bundle 和 Python Runtime,沒有 package.json,所以安裝時不會跑 npm,也不會幫你安裝或下載其他 Skills。

安裝

在 Claude Code 裡執行:

/plugin marketplace add eric861129/Workflow-skill-router
/plugin install workflow-skill-router@workflow-skill-router

習慣在 shell 操作的話,也可以這樣:

claude plugin marketplace add eric861129/Workflow-skill-router
claude plugin install workflow-skill-router@workflow-skill-router

確認有接上

  1. 執行 /mcp,確認 plugin:workflow-skill-router:workflow-skill-router 是連線狀態。
  2. 開新對話,問 Claude Code:「顯示 Workflow Skill Router 的狀態,並說明目前環境可以使用哪些能力。」 回答應該來自 get_router_status,並顯示 bundled-local-r0。

如果 /mcp 顯示 server 啟動失敗,通常是 Claude Code 找不到 Node.js,或 Runtime 找不到 Python 3.11 以上的版本。這時 SKILL 會退回 skill-only-fallback:路由指引還在,但沒辦法保存狀態,它也不應該宣稱有保存。

想離線確認 Runtime 本身沒問題,可以在 repository checkout 的根目錄直接跑內附 Runtime 的 doctor:

WORKFLOW_SKILL_ROUTER_HOST=claude-code python plugins/claude-code/workflow-skill-router/runtime/workflow_skill_router.pyz doctor

Windows PowerShell 的寫法:

$env:WORKFLOW_SKILL_ROUTER_HOST = "claude-code"
python plugins/claude-code/workflow-skill-router/runtime/workflow_skill_router.pyz doctor

我在自己的 Windows 環境(Node.js 24、Python 3.14)跑過,輸出節錄如下:

{
  "host": "claude-code",
  "runtime_profile": "bundled-local-r0",
  "runtime_status": "core-ready",
  "telemetry_enabled": false
}

看到 "host": "claude-code" 就代表 Runtime 認得現在是 Claude Code。

跟 Codex 版差在哪?大部分一樣,四個地方要注意

項目Claude Code 的行為
Workspace Profile先讀 .claude/workflow-skill-router.json,沒有才讀 .codex/workflow-skill-router.json。Workspace Memory policy 也照同樣順序。
個人 Profile 與狀態和 Codex Plugin 共用同一個外部資料目錄,一棵 Skill Tree 兩邊都能用。要換位置可以設 WORKFLOW_SKILL_ROUTER_DATA_DIR。
Managed Goal只用 Router 自己的本機工作圖,回報 authority_mode=router-local,不會去碰 Host 的任務狀態。
工具名稱mcp__plugin_workflow-skill-router_workflow-skill-router__<tool>

這四個裡面,我覺得最實用的是第二個。

個人 Profile 放在 Plugin cache 外面的資料目錄(Windows 是 %LOCALAPPDATA%\Codex\workflow-skill-router)。你在 Codex 裡裝好的 Personal Routing Profile,裝完 Claude Code Plugin 就直接生效,不用再匯入一次。反過來,移除或更新 Plugin 也不會把你的 Profile、計畫和同意紀錄一起清掉。

Workspace Profile 的讀取順序則是為了「兩邊都用」的專案設計的:

my-repo/
├── .codex/
│   └── workflow-skill-router.json   ← 兩邊共用時,放這一份就好
└── .claude/
    └── workflow-skill-router.json   ← 只有 Claude Code 要走不同流程時才加

我的建議是先只放 .codex/ 那一份。等哪天真的發現 Claude Code 要走不一樣的流程,再加 .claude/ 的版本。兩份設定一旦存在,就得兩份都維護;在真的需要之前,維持一份比較省事。

換到 Claude Code,路由規則一條都沒變

裝好以後,Router 在 Claude Code 裡的行為跟 Codex 版是同一套規則。拿 repo 內附的 workspace Profile 範例來看,一個屬於 api domain 的請求,例如 「Deliver the api contract, implementation, and tests」,會排出這樣的分階段計畫:

階段主導 Skill這個階段的輔助完成條件
contractapi-designerapi-guidelines-skillcontract-reviewed
implementationcsharp-developer無implementation-complete
verificationqa-test-plannerplaywrighttests-passed

只有目前階段的 Skills 會生效,進到下一個階段再重新路由。規劃 API 合約的時候,Claude Code 不需要先把實作和測試的 Skills 都搬進 Context。

你自己點名的 Skill 也一樣優先。像這樣講:

Use api-designer only. Ask before adding support.

Router 會讓 api-designer 主導。如果它覺得需要額外的輔助 Skill,會先提出 proposal 問你;你說不要,路由就維持只有 api-designer,而且這個決定會記在本機。

還有一點我很在意:計畫裡寫了某個 Skill,不代表 Claude Code 裡真的裝了它。每個計畫中的 Skill 都會先標成 intended-unverified,等確認環境裡真的可用才算數。少了就直說少了,不會偷偷拿別的 Skill 頂替。

這次的發布評測:用 Claude 模型跑了 36 次

上一版的評測全部來自 GPT 系列模型,所以 v2.1.0 發布前,我讓 Behavior gate 改用 Claude 模型跑。這也是 v2.1.0 正式的發布評測,結果記錄在 維護者簽核 裡。

設定是這樣:

  • 模型:claude-sonnet-5-5,Claude Code 2.1.309,推理設定用 Claude Code 預設值。
  • 規模:6 個路由案例,每個案例分成「不加 Router」和「加 Router」兩組,各跑 3 次,總共 36 次、42 個 model turn。
  • 隔離方式:每個 turn 都開一個全新的 Claude Code --print 行程,不給工具、不載入 MCP Server、不讀使用者設定,也不保留對話狀態。
  • 原始碼:跑在凍結的 release commit 上,跑完之後原始碼和 release notes 都不能再改。
項目不加 Router加 Router
最終路由的 6 個欄位全部符合66.67%100%
同一個案例重跑 3 次,結果一致66.67%100%
硬性違規00
通過完整 turn 契約的 turn0/213/21

前兩列是這次最主要的結果:加上 Router 之後,Claude 在這 6 個案例裡每次都排出完全符合的最終路由,三次重跑也都一樣;不加 Router 只有三分之二。

但這組數字一樣要配著限制看:

  • 完整契約沒有過。 兩組都沒有任何一次 attempt 通過完整契約。加 Router 那組通過的 3 個 turn,全部在需要使用者同意的那個案例;其他沒過的地方,都卡在模型自己回報的 evidence code,不是那 6 個最終路由欄位。
  • evidence code 的落差兩組一樣。 同樣的 miss 在不加 Router 的那組也有,在前一個 commit 重跑也一樣,所以簽核把它歸為模型自我回報詞彙的限制,不算到 Router 頭上。
  • 只測了一種設定。 只跑了 Sonnet 5.5 和 Claude Code 預設的推理設定,Codex 模型沒有在 v2.1.0 上重新評測。2026-10-19 那次 GPT 模型的探索性比較是單次執行、舊版原始碼,不能和這次直接相比。
  • 很多事沒有量到。 這次沒有驗證 Skill 真的被啟用,沒有量到 Token 變少,也沒有量到開發成果變好。之前的探索性測試裡,完整載入指令套件會讓輸入 Token 多出約 26–28%。

所以現在能說的是:在這 6 個案例上,Claude Sonnet 5.5 加上 Router 以後,最終路由排得更穩、更一致。至於它能不能讓整個開發任務做得更好,還沒有資料。

另外提醒一個邊界:Plugin 的完整功能只在會載入本機 MCP Server 的地方才有,也就是 Claude Code 的終端機、IDE 和桌面版的 Code 分頁。在 claude.ai 的一般對話裡,只有 Skill 會載入,以 skill-only-fallback 運作,沒有可保存的狀態。

哪些人現在可以裝?

同時在用 Claude Code 和 Codex 的人,最值得現在就裝。原本只活在 Codex 裡的 Personal Routing Profile,現在 Claude Code 也讀得到,這就是這次更新最主要的價值。

Skills 已經裝了一大堆、常常要重新交代誰主導的人,也可以拿幾個真實任務試跑。先從一條最常用的流程寫成 Profile 開始,不用一次把所有流程都搬進來。

只用 Claude Code、Skills 只有三、四個的人,老實說,一份寫清楚的 CLAUDE.md 可能就夠了。不需要為了看起來比較專業,替自己多加一層要維護的東西。

如果你裝了,遇到 Node.js 或 Python 找不到、/mcp 連不上,或路由跟你預期的不一樣,歡迎到 GitHub Discussions 或 Issues 告訴我。附上你的作業系統、安裝方式、預期的路由和實際結果,我會比較好追。

接下來還沒有答案的有兩件事:完整契約為什麼過不了,目前看起來卡在模型回報的 evidence code;還有 Codex 模型在 v2.1.0 上的表現。有新的結果,不管好壞,我都會寫出來。


延伸閱讀與下載

讀完了!你覺得這篇如何?

你的回饋會決定下一篇要寫什麼。

還有疑問

Learning path

開源專案

這篇是系列中的第 14 / 17 篇。可以順著列表補完整脈絡,也可以直接跳到需要的段落。

  1. 01 [開源專案] 寫書不再被 Word 搞瘋!我開發了 BookPublisher MD2Docx —— 專為技術書作者打造的 Markdown 轉檔神器
  2. 02 既然要自幹,就要幹到極致!Word 排版救星 V1.0.0 重大更新 🔥
  3. 03 Cloud-Assets-Template:免費、快速、全自動的個人圖床解決方案
  4. 04 PPT-Web 開源簡報工具:手機掃 QR Code 變簡報筆,看備忘稿、切黑幕,還保留 PPT 動畫
  5. 05 Side Project 不一定要做大:從 MD2DOC 約 460 位使用者與 49 顆 Star 看小產品的真實流量
  6. 06 SKILLS All-in-one 正式上線!我的 AI Agent 技能軍火庫功能大公開
  7. 07 【重磅發布】MD2PPT-Evolution:不只是轉檔,還是自帶「手機遙控器」的簡報神器!(完全開源/資料不落地)
  8. 08 【開發實戰】從 Vibe Coding 進化到 CDD!我如何用 Gemini CLI Conductor 打造 MD2PPT-Evolution 簡報神器
  9. 09 時隔四個月,我用 Codex 讓 MD2DOC-Evolution 變成更穩定的寫作工作台
  10. 10 MD2DOC-Evolution v2.0:把 Markdown 變成可交給出版社修訂的 Word 書稿
  11. 11 Codex PPT Skill 實測筆記:把文章與課程內容變成圖片式簡報的 AI Agent 工作流
  12. 12 Workflow Skill Router:面對 Agent sprawl,先管住 SKILL 選擇
  13. 13 Workflow Skill Router V2 正式版:把 SKILL 路由變成可驗證的 Codex 控制層
  14. 14 Workflow Skill Router v2.1.0 正式支援 Claude Code:同一份 Skill Tree,Claude Code 和 Codex 都能用 目前閱讀
  15. 15 從模糊需求到 Code Review:拆解 Matt Pocock Skills 的工程 Workflow
  16. 16 Google EGM 是什麼?大象寫規格、金魚來找碴,讓 AI 先想清楚再寫 code
  17. 17 我把 iThome 鐵人賽發文流程做成開源範本了

Further reading

Google EGM 是什麼?大象寫規格、金魚來找碴,讓 AI 先想清楚再寫 code 封面圖 2026-10-28 Google EGM 是什麼?大象寫規格、金魚來找碴,讓 AI 先想清楚再寫 code Codex 省 Token 卻又慢又卡:訂閱 Claude Max 後,我決定 AI Agent 要雙修 封面圖 2026-10-16 Codex 省 Token 卻又慢又卡:訂閱 Claude Max 後,我決定 AI Agent 要雙修 Workflow Skill Router V2 正式版:把 SKILL 路由變成可驗證的 Codex 控制層 封面圖 2026-07-23 Workflow Skill Router V2 正式版:把 SKILL 路由變成可驗證的 Codex 控制層

留言討論

用 GitHub 帳號留言,留言會同步到這個 Blog 的 GitHub Discussions。

閱讀導覽

約 9 分鐘

本文目錄

本篇所在系列 · 第 14 / 17 篇

開源專案

  1. [開源專案] 寫書不再被 Word 搞瘋!我開發了 BookPublisher MD2Docx —— 專為技術書作者打造的 Markdown 轉檔神器
  2. 既然要自幹,就要幹到極致!Word 排版救星 V1.0.0 重大更新 🔥
  3. Cloud-Assets-Template:免費、快速、全自動的個人圖床解決方案
  4. PPT-Web 開源簡報工具:手機掃 QR Code 變簡報筆,看備忘稿、切黑幕,還保留 PPT 動畫
  5. Side Project 不一定要做大:從 MD2DOC 約 460 位使用者與 49 顆 Star 看小產品的真實流量
  6. SKILLS All-in-one 正式上線!我的 AI Agent 技能軍火庫功能大公開
  7. 【重磅發布】MD2PPT-Evolution:不只是轉檔,還是自帶「手機遙控器」的簡報神器!(完全開源/資料不落地)
  8. 【開發實戰】從 Vibe Coding 進化到 CDD!我如何用 Gemini CLI Conductor 打造 MD2PPT-Evolution 簡報神器
  9. 時隔四個月,我用 Codex 讓 MD2DOC-Evolution 變成更穩定的寫作工作台
  10. MD2DOC-Evolution v2.0:把 Markdown 變成可交給出版社修訂的 Word 書稿
  11. Codex PPT Skill 實測筆記:把文章與課程內容變成圖片式簡報的 AI Agent 工作流
  12. Workflow Skill Router:面對 Agent sprawl,先管住 SKILL 選擇
  13. Workflow Skill Router V2 正式版:把 SKILL 路由變成可驗證的 Codex 控制層
  14. Workflow Skill Router v2.1.0 正式支援 Claude Code:同一份 Skill Tree,Claude Code 和 Codex 都能用
  15. 從模糊需求到 Code Review:拆解 Matt Pocock Skills 的工程 Workflow
  16. Google EGM 是什麼?大象寫規格、金魚來找碴,讓 AI 先想清楚再寫 code
  17. 我把 iThome 鐵人賽發文流程做成開源範本了
看完整系列 17 篇