| name | skill-validator |
| description | 技能实验室:OpenClaw 技能的全生命周期准入测试。包含三阶段: (1) 静态校验 — 结构、路径、跨平台兼容性(脚本 + AI 分析) (2) 智能分析 — 模型阅读技能全部内容,语义级审查 (3) 动态测试 — 生成子 Agent 加载技能实际运行,验证能力声明 Use when: 收到技能压缩包/目录需要评审,技能发布前准入测试,技能升级回归测试。
|
| metadata | {"version":"0.2.2"} |
Skill Validator — 技能实验室
三阶段准入测试:静态校验 → 智能分析 → 动态测试。
Thread 命名
YYYY-MM-DD {skill-name} v{version}
版本未知时用 v?.?.?。示例:2026-02-28 gemini-imagegen v0.3.1
Phase 1: 静态校验
运行 scripts/validate.py 进行规则检查:
python3 scripts/validate.py <skill-path> [--json] [--strict]
检查项
- 结构:SKILL.md 存在、frontmatter 合法、目录规范
- 生成产物:禁止提交
node_modules/、__pycache__/、*.pyc、dist/、build/、coverage/、虚拟环境等依赖/缓存/构建产物
- 路径安全:无硬编码绝对路径
- 脚本质量:shebang、权限、语法
- 跨平台:行尾符 CRLF、BOM、bash 特性、路径拼接
- 引用完整性:SKILL.md 中引用的文件都存在
- 体积:SKILL.md <500 行、总体积 <1MB
- 垃圾文件:
__MACOSX/、Thumbs.db、.DS_Store
静态校验 FAIL → 直接报告问题,不进入下一阶段。
静态校验 PASS/WARN → 进入 Phase 2。
Phase 2: 智能分析(模型驱动)
不依赖脚本,由模型直接阅读技能全部内容进行语义级审查:
审查维度
- 功能一致性 — description 声明的能力是否与实际脚本/指令匹配
- 触发准确性 — description 中的触发条件是否清晰、不会误触发
- 指令质量 — SKILL.md body 的指令是否清晰、无歧义、可执行
- 安全性 — 脚本有无危险操作(rm -rf、网络外传、权限提升)
- 依赖合理性 — 依赖的工具/包是否常见、是否声明了安装方式
- 跨平台语义 — 静态规则抓不到的平台问题(如 Python 用了 os-specific API)
- 边界情况 — 输入为空、文件不存在、网络超时等异常处理
- 渐进式加载 — 是否遵循了 SKILL.md 精简 + references 分离的原则
输出格式
每个维度给出 ✅ PASS / ⚠️ WARN / ❌ FAIL + 说明。
汇总为智能分析总评。
Phase 2 有 FAIL → 报告问题,建议修复后重测。
Phase 2 全 PASS/WARN → 进入 Phase 3。
Phase 3: 动态测试(子 Agent)
生成一个隔离的子 Agent session,加载待测技能并实际执行。
流程
-
确认测试条件
- 询问用户指定测试模型(默认用当前 agent 的模型)
- 检查技能是否需要特定环境变量/API key
- 检查是否需要测试素材(图片、文档等),缺失则向用户索要
-
生成测试用例
- 根据 SKILL.md 的 description 和指令,自动构造 2-3 个典型使用场景
- 覆盖正常路径 + 至少一个边界情况
-
执行测试
- 用
sessions_spawn 创建隔离 session
- 在 session 中模拟用户请求触发技能
- 收集执行结果(成功/失败/报错/输出质量)
-
报告结果
- 每个测试用例的结果
- 执行耗时、token 消耗
- 最终准入判定:✅ 准入通过 / ⚠️ 有条件通过 / ❌ 不通过
需要用户提供的信息
- 测试模型(可选,默认当前模型)
- 测试素材(如果技能处理图片/文件,需提供样本)
- API Key(如果技能需要外部 API,确认已配置)
完整报告模板
══════════════════════════════════════════
技能实验室报告
{skill-name} v{version}
{date}
══════════════════════════════════════════
📋 Phase 1 — 静态校验
[validate.py 输出]
🧠 Phase 2 — 智能分析
功能一致性 ✅ PASS
触发准确性 ✅ PASS
指令质量 ⚠️ WARN — ...
安全性 ✅ PASS
依赖合理性 ✅ PASS
跨平台语义 ✅ PASS
边界情况 ⚠️ WARN — ...
渐进式加载 ✅ PASS
🧪 Phase 3 — 动态测试
模型:gptclub-claude/claude-sonnet-4-6
用例 1:[描述] → ✅ 通过 (3.2s)
用例 2:[描述] → ✅ 通过 (5.1s)
用例 3:[边界] → ⚠️ 部分通过 — ...
══════════════════════════════════════════
准入判定:✅ 通过
静态 6/6 · 智能 7/8 · 动态 2.5/3
══════════════════════════════════════════