13. Plugin 建置與使用

Plugin 是把 Skill + MCP server + Hook + Slash Command + Rule 整包打包的格式——讓您一鍵安裝整個工作流給自己用,或發給整個團隊用。 我們今天剛做了一個:karpathy-wiki-pattern.plugin——4 個 skill + 範本 + lint script 一起打包。


13.1 Plugin 是什麼

SkillPlugin
單位1 個能力(怎麼做某事)多個 skill / MCP / hook / rule 的集合包
檔案1 個 SKILL.md + 附檔.claude-plugin/plugin.json + 多個資料夾
目的教 Claude 做某事把整個工作流交付給別人
比喻一張食譜一本食譜書 + 配料 + 刀具一整組

核心邏輯:Skill 是「會做什麼」,Plugin 是「我把整套搬給你」。


13.2 兩種 Plugin(差別重要)

Cowork PluginClaude Code Plugin
執行環境Cowork 桌面 appClaude Code CLI
受眾一般使用者(HR / 業務 / 行政)工程師 / 開發者
入口Cowork Settings → Plugins → Browse.claude/plugins/ 或 marketplace
典型內容Skills + Connectors + TemplatesSkills + 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)
versionsemver
description一句話說明(觸發匹配也用這個)
platformcowork / 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:規劃內容

問三個問題:

  1. 使用者要做什麼任務?(例:每週寫週報)
  2. 需要哪些能力?(grep code → query DB → write markdown)
  3. 要哪些觸發條件?(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"]
}
EOF

Step 4:寫 skills(一個 SKILL.md per skill)

cat > my-plugin/skills/main/SKILL.md <<'EOF'
---
description: "When user wants to ..."
---
 
# My Skill
 
執行步驟:
1. ...
2. ...
EOF

Step 5:打包

cd my-plugin
zip -r ../my-plugin.plugin . -x "*__pycache__*" -x "*.pyc"

→ 得到 my-plugin.plugin,可分享 / 上傳 marketplace / 給同事安裝。


13.7 範例:karpathy-wiki-pattern.plugin(今天做的)

查看 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
Productivitytask-management、memory-management
Engineeringcode-review、debug、incident-response
Datasql-queries、build-dashboard
Designaccessibility-review、ux-copy
Cowork toolspdf-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 = 把上面這些元素收納成一份檔案 → 可發、可裝、可版控。


進階主題


← 回到 README | 下一章:14-Rules 規則目錄