Claude Code 的插件是将多种高级功能(如斜杠命令、子代理、钩子和 MCP)打包成一个可一键安装功能集的高级扩展机制。本文将通过 PR Review、DevOps 自动化和文档生成这三个来自 Claude HowTo 教程仓库的完整示例,展示插件的实际构成、核心设计模式以及它们如何自动化复杂的开发工作流。

3 个完整插件示例:PR Review、DevOps 自动化和文档生成

插件是 Claude Code 插件系统 的最高级扩展单元,它将斜杠命令、技能、子代理、MCP 服务器和钩子等独立功能捆绑成一个内聚的、可版本控制和分发的包。本文基于 Claude HowTo 仓库中的三个实战插件,剖析其内部结构与设计思路。

PR Review 插件:多代理协作的代码审查

PR Review 插件的核心设计模式是任务分解与多代理并行处理。它通过一个主命令协调三个专精领域的子代理,实现全面的代码审查。

插件清单与核心组件

插件清单文件 .claude-plugin/plugin.json 定义了其元数据:

{
  "name": "pr-review",
  "version": "1.0.0",
  "description": "Complete PR review workflow with security, testing, and docs",
  "author": { "name": "Anthropic" },
  "license": "MIT"
}

它包含三个斜杠命令(/review-pr, /check-security, /check-tests)、三个专用子代理、一个 GitHub MCP 服务器以及一个前置钩子。安装后,所有组件一次性就位:

/plugin install pr-review

子代理分工模式

PR Review 的强大之处在于将复杂的审查任务拆解给不同的专家代理。

  1. security-reviewer 子代理:专注于安全漏洞扫描,使用 readgrepbash 工具,检查认证授权、数据泄露、注入攻击等风险。
  2. test-checker 子代理:专注于测试覆盖率验证。
  3. performance-analyzer 子代理:专注于评估代码变更的性能影响。

当用户执行 /review-pr 时,主流程会并行委托给这三个子代理,最后综合所有发现,生成一份包含安全、测试、性能等维度的综合报告。这种设计避免了单个代理处理所有问题的上下文过载和效率低下。

钩子与环境验证

插件通过 hooks/pre-review.js 钩子确保审查环境就绪。该钩子在审查开始前运行,主要做两件事:

  • 验证当前目录是否为 Git 仓库。
  • 检查是否有未提交的更改并发出警告。
// hooks/pre-review.js 核心逻辑
async function preReview() {
  // 1. 检查 git 仓库
  execSync('git rev-parse --git-dir', { stdio: 'pipe' });
  // 2. 检查未提交更改
  const status = execSync('git status --porcelain', { encoding: 'utf-8' });
  if (status.trim()) {
    console.warn('⚠️  Warning: Uncommitted changes detected');
  }
}

这体现了插件的防御性设计,在核心功能执行前就规避了常见环境错误。其工作流可总结为:pre-review.js 验证 → GitHub MCP 获取数据 → 三个子代理并行分析 → 综合报告。

DevOps 自动化插件:端到端部署工作流

DevOps 自动化插件演示了如何用插件封装一个多阶段、带验证的自动化工作流,特别适用于需要严格检查的生产部署。

工作流:检查 → 执行 → 验证

此插件的核心是 /deploy 命令驱动的部署工作流,它严格遵循三个阶段:

  1. Pre-deploy 检查:由 pre-deploy.js 钩子负责,验证 kubectl 工具是否可用且集群连接正常。
  2. Deployment-specialist 执行:由 deployment-specialist 子代理接管,执行具体的构建、测试和部署操作。
  3. Post-deploy 烟雾测试:由 post-deploy.js 钩子负责,等待 Pod 就绪并运行基础健康检查。
# 完整的部署工作流示意
用户: /deploy production
 执行 pre-deploy.js (检查 kubectl 和集群连接)
 委派给 deployment-specialist 子代理
 执行 deploy.sh 脚本
 执行 post-deploy.js (等待 Pod, 烟雾测试)
 返回部署摘要

钩子的阶段化控制

pre-deploy.jspost-deploy.js 钩子共同构成了部署流程的“安全锁”和“完成确认器”。它们确保关键操作只在前提条件满足时进行,并在完成后进行验证。post-deploy.js 中的关键步骤是等待 Pod 就绪:

// hooks/post-deploy.js
execSync('kubectl wait --for=condition=ready pod -l app=myapp --timeout=300s', {
  stdio: 'inherit'
});

这直接调用了系统命令,体现了插件钩子的强大脚本能力。Kubernetes MCP 服务器的集成,使得子代理能够直接与集群交互,获取部署状态。

文档生成插件:标准化与模板化

文档生成插件聚焦于将文档工作标准化、模板化和自动化,解决文档滞后、格式不一的问题。

三个文档子代理

该插件同样采用了多代理分工,但职责划分更偏向文档领域:

  • api-documenter:从源代码中提取 API 端点信息并生成文档。
  • code-commentator:改进代码注释。
  • example-generator:为函数或 API 生成使用示例。

当执行 /generate-api-docs 时,api-documenter 子代理会使用内置的 readwritegrep 工具扫描代码,提取信息,并依据模板输出文档。

内置的 API 端点文档模板

插件直接包含了生产可用的模板文件 templates/api-endpoint.md。这个模板结构完整,涵盖了从端点描述、参数、响应到错误码和代码示例(cURL, JavaScript, Python)的所有部分。

# [METHOD] /api/v1/[endpoint]
## Description
## Authentication
## Parameters
### Path Parameters
### Query Parameters
### Request Body
## Responses
### 200 OK
### 400 Bad Request
## Examples
### cURL
### JavaScript
### Python

模板的价值在于强制执行一致性。所有 API 文档都遵循同一结构,降低了阅读和维护的认知负荷。GitHub MCP 的集成则允许插件在生成文档后,自动同步或创建 Pull Request。

插件的通用结构与安装

这三个示例虽然用途各异,但遵循相同的插件结构,它们都可以通过统一的命令安装和管理:

# 安装
/plugin install pr-review
/plugin install devops-automation
/plugin install documentation

# 启用/禁用
/plugin enable pr-review
/plugin disable pr-review

# 列出已安装插件
/plugin list --installed

一个完整的插件目录通常包含:.claude-plugin/plugin.json(清单)、commands/(斜杠命令)、agents/(子代理定义)、hooks/(钩子脚本)、mcp/(MCP 服务器配置)和 templates/(可选模板)。这种标准化结构使得插件易于理解、维护和分发。

FAQ

Q: 插件和手动配置斜杠命令、子代理有什么区别? A: 插件提供了“一键安装”的便利,将多个配置文件捆绑在一起,并支持版本控制和通过市场分发。手动配置适合快速、个人化的定制,而插件更适用于需要标准化、团队共享和可重复部署的复杂工作流。

Q: 如何在发布前测试一个自定义插件? A: 可以使用 claude --plugin-dir ./my-plugin 命令在本地加载插件进行测试。这会启动一个带有该插件所有功能的 Claude Code 会话,你可以验证所有命令、子代理和钩子是否正常工作,而无需先将其发布到市场。