本仓库采用 Claude Code 的 marketplace 布局,并把“市场目录”“可安装插件”“用户文档”明确分层。
.
├── .claude-plugin/
│ └── marketplace.json
├── plugins/
├── docs/
├── i18n/
└── .github/
.claude-plugin/marketplace.json:用户添加ZaunEkko/claude-plugins后由 Claude Code 读取的市场目录。plugins/:每个可安装插件的独立根目录。docs/:跨插件安装、开发、排查与用户帮助。i18n/:README、社区文件与主要插件指南的翻译。.github/:Issue forms、Pull Request 模板与验证工作流。
Marketplace 本身不是插件。Skills、agents、hooks、MCP 与 scripts 必须放在目标 plugins/<plugin-name>/ 内。
原创插件使用清晰的 purpose-first 名称:
ekko-<specific-purpose>
- 推荐:
ekko-agy-cli、ekko-notion-tasks、ekko-browser-debug - 避免:
claude-plugins、ekko-plugins、ekko-skills、tools、utils
只有在明确需要保留上游安装名和运行时命名空间时,才允许同名兼容分发。此类例外必须记录上游来源、许可证、文件哈希、复制/修改文件、本地新增内容与同步流程。
plugins/commit-commands/ 是当前唯一例外。
每个插件必须包含:
plugins/<plugin-name>/.claude-plugin/plugin.json
当前活动 marketplace manifest:
plugins/commit-commands/.claude-plugin/plugin.jsonplugins/ekko-image-gen/.claude-plugin/plugin.jsonplugins/ekko-collab-protocol/.claude-plugin/plugin.json
plugins/ekko-plugin-scaffold/.claude-plugin/plugin.json 仅作为未上架的历史布局示例保留,不属于活动目录,也不是受支持的安装目标。
添加插件时,还要在根 .claude-plugin/marketplace.json 中加入对应的相对 source。
| 组件 | 位置 | 说明 |
|---|---|---|
| Skill | skills/<skill-name>/SKILL.md |
新用户能力与按需知识的首选格式。 |
| Agent | agents/*.md |
可委派的专用子代理。 |
| Compatibility command | commands/*.md |
仅用于保留既有上游命令命名空间。 |
| Hook | hooks/hooks.json |
生命周期与工具事件自动化。 |
| Script | scripts/ |
被 skill、command 或 hook 调用的可测试实现。 |
| MCP | .mcp.json |
插件级 MCP server 定义。 |
| Test | tests/ |
隔离的行为与集成测试。 |
Claude Code 已将自定义 commands 统一到 skills 语义。新插件应优先创建 skills/,不要只为了 slash-command 外观使用 legacy commands/。
plugins/commit-commands/
├── .claude-plugin/plugin.json
├── commands/
│ ├── clean_gone.md
│ ├── commit.md
│ └── commit-push-pr.md
├── hooks/hooks.json
├── scripts/
├── tests/
├── .gitattributes
├── LICENSE
├── README.md
└── UPSTREAM.md
该目录整体使用 Apache License 2.0。目录外的原创仓库内容默认使用根 MIT License。
plugins/ekko-image-gen/
├── .claude-plugin/plugin.json
├── agents/image-worker.md
├── skills/generate/
│ ├── SKILL.md
│ └── references/
├── scripts/image-gen.mjs
├── tests/image-gen.test.mjs
└── README.md
该插件只暴露一个用户技能命令。主代理负责上下文感知规划和最终图片验收;没有 Agent 工具的叶子 worker 负责受控并发生成;Node.js runner 负责认证、API 路由、multipart 上传、并发槽与文件落盘。
plugins/ekko-collab-protocol/
├── .claude-plugin/plugin.json
├── skills/
│ ├── init/SKILL.md
│ ├── score/SKILL.md
│ └── optimize/SKILL.md
├── scripts/
│ ├── benchmark.mjs
│ ├── init-protocol.mjs
│ ├── lib/protocol-templates.mjs
│ ├── sync-benchmark.mjs
│ └── vendor/ekko-benchmark/
├── tests/collab-protocol.test.mjs
└── README.md
该插件暴露 init、score、optimize 三个技能命令,共用随插件分发的离线 ekko-benchmark 评分引擎(VENDOR.json 记录版本与文件哈希)。初始化由确定性脚本按“计划 → 摘要确认 → 只创建不覆盖”执行;打分只读;优化只应用用户选中的条目。
- 根
README.md:市场定位、当前插件、快速安装、信任与社区入口。 docs/:用户与插件作者的跨插件指南。docs/<plugin>/README.md:面向安装者的插件操作指南。plugins/<plugin>/README.md:实现、测试、依赖、隐私与维护细节。i18n/<language>/:对应的多语言入口和主要指南。
这样可以让普通用户先看到安装与命令,维护者再深入实现和 provenance。
- 创建 plugin manifest 与聚焦的 README。
- 将所有组件放在插件目录中。
- 更新 marketplace catalog。
- 添加行为测试和 trust/permission 说明。
- 更新根 README、文档中心、翻译与
CHANGELOG.md。 - 运行 JSON、测试与
claude plugin validate <plugin> --strict。 - 使用显式
--scope local测试安装,避免改动用户级设置。