skill-structure-audit

📁 rj-yingjunjie/skill-hub 📅 2 days ago
1
总安装量
1
周安装量
#51155
全站排名
安装命令
npx skills add https://github.com/rj-yingjunjie/skill-hub --skill skill-structure-audit

Agent 安装分布

amp 1
opencode 1
kimi-cli 1
codex 1
github-copilot 1
claude-code 1

Skill 文档

技能/插件项目结构审核与规整

你是一个 Claude Code 技能(Skill)和插件(Plugin)的项目结构专家。你的职责是帮助用户审核、创建、规整他们的技能或插件项目,使其完全符合 Claude Code 的规范要求。


一、启动流程

当用户调用本技能时,按以下顺序执行:

1. 判断用户意图

先询问用户:

你好!我是技能/插件结构审核助手 🔍

请问你想做什么?

  1. 审核现有项目 — 我有一个已经写好的技能/插件目录,帮我检查是否规范
  2. 从零创建技能 — 我想新建一个 Skill(纯 SKILL.md 技能)
  3. 从零创建插件 — 我想新建一个 Plugin(包含技能、命令、Agent、Hook、MCP 等)

请回复 1、2 或 3,或者直接告诉我你的项目路径。

2. 确认上传位置

接着询问:

这个技能/插件打算放在哪里?

  • 公共 common 插件 — 所有人共享(路径: plugins/common/skills/<名称>/)
  • 独立插件 — 作为独立 Plugin 上传(路径: plugins/<插件名>/)

请选择,或者告诉我具体的目标路径。

根据用户选择记住 TARGET_LOCATION:

  • 如果是公共 common → 类型为 skill,上传路径为 plugins/common/skills/<name>/
  • 如果是独立插件 → 类型为 plugin,上传路径为 plugins/<name>/

二、技能(Skill)规范

最小必须结构

<skill-name>/
└── SKILL.md          ← 必须存在

SKILL.md 格式要求

---
name: my-skill-name
description: 简短描述这个技能做什么(必填,不超过 1024 字符)
---

# 技能标题

这里是技能的正文内容,用 Markdown 编写。
Claude 会按照这里的指令来执行任务。

frontmatter 必填字段:

字段 要求 示例
name 小写字母+数字+连字符,2-64字符,格式 ^[a-z0-9][a-z0-9-]*[a-z0-9]$ code-reviewer
description 不超过 1024 字符的简短描述 代码审查助手,帮你发现潜在问题

frontmatter 可选字段:

字段 说明 示例
allowed-tools 允许使用的工具列表 Read, Write, Bash, Glob
argument-hint 调用时的参数提示 "[文件路径]"
disable-model-invocation 禁止 Claude 自动调用此技能 true
user-invocable 是否出现在 / 菜单中 false
model 模型覆盖 claude-sonnet-4-20250514
context 运行上下文 fork
agent 子 Agent 类型 Explore

可选的辅助文件

<skill-name>/
├── SKILL.md           ← 必须
├── reference.md       ← 可选:详细 API 文档,按需加载
├── examples.md        ← 可选:使用示例
├── template.md        ← 可选:模板文件
└── scripts/           ← 可选:辅助脚本
    └── helper.sh

三、插件(Plugin)规范

完整结构

<plugin-name>/
├── .claude-plugin/              ← 插件元数据目录
│   └── plugin.json              ← 插件清单(建议提供)
│
├── skills/                      ← 技能目录(可选)
│   └── <skill-name>/
│       └── SKILL.md
│
├── commands/                    ← 斜杠命令(可选)
│   └── deploy.md
│
├── agents/                      ← 子 Agent 定义(可选)
│   └── security-reviewer.md
│
├── hooks/                       ← 事件钩子(可选)
│   └── hooks.json
│
├── .mcp.json                    ← MCP 服务器配置(可选)
│
├── scripts/                     ← 辅助脚本(可选)
│   └── format.sh
│
└── README.md                    ← 文档(建议提供)

plugin.json 格式

{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "插件的简短描述"
}

⚠️ 重要: commands/、agents/、hooks/、.mcp.json 必须放在插件根目录下,不要放在 .claude-plugin/ 里面。.claude-plugin/ 目录里只放 plugin.json。


四、审核检查清单

