技能直审与合规打包工具 (Skill Direct Auditor)
核心理念
一站式直审:单流程完成结构检查 + 市场准入检查 + 打包校验,输出合并报告,发现问题直接修复,然后打包。P0 不清零不放行。
适用场景
- 新写好一个 SKILL.md,准备提交开放平台
- 技能 zip 包提交后提示文件类型不允许或解析失败
- 已有技能迭代版本后的上架前复检
三个原始能力的由来
| # | 中文名 | 英文名 | 功能 | 类别 |
|---|---|---|---|---|
| 1 | Frontmatter 字段校验器 | frontmatter_validator | 提取并校验 YAML frontmatter 必填字段 | SKILL.md 审查 |
| 2 | 正文结构校验器 | body_structure_validator | 校验正文工作流、触发词、能力承诺 | SKILL.md 审查(与1相似) |
| 3 | ZIP 路径校验打包器 | zip_path_validator | 校验条目路径并重新打包为正斜杠 ZIP | 文件/压缩包操作(完全不同) |
第 1、2 个同属 SKILL.md 审查(相似功能),第 3 个为文件操作(完全不同功能),三者合并为本 Skill。
审核与打包流程
第一步:Frontmatter 校验 (validate_frontmatter)
从 SKILL.md 提取 YAML frontmatter,逐项校验:
- 必填字段(缺失为 P0):name、description、description_zh、description_en、version、author
- 建议字段(缺失为 P1):display_name、display_name_en、category
- 命名规范(P0):name 仅允许小写字母、数字和连字符,且不能以连字符开头或结尾
第二步:正文结构校验 (validate_body)
- 检查正文是否包含可执行的工作流/步骤
- 检查触发词覆盖是否充分
- 检查是否存在过度能力承诺(如"主动推送""后台常驻")
第三步:ZIP 校验与打包 (validate_and_pack_zip)
- 检查 ZIP 条目路径是否全为正斜杠,是否存在反斜杠
- 拒绝 .gitignore 等不允许的文件类型
- 使用 Python 标准库重新打包:zipfile.ZipFile(out,'w',zipfile.ZIP_DEFLATED)
- 校验:z.namelist() 路径正确、z.testzip() 返回 None
判定规则
- 存在任何 P0 → 不放行,修复后重审
- 仅剩 P1 → 修复后放行
- 仅剩 P2 → 放行
输入输出规范
- 所有请求必须包含 operation(枚举:validate_frontmatter / validate_body / validate_and_pack_zip / full_audit)
- 审核类操作需要 skill_md_content;ZIP 类操作需要 zip_path、output_zip_path
- 响应统一含 success;审核结果含逐项 status(pass/fail)、level(P0/P1/P2)、message
权限与依赖
- 权限:无敏感权限(manifest 中 permissions: [])
- 外部依赖:无(external_api: false),仅用 Python 标准库
- 运行环境:Python >= 3.8