# Claude Code 插件结构
## 概述
Claude Code 插件遵循标准化的目录结构和自动组件发现机制。理解此结构有助于创建组织良好、易于维护且能与 Claude Code 无缝集成的插件。
**关键概念:**
- 用于自动发现的约定目录布局
- `.claude-plugin/plugin.json` 中的清单驱动配置
- 基于组件的组织(命令、智能体、技能、钩子)
- 使用 `${CLAUDE_PLUGIN_ROOT}` 的可移植路径引用
- 显式加载与自动发现组件加载
## 目录结构
每个 Claude Code 插件都遵循此组织模式:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # 必需:插件清单
├── commands/ # 斜杠命令 (.md 文件)
├── agents/ # 子智能体定义 (.md 文件)
├── skills/ # 智能体技能 (子目录)
│ └── skill-name/
│ └── SKILL.md # 每个技能必需
├── hooks/
│ └── hooks.json # 事件处理器配置
├── .mcp.json # MCP 服务器定义
└── scripts/ # 辅助脚本与工具
**关键规则:**
1. **清单位置**:`plugin.json` 清单必须位于 `.claude-plugin/` 目录中
2. **组件位置**:所有组件目录(命令、智能体、技能、钩子)必须位于插件根级别,不能嵌套在 `.claude-plugin/` 内
3. **可选组件**:仅为插件实际使用的组件创建目录
4. **命名规范**:所有目录和文件名均使用 kebab-case(短横线命名法)
## 插件清单 (plugin.json)
清单定义了插件的元数据和配置。位于 `.claude-plugin/plugin.json`:
### 必需字段
{
"name": "plugin-name"
}
**名称要求:**
- 使用 kebab-case 格式(小写字母加连字符)
- 在已安装的插件中必须唯一
- 不得包含空格或特殊字符
- 示例:`code-review-assistant`, `test-runner`, `api-docs`
### 推荐元数据
{
"name": "plugin-name",
"version": "1.0.0",
"description": "插件用途的简要说明",
"author": {
"name": "作者姓名",
"email": "
[email protected]",
"url": "https://example.com"
},
"homepage": "https://docs.example.com",
"repository": "https://github.com/user/plugin-name",
"license": "MIT",
"keywords": ["testing", "automation", "ci-cd"]
}
**版本格式**: