iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0

Day 15 定義了五個角色——誰來做。這一篇講怎麼做:那些反覆執行的流程,被寫成一份一份的 Skill 檔案。

第三代我保留了 Spec Kit 的骨架,把 8-Step、分派、還有幾個高頻小動作,各自寫成 .claude/ 底下的 Skill 或指令檔。這件事跟「把常用的 Prompt 存起來」看起來像。

https://ithelp.ithome.com.tw/upload/images/20260908/20183576cwdTNUcFo1.png

  • 一份 Skill 檔案有固定幾塊:一句話說明、觸發方式、步驟(有些步驟帶條件分支)、產物、限制。
  • Skill 放在 repo 裡,會被 review、會被改。流程變了,檔案跟著變——這就是「可維護」的意思。
  • 一個 Skill 有沒有用,看它有沒有對應到一段你真的會跑的流程。

Agent 跟 Skill 差在哪

這兩個東西都是 .claude/ 底下的 markdown,Day 15 又說角色有「五個部分」、這篇說 Skill 有「五塊」,很容易混。差別是這樣:

Agent(Day 15) Skill(這篇)
是什麼 職位——誰來做 程序——照什麼順序做
回答 這個工作者知道什麼、能碰哪些檔案、做完回報什麼 什麼時候觸發、步驟、產物、不准碰什麼
放哪 .claude/agents/ .claude/commands/.claude/skills/
執行時 被叫出來變成一個獨立 session 做事 被照著跑的腳本,本身不做事

比喻:Skill 是一份 SOP 手冊,Agent 是照著 SOP 工作的員工,做完就離開,下次重來。

兩者的接點在 Skill 裡:/spec-workflow 每一步都寫「這步由 frontend-agent 做」;/orchestrate 會先讀五個 agent 定義,再決定每個工作派給誰。Skill 排順序、分派,Agent 執行。

一個小 Skill 長什麼樣

DAP 有一個 /add-mock 指令,做的事很小:在 mock 檔案裡加一個假的 API 回應。整份檔案就這幾塊:

  • 一句話說明:在 mock handler 檔案裡新增一個假的 API 回應。
  • 觸發方式/add-mock 後面接 method、路徑、一句描述,例如「POST 某支送審 API,回傳一個假的單號」——直接示範怎麼叫它、要帶什麼。
  • 步驟:先讀現有結構、依 method/path/描述加一個 handler、假資料要符合後端 schema。其中一步帶條件:「如果使用者沒有提供 response 格式,先去 API 定義或 spec 裡找對應的型別」。
  • 限制:不安裝新套件;handler 只能加在指定的 mock 檔案,不准動正式 code。

/update-docs 也是同一個形狀,多一塊「截圖命名規則」:檔名固定是 {spec-id}-{section}.png

這些檔案的重點不是文字漂亮,是每一塊都在回答一個具體問題:什麼時候用它、照什麼順序做、做出什麼、不准碰什麼。

存起來的 Prompt 沒有這些欄位

我以前也有一批「常用 Prompt」,存在筆記軟體裡,需要的時候複製貼上。它跟 Skill 的差別,攤開來看很清楚:

存起來的 Prompt Skill 檔案
什麼時候用 自己記得 寫在「觸發方式」裡
步驟 一段話,照著讀 編號步驟,有些帶條件分支
產物 沒有明講 寫死哪個檔案、哪個路徑
不能做的事 靠當下提醒 「限制」區塊列出來
放在哪 個人筆記,別人看不到 repo 裡,會被 review
流程改了怎麼辦 下次貼的時候才發現舊了 改檔案,commit

Anthropic 後來把這種東西正式叫做 Agent Skill:一個裝著說明、腳本、資源的資料夾,agent 用到才載入。他們的說法是,Skill 讓通用 agent 變成「合你需求的專用 agent」,而且可組合、可攜、可維護。(Anthropic, Equipping agents for the real world with Agent Skills

DAP 這幾份檔案早於這個規格,格式不完全一樣;要解決的問題是同一個:把一段程序寫在一個地方,讓它能重複跑、能被人檢查。

DAP 的 Skill 各包了哪一段

Skill/指令 包住的流程
/spec-workflow Day 06–13 那整條 8-Step,含每一步由哪個角色做、templates、兩個 ⏸ 停止點、跳步規則
/orchestrate 讀任務檔、辨識角色、分析檔案衝突、排平行與順序批次
/add-mock 加一個 mock handler
/update-docs 依最新 spec 更新一個功能的使用手冊
/new-view 新增一個頁面並註冊路由

.claude/skills/ 資料夾裡也躺著幾個不是為 DAP 寫的 Skill(跟這個專案的技術棧無關),它們沒有對應到任何會被跑到的流程。Skill 是程序記憶,記憶也會過期。

維護的痕跡

/orchestrate 這份檔案的最後有一條硬規定:每一批工作做完,一定要更新一份總索引,把這次的改動歸到對應功能、更新它的現況摘要。檔案裡直接寫了原因——specs 資料夾裡已經累積 80 幾份分散的 spec,這條索引是唯一的入口,不准跳過。

這條規則不是一開始就有的。是 spec 累積到開始找不到東西之後,才補進 Skill 檔案。流程遇到問題、改檔案、之後每次照新版跑——這就是 Skill 可維護的意思。存在筆記裡的 Prompt,這個改動不會有人看到,下一次照舊版跑,就會產出過期的做法。

今天可以做的:把一個高頻小流程寫成 Skill

挑一件你每週會做 2–3 次的小事——加一筆測試資料、更新一份文件、產一個固定格式的檔案。照下面五塊寫成一份檔案,放進 repo:

# Skill|名稱

## 一句話說明
- 這個 Skill 做什麼:

## 觸發方式
- 怎麼叫它、要帶什麼參數(給一個實際例子):

## 步驟
1.
2.(哪一步有條件分支,標出來)
3.

## 產物
- 會新增或修改哪些檔案:

## 限制
- 不准碰什麼、不准裝什麼:

寫完後,交給 Claude Code 跑一次。它照這份檔案做的時候,如果卡在「缺少前置條件」,代表你的「觸發方式」或「步驟」還有沒講清楚的地方,補回去再跑一次。

小結:Skill 是寫下來的程序,會被檢查也會被改

一份 Skill 檔案回答的是:什麼時候用、照什麼順序、做出什麼、不准碰什麼。它放在 repo 裡,流程變了就改檔案,改動會被看到。

角色(Day 15)和 Skill(Day 16)都準備好之後,下一個問題是分派:一批需求進來,誰先做、誰能平行、哪裡要停下來等人。下一篇進到指揮中心 /orchestrate,它做的第一件事是分流。

參考資料


上一篇
Day 15|Frontend、API、QA、Security、Documentation:agent 角色定義
系列文
從 DBA 自用工具到中心四個科的自動化基礎:AI Engineering 三代開發實錄16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言