13. Plugin 建置與使用
Plugin 是把 Skill + MCP server + Hook + Slash Command + Rule 整包打包的格式——讓您一鍵安裝整個工作流給自己用,或發給整個團隊用。 我們今天剛做了一個:karpathy-wiki-pattern.plugin——4 個 skill + 範本 + lint script 一起打包。
13.1 Plugin 是什麼
| Skill | Plugin | |
|---|---|---|
| 單位 | 1 個能力(怎麼做某事) | 多個 skill / MCP / hook / rule 的集合包 |
| 檔案 | 1 個 SKILL.md + 附檔 | .claude-plugin/plugin.json + 多個資料夾 |
| 目的 | 教 Claude 做某事 | 把整個工作流交付給別人 |
| 比喻 | 一張食譜 | 一本食譜書 + 配料 + 刀具一整組 |
核心邏輯:Skill 是「會做什麼」,Plugin 是「我把整套搬給你」。
13.2 兩種 Plugin(差別重要)
| Cowork Plugin | Claude Code Plugin | |
|---|---|---|
| 執行環境 | Cowork 桌面 app | Claude Code CLI |
| 受眾 | 一般使用者(HR / 業務 / 行政) | 工程師 / 開發者 |
| 入口 | Cowork Settings → Plugins → Browse | .claude/plugins/ 或 marketplace |
| 典型內容 | Skills + Connectors + Templates | Skills + Hooks + Rules + Slash Commands |
| 安裝 | UI 一鍵 | CLI 或設定檔 |
→ 兩者格式幾乎一致,差在受眾與安裝介面。同一個 .plugin 檔可以同時相容兩邊。
13.3 Plugin 結構(標準骨架)
my-plugin.plugin/ ← 副檔名 .plugin(其實是 zip)
├── .claude-plugin/
│ └── plugin.json ← Manifest(必要)
├── README.md ← 給使用者看的說明
├── skills/ ← 多個 SKILL.md
│ ├── skill-1/
│ │ ├── SKILL.md
│ │ └── references/
│ └── skill-2/
│ └── SKILL.md
├── commands/ ← Slash commands
│ └── my-command.md
├── hooks/ ← 自動觸發 hook
│ └── pre-commit.json
├── rules/ ← 條件式規則
│ └── style.md
├── mcp/ ← 內建 MCP server
│ └── my-mcp/
│ ├── package.json
│ └── server.js
└── templates/ ← 範本檔
└── report-template.md
精髓:一個 plugin 可以同時包含上述所有元素,但通常聚焦 1-3 種。
13.4 Manifest 格式(plugin.json)
{
"name": "karpathy-wiki-pattern",
"version": "1.0.0",
"description": "Knowledge base maintenance using Karpathy's LLM Wiki Pattern",
"author": "Vincent Wen",
"tags": ["knowledge", "wiki", "obsidian"],
"platform": ["cowork", "claude-code"],
"skills": [
"skills/wiki-ingest",
"skills/wiki-compile",
"skills/wiki-lint",
"skills/wiki-notion-sync"
],
"license": "MIT"
}| 欄位 | 用途 |
|---|---|
name | 唯一識別(kebab-case) |
version | semver |
description | 一句話說明(觸發匹配也用這個) |
platform | cowork / claude-code / 兩者 |
skills | 列出每個 skill 路徑 |
13.5 怎麼安裝 Plugin
Cowork
方式 1:Settings → Plugins → Browse Marketplace → 點 Install
方式 2:拖 .plugin 檔 進 Cowork → 確認 → 安裝
Claude Code
# 全域安裝
claude plugin install ~/Downloads/my-plugin.plugin
# 專案內安裝(隨 git 進版控)
mkdir -p .claude/plugins
cp ~/Downloads/my-plugin.plugin .claude/plugins/安裝後確認
Cowork: Settings → Plugins → 看到綠色 ✓
Claude Code:claude plugin list
13.6 自製一個 Plugin(5 步)
Step 1:規劃內容
問三個問題:
- 使用者要做什麼任務?(例:每週寫週報)
- 需要哪些能力?(grep code → query DB → write markdown)
- 要哪些觸發條件?(hook? slash command? skill description?)
Step 2:建骨架
mkdir -p my-plugin/{.claude-plugin,skills,commands,templates}Step 3:寫 manifest
cat > my-plugin/.claude-plugin/plugin.json <<EOF
{
"name": "my-plugin",
"version": "0.1.0",
"description": "...",
"skills": ["skills/main"]
}
EOFStep 4:寫 skills(一個 SKILL.md per skill)
cat > my-plugin/skills/main/SKILL.md <<'EOF'
---
description: "When user wants to ..."
---
# My Skill
執行步驟:
1. ...
2. ...
EOFStep 5:打包
cd my-plugin
zip -r ../my-plugin.plugin . -x "*__pycache__*" -x "*.pyc"→ 得到 my-plugin.plugin,可分享 / 上傳 marketplace / 給同事安裝。
13.7 範例:karpathy-wiki-pattern.plugin(今天做的)
內容
karpathy-wiki-pattern.plugin
├── .claude-plugin/plugin.json ← 4 個 skill 的 manifest
├── README.md
├── skills/
│ ├── wiki-ingest/ ← 處理單一 raw 檔案
│ ├── wiki-compile/ ← 編譯多章節文檔
│ ├── wiki-lint/ ← 健康度檢查(含 lint.py)
│ └── wiki-notion-sync/ ← 推送到 Notion
└── templates/
├── vault-CLAUDE.md
├── wiki-index.md
└── wiki-log.md
對應的觸發語句
- 「ingest raw/articles/…」 → wiki-ingest
- 「把 X 編譯成 wiki」 → wiki-compile
- 「lint wiki」 / 「健康度」 → wiki-lint
- 「同步到 Notion」 → wiki-notion-sync
→ 這就是把今天一整天的工作流封裝可重用的成果。
13.8 Marketplace(plugin 商店)
Anthropic 官方有 plugin marketplace:
| 類別 | 範例 plugin |
|---|---|
| Productivity | task-management、memory-management |
| Engineering | code-review、debug、incident-response |
| Data | sql-queries、build-dashboard |
| Design | accessibility-review、ux-copy |
| Cowork tools | pdf-viewer、setup-cowork |
→ Cowork Settings → Plugins → Browse 直接搜。
13.9 PAM 應用想像:pam-hr-toolkit.plugin
如果把 PAM 操作打包,HR 同事不必懂技術,安裝即用:
pam-hr-toolkit.plugin/
├── .claude-plugin/plugin.json
├── skills/
│ ├── interview-followup/ ← 面談追蹤 SOP
│ ├── exam-progress-check/ ← 考核進度查詢
│ ├── notification-draft/ ← 起草催繳信
│ └── annual-report/ ← 年度報告產出
├── commands/
│ ├── pam-status.md ← /pam-status 一鍵看進度
│ └── pam-followup.md ← /pam-followup 起草追蹤信
├── mcp/
│ └── pam-api/ ← 連 PAM 後端 API 的 MCP
├── rules/
│ └── pam-business.md ← PAM 業務規則紅線
└── templates/
├── follow-up-email.md
└── annual-report.docx
效益:
- HR 不必貼規格 → plugin 內建
- 一致的回覆品質(rules 控制)
- 一鍵更新(plugin 升級版本)
13.10 Plugin vs Skill vs MCP — 該選哪個?
| 你想做的事 | 用 |
|---|---|
| 教 Claude 做某個單一任務 | Skill |
| 連某個外部服務 | MCP server |
| 一鍵交付整套工作流給別人 | Plugin(包含 skill / MCP / hook) |
| 觸發某個自動化規則 | Hook |
| 提供條件式紅線 | Rule |
| 給快捷操作 | Slash Command |
最重要的判斷:要分享給他人用,幾乎一定是 plugin。要自己用,可以單純 skill / rule。
13.11 何時不該做 Plugin
- 規則只你一人用 → 留
~/.claude/CLAUDE.md就好 - 內容仍在快速演化(< 1 週迭代) → 還沒穩定,先別封裝
- 只是 1 個 skill → 直接 SKILL.md 就好,不必 plugin overhead
→ plugin 是「我這套可以發出去了」的成熟里程碑,不是起點。
13.12 Vincent 應用建議
短期(已做)
- ✅ karpathy-wiki-pattern.plugin(知識庫維護)
中期(1 個月內)
- 🟡 pam-hr-toolkit.plugin(HR 同事一鍵用 PAM)
長期(3 個月)
- ⏸ era-hr-suite.plugin(年代集團 HR 整體工具包)
- ⏸ pam-dev.plugin(PAM 開發者工具:紅線 rules + skills + MCP)
13.13 進階:Plugin 私有 / 公開分發
| 場景 | 方式 |
|---|---|
| 個人用 | 放 ~/Library/Application Support/Claude/plugins/ |
| 團隊內 | 共享 Drive / GitHub repo + 內部 marketplace |
| 公開 | 上 Anthropic plugin marketplace |
| 企業內 | 自架 marketplace(Anthropic 提供 API) |
→ 年代集團未來可建內部 plugin marketplace,IT 部門產出的 plugin 內部分發。
13.14 跟 Rules / Skills 的關係
Plugin(封裝層)
↓
┌───────────┼──────────┐
│ │ │
Skills Rules MCP server
(能做 (條件 (連外部
什麼) 紅線) 服務)
│ │ │
└─────┬─────┴──────────┘
│
Hooks / Slash Commands
(自動 / 手動觸發點)
Plugin = 把上面這些元素收納成一份檔案 → 可發、可裝、可版控。
進階主題
- 詳細概念:Cowork Plugins
- 實作參考:今天做的 karpathy-wiki-pattern.plugin
- 跟 Skill 的差異:10-Skill 建置與使用 §10.1
- 跟 Rules 的搭配:14-Rules 規則目錄
← 回到 README | 下一章:14-Rules 規則目錄