Back

Codex Skill 與 Plugin 的差異:OpenAI Codex、MCP Server 與 AI Coding Workflow 完整比較

最精準的一句話理解:

Skill 定義「Codex 應該怎麼完成一項工作」;Plugin 則把 Skills、工具、MCP Server 與外部服務整合,包裝成可安裝、分享及版本管理的產品套件。

兩者不是互斥關係。更準確地說:

Skill 是 AI coding workflow 的工作流程單元;Plugin 是能力的安裝、整合與發佈容器。

在 OpenAI Codex 的使用情境中,Skill 比較像「專業工作流程與操作指引」,用來告訴 Codex 面對某類任務時應該怎麼做;Plugin 則比較像「可安裝的能力套件」,可以把多個 Skills、App/Connector、MCP Server、Hooks、Assets 與設定整合在一起,形成一套可重複部署與管理的工具包。

Skill 與 Plugin 詳細比較

比較項目SkillPlugin
核心本質可重複使用的工作流程與操作指引可安裝、發佈、版本化的功能套件
解決的問題告訴 Codex「這件事應該怎麼做」把多種能力整合成「一套可安裝產品」
基本結構一個包含 SKILL.md 的資料夾必須包含 .codex-plugin/plugin.json
可包含內容指令、參考資料、範例、模板、腳本、素材Skills、App、Connector、MCP、Hooks、資產、圖示及套件設定
是否能包含多個 Skill本身通常對應一個聚焦工作流程可以包含一個或多個 Skills
是否直接提供外部工具通常不會;主要是指導 Codex 使用現有工具可以透過 App、Connector 或 MCP Server 提供新工具
是否需要登入帳號通常不需要如果包含 Shopify、Slack、Gmail 等 Connector,通常需要授權
能否讀寫真實資料要看環境原本是否已有可用工具若包含已授權的 App/MCP,可以實際讀寫外部資料
自動啟用方式Codex 可依 description 判斷,也可明確指定安裝並啟用後,其 Skills 與工具才會進入可用範圍
指定方式CLI/IDE 可用 $skill-name 或技能選單ChatGPT 可用 @plugin,也能指定 Plugin 內的 Skill
Context 使用採漸進式載入,需要時才讀取完整 SKILL.mdPlugin 本身是容器;其中 Skills 同樣採漸進式載入
更新方式更新個別 Skill 資料夾或其來源依 Plugin 版本整套更新
版本管理獨立 Skill 不一定有統一套件版本Manifest 有明確的 version
啟用/停用可以針對個別 Skill 設定可以整個 Plugin 安裝、停用或移除
分享方式適合個人、本機或跟著 Repository 分享適合 Marketplace、團隊、Workspace 或公開發佈
最適合的規模單一、清楚、聚焦的任務多流程、跨工具、需要登入或團隊統一管理
目前實例GSAP Core、Timeline、ScrollTrigger SkillsShopify、Slack、Gmail、Google Drive Plugin

官方將 Skill 定義為包含操作指引、資源及選用腳本的可重複工作流程;Plugin 則是能包含 Skills、App、MCP 與其他元件的安裝套件。Build skillsBuild plugins

Skill 是什麼?負責定義 Codex 怎麼完成一項工作

Skill 的核心不是「增加一個外部系統」,而是讓 OpenAI Codex 或 AI coding agent 穩定遵循某種專業做法。它通常用來定義一套可重複執行的工作流程,讓 Codex 在面對相似任務時,不需要每次重新理解規則。

例如一個 gsap-scrolltrigger Skill 可以規定:

  • 如何註冊 ScrollTrigger。
  • 如何設定起點、終點與 scrub。
  • 如何處理 React component cleanup。
  • 如何避免重複建立 Trigger。
  • 如何支援 prefers-reduced-motion
  • 完成後要執行哪些測試。
  • 使用哪些程式碼模板與最佳實務。

