跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

寫第一個 Skill

不寫程式,只跟 Claude 對話。skill-creator 帶你走完。


課程目標

  • 認識部門 skill skill-creator:你的 skill 編寫教練
  • 學會兩種寫作模式:vibe 模式(快速)vs eval 模式(嚴謹)
  • 親手走完一次「從候選到 SKILL.md」的流程
  • 看懂 Quality Gates——怎麼自我檢查 skill 寫得好不好

一、寫 skill 不需要寫程式

第 1 課就講過——SKILL.md 是自然語言寫的。

但「自然語言寫指示」聽起來簡單,做起來會卡:

  • 「我該寫多細?」
  • 「這段是不是該丟 references/?」
  • 「description 寫得好不好?」

這時候 skill-creator 上場。它不是自動寫 skill 的 AI,它是陪你寫 skill 的教練——它會問你問題、給你模板、檢查你寫得好不好。


二、skill-creator 的對話流程

/skill-creator 後,它會帶你走 5 個階段:

階段 1:Capture Intent(抓意圖)

它會問你:

  1. 這個 skill 應該讓 Claude 做什麼?
  2. 什麼時候該觸發?(用戶的哪些話 / 哪些情境)
  3. 預期輸出格式是什麼?
  4. 要不要設置測試案例?

新手提示:第 4 題你可以先說「不要」——走 vibe 模式(下面解釋)。

階段 2:Interview & Research(深入訪談)

它會問細節:

  • 邊界場景有哪些?
  • 輸入輸出格式長怎樣?
  • 有沒有可以參考的範例?
  • 跟哪些既有 skill 可能重疊?

新手提示:誠實回答。如果你不知道某個邊界場景,就說「我也沒想過,先放著」——第 8 課會教你怎麼後續補上。

階段 3:Write SKILL.md(草稿)

skill-creator 根據你的回答幫你草擬一份 SKILL.md

  • frontmatter 自動填好
  • body 結構照部門 SKILL_CONVENTION.md
  • 你看完後可以修改

階段 4:Run Test Cases(跑測試)— 進階

如果你選了「要設置測試案例」,它會:

  • 寫 2-3 個測試 prompt
  • 跑 with-skill 和 without-skill 對照
  • 給你看效果差異

新手提示:第一次寫 skill 不要走這條——直接 vibe 模式。

階段 5:Iterate(迭代改進)

根據你的回饋改 SKILL.md,直到你滿意。


三、Vibe 模式 vs Eval 模式

Vibe 模式(推薦給第一次寫的人)

流程

  1. 跟 skill-creator 對話
  2. 它幫你草擬 SKILL.md
  3. 你看一下、改一下
  4. 直接用——在實際工作中跑跑看
  5. 不滿意再回來改

特點

  • 快——半小時可以寫完一個簡單 skill
  • 沒有正式測試
  • 實戰使用累積回饋

適合

  • 第一次寫 skill 的人
  • 個人用 skill(不上 PR 給部門)
  • 簡單流程(< 5 步驟)

Eval 模式(進階,等你寫過 3-5 個 skill 後再玩)

流程

  1. 跟 skill-creator 對話
  2. 設置 evals(測試案例 + 預期輸出)
  3. 跑 with-skill / without-skill 對照
  4. 看 quantitative 數據(pass rate / token / time)
  5. 看 qualitative 結果(你覺得輸出好不好)
  6. 改 SKILL.md → 再跑一輪
  7. 直到 pass rate 穩定

特點

  • 慢——一個 skill 可能要花半天到一天
  • 有量化指標
  • 適合上 PR 給部門共享

適合

  • 重要 skill(部門共用)
  • 有「正確答案」的 skill(資料處理 / 格式轉換)
  • 你想參加部門 skill ratchet(skill-optimize 跑分)

四、實戰:寫一個 weekly-report skill

我們走一遍完整流程,假設你要寫部門「週報草稿生成器」。

Step 0:準備候選(從第 5 課的 mining)

  • 候選描述:每週五寫週報,3 段式(本週完成 / 下週計畫 / 阻塞)
  • 訊號:每週 1 次(重複工作 + 抱怨型)
  • frequency × stability: 中-高
  • 三門診斷:Skill(多步 + 你在迴圈裡)

Step 1:跑 /skill-creator

你:/skill-creator
Claude:好的,要做什麼 skill?
你:週報草稿生成器
Claude:好。讓我問你幾個問題:

1. 該讓 Claude 做什麼?
你:掃我這週的 git log + memhall episode,整理成 3 段:本週完成 / 下週計畫 / 阻塞,可以貼進 Slack 或 Email。

2. 什麼時候觸發?
你:當我說「寫週報」「weekly report」「禮拜五的報告」「跟主管交差」時。

3. 預期輸出格式?
你:Markdown,3 段,每段 bullet list,總長 < 500 字。

4. 要不要設測試案例?
你:先不要,走 vibe 模式。

Step 2:skill-creator 草擬 SKILL.md

它會產出類似這樣:

---
name: weekly-report
description: "週報草稿生成器。掃描本週 git log + memhall episode,整理成「本週完成 / 下週計畫 / 阻塞」三段式週報,總長 < 500 字。當用戶說「寫週報」「weekly report」「禮拜五的報告」「跟主管交差」「整理本週進度」時使用。不適用於月報或季報。"
version: 0.1.0
author: "@yourname"
tags:
  - workflow
  - report
