ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code 插件校验实战:使用 plugin-validator Agent 系统检查插件结构与配置

Claude Code 插件校验实战:使用 plugin-validator Agent 系统检查插件结构与配置 AI 插件开发工具插件系统【免费下载链接】claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.项目地址https://gitcode.com/GitHub_Trending/cl/claude-plugins-official点击查看免费下载导读在 Claude Code 插件开发流程中plugin-validator是一个专门负责综合校验插件结构、清单manifest与各类组件的专家 Agent。它既可以被用户在发布前主动唤起Validate my plugin也会在用户新建或修改插件组件后自动触发以尽早发现结构性问题。本文将以本仓库plugin-dev插件中的 plugin-validator.md 为骨架结合仓库内的真实校验脚本与插件实例完整讲解该 Agent 的 10 步校验流程、严重度分级、报告输出格式以及常见边界情况读完你可以直接用它为自己的插件做发布前体检。一、插件为什么需要专门校验Claude Code 插件的可加载性高度依赖约定的目录结构与约定式发现auto-discovery机制。从 plugin-structure 技能 可以看到插件必须满足这些硬性规则清单文件plugin.json必须位于插件根目录的.claude-plugin/子目录下否则 Claude Code 不会识别该插件组件目录commands/、agents/、skills/、hooks/必须位于插件根层级不能嵌套在.claude-plugin/内部name必须符合 kebab-case且在整个安装环境中唯一路径引用必须使用${CLAUDE_PLUGIN_ROOT}保持可移植性。任何一个环节出错如 YAML frontmatter 语法错误、SKILL.md 文件名写成 README.md、路径写成绝对路径都会导致组件静默失效——而这类问题在开发环境中往往难以察觉。plugin-validator 的价值正在于把结构是否合规从人眼抽查变成可复现的系统化检查。二、plugin-validator 的触发时机与角色定位触发描述根据 plugin-validator.md 的 frontmatter该 Agent 在以下场景被激活用户明确请求validate my plugin、check plugin structure、verify plugin is correct、validate plugin.json、check plugin files用户在创建或修改插件组件后主动触发例如我刚创建了带 commands 和 hooks 的第一个插件、Ive updated the plugin manifest建议在发布前主动调用做一次全量校验。基础配置配置项值说明nameplugin-validatorAgent 标识用于/plugin-validator类调用与自动选择modelinherit继承当前会话模型也可显式指定 sonnet/opus/haikucoloryellow终端中该 Agent 的显示颜色tools[Read, Grep, Glob, Bash]允许使用的工具集覆盖文件读取、搜索、目录枚举与命令执行该 Agent 是plugin-dev工具包中三个校验类 Agent 之一另有agent-creator、skill-reviewer它们共同服务于 create-plugin 工作流 的第 6 阶段Validation。三、核心职责清单plugin-validator 的职责被明确划分为六项本质上是结构 → 清单 → 组件 → 规范 → 反模式 → 建议的完整校验链路校验插件结构与组织方式检查plugin.json清单的正确性校验全部组件文件commands、agents、skills、hooks核查命名约定与文件组织检查常见问题与反模式anti-patterns给出具体、可执行的修复建议。四、10 步校验流程详解以下按校验顺序逐一展开并补充仓库源码中的可执行依据。步骤 1定位插件根目录检查.claude-plugin/plugin.json是否存在核实插件目录结构记录插件位置类型项目内插件project还是市场插件marketplace。依据 manifest-reference.md清单文件必须位于.claude-plugin/下这是 Claude Code 识别插件的前提。步骤 2校验 Manifest.claude-plugin/plugin.json使用 Bash jq或 Read 手动解析检查 JSON 语法必填字段namename格式kebab-case、无空格可选字段若存在则逐一校验字段要求补充说明version语义化版本 X.Y.Z参考 manifest-reference.mdMAJOR 为破坏性变更、MINOR 为向后兼容新功能、PATCH 为兼容性修复缺省默认0.1.0支持1.0.0-alpha.1等预发布标记description非空字符串推荐 50–200 字符面向市场展示时建议不超过 200 字符author合法结构对象格式{name, email, url}或字符串格式Name email (url)均可mcpServers合法的服务器配置stdio 需command字段sse/http/ws 需url字段未知字段警告但不判定失败。易错点来自源码级证据manifest-reference.md 明确指出三种典型错误——含空格的name应改为 kebab-case、绝对路径的commands字段必须是./开头的相对路径、非语义化的version如1.0应为1.0.0。name的合法正则可归纳为/^[a-z][a-z0-9]*(-[a-z0-9])*$/。步骤 3校验目录结构用 Glob 查找组件目录核对标准位置commands/→ 斜杠命令agents/→ Agent 定义skills/→ 技能目录hooks/hooks.json→ 钩子配置验证**自动发现auto-discovery**是否成立。从 plugin-structure SKILL.md 可知自动发现的加载顺序插件启用时先读.claude-plugin/plugin.json随后扫描commands/、agents/、skills/查找含SKILL.md的子目录、hooks/hooks.json与.mcp.jsonmanifest 中的自定义路径是补充而非替换默认目录。步骤 4校验 Commands若存在commands/用 Glob 查找commands/**/*.md对每个命令文件检查YAML frontmatter 存在以---开头description字段存在若存在argument-hint检查其格式若存在allowed-tools必须为数组Markdown 正文内容非空检查命名冲突。真实示例example-plugin 的命令文件 展示了 frontmatter 的三个可选字段的合法写法argument-hint: required-arg [optional-arg]、allowed-tools: [Read, Glob, Grep, Bash]。其中allowed-tools可预授权工具以减少权限弹窗argument-hint用于在/help中向用户提示参数。步骤 5校验 Agents若存在agents/该步骤可直接调用 agent-development 技能附带的 validate-agent.sh 脚本用法为./validate-agent.sh path/to/agent.md也可手动核对frontmatter 必须含name、description、model、colorname小写 连字符长度 3–50 字符description包含example触发块model合法值为inherit/sonnet/opus/haikucolor合法值为blue/cyan/green/yellow/magenta/red系统提示词存在且实质内容大于 20 字符。脚本实现的校验细节源码级佐证validate-agent.sh 共执行五组检查——文件存在与 frontmatter 开闭、必填字段、name格式^[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]$且长度 3–50与通用名警告helper/assistant/agent/tool会被提示过于泛化、description长度10–5000 字符过短或超长均告警及example块与Use this agent when引导语、model/color白名单枚举、系统提示词长度20 字符判错10000 字符告警与第二人称风格You are/You will/Your。脚本以错误计数与警告计数汇总输出✅/⚠️/❌分级结果并设置退出码0 通过、1 失败。步骤 6校验 Skills若存在skills/用 Glob 查找skills/*/SKILL.md对每个技能目录确认SKILL.md文件存在注意必须是SKILL.md而非README.md或其他命名检查含name与description的 YAML frontmatter确认描述简洁清晰检查references/、examples/、scripts/子目录验证引用的文件真实存在。真实示例example-plugin 的技能目录 展示了skills/example-command/SKILL.md与skills/example-skill/SKILL.md的标准布局而plugin-dev自身的每个技能如 plugin-structure 技能正是按references/ examples/ scripts/组织资源的典范其 SKILL.md frontmatter 还额外携带version: 0.1.0。步骤 7校验 Hooks若存在hooks/hooks.json推荐直接调用 hook-development 技能附带的 validate-hook-schema.sh用法为./validate-hook-schema.sh path/to/hooks.json也可手动核对JSON 语法合法事件名合法PreToolUse、PostToolUse、Stop 等每个事件下存在matcher与hooks数组hook 类型为command或prompt命令脚本使用${CLAUDE_PLUGIN_ROOT}引用。脚本实现的校验细节validate-hook-schema.sh 用jq检查 JSON 合法性并维护一份合法事件白名单PreToolUse、PostToolUse、UserPromptSubmit、Stop、SubagentStop、SessionStart、SessionEnd、PreCompact、Notification。随后逐事件、逐 hook 检查缺失matcher或hooks数组判错type非command/prompt判错command型 hook 缺少command字段判错且若命令以绝对路径开头且不含${CLAUDE_PLUGIN_ROOT}会警告硬编码路径prompt型 hook 缺少prompt字段判错并提示 prompt 型 hook 在Stop、SubagentStop、UserPromptSubmit、PreToolUse上支持最好timeout必须是数字且 600s 或 5s 会被警告。真实示例hookify 插件的 hooks.json 是符合规范的样板——四个事件PreToolUse、PostToolUse、Stop、UserPromptSubmit均使用command类型并通过python3 ${CLAUDE_PLUGIN_ROOT}/hooks/pretooluse.py这类可移植路径引用脚本每项timeout: 10。步骤 8校验 MCP 配置若存在.mcp.json或 manifest 中的mcpServers检查 JSON 语法按服务器类型核对字段stdio必须有command字段sse/http/ws必须有url字段类型专属字段齐备检查${CLAUDE_PLUGIN_ROOT}的可移植用法。步骤 9检查文件组织README.md存在且内容完整无多余文件node_modules、.DS_Store等需要时存在.gitignore存在LICENSE文件。步骤 10安全检查任何文件中不得有硬编码凭据MCP 服务器应使用 HTTPS/WSS 而非 HTTP/WSHooks 无明显安全问题示例文件中不得含机密信息。这一步与 plugin-dev 工具包的安全优先原则一致见 READMEhooks 输入校验、环境变量承载凭据、最小权限原则。五、质量标准与严重度分级plugin-validator 要求所有校验结果遵循统一的质量标准每个错误都附带文件路径与具体问题警告与错误严格区分每个问题给出修复建议对结构良好的组件给出正向反馈Positive Findings按严重度分级critical / major / minor。这与 validate-agent.sh、validate-hook-schema.sh 中❌ 错误 / ⚠️ 警告 / 提示的输出风格一脉相承。六、标准输出格式Plugin Validation ReportAgent 的报告必须采用固定的 Markdown 模板保证机器可读与人工可审## Plugin Validation Report ### Plugin: [name] Location: [path] ### Summary [总体评估 - pass/fail 及关键统计] ### Critical Issues ([count]) - file/path - [Issue] - [Fix] ### Warnings ([count]) - file/path - [Issue] - [Recommendation] ### Component Summary - Commands: [count] found, [count] valid - Agents: [count] found, [count] valid - Skills: [count] found, [count] valid - Hooks: [present/not present], [valid/invalid] - MCP Servers: [count] configured ### Positive Findings - [做得好的部分] ### Recommendations 1. [优先级最高的建议] 2. [补充建议] ### Overall Assessment [PASS/FAIL] - [理由]各段落语义解读Summary一段话概括插件整体健康度给出通过/失败结论与关键统计数字Critical Issues / Warnings分别罗列阻断性错误与可容忍警告每条严格遵循文件路径 - 问题 - 修复方案三段式且按严重度优先排序Component Summary以数量矩阵呈现各组件发现数 / 通过数让人一眼看出薄弱环节Positive Findings记录结构合规的亮点防止报告只有负面信息Recommendations给出按优先级排序的下一步行动Overall Assessment最终 PASS/FAIL 判定与推理依据。七、边界情况处理策略plugin-validator 明确规定了以下边界场景的行为场景处理策略极简插件只有 plugin.json若 manifest 正确则判定为有效空目录警告但不判失败manifest 中的未知字段警告但不判失败多个校验错误按文件分组critical 优先插件不存在输出清晰错误信息并给出指引文件损坏跳过并报告继续其余校验最后一条尤其重要校验过程必须具有鲁棒性——单个损坏文件不应中断整个校验而应被记录后继续。八、在开发工作流中集成校验plugin-validator 并不是孤立工具而是plugin-dev完整工作流的一环创建阶段/plugin-dev:create-plugin工作流覆盖 8 个阶段发现 → 组件规划 → 详细设计 → 结构创建 → 组件实现 →Validation 校验→ 测试 → 文档其中第 6 阶段明确运行 plugin-validator 与各组件专属检查见 plugin-dev README组件专属校验脚本校验 agents 用validate-agent.sh、校验 hooks 用validate-hook-schema.sh均可在发布前单独运行发布前体检在向市场提交前主动说一句 Validate my plugin before I publish it触发全量校验将 critical 问题清零后再发布。九、快速自查清单将 10 步流程压缩为发布前的一页清单可逐项勾选.claude-plugin/plugin.json存在JSON 合法name为 kebab-caseversion符合 X.Y.Z 语义化版本commands/下每个.md文件有---frontmatter 与descriptionagents/下每个.md文件有name/description/model/colormodel与color在白名单内系统提示词 20 字符skills/下每个子目录含SKILL.mdfrontmatter 含name与descriptionhooks/hooks.jsonJSON 合法、事件名在白名单内、hook 类型为command/prompt、命令路径使用${CLAUDE_PLUGIN_ROOT}MCP 服务器 stdio 有command、sse/http/ws 有urlREADME.md、LICENSE齐备无node_modules等冗余文件无硬编码凭据MCP 使用 HTTPS/WSS结语plugin-validator 把 Claude Code 插件的合规性检查从玄学变成了流程它以约定目录结构为基准、以 manifest 为核心、以组件白名单为约束最终产出一份含严重度分级、修复建议与正向反馈的结构化报告。配合仓库中开箱即用的validate-agent.sh与validate-hook-schema.sh开发者在发布任何插件前都能获得可复现、可自动化的质量门禁——这正是 plugin-dev 工具包把校验内建到开发流水线中的设计意图。发布前记得让 plugin-validator 为你的插件做一次全面体检。赞分享AI 插件开发工具插件系统【免费下载链接】claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.项目地址https://gitcode.com/GitHub_Trending/cl/claude-plugins-official点击查看免费下载相关推荐用 plugin-validator 全面验证 Claude Code 插件结构与配置用 plugin validator 全面验证 Claude Code 插件结构与配置 导读 plugin validator 是 Claude Code 插AI 应用AI 技能/插件开发工具ruflo 插件验证指南用 validate-plugin Skill 校验 Claude Code 插件结构、Frontmatter 与 MCP 工具引用ruflo 插件验证指南用 validate plugin Skill 校验 Claude Code 插件结构、Frontmatter 与 MCP 工具引用人工智能AI Agent多智能体Agent 编排Agent 记忆工具调用代码智能体MCP 服务AI 评测douyin-downloader实战指南抖音视频无水印批量下载的完整用法douyin downloader实战指南抖音视频无水印批量下载的完整用法 douyin downloader 是一款命令行抖音无水印下载工具覆盖单条视频、网页爬虫CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表