From yayamlls
Validates and understands schema-backed YAML (Kubernetes, Flux, JSON-Schema) using the yayamlls language server. Includes diagnostics, hover, completion, CLI validation, and schema resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/yayamlls:yamlThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`yayamlls` is a YAML language server that resolves a JSON Schema for each
yayamlls is a YAML language server that resolves a JSON Schema for each
document and reports violations. When this plugin is installed, Claude Code
talks to it over LSP automatically (live diagnostics, hover, completion) and the
bundled hook re-validates a file after every edit. This skill covers the parts
that aren't discoverable from the LSP wire.
The same engine runs as a one-shot CLI — use it to check files without an editor:
yayamlls validate path/to/file.yaml # a single file
yayamlls validate ./clusters # a directory (walks *.yaml/*.yml)
yayamlls validate --root . ./apps # pin the workspace root explicitly
Output is path:line:col: severity: message. Exit code is 1 when any
error-severity diagnostic was found, 2 on a usage/I-O error, 0 otherwise.
lint is an alias for validate.
For each document yayamlls resolves a schema, in priority order:
# yaml-language-server: $schema=<url-or-path> modeline at the top..yayamlls.yaml schemas: glob mappings (workspace config).apiVersion + kind (when kubernetes is enabled), and the
SchemaStore catalog (when catalog is enabled).If no schema resolves, the document gets YAML syntax checks only — no schema errors. If diagnostics look wrong, first confirm which schema (if any) was resolved.
.yayamlls.yamlLives at the workspace root and is the lowest-precedence settings layer (the editor/plugin can override it). Common keys:
catalog: true # use the SchemaStore catalog for well-known files
catalogUrl: https://... # custom catalog
kubernetes: # apiVersion+kind detection + Flux rendering
enabled: true # (on by default; set false for generic YAML)
schemas: # schema URL/path -> the file globs it applies to
"https://example.com/my-schema.json":
- "clusters/**/*.yaml"
fluxSubstitutions: true # treat ${VAR} Flux postBuild substitutions as valid
customTags: ["!secret"] # extra YAML tags to accept without error
renderDebounceMs: 200 # debounce for the Flux render pipeline
renderTimeoutMs: 30000 # max time a single render may run (deadline)
See .yayamlls.yaml.example in the repo root for the full set.
yayamlls honours its own directives in YAML comments. Prefer fixing the YAML; suppress only when the schema is wrong or a value is intentionally non-conformant.
foo: bar # yayamlls-disable-line # suppresses this line
# yayamlls-disable-line
baz: qux # suppresses the line below the directive
# yayamlls-disable
# ... suppressed block ...
# yayamlls-enable
# yayamlls-disable-file # suppresses the whole file (anywhere)
The directive must be the first token of the comment.
With kubernetes enabled, opening a Flux HelmRelease or Kustomization
renders the resource (via the embedded flate engine) and surfaces schema
violations from the rendered manifests back on the source document, tagged
[rendered <kind>/<name> @ <jsonptr>]. So a diagnostic may point at the source
file but describe a problem in the rendered output — read the tag to tell which.
.yaml/.yml, run yayamlls validate <file> (the hook does
this automatically, but run it yourself when working outside an edit hook).schemas: mapping in .yayamlls.yaml.npx claudepluginhub home-operations/yayamlls --plugin yayamllsValidates YAML syntax, normalizes formatting, schema-checks for Kubernetes/GitHub Actions/Docker Compose. Outputs minimal patches, issues, and validation commands.
Validates Kubernetes YAML manifests (Deployment, Service, ConfigMap, CRD) via linting, schema checks, dry-run, and CRD lookup. Report-only with fix suggestions.
Queries, filters, and transforms YAML with yq CLI tool. Use for processing Kubernetes manifests, GitHub Actions workflows, Helm values, and config files.