status: experimental
allowed-tools:
  - Bash(git*)
  - mcp__team-memhall__search_entries
  - Read
---

# /weekly-report — 週報草稿生成器

## 目標
每週五讓你 5 分鐘寫完週報,不用回想做了什麼。

## 不適用場景
- 月報 / 季報(用 monthly-report)
- 不是這週的工作(請手動)
- 不在 git repo(會降級為純 memhall mode)

## 輸入
- 本週的 git log(自動撈)
- 本週 memhall episode(自動撈)
- 用戶口述「下週計畫」+「阻塞」

## 步驟

### Step 1: 撈本週資料
跑 `git log --since='1 week ago' --all --oneline` 撈 commit。
查 memhall: namespace=shared, since 7 天,type=episode。

### Step 2: 整理「本週完成」
從 git log 提取主要 commit,加上 memhall 的關鍵決策。
用 bullet 列 5-8 條。

### Step 3: 問用戶「下週計畫」
直接問:「下週重點是什麼?」用戶回答後整理 3-5 條 bullet。

### Step 4: 問用戶「阻塞」
直接問:「目前有什麼卡住?」整理 1-3 條 bullet。

### Step 5: 輸出

本週完成

  • ...

下週計畫

  • ...

阻塞

  • ...

## Quality Gates
- [ ] 三段都有內容(不能空)
- [ ] 總長 < 500 字
- [ ] 沒有公司敏感字串(客戶實名 / 金額 / 內部 token)

## 治理邊界
- 此 skill v0.1 experimental,個人用
- 寫好後可考慮上 PR 到 team-skill-lab

Step 3:你看一下、改一下

skill-creator 給的草稿不會 100% 完美。你檢查:

  • description 觸發詞夠不夠?想想「我累的時候會怎麼說這件事?」
  • 步驟太簡略嗎?某個 step 是不是該拆 2 個?
  • Quality Gates 漏了什麼?

Step 4:實戰用一次

下個週五你說「寫週報」——看 skill 跑出來的結果。

  • 如果結果好 → 不用改
  • 如果結果有點怪(例如忘了某類資料)→ 回去補 Step 1
  • 如果完全不觸發(你說「禮拜五的報告」它沒反應)→ description 觸發詞不夠 pushy,加更多

Step 5:迭代 1-2 次

通常用 3-5 次就會穩定。穩定後 status 從 experimentalactive


五、Quality Gates — 自我檢查清單

寫完 skill,問自己這 8 個問題(部門 SKILL_CONVENTION.md 標準):

#問題OK 標準
1我有沒有實際用過?至少在 2-3 個任務測試過
2它做的事情夠專注嗎?一個 skill 解決一類問題,不混
3description 有具體觸發詞嗎?至少 4 個觸發詞
4步驟具體嗎?不是「跟用戶討論」這種模糊指示
5有寫輸入輸出嗎?都明確列出
6有寫不適用場景嗎?至少 2-3 條
7有沒有敏感資訊?沒 API key / 客戶名 / 金額 / 內部 IP
8body 行數合理嗎?< 150 行(中型 skill)

任一條不過 → 不該宣稱 skill 完成


六、Frontmatter 範本(可以複製貼上)

---
name: <kebab-case-name>
description: "<一句話功能>。<具體做什麼>。當用戶說「A」「B」「C」「D」時使用。<不適用場景>。"
version: 0.1.0
author: "@<your-github-handle>"
tags:
  - <category>
  - <subcategory>
argument-hint: "[選填: ...]"
allowed-tools:
  - Read
  - Bash(git*)
  - <其他需要的工具>
status: experimental
---

把它存到 ~/Templates/SKILL_TEMPLATE.md 當你的快速範本。


七、結論

  • skill-creator 是寫 skill 的對話教練,不是自動寫 skill
  • 第一次寫 → vibe 模式(快),3-5 個 skill 後再玩 eval 模式
  • 流程:候選 → skill-creator 訪談 → 草擬 → 改 → 實戰 → 迭代
  • Quality Gates 8 條,任一不過就不算寫完
  • 下一課我們學「避坑」——新手最容易踩的 5 個雷

AI 協作:學了這個,跟 AI 怎麼配合?

skill-creator 是設計給「你跟 AI 對話寫 skill」的工具——它不是要你獨自硬寫。但 AI 不知道你工作的真實流程,所以訪談階段的回答品質決定 SKILL.md 品質。

你的人類優勢:

  • 你知道你工作的隱性步驟(例如「打開 Slack 之前要先確認 VPN 連上」)——這些 AI 永遠猜不到
  • 你知道哪些 edge case 你真的會遇到,哪些是 AI 想出來但你一輩子不會碰的

可以這樣跟 AI 說:

我要寫一個 skill 叫 [名稱]。我接下來會描述流程,請扮演 skill-creator 訪談我——一次只問一個問題,不要假設我已經想清楚。當我說「我不確定」時,請問更具體的子問題,不要直接幫我決定。


練習題

挑戰任務

Task 1

從第 6 課你判斷為「Skill」的候選裡挑一個,草擬完整 frontmatter(不需要 body)。

Task 2

在 Claude Code 跑 /skill-creator,跟它對話,把上一題的 skill 寫出來。

Task 3

對你剛寫好的 SKILL.md,跑一遍本課 Section 5 的 8 個 Quality Gates。

BackNext Lesson →