MukundaKatta

Claude Skill Check — Development skill for Claude Code

Development community

Linter for Claude Code SKILL.md files.

How to install Claude Skill Check

This entry records only its repository, not the path inside it, so there is no exact command to give. Open MukundaKatta/claude-skill-check and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude Skill Check does

Linter for Claude Code SKILL.md files. Python port of the skillint npm package.

Alternatives in Development

  • npm 71.9k ★
  • Tau — A Python port of Pi’s minimalist coding agent 2.5k ★
  • Claude Code Src — 2026.3.31 claude code 意外把包含源码的文件上传到 npm 仓库,版本号是 2.1.88,其中 cli.js.map 文件有 57MB 的体积,claude code 的源码在该文件的 sources 2.2k ★

README

claude-skill-check

[![CI](https://github.com/MukundaKatta/claude-skill-check/actions/workflows/ci.yml/badge.svg)](https://github.com/MukundaKatta/claude-skill-check/actions/workflows/ci.yml) [![PyPI](https://img.shields.io/pypi/v/claude-skill-check.svg)](https://pypi.org/project/claude-skill-check/) [![Python](https://img.shields.io/pypi/pyversions/claude-skill-check.svg)](https://pypi.org/project/claude-skill-check/) [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

A small Python linter for [Claude Code](https://claude.ai/code) `SKILL.md` files. It checks:

  • YAML frontmatter is present and parses cleanly
  • name and description are present
  • name is lowercase kebab-case, 1-64 chars, starts with a letter
  • description length is reasonable (20-1024 chars after trimming)
  • allowed-tools is either a string or a list of strings
  • Common secret patterns (Anthropic/OpenAI keys, AWS access keys, GitHub tokens, PEM blocks) are not leaked in the file
  • Unknown frontmatter fields get a warning
  • Empty body gets a warning

Install

pip install claude-skill-check

Usage

Lint a single file:

claude-skill-check path/to/SKILL.md

Lint every `SKILL.md` under a directory:

claude-skill-check path/to/skills-dir/

Exit status: `0` on no errors, `1` on any errors, `2` when no skill files were found.

Only show errors

claude-skill-check --quiet path/to/skills-dir/

Use as a library

from claude_skill_check import validate_skill_file

result = validate_skill_file("path/to/SKILL.md")
if not result.ok:
    for issue in result.errors:
        print(issue.code, issue.message)

Issue codes

Code Severity Meaning
E000 error file not found or not a regular file
E001 error