Agent Skills: lint

Use when checking skill quality, validating frontmatter before commit, or diagnosing validator warnings. Runs the plugin validator on a skill, agent, or plugin directory — reports token complexity, broken links, frontmatter issues, and structural problems. Pass the path as an argument.

UncategorizedID: Jamie-BitFlight/claude_skills/lint

Install this agent skill to your local

pnpm dlx add-skill https://github.com/Jamie-BitFlight/claude_skills/tree/HEAD/plugins/plugin-creator/skills/lint

Skill Files

Browse the full folder contents for lint.

Download Skill

Loading file tree…

plugins/plugin-creator/skills/lint/SKILL.md

Skill Metadata

Name
lint
Description
Use when checking skill quality, validating frontmatter before commit, or diagnosing validator warnings. Runs the plugin validator on a skill, agent, or plugin directory — reports token complexity, broken links, frontmatter issues, and structural problems. Pass the path as an argument.

If the user's intent does not match this skill, route through /plugin-creator:plugin-lifecycle.

<provided_path> $ARGUMENTS </provided_path>

Run uvx skilllint@latest check <path> via Bash, using the exact literal path in <provided_path/>. Never splice <provided_path/> directly into a !`...` injection line or any other shell-interpreted string — it is caller-supplied text and may contain characters (;, `, $(), |) that corrupt shell parsing on contact.

Read the findings straight from the command output. Each one carries its error code, severity, the field or path it applies to, and the suggested fix. Report those to the user and act on them; do not look up a code anywhere else. Re-run with --fix to apply the auto-fixable ones.

Runtime escapes

When <provided_path/> is a plugin directory, also run:

uv run "${CLAUDE_PLUGIN_ROOT}/skills/lint/scripts/audit_runtime_escapes.py" --plugin-dir <path>

It reports every path, markdown link, and cross-plugin reference in the plugin's runtime files that resolves only in the authoring repo, with file:line for each. Exit 0 means clean; exit 1 means findings. Pass --all instead of --plugin-dir to sweep every plugin and get one count each.

A finding is real when the text tells the runtime agent to act on something an installed consumer does not have. Fenced blocks are exempt, because an anti-pattern shown in a fence is an illustration rather than an instruction; angle-bracket placeholders are exempt for the same reason. Move an illustrative real path into a fence, and write a generic one as <plugin>/skills/<name>/SKILL.md.

The test behind each finding: a path, command, fact, or cross-plugin reference is present in every environment, bundled and reached by a relative path inside the plugin, or inlined; otherwise inline, bundle, guard, or delete it. A harness variable counts only where that harness substitutes it. The scanner never reports a path built on ${CLAUDE_PLUGIN_ROOT} or ${CLAUDE_SKILL_DIR}, so check those by hand against the same test.