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 skillsskip 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;--strictmakes 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 --quietIt 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.
Follow for new free skills
New free skills and guides appear in all of these as we publish them. Pick whichever you already use.
- RSS feed for any feed reader
- Watch the free skills repo on GitHub
- Follow on Gumroad