skill-tester – Coding skill for AI agents
Validate, test, and score the quality of skills within the claude-skills ecosystem. Comprehensive meta-skill: structure validation, Python script testing (syntax + imports + runtime + output format), multi-dimensional quality scoring with letter grades and tier classification (BASIC/STANDARD/POWERFUL). Use when authori
Install the skill-tester skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/skill-tester-0147f.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /skill-tester – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/skill-tester-0147f.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $skill-tester – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/skill-tester-0147f.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /skill-tester – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/skill-tester-0147f.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /skill-tester – then describe the task you want done.
SKILL.md content
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 75Consume 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) --helpfunctionality 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
| Tier | SKILL.md | Scripts | CLI surface |
|---|---|---|---|
| BASIC | ≥ 100 lines | 1 (100-300 LOC) | basic argparse |
| STANDARD | ≥ 200 lines | 1-2 (300-500 LOC) | subcommands, JSON + text output |
| POWERFUL | ≥ 300 lines | 2-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
donePre-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
--timeoutor 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.
Related skills
- hono – Build ultra-fast web APIs and full-stack apps with Hono — runs on Cloudflare Workers…
- html-injection-testing – Identify and exploit HTML injection vulnerabilities that allow attackers to inject…
- http-status-code-tester – HTTP Status Code Tester. Use when working with one or more HTTP(S) URLs.
- hubspot-integration – Expert patterns for HubSpot CRM integration including OAuth authentication, CRM objects…
- hugging-face-cli – Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing models, datasets…
- hugging-face-community-evals – Run evaluations for Hugging Face Hub models using inspect-ai and lighteval on local…
- hugging-face-gradio – Build Gradio web UIs and demos in Python. Use when creating or editing Gradio apps…
- hugging-face-papers – Look up and read Hugging Face paper pages in markdown, and use the papers API for…