# Claude Code 插件开发：把同名团队命令做成可分发的命名空间插件

## 执行范围

已实际运行 Claude plugin validate --strict，两个插件通过、含空格名称的负例拒绝；未调用两个命名空间命令的模型会话。

## 输入与目标

两个团队都叫review的本地命令与不同参数示例

交付：两份插件源码包、命令说明与各自产物

## 运行

在 reference 目录执行；先按文件 requirements.txt / package.json 或原生工具文档安装依赖。浏览器练习需 `npx playwright install chromium`；也可设置 `PLAYWRIGHT_EXECUTABLE_PATH` 为自己的 Chrome 路径。

```sh
python validate.py
```

## 目录

- fixtures：作者原创输入，不包含用户真实资料。
- starter：读者待完成任务。
- reference：作者完成参考。
- results：作者实际运行所得或明确标注的待运行输入/预期合同。

## 七步

1. **分清同名职责**

先读原创sample.md。editorial审证据，runtime审错误传播；两者都叫review，但适用场景和输出合同不同。

2. **建立插件根目录**

分别建立.claude-plugin/plugin.json和commands/review.md。清单的name使用editorial-review/runtime-review，命令文件保留同名review。

3. **定义只读命令**

命令声明参数与Read/Grep/Glob工具范围，要求具体文件行号。缺文件参数时先询问，不在指令里写作者机器路径。

4. **严格验证清单**

在每个插件根运行claude plugin validate --strict。保留真实通过信息，再用含空格名称的独立负例确认验证器确实拒绝错误清单。

5. **加载独立插件**

在自己的授权会话用--plugin-dir加载两个目录，先检查发现的入口是否各自带插件前缀；本文没有创建账号会话或安装到全局配置。

6. **分别调用入口**

对同一原创文件分别执行/editorial-review:review和/runtime-review:review。检查两份报告的职责差异，错误参数也应由相应命令处理。

7. **打包交付团队**

分发完整插件目录和命令说明，在第三个独立目录重新加载验证；本题results只包含清单验证，不能当作模型调用成功记录。

## 来源

- https://code.claude.com/docs/en/plugins
- https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/README.md


## 原生工具与边界补充

需要已安装的Claude Code CLI；validate不调用模型。真实命令加载可使用 `claude --plugin-dir plugins/editorial --plugin-dir plugins/runtime`，账号会话另行执行。
