Point it at a skill folder or a repository of skills.
A per-skill table of errors and warnings, and the exact fixes.
Before and after
Real public data, anonymised. Taken from the skill's README.
Our own public skills repository on 2026-10-04: it had grown to 15 skills, and a new one was skipped by npx skills add proskillpacks/skills --list with a YAML error. The same rule, run over our whole tree of 57 skills, found 7 descriptions with an unquoted colon (now fixed), and the checker's other warnings led us to add fallback sentences and remove a vendor tool name.
After (skill output, excerpt):
$ python3 scripts/skill_check.py proskillpacks-skills/skills --quiet
skill errors warnings lines scripts
accessibility-quick-audit 0 0 39 -
changelog-from-commits 0 0 39 -
readme-first-run-check 0 0 39 -
agent-ready-quick-check 0 0 64 Python
late-payment-chaser-uk 0 0 109 Python
...
15 skill(s): 0 error(s), 0 warning(s)$ python3 scripts/skill_check.py examples/bad-yaml-colon/SKILL.md
ERROR frontmatter: line 3: description: unquoted ': ' inside the value (strict YAML reads it as a nested mapping). Quote the value or reword
See it run

What it does
A free checker for Agent Skills. Point it at a skill folder or a whole repository of skills and it reports, per SKILL.md, the things that make a skill fail to load or stop it working outside one assistant: frontmatter that strict YAML parsers reject, keys other than name and description, vendor tool names and paths, missing fallbacks, long bodies and broken links. One Python file, standard library only, with a non-zero exit code for CI.
How it was tested
Run over our own 57 skills and its four fixtures (5 checks pass). It found 7 descriptions our tools had accepted but strict YAML parsers reject, now fixed. The assistant wrapper was not model-tested.
Tested on a real example before release. The example is shown in the Before and after section above.
How we test, what we do not do, and which assistants we ran it on.
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.
Works with
Works with any assistant that reads SKILL.md skills (Claude, Codex, Gemini CLI, Cursor and others), plus a paste-in prompt version for ChatGPT or any chatbot. Python 3 (standard library only). Without a shell, the skill checks a pasted SKILL.md by reading.
Install
- Run
npx skills add proskillpacks/skillsin your project and pick this skill. Or copy theskill-portability-checkfolder from GitHub (https://github.com/proskillpacks/skills/tree/main/skills/developers/skill-portability-check). - Put the
skill-portability-checkfolder where your assistant looks for skills. The generic path is.agents/skills/(ornpx skills addfrom a folder). Tool-specific paths:- Claude Code:
~/.claude/skills/(or.claude/skills/inside one project) - OpenAI Codex, Gemini CLI, Cursor and others:
.agents/skills/or the skills folder their docs name - claude.ai: zip the skill folder yourself, then Customize, Skills, the plus button, Create skill, Upload a skill (code execution must be on in Settings, Capabilities)
- ChatGPT or any chatbot: open the skill's
prompt.md, paste it into the chat, then paste your own text or link - Steps for each tool, with links to its official docs: how to install Agent Skills
- Claude Code:
- Ask for the job in plain words, for example: "Check my skills repo for portability problems.". The skill loads by itself.
Get it
MIT licence. Use it, change it, share it.
Related
- Free guide to do it by hand: How do I check that my SKILL.md file will load in other tools?
- Free paste-in prompt for any chatbot: Check a SKILL.md for portability problems: free prompt
- Changelog from Commits (Free): Give it a commit range or a pasted git log. Get a user-facing changelog with the commit behind every line, and the vague commits flagged.
- PR Description and Review Prep (Free): Run it on your branch. Get a PR title, summary, risk notes and test plan from the diff, plus the questions a reviewer will ask. Free, MIT-licensed.
- README First-Run Check (Free): Point it at a repo. It follows the README like a new user and checks every step against the repo: OK, BROKEN, MISSING or UNVERIFIED, with evidence and the README edits that fix it.
- More for developers: Developers
Report a problem with this skill (GitHub, or write to kaiventura.founder@gmail.com).