quay validate

Validate a local skill's frontmatter offline.

Usage

quay validate [OPTIONS] <SKILL>

Reads .agents/skills/<SKILL>/SKILL.md and checks:

  • Frontmatter parses as YAML.
  • Required fields (name, description) present.
  • name matches the directory.
  • version is semver-valid (if present).
  • tags is a string array (if present).

No network calls.

Examples

quay validate hello
quay validate hello --strict
quay validate hello --json

Flags

FlagEffect
--strictTreat missing/required-field issues as errors (exit 1). Default: warns to stderr, exits 0.
--profile, --user-config, --project, --jsonStandard globals.

When to use this vs …

  • Run before quay push — catches mistakes without paying the hub-clone cost.
  • quay scan — gives status per skill but does not deep-validate frontmatter.
  • TUI Create/Push — runs validate inline before staging the push.

Caveats

  • Default mode is soft: even a missing frontmatter block exits 0 with a warning. --strict is what you want in CI.
  • SlashCommand and Freestyle skills produce a warning (no frontmatter) by design; --strict upgrades that to an error.
  • Validation is purely structural. It does not check whether the content of the skill makes sense for any specific agent runtime.

--help

Validate a local skill's frontmatter (offline, no network)

Usage: quay validate [OPTIONS] <SKILL>

Arguments:
  <SKILL>

Options:
      --project <PROJECT>          Project root (defaults to current directory)
      --strict                     Treat missing frontmatter or required fields as errors (exit 1). Default: prints warnings to stderr, exits 0 (lenient/soft mode)
      --user-config <USER_CONFIG>  Override user config path (defaults to ~/.config/quay/config.toml)
      --profile <PROFILE>          Override the active profile for this invocation
      --json                       Output JSON instead of human-readable text
  -h, --help                       Print help