Harness Marketplace 剖析系列 - 之 Claude Code:一个真实 Plugin 与 Skill 的完整拆解
前两篇中,我们已经分别分析了:
第一篇: Claude Code 的目录与配置结构 第二篇: Marketplace 如何发现、安装和落盘经过前面的分析,一个 Marketplace 中的 Plugin 最终会被复制到 Claude Code 的本地版本化缓存中:
~/.claude/plugins/cache/ └── claude-plugins-official/ └── plugin-dev/ └── <version>/但文件落盘只是开始。
接下来更关键的问题是:
一个安装完成的 Claude Code Plugin,究竟向 Harness 提供了什么?
它只是一个存放 Prompt 的目录,还是一个能够同时注册 Skill、Command、Subagent、Hook、MCP Server 等多种能力的扩展包?
这一篇,我们选择 Anthropic 官方 Marketplace 中的plugin-dev,沿着下面这条链路进行完整拆解:
marketplace.json ↓ Plugin Source ↓ 本地 Plugin 目录 ↓ plugin.json ↓ skills / commands / agents ↓ 组件之间的协作 ↓ Claude Code Harness 自动发现 ↓ 运行时能力注册重点回答以下问题:
Marketplace Entry 负责什么? plugin.json 为什么非常精简? Skill、Command 和 Agent 分别解决什么问题? References、Examples 和 Scripts 如何参与执行? 没有 hooks、MCP 和 LSP 配置意味着什么? 这些文件最终如何变成 Harness 中的真实能力?一、为什么选择plugin-dev
Anthropic 官方 Marketplace 中提供了多种不同类型的 Plugin,例如:
code-review commit-commands code-simplifier pr-review-toolkit skill-creator plugin-dev其中,plugin-dev的定位是:
一套用于开发 Claude Code Plugin 的完整能力工具包。
它不是一个只解决单一任务的 Skill,而是围绕“Plugin 开发”这个领域,组织了一组相互关联的 Skill、Command、Agent、参考资料和验证脚本。
Marketplace 中对它的描述大致如下:
{"name":"plugin-dev","description":"Comprehensive toolkit for developing Claude Code plugins. Includes 7 expert skills covering hooks, MCP integration, commands, agents, and best practices. AI-assisted plugin creation and validation.","author":{"name":"Anthropic","email":"support@anthropic.com"},"source":"./plugins/plugin-dev","category":"development","homepage":"https://github.com/anthropics/claude-plugins-public/tree/main/plugins/plugin-dev"}这条 Marketplace Entry 向 Claude Code 提供了几项关键信息:
Plugin 名称: plugin-dev 所属分类: development Plugin 来源: 当前 Marketplace 仓库中的 ./plugins/plugin-dev 维护者: Anthropic选择plugin-dev作为案例,主要有三个原因。
1. 它的组件结构比较完整
plugin-dev包含:
7 个 Skills 1 个 Command 3 个 Agents 1 个 Plugin Manifest 多组 References、Examples 和 Scripts通过它,可以同时观察 Claude Code 中 Skill、Command 和 Subagent 的组织方式。
2. 它本身就是一套 Plugin 开发规范
它所提供的七个 Skill 覆盖:
Plugin 目录结构 Skill 开发 Command 开发 Agent 开发 Hook 开发 MCP 集成 Plugin Settings因此,它既是一个可以实际安装和使用的 Plugin,也是一份以 Skill 形式组织的 Claude Code Plugin 开发指南。
3. 它能帮助区分“开发知识”和“运行时能力”
plugin-dev中包含:
hook-development Skill mcp-integration Skill但这不代表它自己注册了 Hook 或启动了 MCP Server。
必须区分:
教 Claude 如何开发 Hook ≠ Plugin 自身注册了 Hook 教 Claude 如何配置 MCP ≠ Plugin 自身启动了 MCP Server这是理解 Claude Code Plugin 能力边界的关键。
二、从 Marketplace Entry 到本地 Plugin
在分析 Skill 和 Agent 之前,需要先看清plugin-dev是如何从 Marketplace 中的一条记录,变成 Claude Code 本地可以加载的 Plugin。
1.marketplace.json中的 Plugin Entry
plugin-dev首先存在于官方 Marketplace 的:
claude-plugins-official/ └── .claude-plugin/ └── marketplace.json其中的 Plugin Entry 类似:
{"name":"plugin-dev","description":"Comprehensive toolkit for developing Claude Code plugins. Includes 7 expert skills covering hooks, MCP integration, commands, agents, and best practices. AI-assisted plugin creation and validation.","author":{"name":"Anthropic","email":"support@anthropic.com"},"source":"./plugins/plugin-dev","category":"development","homepage":"https://github.com/anthropics/claude-plugins-public/tree/main/plugins/plugin-dev"}这一层主要用于:
Marketplace 浏览 Plugin 搜索 安装前信息展示 Plugin Source 定位 分类和作者识别可以将它理解为:
Marketplace Entry = 安装前 Catalog Metadata这里并没有详细列出:
Plugin 中有多少 Skill 有哪些 Command 有哪些 Agent 是否包含 Hook 或 MCP 每个组件具体放在哪里因为 Marketplace 的主要职责是“发现和定位”,不是完整描述 Plugin 内部结构。
2. Marketplace 如何定位 Plugin Source
plugin-dev的 Source 是:
{"source":"./plugins/plugin-dev"}它表示 Plugin 位于 Marketplace 仓库的相对目录中:
claude-plugins-official/ ├── .claude-plugin/ │ └── marketplace.json └── plugins/ └── plugin-dev/安装时,Claude Code 会沿着这条路径完成定位:
读取 marketplace.json ↓ 找到 plugin-dev Entry ↓ 解析 source = ./plugins/plugin-dev ↓ 定位 Plugin Source ↓ 复制 Plugin 目录 ↓ 写入本地版本化 Cache最终运行时使用的目录大致是:
~/.claude/plugins/cache/ └── claude-plugins-official/ └── plugin-dev/ └── <resolved-version>/因此:
Marketplace Entry → 指向 Plugin 的原始 Source Plugin Cache → 保存 Harness 实际加载的 Plugin 副本Claude Code 不会一直依赖 Marketplace 原始目录
