Skillcheck

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 6, 2026

SKILL.md validator: frontmatter, structure, links, and referenced files checked.

VerifiedSTDIODesktop onlyFiles & StorageDeveloper Tools

Overview

AI-generated overview

Validates SKILL.md skill files — frontmatter, name format, body, links and referenced files — and returns a VALID or INVALID verdict with coded issues.

What you can do
  • Validate a SKILL.md document or skill directory: checks YAML frontmatter, required name and description fields, kebab-case name format, non-empty body, and required headings.
  • Check markdown links in the body against a caller-supplied list of files that exist next to the skill.
  • Report a verdict with coded issues, file and line evidence, and collected statistics.
When to use it
Useful when authoring or reviewing agent skill packages and you want a quick structural check before publishing or installing them. It fits into a skill-authoring workflow where the assistant drafts SKILL.md and needs to confirm it is well-formed.
Requirements
Runs as a local stdio process, either via npx (Node.js) or the Docker image. No accounts, API keys or environment variables are declared. The caller supplies the document text and, optionally, the file list and required sections; nothing is read from disk or fetched.
Before you install
Read-only and deterministic: it does not read files or fetch links, so relative link checks only reflect the file list the caller passes in. External http, https, mailto and anchor links are counted but never verified. A failing document still exits with code 0, so rely on the reported verdict rather than the exit status.

Installation

In SourceWeft

  1. Open Skillcheck in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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

bash
npx @reneturcios/skillcheck validate --skill SKILL.md --files files.json --sections sections.jsonnpx @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.

MCP server

bash
npx -y @reneturcios/skillcheck mcp

MCP client config:

json
{  "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

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

Development

bash
npm installnpm 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

Source: README.md at commit 8e9f34b

Tools

1

check_skill

Validate a SKILL.md file or a skill directory: YAML frontmatter exists with name and description, the name matches the directory, links in the body resolve to files that exist, and files the skill references are present. Verdict VALID or INVALID with file and line evidence.

Parameterspathrequired

Version history

1
  1. v0.1.0LatestOct 30, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts