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, 人工智能辅助开发, 代码质量检查, 大语言模型, 开发工具, 无后门, 逆向工具, 错误基检测, 静态代码分析