How we score a skill

Methodology v1. Two layers: red lines that veto, then points that rank. No evidence, no points — and popularity is never evidence.

Layer 1 — security red lines (veto)

A skill is flagged and never recommended, whatever its score, if it does any of these:

A missing or invalid SKILL.md, a name that doesn't match its folder, or no licence also bars a skill from recommendation. Our scan is a screening, not a security certification.

Layer 2 — 100 points, six dimensions

Live test results/30

Standard-task completion, margin over the no-skill baseline, self-verification in the output, failure behaviour.

Workflow design/20

Clear steps, defined inputs/outputs, built-in checks, stop conditions, failure recovery.

Trigger quality/15

Does the description say what it does, when to use it — and when NOT to? Tested with five fixed prompts.

Structure & context cost/15

Leanness (guideline: SKILL.md body under 500 lines), progressive disclosure, organisation, no padding.

Content & engineering/10

Examples and templates, script quality where scripts exist, stated dependencies, concrete instructions.

Safety score/10

Least privilege, declared tool scope, confirmation before sensitive actions. Real risk is handled by the red lines below, so this stays small.

Install counts and GitHub stars appear on review pages as background only. They never add a single point.

Grades

90–100SFirst choice
80–89ARecommended
65–79BUsable, with known gaps
50–64CCaution
<50DNot recommended

The test protocol

  1. Collect metadata (background only — never scored).
  2. Static read of SKILL.md and every bundled file.
  3. Security screen against the red-line list.
  4. Trigger tests: five fixed prompts — three that should fire it, two lookalikes that should not.
  5. Standard-task A/B run: same brief, with and without the skill. Prompts and outputs are kept as evidence.
  6. Compatibility spot-check across Claude Code, Cursor and Codex.
  7. Score and publish, with the test environment and date on the page.

Re-tests are triggered by a major version change, 90 days elapsed, or a user report.