0-co/skill-grade

GitHub: 0-co/skill-grade

一款针对 Claude Code SKILL.md 文件的静态质量检查与评分工具,类似于 AI agent skill 领域的 ESLint。

Stars: 0 | Forks: 0

# skill 等级 **73% 的社区 Claude Code skills 得分低于 60/100。** 在发布之前没有人对它们进行评分。现在你可以做到了。 `skill-grade` 是一个用于 Claude Code `SKILL.md` 文件的静态质量检查工具——它的作用就像 ESLint 之于 JavaScript,只不过是针对 AI agent skills。它能在缺少触发短语、范围蔓延、缺少示例和 token 膨胀等问题导致生产环境中的 agent 行为退化之前,将其捕获。 ``` pip install skill-grade ``` ## 快速开始 ``` # 评估单个 skill skill-grade path/to/SKILL.md # 递归评估目录中的所有 skill skill-grade ./skills/ # 通过 stdin 评估 cat SKILL.md | skill-grade - # 用于 CI pipelines 的 JSON 输出 skill-grade SKILL.md --json # 低于阈值时使 CI 失败 skill-grade SKILL.md --threshold A ``` ## 输出示例 ``` skill-grade v0.1.0 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Skill: my-skill Score: 65/100 Grade: C Tokens: ~847 (description: 312, body: 535) W S006 No trigger phrases detected. Add "Use when...", "Triggers include...", or "Use for..." so Claude knows when to invoke this skill. W S013 No code examples (no markdown code blocks). Agents learn better from concrete examples than prose descriptions. W S014 No structure detected (no ## headers or numbered lists). Structured instructions are easier for agents to follow. Passed: S001 ✓ S002 ✓ S003 ✓ S004 ✓ S010 ✓ S011 ✓ Tip: A+ skills include explicit trigger phrases and concrete examples. ``` 对于多个文件: ``` skill-grade v0.1.0 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ browser-automation A+ 97/100 ✓ code-review B 78/100 1 warning deployment F 35/100 3 errors, 2 warnings 2/3 skills pass (≥70/100) ``` ## 检查项 ### Frontmatter | 代码 | 严重程度 | 描述 | 扣分 | |------|----------|-------------|---------| | S001 | error | 未找到 YAML frontmatter(缺少 `---` 分隔符) | -70 | | S002 | error | 缺少 `name` 字段 | -30 | | S003 | error | 缺少 `description` 字段 | -40 | | S004 | warning | 描述太短(<50 个字符)——触发匹配不可靠 | -20 | | S005 | warning | 描述太长(>500 个字符)——每次匹配都会加载到上下文中 | -10 | | S006 | warning | 没有触发短语("Use when"、"Triggers include"、"Use for"、"when the user") | -20 | | S007 | warning | 触发语言模糊("help with"、"assist with"、"various"、"manage"、"handle") | -15 | | S008 | info | 没有 `allowed-tools` 字段 | -5 | | S009 | warning | Skill 名称包含空格(请使用连字符或下划线) | -10 | ### Body | 代码 | 严重程度 | 描述 | 扣分 | |------|----------|-------------|---------| | S010 | error | 没有 body 内容——stub skill | -30 | | S011 | warning | body 太短(<100 个字符) | -20 | | S012 | warning | body 太长(>8000 个字符)——增加上下文使用量 | -10 | | S013 | warning | 没有代码示例(没有 markdown 代码块) | -15 | | S014 | warning | 没有结构(没有 `##` 标题或编号列表) | -10 | | S015 | warning | 范围蔓延——描述中包含 4 个及以上 "and" 连接词 | -15 | ### 评分等级 | 等级 | 分数 | |-------|-------| | A+ | ≥ 90 | | A | ≥ 80 | | B | ≥ 70 | | C | ≥ 60 | | D | ≥ 50 | | F | < 50 | ## GitHub Action ``` - uses: 0-co/skill-grade@main with: path: '.' threshold: 'B' ``` 或者直接安装: ``` - run: pip install skill-grade - run: skill-grade ./skills/ --threshold B ``` ## 为什么会有这个工具 Claude Code skills 在触发时会被加载到上下文中。描述模糊的 skill 触发范围会太广(浪费 token)或者根本不触发(skill 会被忽略)。没有示例的 skill 所产生的 agent 行为,比包含三个具体命令调用的 skill 要差。 这些都是可以解决的问题。`skill-grade` 能够在它们发布之前让这些问题暴露出来。 ## 零依赖 纯 Python stdlib。不需要 PyYAML,也不需要第三方包。只要安装了 Python 3.9+ 就可以随处运行。 `pip install skill-grade`
标签:DLL 劫持, Python, SOC Prime, 人工智能辅助开发, 代码质量检查, 大语言模型, 开发工具, 无后门, 逆向工具, 错误基检测, 静态代码分析