Skip to main content
Glama

skillcheck

Is this SKILL.md well-formed? skillcheck answers from the text itself: it parses the frontmatter block, checks the body, walks the markdown links, and compares the headings against the sections a skill is supposed to have — then reports every finding as a coded issue, plus the statistics it collected:

  • NO_FRONTMATTER — the document does not start with a --- line

  • UNCLOSED_FRONTMATTER — the frontmatter block never closes

  • MISSING_NAME / MISSING_DESCRIPTION — a required frontmatter field is absent

  • BAD_NAME_FORMAT — the name value is not a kebab-case slug (^[a-z0-9]+(-[a-z0-9]+)*$)

  • EMPTY_BODY — nothing but whitespace after the frontmatter

  • MISSING_FILE — a relative link target is not in the caller-supplied list of files that exist next to the skill

  • MISSING_SECTION — a required heading has no matching markdown heading (compared trimmed, case-insensitively, at any heading level)

Links to http://, https://, mailto:, and #anchor targets are counted but never checked. Relative targets have any #anchor suffix and surrounding <> stripped before the file check. Nothing is read from disk and nothing is fetched: the caller supplies the document text and the file list, so the same input always gives the same report.

CLI

npx @reneturcios/skillcheck validate --skill SKILL.md --files files.json --sections sections.json
npx @reneturcios/skillcheck --version

files.json and sections.json are each a JSON array of strings, and both flags are optional. Omitting --files skips the file check entirely (the report's stats.files_checked is then false).

Exit codes: 0 whenever the tool ran — a document that fails validation is a result, not a process failure — 1 on a runtime error, 2 on a usage error.

Related MCP server: judg3d

MCP server

npx -y @reneturcios/skillcheck mcp

MCP client config:

{
  "mcpServers": {
    "skillcheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/skillcheck", "mcp"]
    }
  }
}

Tools

  • validate_skill — Validate a SKILL.md document and report {valid, issues, stats}.

    • content (string, required) — the SKILL.md text

    • available_files (array of strings, optional) — relative paths that exist next to the skill; relative links are checked against it

    • required_sections (array of strings, optional) — heading texts that must appear as markdown headings

Docker

docker run -i ghcr.io/cloudcorprecords/skillcheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/skillcheck validate --skill /w/SKILL.md

Development

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

License

MIT — Copyright (c) 2026 Rene Turcios

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Serves skill-defined JSON-in/JSON-out scripts as callable tools over MCP stdio, driven by a portable skill-runtime.json manifest that supplies each tool's title, description, and input schema. Exposes commands to validate, list, and run skills, so hosts can discover and invoke agent skills without custom per-skill glue code.
      15 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides MCP tools for local code validation with execution evidence, enabling users to run planned checks on projects and receive JSON results that distinguish passing, failing, and incomplete outcomes.
      555 npm
      MIT