Plainwork

Plainwork / Skill Ledger / SKILL.md validator: check a skill file online

SKILL.md validator

Paste a SKILL.md and see at once whether it breaks the open Agent Skills specification, which line is wrong, and how much of Claude Code’s skill listing it uses. It runs in your browser: nothing you paste is uploaded or stored.

What it checks

  • Frontmatter YAML. An unquoted value containing a colon and a space, such as description: Writes a commit message: a subject line, is not valid YAML. Claude Code’s docs say a skill whose YAML fails to parse still loads with no fields set, so /skill-name works but Claude cannot match your description.
  • Name. Required by the Agent Skills specification: 1 to 64 characters, lowercase letters, digits and single hyphens, no leading or trailing hyphen, equal to the folder name.
  • Description. Required, at most 1,024 characters. Claude Code joins description and when_to_use and cuts the entry at 1,536 characters (see its skills page), so the check flags text past that point.
  • Other fields. compatibility at most 500 characters, metadata as string values (write version: "1.0" in quotes), allowed-tools as one space-separated string, and a note for fields neither the specification nor Claude Code lists.
  • Size. Body length against the specification’s suggestions (under 500 lines, under 5,000 tokens). Token counts are estimates at four characters per token.

The checks match what the SKILL.md description checklist explains, and if the file is valid but Claude still ignores it, go through the four-step diagnosis. It reads one file only; it does not run an agent, so it cannot tell you the model will pick the skill.

Checking a whole collection

For one file, this page is enough. If you keep dozens of skills, Skill Ledger does the same checks across all of them, flags pairs whose descriptions compete for the same request, and re-runs your should-trigger prompts when you edit. It is free for 12 skills in your browser.

More from the catalogue

Other small tools

See everything →