在不安装 Skill 的情况下校验结构化 Skill 对象或原始 SKILL.md 文本。业务层面的校验失败不会使用 HTTP 错误:只要请求结构合法,接口仍返回 HTTP 200,并通过 result.valid=false 和 result.errors 表示内容不合规。
strict 语义。name 和 description 缺失始终是 error。目录名不一致、名称长度/字符集不合规、description 超长在 strict=false 时是 warning,在 strict=true 时升级为 error。strict=true 且正文超过 500 行仍只产生 warning。
URI |
|
|---|---|
请求方法 | POST |
Content-Type |
|
认证 |
|
参数 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
| string / object | 是 | — | 待校验的原始 SKILL.md 文本或结构化 Skill 对象。 |
| bool | 否 | false | 是否将目录名不一致、名称长度/字符集、description 长度等规则升级为 error。 |
| string | 否 | null | 来源路径标签,仅回显到响应中,便于批量校验定位文件。 |
| string | 否 | null | 预期目录名,用于检查是否与 Skill 的 name 一致。 |
| string | 否 | null | 当前请求模型接收该字段,但校验实现不读取它;它不会改变校验规则或结果,建议不要传。 |
字段 | 类型 | 说明 |
|---|---|---|
| bool | 是否通过校验。 |
| bool | 本次是否启用 strict 模式。 |
| string | 解析出的 Skill 名称。 |
| string | 解析出的 Skill 描述。 |
| array | 解析并归一化后的标签。 |
| array | 解析并归一化后的允许工具列表。 |
| integer | Markdown 正文行数。 |
| string | 请求中 source_path 的回显。 |
| string | 请求中 skill_dir_name 的回显。 |
| array | 错误项;每项包含 rule、message,必要时包含 field。 |
| array | 警告项,结构同 errors。 |
curl -X POST "{BASE_URL}/api/v1/skills/validate" \ -H "Authorization: Bearer {API_KEY}" \ -H "Content-Type: application/json" \ -d '{ "data": "---\nname: search-web\ndescription: 搜索互联网中的最新信息\n---\n\n# Search Web\n\n执行网络搜索。", "strict": true, "source_path": "skills/search-web/SKILL.md", "skill_dir_name": "search-web" }'
{ "status": "ok", "result": { "valid": true, "strict": true, "name": "search-web", "description": "搜索互联网中的最新信息", "tags": [], "allowed_tools": [], "body_lines": 3, "source_path": "skills/search-web/SKILL.md", "skill_dir_name": "search-web", "errors": [], "warnings": [] } }
{ "status": "ok", "result": { "valid": false, "strict": false, "errors": [ { "rule": "description_required", "message": "description is required", "field": "description" } ], "warnings": [] } }
rule | 说明 |
|---|---|
| 缺少 YAML frontmatter 或 YAML 无法解析。 |
| 缺少 name。 |
| 缺少 description。 |
| name 与 skill_dir_name 不一致。 |
| name 超过 64 个字符。 |
| name 含 ASCII 字母、数字、下划线、连字符以外的字符。 |
| description 超过 1024 个字符。 |
| strict=true 且正文超过 500 行;当前仍为 warning。 |