Agent Skills validation¶
The repository skill catalog is validated locally and in CI by:
The gate is deterministic and local-only. It does not fetch content from the network, resolve web links, import the OpenMed package, or make network requests.
It checks:
- YAML frontmatter, kebab-case folder/name identifiers, descriptions, metadata, bounded file and body length, and duplicate identifiers;
- relative Markdown links and repository-bound referenced files, rejecting local file schemes, backslash paths, and symlink escapes;
- membership of every
skills/<name>directory in the committed.claude-plugin/marketplace.jsonpack, with no duplicate or unknown entries; - the
--helpexit status of executable helpers underskills/andscripts/skills/with a temporary home, offline environment flags, proxy blocking, scratch-only temporary directories, discarded output, and no ambient credential variables.
Failures contain only a repository path, an optional line number, and a fixed diagnostic. Skill bodies, parser details, and helper output are intentionally not included in logs. Absolute host paths are replaced with a fixed diagnostic. Symlinked helper roots, helpers, skill directories, and SKILL.md files are rejected rather than followed.
Every executable helper added to the skill workflow must have a successful, offline --help command and a focused test containing an assertion and a reference to the helper. CI runs the complete tests/unit/skills directory; broad repository and platform testing remains owned by the other workflows.
Use --help to inspect the command without validating or writing anything: