Skip to main content
Skill Lab assigns a quality score from 0-100 to each skill based on the results of 28 static checks. This score reflects how well the skill follows best practices and the Agent Skills specification.

Score Calculation Formula

The quality score is a weighted average of dimension scores:

Dimension Weights

From core/scoring.py:12-18:
The Execution dimension is reserved for trace-based checks that analyze runtime behavior. It does not contribute to the static analysis score.

Dimension Score Calculation

Each dimension score is calculated using severity-weighted results:

Severity Weights

From core/scoring.py:21-25:
A single failed ERROR check has the same impact as two failed WARNING checks or four failed INFO checks.

Example Calculation

Let’s calculate the score for a skill with the following results in the Structure dimension: Calculation:
If all other dimensions score 100%, the final quality score would be:

Check Distribution

The 28 static checks are distributed across dimensions:

Structure (7 checks)

  • SKILL.md Exists (ERROR, spec-required)
  • Valid Frontmatter (ERROR, spec-required)
  • Standard Frontmatter Fields (WARNING)
  • Scripts Valid (WARNING)
  • References Valid (WARNING)
  • Scripts No Interactive Input (WARNING)
  • Scripts Self-Contained (INFO)

Naming (1 check)

  • Name Matches Directory (ERROR, spec-required)

Description (0 behavioral checks)

All description checks are schema-based

Content (11 checks)

  • Body Not Empty (WARNING)
  • Line Budget (WARNING)
  • Has Examples (INFO)
  • Reference Depth (WARNING)
  • Scripts Referenced (WARNING)
  • Script Paths Exist (WARNING)
  • Compatibility Prerequisites (INFO)
  • Token Budget (WARNING)
  • Metadata Token Budget (INFO)
  • Description Actionable (INFO)
  • Asset Paths Exist (WARNING)

Schema-Based Checks (9 checks)

  • Name Required (ERROR, spec-required)
  • Name Format (ERROR, spec-required)
  • Description Required (ERROR, spec-required)
  • Description Not Empty (ERROR, spec-required)
  • Description Max Length (ERROR, spec-required)
  • Compatibility Length (ERROR, spec-required)
  • Metadata Format (ERROR, spec-required)
  • License Format (WARNING)
  • Allowed Tools Format (WARNING)
Spec-required checks (10 total) must pass for the skill to be considered spec-compliant. The remaining 18 checks are quality suggestions.

Spec Compliance vs. Quality

Skill Lab distinguishes between:
  1. Spec Compliance - Does the skill meet the minimum requirements of the Agent Skills specification?
  2. Quality Score - How well does the skill follow best practices?
A skill can be spec-compliant (all 10 spec-required checks pass) but still have a lower quality score if it fails quality suggestions.

Spec-Only Evaluation

To check only spec-required constraints:
This runs only the 10 spec-required checks and ignores quality suggestions.

Validation Modes

Score Interpretation

A skill with a score below 100% may still be functional and spec-compliant. The score reflects adherence to best practices, not correctness.

JSON Output

For machine-readable output, use the --json flag:
The JSON output includes:
  • quality_score - Overall score (0-100)
  • overall_pass - Boolean indicating if all checks passed
  • checks_run, checks_passed, checks_failed - Count summaries
  • results - Array of individual check results
  • summary - Breakdown by severity and dimension