## Claude Code Skills 101
2026/1/26 Miles
https://hackmd.io/@ganhuaking/claude-code-skills-101
---
### 目錄
1. 緣起(反正講著講著就突然說來講了)
2. 我對 Skills 的了解
3. 應用
4. Skills 未來發展
> 這次的內容沒有 MCP 也沒有 Hook =,因為我不熟XD
---
### 緣起
Recca Tsai、Nathan Lu、正瑋三人圍攻(並沒有)
---
### Skills 發展
Claude 在 2025/10/16 發布了 [Agent Skills](https://claude.com/blog/skills)
----
但在那之前一週
2025/10/9 發布了 [Plugins](https://claude.com/blog/claude-code-plugins),也就是 Marketplace
我當時覺得這東西很難用,因為只能分享 prompt
----
隔週 Agent Skills 出來,說裡面可以內建程式或腳本
### 沃草!這就我想要的啊!
----
後來就一直試試試試試試試到現在了
---
### 基本概念

> 來源網址: https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
----
#### 三層的 Progressive disclosure
Progressive disclosure 中直譯為「漸進式揭露」,跟日常生活的很多例子很像:
| Agent Skills | 指令 | 書籍 |
| --- | --- | --- |
| YAML frontmatter | `tldr` | 書皮 |
| Markdown | `--help` | 目錄 |
| Reference | `man` | 內容 |
----
與標準作業流程(SOP)也是非常接近
1. 發生什麼事時,請參考這份 SOP
2. SOP 裡有 5 個步驟 blahblah
3. 各步驟詳細執行流程為 blahblah
----
與規範或指南也非常接近
1. 當開發遇到 xxx 的時候,請參考這份指南
2. 指南的主要重點為 o1 o2 o3
3. 當 o2 情境時,參考 references/o2.md 的詳細說明
---
### Skills vs Agents
1. 什麼時候要設計成 Skill?
- 當希望模型或人類能自主引用的時候
3. 什麼時候要設計成 Agent?
- 當流程有其獨立性,會有制式回傳的時候
----
### Skills 的特色
- 可打包成為獨立的工具發布到 Claude Web 上用
- 可預執行腳本
- 可以動態載入 Skill
- 可使用 `$ARGUMENTS` 代表從 Command 傳入的值
```yaml
name: review-skill
description: blahblah
argument-hint: [issue-number]
disable-model-invocation: false
user-invocable: true
allowed-tools: [tools]
model: Sonnet
context: fork
agent: [SubAgent]
version: 0.1.0
```
> 參考文件: https://code.claude.com/docs/en/skills
----
### Agents 的特性
- 可指定模型
- 可指定預載的 Skills
```yaml
name: code-reviewer
description: BlahBlah
tools: ["Read", "Grep", "Glob"]
disallowedTools:
model: inherit
permissionMode: default
skills: review-skill
hooks:
color: blue
```
> 參考文件: https://code.claude.com/docs/en/sub-agents
----
根據這些特性,通常會:
- 先設計 Skills
- 然後再設計 Commands 觸發
- 最後當整個流程會讓 Context 太大出現幻覺的時候,再改用 Agents 預載 Skills,再讓 Command 改叫 Agents 做事
---
### 所以…
Q: 什麼時候需要自己寫 Skills?
A: 當發現自己流程和規範與眾不同的時候
> 寫 Skill 的工具可以參考官方的 [Plugin Development Toolkit](https://github.com/anthropics/claude-code/tree/main/plugins/plugin-dev)
接下來舉幾個範例
----
#### PR review
先想想,Code review 要做什麼事?
- 發 PR 前,對 diff review,stdout comment
- 發 PR 後,對 diff review,PR 上留 comment
> 所以有個 PR review Guideline Skill
----
#### Release 風險評估
先想想,發布前要做什麼事?
- 先 diff commit
- 確認 commits 與需求的關聯為何
- 再看對應的 API 或業務邏輯影響範圍有沒有一致
- 確認是否要增加測試範圍
> 所以有個 Release Guideline Skill(其實就是用 TBD)
----
#### Error Log 分析
先想想,線上有錯誤 log 的時候,會做什麼事?
- 有 message 和 Stack Trace
- 爬 code 硬查
- 找到關鍵程式和錯誤細節,再做根因分析
> 所以有個根因分析的 Skill
---
### Skills 的未來
Skills 文件開頭有提到:
> Custom slash commands have been merged into skills. A file at .claude/commands/review.md and a skill at .claude/skills/review/SKILL.md both create /review and work the same way. Your existing .claude/commands/ files keep working. Skills add optional features: a directory for supporting files, frontmatter to control whether you or Claude invokes them, and the ability for Claude to load them automatically when relevant.
所以未來就是建議使用 Skill,不要再用 Command 了。
{"title":"Claude Code Skills 101","description":"2026/1/26 Miles","contributors":"[{\"id\":\"208766f2-1253-4ddc-b70a-16e6fba73e62\",\"add\":4106,\"del\":783,\"latestUpdatedAt\":1769439495337}]"}