Skip to main content
skillspec validate parses a skill.spec.yml file against the SkillSpec typed grammar and runs parser-level checks for valid identifiers, cross-references, and structural correctness. Unknown fields are invalid; the validator runs in strict mode and rejects any key that does not belong to the declared schema.

Synopsis

Options

There are no additional flags. Exit code is 0 on success and non-zero on any validation error.

What validation checks

  • Grammar — The file parses cleanly as valid YAML and matches the skillspec/v0 schema.
  • Identifiers — Route IDs, rule IDs, command IDs, dependency IDs, and all other declared identifiers are well-formed.
  • Cross-references — References between blocks (e.g., a route’s checks, a command’s requires.dependencies, a rule’s prefer) point to declared items.
  • Strict mode — Unknown fields at any level are rejected, not silently ignored.

Examples

Validate a spec in the current directory:
Validate an example from the bundled collection:
Validate as part of a four-command adoption gate:

The four-command adoption gate

Before installing or compiling a spec, run all four QA gates in order:
skillspec validate checks structure and correctness, not semantic quality. After validation passes, run skillspec test to verify that routing rules and decisions match the declared scenario tests.
  • skillspec test <path> — Run scenario tests declared in the spec.
  • skillspec imports check <path> — Validate declared local imports and load order.
  • skillspec deps check <path> — Check declared dependencies for the whole spec or for one command.
  • skillspec compile <path> --target <target> — Compile a validated spec into harness guidance.