也就是說,Skill 比較像「Codex 的專業操作手冊」。它不一定提供新的外部工具,但可以告訴 Codex 如何使用現有工具、如何修改程式碼、如何遵循專案規範,以及如何避免常見錯誤。

典型結構可能是:

gsap-scrolltrigger/
├── SKILL.md
├── references/
│   ├── patterns.md
│   └── performance.md
├── scripts/
│   └── validate-animation.js
└── assets/
    └── starter-template.js

最低必要條件是:

gsap-scrolltrigger/
└── SKILL.md

SKILL.md 至少需要包含名稱與觸發描述:

---
name: gsap-scrolltrigger
description: 使用 GSAP ScrollTrigger 建立、修改或除錯滾動動畫。
---

建立動畫時,先檢查元素初始狀態……

Codex 一開始通常只看到 Skill 的名稱、描述與位置;當任務符合用途時,才讀取完整內容。這種方式稱為「漸進式揭露」,能避免所有 Skills 一開始就塞滿 Context。

Plugin 是什麼?負責安裝、整合、版本管理與發佈

Plugin 是具有 Manifest 的安裝套件。它可以把多個 Skills、App/Connector、MCP Server、Hooks、Assets 與套件設定包在一起,形成一套可以安裝、啟用、停用、更新與分享的能力包。

如果 Skill 是「Codex 怎麼做事」,Plugin 則是「這整套能力如何被安裝與交付」。

典型結構如下:

shopify-plugin/
├── .codex-plugin/
│   └── plugin.json
├── .app.json
├── .mcp.json
├── hooks/
│   └── hooks.json
├── assets/
│   ├── icon.png
│   └── logo.png
└── skills/
    ├── shopify-liquid/
    │   └── SKILL.md
    ├── shopify-admin/
    │   └── SKILL.md
    ├── shopify-functions/
    │   └── SKILL.md
    └── shopify-hydrogen/
        └── SKILL.md

其中:

元件負責內容
plugin.jsonPlugin 名稱、版本、元件位置與顯示資訊
skills/Shopify 各領域的工作流程及專業知識
.app.json對應 ChatGPT App/Connector
.mcp.jsonMCP Server 與工具設定
hooks/在特定生命週期自動執行的指令
assets/圖示、Logo、截圖等呈現資產

基本 Manifest 可以只有:

{
  "name": "gsap",
  "version": "1.0.0",
  "description": "Reusable GSAP animation workflows",
  "skills": "./skills/"
}

如果包含更多能力,則可能是:

{
  "name": "shopify",
  "version": "2.0.0",
  "description": "Shopify development and store management toolkit",
  "skills": "./skills/",
  "apps": "./.app.json",
  "mcpServers": "./.mcp.json",
  "hooks": "./hooks/hooks.json"
}

因此,Plugin 不一定要有 Connector 或 MCP Server。只有一組 Skills,也可以包成 Plugin;差別主要在於它開始具備正式的安裝、版本、啟用、分享與發佈機制。Plugin structure

MCP Server 在 Plugin 裡扮演什麼角色?

MCP Server 是 Plugin 可能包含的能力之一,主要用來提供工具、結構化資料與外部系統操作能力。對 Codex 或 ChatGPT 來說,MCP Server 可以讓 AI 不只是「知道怎麼做」,而是能透過工具實際查詢資料、讀取系統狀態,甚至執行特定操作。

簡單來說:

  • Skill:告訴 Codex 怎麼完成一項工作。
  • MCP Server:提供 Codex 可以呼叫的工具與資料。
  • Plugin:把 Skill、MCP Server、Connector 與其他資源包裝成可安裝套件。

例如一個 SEO Plugin 可能包含:

  • SEO 文章撰寫 Skill。
  • Technical SEO 檢查 Skill。
  • Ahrefs MCP Server。
  • Google Search Console Connector。
  • Slack 通知 Hooks。
  • 報告模板與圖表資源。

這種組合就不只是單一工作流程,而是一整套 AI SEO 或 AI coding workflow 的產品化套件。

Shopify Plugin 的實際運作方式

