New to Claude Skills? Learn how to install them →

alirezarezvani on GitHub

Skill Tester

Free

Validate and score skills in the Claude ecosystem.

Get this skill

Free · Opens the source repo

What Skill Tester does

Skill Tester is a comprehensive tool designed to validate, test, and score the quality of skills within the Claude ecosystem. It consists of four main components that can be executed from the repository root, ensuring a streamlined process for skill development and maintenance. The tools included are the skill validator, script tester, quality scorer, and security scorer, each serving a specific purpose in the quality assurance lifecycle of skills.

The skill validator checks for structural compliance and documentation requirements, ensuring that each skill adheres to the necessary guidelines and standards. The script tester focuses on validating the syntax, imports, and runtime behavior of Python scripts, providing a controlled environment for testing with timeout protection. The quality scorer evaluates skills across multiple dimensions, including documentation, code quality, completeness, and usability, ultimately assigning a letter grade and tier recommendation based on the results.

This skill is particularly useful for developers and designers who are authoring new skills or auditing existing ones for potential tier promotion. By integrating the Skill Tester into a continuous integration (CI) pipeline, users can automate quality checks and enforce standards consistently across their projects. The output from each tool is designed to be consumed in JSON format, making it easy to integrate with other systems or workflows.

For those looking to maintain high standards in skill development, the Skill Tester provides a structured approach to quality assurance, helping to identify areas for improvement and ensuring that skills meet the expectations of users and the ecosystem as a whole.

When to use it

Use this tool when developing new skills or when you need to audit existing skills for quality assurance and tier classification.

When not to use it

This skill may not be necessary for simple projects that do not require strict adherence to quality standards or for skills that are not meant for public distribution.

What you can build with it

Auditing Existing Skills

Use the Skill Tester to evaluate existing skills for compliance and quality before promotion.

Integrating into CI

Automate skill validation and testing in your CI pipeline to maintain quality standards.

Developing New Skills

Utilize the Skill Tester during the development of new skills to ensure they meet the required standards.

How to install Skill Tester

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/skill-tester --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

Skill Tester

Tier: POWERFUL · Category: Engineering Quality Assurance · Dependencies: None (Python stdlib only)

Meta-skill that validates, tests, and scores skills in this repository. Four tools, run from the repo root with full paths:

  1. scripts/skill_validator.py — structure + documentation compliance
  2. scripts/script_tester.py — Python script syntax/imports/runtime/output testing
  3. scripts/quality_scorer.py — multi-dimensional scoring with letter grade
  4. scripts/security_scorer.py — security posture scoring (also available via quality_scorer.py --include-security)

Scope note: this skill's tier line-count minimums measure legacy skills. For authoring new skills, engineering/write-a-skill (SKILL.md under ~100 lines, Matt Pocock doctrine) is the binding standard — do not pad a new skill to satisfy a tier minimum here.

Quick Start (exact, runnable from repo root)

# 1. Validate structure (exit non-zero on failure — usable as a gate)
python3 engineering/skills/skill-tester/scripts/skill_validator.py engineering/skills/self-eval --json

# 2. Test the skill's Python scripts (30s default timeout per script)
python3 engineering/skills/skill-tester/scripts/script_tester.py engineering/skills/self-eval --json

# 3. Score quality (fail CI below threshold with --minimum-score)
python3 engineering/skills/skill-tester/scripts/quality_scorer.py engineering/skills/self-eval --json --detailed --minimum-score 75

Consume the JSON: validator emits overall_score, compliance_level, per-check checks{}; scorer emits overall_score, letter_grade, tier_recommendation, dimensions, and an improvement_roadmap — work the roadmap top-down, then re-run until the target score is met.

For repo-wide auditing prefer scripts/audit_skills.py at the repo root (wraps the write-a-skill checklist runner across all skills).

What Each Tool Checks

skill_validator.py

  • SKILL.md frontmatter parsing, required sections, minimum line counts per tier (--tier BASIC|STANDARD|POWERFUL)
  • Required structure: SKILL.md, README.md, scripts/, references/, assets/, expected_outputs/
  • Python scripts: argparse present, stdlib-only imports

script_tester.py

  • AST-based syntax validation; import analysis (flags external dependencies)
  • Controlled execution with timeout protection (--timeout, default 30s)
  • --help functionality verification; sample-data runs compared against expected_outputs/

quality_scorer.py

Four dimensions, 25% each: Documentation (depth, examples, references), Code Quality (complexity, error handling, output consistency), Completeness (required dirs, sample data, expected outputs), Usability (help text, example clarity). Outputs 0-100 + A-F grade + tier recommendation.

Tier Classification

TierSKILL.mdScriptsCLI surface
BASIC≥ 100 lines1 (100-300 LOC)basic argparse
STANDARD≥ 200 lines1-2 (300-500 LOC)subcommands, JSON + text output
POWERFUL≥ 300 lines2-3 (500-800 LOC)multiple modes, CI integration

(Advisory for legacy skills; new skills follow write-a-skill — see scope note above.)

CI Integration

# GitHub Actions: gate changed skills
- name: "validate-changed-skills"
  run: |
    for skill in $changed_skills; do
      python3 engineering/skills/skill-tester/scripts/skill_validator.py "$skill" --json
      python3 engineering/skills/skill-tester/scripts/script_tester.py "$skill"
      python3 engineering/skills/skill-tester/scripts/quality_scorer.py "$skill" --minimum-score 75
    done

Pre-commit hook: run the validator on the staged skill directory and block the commit on non-zero exit.

Verification Loop

A skill "passes" when, in one run from repo root:

  1. skill_validator.py <skill> --json exits 0,
  2. script_tester.py <skill> reports all scripts passing, and
  3. quality_scorer.py <skill> --minimum-score <target> exits 0.

If any step fails, apply the top improvement_roadmap item and re-run all three — never report a partial pass.

Troubleshooting

  • Timeout errors → raise --timeout or optimize the script under test
  • Import failures → external deps detected; stdlib-only is the repo policy
  • Tier misclassification → check line counts/LOC against the tier table; remember the write-a-skill exception for new skills

References: references/ holds the structure specification, tier requirements matrix, and scoring rubric the tools implement.

Frequently asked questions about Skill Tester

Similar skills