Checks Agent Skills (SKILL.md folders) for portability and common mistakes with a standard-library Python script, then explains each finding and the fix. It catches frontmatter that strict YAML parsers reject (such as an unquoted colon in the description, which makes tools like npx skills skip the skill), keys other than name and description, bad name format, a description that does not say when to use the skill, vendor tool names and paths, missing fallbacks when a tool or the network is...
npx mdskills install proskillpacks/skill-portability-checkRelated
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.
npx skills skip the skill without a clear message.$ARGUMENTS, $0).--json. Exit code 1 on errors only; --strict makes warnings fail too.Any assistant that reads the open SKILL.md format works.
skill-portability-check folder into .agents/skills/ in your project (or ~/.agents/skills/ for everywhere). Create the folder if it is not there. Or use your tool's own skills folder (for example .claude/skills/ for Claude Code).No skills support? Run the script yourself: python3 scripts/skill_check.py . Or paste your SKILL.md into the prompt in prompt.md.
Every finding starts with a rule ID such as [SC008]. Silence a rule with --ignore SC008,SC013. The same checker is also packaged as a GitHub Action and pre-commit hook: https://github.com/proskillpacks/skill-check
Needs: Python 3 (standard library only) to run the script. Without a shell, the skill checks a pasted SKILL.md by reading.
Works with any AI assistant that reads SKILL.md (Claude, OpenAI Codex, Gemini CLI, Cursor, GitHub Copilot and others). We run our release tests on Claude Sonnet and Opus.
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
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.
Run on our whole tree of 57 skills and on its own fixtures (python3 scripts/test_skill_check.py: four fixtures, good and bad, plus the --strict exit code). Every error and the reasonable warnings it found in our own skills were fixed. Python 3 only; no other dependencies.
Made by Pro Skill Packs. Free under the MIT licence.
Install via CLI
npx mdskills install proskillpacks/skill-portability-checkSkill Portability Check is a free, open-source AI agent skill. Checks Agent Skills (SKILL.md folders) for portability and common mistakes with a standard-library Python script, then explains each finding and the fix. It catches frontmatter that strict YAML parsers reject (such as an unquoted colon in the description, which makes tools like npx skills skip the skill), keys other than name and description, bad name format, a description that does not say when to use the skill, vendor tool names and paths, missing fallbacks when a tool or the network is...
Install Skill Portability Check with a single command:
npx mdskills install proskillpacks/skill-portability-checkThis downloads the skill files into your project and your AI agent picks them up automatically.
Skill Portability Check works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.