A linter for the files that steer your agents.
Skillcheck validates the files that configure coding agents:
CLAUDE.md, AGENTS.md, and skill frontmatter
(SKILL.md). Paste a file into the editor above and it checks
the frontmatter and the prose the same way the command-line tool does in
CI. These files have no compiler and no schema, so the mistakes that stop
a skill from loading never raise an error. They just silently do nothing.
Skillcheck names the exact line so you can fix it in seconds instead of
losing a debugging session to "why isn't my skill firing?".
It flags the failure modes that actually bite: a missing name
or description, an unterminated --- block, a
duplicate or typo'd key like nmae:, a name that is not
kebab-case or does not match its directory, a null required field
(name: ~) that reads as present but resolves to nothing, a
description with no trigger language, an over-long description that the
model host will truncate, and two skills declaring the same
name so they shadow each other. Add more than one file with
the tab bar to run the cross-file checks (name collisions and dead
/skill-name references) exactly as they run across a repo.
Nothing is uploaded. The validator runs the same pure-JavaScript engine
the CLI uses, entirely in your browser. To gate it on every merge, run
npx skillcheck .claude/skills in your pipeline; it exits
non-zero the moment a skill breaks.
SKILL.md), CLAUDE.md, and
AGENTS.md. Paste any of them above, or point the CLI at a
directory and it walks the tree for all three.
name that is not kebab-case, a
name that does not match its directory, a missing or
null description, a description with no "use when..."
trigger language, or a frontmatter block that is never closed with a
second ---. Skillcheck reports each one with its line and
a fix hint.
npx skillcheck .claude/skills returns a non-zero exit
code on any error, and --max-warnings 0 makes it fail on
warnings too. The CLI and this page share one engine, so they always
agree.
name shadow each other:
only one registers, and which one is not deterministic. It is
impossible to spot by reading a single file, so Skillcheck flags every
file involved.