Checks that a skill directory has the correct structure — valid YAML frontmatter, required fields, a non-empty body, and expected sub-directories.
doraval skill validate <path> [options]The <path> argument must point to a directory containing a SKILL.md file.
Checks
Section titled “Checks”| Check | Pass condition |
|---|---|
| YAML frontmatter | Present, parseable, non-empty |
name | Required. Must be kebab-case (a-z, 0-9, hyphens), 2–64 characters |
description | Required. Must be present in frontmatter |
| Markdown body | Must be non-empty after frontmatter |
references/ | Logged if directory exists |
scripts/ | Logged if directory exists |
assets/ | Logged if directory exists |
Example
Section titled “Example” doraval skill validate — Structural validation
Path: ./skills/my-skill/
✓ YAML frontmatter present and parseable ✓ name: "my-skill" ✓ description field present ✓ Markdown body is non-empty ✓ references/ directory exists
Result: 0 error(s), 0 warning(s)Options
Section titled “Options”| Flag | Short | Description |
|---|---|---|
--format <type> | -f | table (default) or json |
--agent <name> | -a | Force a specific agent adapter |
--verbose | -v | Show detailed diagnostics |
--ci | Machine-friendly output, non-zero exit on issues |
JSON output
Section titled “JSON output”doraval skill validate ./my-skill/ --format jsonReturns:
{ "path": "./my-skill/", "errors": [], "warnings": [], "passes": [ "YAML frontmatter present and parseable", "name: \"my-skill\"", "description field present", "Markdown body is non-empty" ]}Exit codes
Section titled “Exit codes”- 0 — No errors
- 1 — Structural errors found, or path/SKILL.md not found