Shopify Plugin 可以同時解決兩種完全不同的需求。

1. Shopify 開發知識與工作流程

例如:

  • 撰寫 Shopify Liquid。
  • 修改 Theme Section。
  • 開發 Shopify Functions。
  • 建立 Admin GraphQL mutation。
  • 開發 Hydrogen Storefront。
  • 設計 Metafields 或 Metaobjects。
  • 建立 Checkout UI Extension。

這些主要由 Plugin 裡面的 Shopify Skills 負責。

例如你說:

幫我建立一個可設定標題、圖片與按鈕的 Shopify Section。

Codex 會採用 shopify-liquid Skill 的規範,修改本機 Theme 程式碼;不一定需要登入 Shopify 商店。這種情境下,Skill 負責的是開發規範、程式碼結構與最佳實務。

2. 讀寫真實 Shopify 商店

例如:

  • 查詢商品。
  • 取得訂單。
  • 更新庫存。
  • 編輯商品資料。
  • 讀取商店設定。
  • 執行管理後台操作。

這時需要 Plugin 內的 Shopify App/Connector 或 MCP 工具,而且通常必須先完成商店授權。

需要注意的是,Manifest 顯示的 ReadWrite 能力主要是套件能力描述;真正可以存取哪些資料,仍取決於:

  • Shopify Connector 提供哪些工具。
  • 使用者授權了哪一間商店。
  • Shopify OAuth scopes。
  • Workspace 管理政策。
  • Codex 當下的 Sandbox 與 Approval 設定。

換句話說,Manifest 寫著 Write 並不等於自動取得所有商店的寫入權限。Plugin 可以提供能力,但實際能不能讀寫資料,仍然取決於授權、工具範圍與執行環境。

GSAP 為什麼適合使用獨立 Skills?

GSAP 的主要需求是:

  • 提供 API 使用方式。
  • 提供動畫設計模式。
  • 避免效能與生命週期問題。
  • 產生正確的 JavaScript、React 或框架程式碼。
  • 協助修改本機專案。

它通常不需要:

  • 登入 GSAP 帳號。
  • 存取私人雲端資料。
  • 操作外部管理後台。
  • OAuth 授權。
  • MCP Server。
  • 自訂 ChatGPT UI。

所以將 GSAP 拆成多個聚焦 Skills 很合理,例如:

gsap-core
gsap-timeline
gsap-scrolltrigger
gsap-flip
gsap-draggable
gsap-svg
gsap-react
gsap-performance

每一個 Skill 負責一種動畫能力,Codex 只在任務符合時載入需要的內容。這種做法可以讓 AI coding agent 在處理動畫開發時更精準,不需要每次都載入整套 GSAP 知識。

例如:

使用者需求可能啟用的 Skill
建立基本淡入動畫gsap-core
製作多段動畫序列gsap-timeline
捲動到區塊時播放動畫gsap-scrolltrigger
React component 動畫gsap-react
清單重新排序的過場gsap-flip
改善動畫掉幀問題gsap-performance

GSAP 能不能包成 Plugin?

可以。

但如果原始 Repository 只有:

skills/
├── gsap-core/
├── gsap-timeline/
└── gsap-scrolltrigger/

而沒有:

.codex-plugin/plugin.json

它就只是「一個收錄多個 Skills 的 Repository」,還不是原生 Codex Plugin。

若要改成 Plugin,可以包裝成:

gsap-plugin/
├── .codex-plugin/
│   └── plugin.json
├── assets/
│   └── gsap-logo.png
└── skills/
    ├── gsap-core/
    ├── gsap-timeline/
    ├── gsap-scrolltrigger/
    └── ...

這麼做不會讓 GSAP 動畫本身突然變強,但會帶來:

  • 八個 Skills 一次安裝。
  • 整套統一版本。
  • 一次啟用或停用。
  • 可以透過 Marketplace 發佈。
  • 比較容易分享給 Irvinglab 團隊。
  • 更新時不必分別處理八個 Skills。
  • 可以加上圖示、說明、作者與版本資訊。

