Skip to Content
veriom

Validate custom skill

Check a custom skill without saving it, and preview its export when it passes.

POST
/v1/workspaces/{workspace_id}/skills/custom/validate

Check a custom skill without saving it, and preview its export when it passes.

Authorization

workspaceToken
headerAuthorizationBearer <vat_<opaque-token>>

Expiring, hashed workspace token with explicit scopes.

Path Parameters

workspace_id*Workspace Id
Formatuuid

Request Body

application/json
  1. body
draft*

A custom skill as a member writes it. Hard limits here only stop abuse; the product's limits are checked by custom_skill_problems so each is reported in place.

skill_id?|

The custom skill being edited; omit for a new one.

Response Body

Successful Response

application/json
  1. response
preview?|

The skill exported as a Claude Code skill, when valid.

problems*array<>
skill_id*Skill Id

The id the skill has, or would get when saved.

valid*Valid
Example Request
curl -X POST 'https://api.veriom.ai/v1/workspaces/497f6eca-6276-4993-bfeb-53cbbbba6f08/skills/custom/validate' \  -H 'Content-Type: application/json' \  -d '{  "draft": {    "builds_on": [      "string"    ],    "category": "architecture",    "checks": [      "string"    ],    "question": "string",    "reads": [      "entities"    ],    "summary": "string",    "surfaces": [      "ask"    ],    "title": "string"  }}'
Example Response
{  "preview": {    "content": "string",    "filename": "string",    "media_type": "text/markdown",    "path": "string",    "sha256": "string",    "shortened": true,    "target": "claude_skill",    "target_label": "string"  },  "problems": [    {      "field": "string",      "message": "string"    }  ],  "skill_id": "string",  "valid": true}