AI Engineer Europe 2026 · 工作坊 · 2026-05-06 · 81 分
動手寫 Skills 的工作坊
Full Walkthrough: Writing & Using Skills · Nick Nisi、Zack Proser
Nick Nisi 與 Zack Proser 兩位 WorkOS 工程師帶著現場一起寫 Repo Roast skill,從 description、限制、腳本插值,講到信心分數、評估與分享,中間穿插大量聽眾問答。
概要
- 每次對話都從零開始要一再交代專案慣例,CLAUDE.md 這類記憶檔又綁在 repo 或全域,不能內建執行腳本,也不好帶去別的專案。skill 就是為了補這個洞。
- skill 是資料夾,不只一份 markdownSKILL.md 的 name 與 description 決定 LLM 何時載入它,旁邊可以放參考文件、腳本、圖片。他們強調 description 是給 AI 看的路由規則,不是給人看的。
- 限制比步驟有用他們建議只給幾條限制,例如引用程式碼一定要附行號與 commit,不要寫一大篇指示;過度規定是設計 skill 常見的失敗模式。
- 腳本插值與漸進揭露用驚嘆號加反引號先跑指令,把確定的輸出塞進 skill;細節放進另外的檔案,需要才讀,不撐大 context。
- 信心分數與迭代Nick 的 ideation plugin 要信心到 95% 以上才動工,靠一輪輪追問把需求問清楚;skill 用個一週,再回頭看對話紀錄補洞。
- 評估與分享他們用 evals 比較有沒有 skill 的差別,並說過度規定曾讓 Next.js installer skill 表現變差;分享可以走 plugin marketplace,或把資料夾壓成 .skill 給非技術同事。
原話
▶ 03:25“It's almost like carrying, if you will, the dry pattern into the agentic era in a way, and not repeating yourself.”
把 DRY 原則帶進 agent 時代,不用再重複自己;兩位講者之一說的
▶ 09:10“it can be more powerful just to provide a few constraints as opposed to being overly prescriptive in exactly how you want the task done.”
只給幾條限制,常比規定每個步驟更有效
▶ 17:53“descriptions are routing rules, right? They're less for us, and they're more for the AI to determine when to use it.”
description 是路由規則,主要是給 AI 判斷何時使用
▶ 1:02:19“is the math airtight, no, does it matter, no, because the value is in the iterative loop”
信心分數的算法不嚴謹,價值在反覆釐清的來回
▶ 1:18:34“now all of that context is gold.”
現在這些對話脈絡都是寶;講的是失敗與不順的紀錄可以拿來改進 skill
延伸
- 他們提到 subagent 與 agent teams 的差別,但說這場工作坊沒有深入。
- 團隊共用 skill 的版本管理與審查,兩人坦承他們也還在摸索,沒有給出定論。
- 憑證如何安全地隨 skill 分享,他們只說不要放進 zip 檔,沒有說明替代做法。
章節
點時碼直接跳到原片的那一段。
- 開場與自我介紹主題是 Skills at Scale。兩位都是 WorkOS Applied AI 團隊的 developer experience engineer,請大家 clone repo 跟著做,隨時可以打斷提問。
- 為什麼需要 skill每次對話都從零開始,要重複交代慣例。CLAUDE.md 之類的記憶檔綁在 repo 或全域,也沒有內建的腳本執行。
- skill 的好處可攜、可組合、context 佔用小,只在需要時才載入。他們說 30 行 markdown 就能讓回饋從泛泛而談變成貼合專案慣例。
- SKILL.md 的結構front matter 裡的 name 與 description 最重要,LLM 靠 description 判斷該不該載入。skill 其實是資料夾,可放參考文件、腳本與圖片。
- 限制優先於步驟給三條限制勝過冗長指示。今天要一起寫 Repo Roast,repo 裡的 share.sh 會把大家的結果存進 KV store,最後拿來比較。
- 工具支援與放置位置Codex、Claude、Cursor 與 Claude desktop 都支援 skill。放在 repo 或家目錄的 .claude 底下,另有 .agents 的慣例。Zack 舉了上週和招募團隊在 desktop 做候選人報表的例子。
- 第一輪練習先把 description 寫好,再用驚嘆號加反引號插入指令輸出,讓結果確定、也省 token。並提醒 description 是路由規則。
- 問答:CLAUDE.md 與 skill 的分界CLAUDE.md 每次都會載入、占 context,所以只放極少數內容。Nick 的例子是要求回答精簡,以及一行「這裡用 PNPM」,測試等細節留給 skill。
- 問答:團隊如何共用 skill有聽眾說公司 60 位工程師各寫各的,擔心重複與審查負擔。兩人介紹公開的 skills repo、內部 skills、monorepo 與 plugin marketplace,並提到 plugin 可像套件一樣指定版本。
- 問答:評估與 skill 被忽略對外發布的 skill 有自寫的 evals 框架,比較同一任務有沒有 skill,有 skill 反而更差就算失敗。skill 太多時,公開 skill 寫得通用,也可用 slash command 直接點名。
- 問答:subagent 與 skill想讓一段工作有獨立 context、不吃掉主流程,就用 subagent;其中一位講者的例子是把 review 丟給 subagent,只回報問題清單。override 不穩時,建議直接問 Claude 為什麼。
- 其他 skill 庫與實例提到 superpowers、Obsidian skills、OpenAI 的 Codex 外掛可把 review 交給 Codex,也推薦 Vercel 的開源 skills。非程式的例子有 Remotion 做每週全員會議的影片。
- 現場跑 Repo Roast請聽眾上傳結果,Nick 挑幾份在 WorkOS CLI 的 repo 上執行,包括 Zack 自己寫的那份。其中一份的 constraints 要求每個發現都要有腳本輸出或 Git 資料佐證,被稱讚寫得好。
- 漸進揭露skill 只指向 testing.md 或評分準則,做到那一步才讀。WorkOS 的 skill 有 skill router 與 reference map,遷移指南也是同一做法。
- 信心分數ideation plugin 會自己算信心,用追問來補,直到 95% 以上才開工。請它說明為何有信心,它常常會下修。
- 迭代與從對話紀錄改進先做初版用一週,再看本機存的 JSONL 對話紀錄找缺口。另一位講者說自己最抗拒的重複雜事最適合變成 skill,例如 Slack 有新要求就去 Linear 查重並開票。
- 問答:記憶可請 Claude 用 skill builder 回顧自己的工作流程。Nick 用 Pi 做了名為 case 的 agent,以 memory.md 記錄,結束時做回顧;另有人提到 Obsidian 與 OpenClaw 的記憶系統。
- 第二輪練習加上漸進揭露與信心分數,例如要它說明給 git commit 低分的理由。跟不上的人可跑 setup.sh 與 checkpoint2 追進度。
- ideation 示範在 WorkOS CLI 的 repo 要新增 /buddy 指令,用 Whisperflow 語音輸入。ideation 追問後信心從 90 升到 96,寫出契約與單一階段的 spec。
- 跳出編輯器Repo Roast 還能加 bus factor、zombie branches、半夜 commit 等檢查。skill 不綁特定模型廠商;.zip 改名 .skill 就能丟進 Claude desktop,但不好版控,也別放憑證。
- WorkOS CLI 與其他用途CLI 的 install 指令靠 Claude Agent SDK,判斷全來自 skills 目錄裡的 skill。其他用途有寫部落格、code review、圖像生成與 CI。
- evals 的教訓Nick 做 Next.js installer skill 時,發現自己過度規定反而讓表現變差,說下降約 30%,但那數字是自己編的;也把 eval 比作 Apple Watch,只當方向參考。
- 非程式 skill 示範動畫 skill 是兩支腳本加約 30 行 markdown,先生成圖再轉成影片。另有包 Nano Banana 的 TypeScript 腳本,以及 Remotion 做出 CLI 示範影片。
- 現場分享 Repo Roast一位聽眾的 skill 有六個檔案,用 audience guide 做漸進揭露,被打了 10 分。這個 skill 回頭把工作坊 repo 評成 6 分。
- 收尾與最後問答建議裝 skill creator 做評估,並回頭看對話紀錄,把常問的事預先提供、把十次 tool call 壓成一兩次。最後回答 Slack 加 Linear 的自動化怎麼接。
名詞
- SKILL.md
- skill 資料夾裡的主檔,開頭的 front matter 寫 name 與 description
- description
- 給 LLM 判斷何時載入 skill 的路由規則,他們說它和 name 是 skill 最重要的欄位
- Repo Roast
- 這場工作坊一起寫的示範 skill,分析 repo 的健康狀況並用有趣的方式點評
- progressive disclosure
- 把細節放進另外的檔案,做到相關步驟才讀,避免撐大 context
- 驚嘆號加反引號
- 在 skill 裡先執行指令,並把輸出填進去的寫法,他們說目前主要是 Claude 支援
- ideation
- Nick 做的開源 plugin,用信心分數反覆追問,直到把需求問清楚才開工
- confidence score
- 讓模型自評對任務的掌握程度,未達門檻就繼續追問
- WorkOS CLI
- WorkOS 的命令列工具,install 指令由 skills 驅動,底層用 Claude Agent SDK
- skill creator
- Claude 內建的 skill,可用來評論、設定與評估自己寫的 skill
- Pi
- 他們說 OpenClaw 底層跑的 agent harness,Nick 用它做了名為 case 的 agent
- Remotion
- 用 prompt 生成影片的 skill,會在 localhost 開網頁編輯器可即時修改
- Nano Banana
- 圖像生成模型,他們用一支呼叫其 API 的 TypeScript 腳本包成 skill