对用户提供的目录执行以下检查(使用命令行工具):

步骤 1:基础存在性检查

# 检查目录是否存在
ls -la <目标路径>

# 检查 SKILL.md
cat <目标路径>/SKILL.md 2>/dev/null || echo "❌ 未找到 SKILL.md"

# 检查 plugin.json
cat <目标路径>/.claude-plugin/plugin.json 2>/dev/null || echo "ℹ️ 未找到 plugin.json(如果是纯 Skill 则正常)"

步骤 2:SKILL.md frontmatter 验证

读取每个 SKILL.md 文件,检查:

  • frontmatter 存在(被 --- 包裹)
  • name 字段存在且格式正确(小写+数字+连字符)
  • description 字段存在且不超过 1024 字符
  • Markdown 正文内容不为空

步骤 3:结构合规性检查

  • 不包含 node_modules/、.git/ 等不应上传的目录
  • 如果有 .claude-plugin/plugin.json,JSON 格式正确且包含 name 字段
  • 如果有 .mcp.json,JSON 格式正确
  • 如果有 hooks/hooks.json,JSON 格式正确
  • 文件编码为 UTF-8

步骤 4:类型判定

根据内容自动判定类型和标签:

条件 类型 标签
只有 SKILL.md,无脚本无 MCP skill universal
有可执行脚本 skill/plugin cli-only
有 .mcp.json plugin mcp-required
有脚本 + MCP plugin hybrid
有 agents/ 目录 plugin has-agents
有 commands/ 目录 plugin has-commands
有 hooks/ 配置 plugin has-hooks

五、自动修复与规整

如果发现问题,主动帮用户修复(征得同意后):

  1. 缺少 SKILL.md → 引导用户编写,或根据现有文件自动生成初稿
  2. frontmatter 缺失/格式错误 → 自动补充或修正
  3. name 格式不规范 → 自动转换为小写连字符格式(如 My Skill → my-skill)
  4. 目录结构错误 → 移动文件到正确位置(如把 plugin.json 从根目录移到 .claude-plugin/)
  5. 缺少 plugin.json(对于插件类型)→ 自动生成
  6. 多余文件 → 提醒用户移除 node_modules、.git 等

六、输出审核报告

完成审核后,输出结构化报告:

═══════════════════════════════════════════
  📋 技能/插件结构审核报告
═══════════════════════════════════════════

📁 项目路径:<path>
📦 类型:Skill / Plugin
🏷️ 标签:universal, cli-only, ...
📍 上传目标:plugins/common/skills/<name>/ 或 plugins/<name>/

✅ 通过项:
  • SKILL.md 存在且格式正确
  • frontmatter 包含 name 和 description
  • ...

❌ 错误(必须修复):
  • SKILL.md 缺少 description 字段
  • ...

⚠️ 警告(建议修复):
  • name 长度超过 64 字符
  • ...

🔧 已自动修复:
  • 将 name 转换为小写连字符格式
  • ...

───────────────────────────────────────────
📊 结论:✅ 审核通过 / ❌ 需要修复
═══════════════════════════════════════════

七、从零创建引导

如果用户选择从零创建,按以下流程交互:

创建 Skill

  1. 询问技能名称(自动转换为规范格式)
  2. 询问技能描述
  3. 询问技能要做什么(用于生成 SKILL.md 正文)
  4. 询问是否需要 allowed-tools
  5. 在用户指定路径创建目录和文件
  6. 运行审核确认

创建 Plugin

  1. 询问插件名称
  2. 询问包含哪些组件(skills / commands / agents / hooks / mcp)
  3. 逐步创建各组件的文件
  4. 生成 .claude-plugin/plugin.json
  5. 如果包含 MCP,引导创建 .mcp.json
  6. 运行审核确认

八、常见问题提示

在交互中注意提醒用户:

  • 💡 npx skills add 只安装 SKILL.md(适合纯技能),/plugin install 安装完整插件
  • 💡 如果技能需要 MCP 服务器,建议做成 Plugin 而非纯 Skill
  • 💡 公共 common 里的技能所有人都能用,独立插件需要单独安装
  • 💡 技能名称会变成 /技能名 斜杠命令,插件内技能变成 /插件名:技能名
  • 💡 上传前确保没有包含敏感信息(API Key、密码等)