SkillSeal
Test your Agent Skills before your agents do.
SKILL.md files can be syntactically valid and still be bad: a vague
description that never routes correctly, an oversized file that eats context,
a curl | sh buried in a code block, a hardcoded /Users/you/... path that
only works on your machine. SkillSeal is a local-first, offline-first CLI
that lints, scores, and routing-tests SKILL.md files — catching what a
manual read-through misses, before an agent does.
What it catches
| Category | Catches things like |
|---|---|
| Specification | Invalid frontmatter, a name that doesn't match its directory |
| Quality | Vague descriptions, oversized files, dangling file references |
| Security | rm -rf / curl | sh in a code block, secret-file reads |
| Portability | Hardcoded /Users/you/... paths, OS-specific commands |
Full docs: https://pespinel.github.io/SkillSeal/
Installation
uv tool install skillseal
# or: pipx install skillseal
# or: pip install skillseal
One-off, no install:
uvx skillseal check ./skills
Quickstart
skillseal init my-new-skill # scaffold a skill that scores 100/100
skillseal check ./skills # lint: spec, quality, security, portability
skillseal test ./skills # routing tests (skillseal.yaml)
skillseal conflicts ./skills # duplicate names / routing overlap between skills
skillseal diff old/ new/ # score delta between two versions of a skill
See the full command reference,
skillseal.yaml/skillseal.toml config,
and CI integration (GitHub Action,
pre-commit hook) on the docs site.
Contributing
See AGENTS.md for setup, quality gates, and how to add a rule. Planned work is tracked in Issues.
License
Metadata
Release files for skillseal 0.18.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| skillseal-0.18.0.tar.gz | 226.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| skillseal-0.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 272.6 kB
Release files / skillseal-0.18.0.tar.gz
| Download URL | skillseal-0.18.0.tar.gz |
|---|---|
| Size | 226.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e90f687844dc09aeb42ba0445272ad12d0023805459c8971cd6fc0c5dcc1c29
|
|
BLAKE2b-256 checksum How to use checksums |
2af82aaaa690e1709611de9f92d59628aba79afbe0e9b510709ed7a02598437f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.
Transparency logRelease files / skillseal-0.18.0-py3-none-any.whl
| Download URL | skillseal-0.18.0-py3-none-any.whl |
|---|---|
| Size | 46.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4bb7b1129553828036b66b9432c3428a064baefc90eb16a992c3e65cde330c91
|
|
BLAKE2b-256 checksum How to use checksums |
2ddcffbc52d577dd653b012572caf0dde23aa08afa9fb503d17fea52cea27e89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2026.
Transparency log