Quality scoring

Every skill gets a format conformance score from 0 to 100: how closely it follows the skill format specification. It is not a measure of how useful the skill is. The same scorer runs in skillpm validate, at install time, and in the registry.

The checks

| Check | Points | |---|---| | YAML frontmatter present and parseable | 16 | | name present | 16 | | name is kebab-case and uses no reserved words | 11 | | description present | 16 | | description is at least 30 words | 6 | | description is at most 1,024 characters with no XML tags | 11 | | SKILL.md under 500 lines | 7 | | Only scripts/, references/, assets/ subdirectories | 4 | | No README.md inside the skill folder | 4 | | Every referenced file exists | 7 | | Resources filed in the right subdirectory | 2 | | Total | 100 |

Frontmatter that is missing or cannot be parsed is fatal: the skill scores 0 and no other check runs.

Where the weights come from

The weights are derived from the specification, not tuned by hand. Each check is rated on how strongly the spec requires it (must, should, or may) and on what breaks when it fails (loading, runtime, or nothing visible). The product of the two, normalised to 100, is the check's weight.

Reading a score

| Score | Meaning | |---|---| | 90–100 | Follows the format closely | | 70–89 | Minor issues | | 50–69 | Several checks failed; review before relying on it | | Below 50 | Significant format problems | | 0 | Missing or invalid frontmatter |

A score never blocks an install. It is there so you can decide.

Trust tiers

The trust tier is separate from the score:

  • Community — every skill published through skillpm publish or imported from GitHub
  • Verified — assigned by the registry's maintainers, for example to Anthropic's own skills

A community skill can score 100, and a verified one can score lower.

Skillsets

Skillsets get a second number, coherence: how well their members agree with the conventions the skillset declares. See skillpm skillset.