auditor-bundle — Skill 发布前审核引擎
一句话定位
一个审 Skill 的 Skill:在发布/上架前,对任一 AI Skill 包做结构、准入、安全三审,并自动生成上架五要素与多平台适配矩阵。
安全边界(红线 · 不可绕过)
本 Skill 只做静态只读审核,任何情况下不得违反以下约束:
- ✅ 允许:读 SKILL.md、解析 YAML(yaml.safe_load)、列 ZIP 条目、正则/AST 静态检查脚本
- ❌ 禁止:执行被审 Skill 包内的 .sh / .py / .js / 任意可执行文件
- ❌ 禁止:读取 ~/.ssh、~/.aws、auth.json、.env 等任何凭据文件
- ❌ 禁止:发起任何网络请求、上传被审内容到外部服务
- ❌ 禁止:自更新、后台常驻、主动推送
> 上述边界是 SkillHub 三道闸(内容合规 + 科恩漏洞扫描 + 云鼎模型安全)通过的前提。
触发条件
当用户说以下任一,即启用本 Skill:
- "帮我审这个 skill" / "审一下这个包"
- "上架前检查" / "发布前自检"
- "生成上架信息" / "中文名/SLUG/描述/版本/平台"
- "多平台适配检查" / "能不能发到 ClawHub / SkillHub"
核心能力
- 审核官 A — 结构规范:目录结构、
SKILL.md根目录、子资源引用链、YAML frontmatter、渐进式披露、能力承诺真实性 - 审核官 B — 市场准入:必填字段、命名规范、版本 SemVer、分类枚举、
platforms(SkillHub 强制)、触发词覆盖 - 审核官 C — 安全合规:硬编码密钥、危险命令、数据外传、内容合规、供应链投毒
- 上架信息五要素:中文名 / SLUG / 描述文 / 版本号 / 平台(自动检测 + 补齐草稿)
- 多平台评语引擎:按目标平台动态生成 B 官评语 + 「多平台适配矩阵」(WorkBuddy / ClawHub / SkillHub / Smithery / skills.sh / Coze / Dify)
快速使用
# 审核任意 SKILL
SKILL_ROOT=/path/to/your-skill \
FIXED_ROOT=/path/to/your-skill/.audited \
PLATFORMS=WorkBuddy,ClawHub,SkillHub \
python3 audit.py
# 自检(首次审核 → 自动修复 → 重审闭环)
python3 verify.py
目录结构
auditor-bundle/
├── SKILL.md # 本文件
├── audit.py # 主引擎:审核官 A/B/C + 直审 + 自动修复 + 打包
├── audit_fix.py # 文本级 frontmatter 修复(参数化,可复用)
├── listing_meta.py # 上架信息五要素检查(含 platforms)
├── verify.py # 自检脚本(首次审核 → 修复 → 重审闭环)
├── LISTING_META.md # 规则文档(含 SkillHub 规范)
├── scripts/
│ └── rubric.py # 多平台动态评语引擎
└── references/
└── rubric.md # 评语模板库
设计原则
- 数据保真:补齐字段只动被审技能,不动审核官体系本身
- 可确定性 → 自动修复:字段规范化、缺失补齐、version 默认值时自动写入
- 不可确定性 → 仅建议:
display_name措辞、platforms取舍只给草稿,标TODO待人工确认 - 修复后必须重审:
verify.py闭环验证,P0 清零才放行
发布前 Checklist(给自己)
- [ ]
author已填写(非 TODO) - [ ]
homepage已指向真实 GitHub 仓库 - [ ]
slug全网唯一(建议你的handle-auditor-bundle) - [ ] 确认
metadata.openclaw声明与实际行为一致(无 env、仅 python3/unzip) - [ ] 确认无任何
subprocess/os.system执行被审包代码 - [ ] 确认无网络请求、无凭据读取
- [ ]
python3 verify.py通过(重审 P0=0)
局限
- 静态分析无法保证 100% 捕获动态行为;安全结论为"预期可通过",最终以平台扫描为准
- Smithery 面向 MCP Server,纯 SKILL 不适用时会明确提示,不硬套
- 中文名 / 措辞类语义项需人工润色(只给草稿)