所以差別主要是「管理與發佈能力」,不是動畫程式碼能力。GSAP Plugin 的價值不是讓動畫 API 更強,而是讓整套 Codex Skills 更容易安裝、管理、更新與分享。

什麼時候選 Skill?

適合使用獨立 Skill 的情況:

  • 只有一個明確的工作流程。
  • 還在頻繁測試與修改。
  • 主要由自己使用。
  • 只需要本機程式碼、文件或既有工具。
  • 不需要 OAuth 或外部帳號授權。
  • 不需要把多個能力綁在同一版本。
  • 只對某個 Repository 有效。

例如:

  • Irvinglab SEO 文章撰寫規範。
  • Shopify Theme Code Review。
  • GSAP ScrollTrigger 動畫。
  • 每週 SEO 報告格式。
  • 品牌文案語氣檢查。
  • Liquid Section 建立流程。
  • 專案交付前檢查清單。

如果重點是讓 Codex 學會一套穩定做法,或讓 AI coding workflow 更一致,通常先做 Skill 就足夠。

什麼時候選 Plugin?

適合包成 Plugin 的情況:

  • 有多個相關 Skills。
  • 希望整套安裝與更新。
  • 需要分享給團隊或客戶。
  • 需要明確版本管理。
  • 希望出現在 Plugin Directory 或 Marketplace。
  • 需要連接 Shopify、Slack、Google Drive 等外部服務。
  • 需要 MCP Server 或外部工具。
  • 需要 Hooks 或其他套件級設定。
  • 希望未來公開發布。

例如:

  • Shopify AI Toolkit。
  • Irvinglab SEO Toolkit。
  • 公司內部品牌與內容生產套件。
  • 同時連接 GA4、Search Console、Ahrefs 與 Slack 的 SEO Plugin。
  • 包含 Liquid、GraphQL、Functions、Hydrogen 的 Shopify 開發套件。

如果重點是把多個能力包成一套可以安裝、更新、授權與分享的產品化工具,Plugin 會比單一 Skill 更適合。

快速選擇判斷

需求建議
只有一個聚焦任務Skill
還在實驗階段Skill
個人本機使用Skill
Repository 專屬規範Skill
多個 Skills 要一次安裝Plugin
需要統一版本Plugin
需要團隊分享Plugin
需要 Connector 或登入外部服務Plugin
需要 MCP、Hooks 或套件級設定Plugin
希望上架 MarketplacePlugin

可以用這個簡單判斷:

如果重點是「教 Codex 怎麼做」,先做 Skill;如果重點是「把整套能力交給別人安裝、使用與更新」,再包成 Plugin。

最後總結

  • Skill 是流程與專業知識。
  • Plugin 是安裝、整合、版本管理與發佈方式。
  • Plugin 可以包含 Skills,但 Skill 不會包含 Plugin。
  • Skill 可以指導 Codex 使用工具,但不等於它自己提供外部工具。
  • MCP Server 可以提供工具、資料與外部系統操作能力。
  • 需要讀寫真實服務時,通常還需要 App/Connector 或 MCP。
  • Shopify 適合 Plugin;GSAP 個人使用時適合獨立 Skills。
  • GSAP 包成 Plugin 後,主要改善管理與分享,不會直接增加動畫能力。

延伸閱讀:官方進一步說明可參考:Skills & PluginsPlugins

Irving 爾文
Irving 爾文
https://irvinglab.com
Founder of Irvinglab 爾文實驗室 / Senior Web Designer / SEO Manager 🚀 專精 Shopify 電商網站設計與架站以及 WordPress 品牌網站和部落格建置,工作經歷大小型公司(包含品牌方與代理商)、網頁設計接案公司、數位行銷公司、新創 Saas 軟體公司等,熱衷設計與文字創作、社群分享,專注網頁設計與架站平台、SEO 搜尋引擎優化,深度研究品牌行銷、UX 策略與數位產品、電商經營等領域,學習各式各樣的科技軟體。