All skills / Free tools

Skill Portability Check

A free checker for SKILL.md folders: strict-YAML trap, portable keys, vendor tool names, missing fallbacks, broken links. One Python file, exit code for CI.

What it checks

  • Parses the frontmatter the way a strict YAML parser does. The classic trap is an unquoted colon in the description, which makes tools such as npx skills skip the skill without a clear message.
  • Checks name format and length (and that it matches the folder), description length, and whether the description says when to use the skill.
  • Flags vendor tool names (WebFetch, Skill tool, Bash(...), mcp__), vendor paths, tool-specific keys, and text some tools substitute ($ARGUMENTS, $0).
  • Warns when the text relies on the web, a shell or a script but never says what to do when it is missing, and finds broken relative links and mentioned files that are not there.
  • Prints a table, or --json. Exit code 1 on errors only; --strict makes warnings fail too.

Run it

Download the script and point it at a skill folder or a whole repository. Python 3 only, nothing else to install.

curl -fsSL https://raw.githubusercontent.com/proskillpacks/skills/main/skills/developers/skill-portability-check/scripts/skill_check.py -o skill_check.py && python3 skill_check.py path/to/your/skills --quiet

It prints a table per SKILL.md and exits with code 1 on errors only. Add --strict to fail on warnings too.

Use it in CI

Copy examples/skill-check.yml to .github/workflows/skill-check.yml in your repository. It downloads skill_check.py, checks every SKILL.md and fails the build on errors:

name: skill-check
on: [push, pull_request]
jobs:
  skill-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: curl -fsSL https://raw.githubusercontent.com/proskillpacks/skills/main/skills/developers/skill-portability-check/scripts/skill_check.py -o skill_check.py
      - run: python3 skill_check.py . --quiet

Add --strict to fail on warnings too. Put a file named .skill-check-ignore in a folder of test fixtures to skip it.

Limits

  • It reads files; it cannot tell whether a skill's instructions work or whether it triggers.
  • Warnings are portability risks, not proof of breakage.
  • The vendor pattern lists are not exhaustive.

Also as a skill and a prompt

It is also a skill you can install and ask in plain words ("Check my skills repo for portability problems"). See the skill page.