Skillslint
CLI linter for agents skills. Runs two checks: markdown prose quality via textlint and structured quality scoring via agent-skills-cli.
Skills created via Anthropic's skill-creator are generally good and reliable, but you can also create or edit them manually — they are just SKILL.md files. This tool guards against common mistakes in both cases.
Installation
Run directly without installing:
npx @ladamczyk/skillslint
Or install locally (e.g. for use inside a QoQ pipeline):
npm install --save-dev @ladamczyk/skillslint
List all available options:
npx @ladamczyk/skillslint -h
Command
skillslint [options]
| Option | Default | Description |
|---|---|---|
-p, --path <path> | ./skills | Directory containing skill subdirectories |
-t, --threshold <n> | 70 | Overall quality threshold (0–100); used when no specific threshold flags are set |
--overall <n> | — | Required overall score |
--structure <n> | — | Required structure score |
--clarity <n> | — | Required clarity score |
--specificity <n> | — | Required specificity score |
--advanced <n> | — | Required advanced score |
-f, --fix | — | Attempt auto-fix via textlint |
-i, --ignored [names] | — | Skill directory names to skip |
Exits with code 1 if any skill fails to meet its threshold or if textlint finds unfixable issues.
Skills directory structure
Each subdirectory under --path is treated as one skill. Only SKILL.md is linted — other files in the directory are ignored.
skills/
my-skill/
SKILL.md
Scoring categories
Scores are computed by agent-skills-cli and range from 0 to 100.
| Category | What it measures |
|---|---|
| Overall | Weighted average of all categories |
| Structure | Document organization and completeness |
| Clarity | Writing clarity and readability |
| Specificity | Concrete examples and precise instructions |
| Advanced | Use of advanced skill features |
Use --threshold to set a single floor across all categories, or combine the individual flags (--structure, --clarity, etc.) for fine-grained control.
Textlint rules
The bundled .textlintrc.json enables:
common-misspellings— catches common spelling errorswrite-good— passive voice and wordiness checks (weasel words, adverbs, and "too wordy" are disabled)
Run with -f / --fix to let textlint auto-correct issues it can resolve without manual intervention.