skill-eval

Evaluate all workspace-hub skills for structural validity, content quality, cross-reference integrity, and registry consistency. Runs 18 checks across critical, warning, and info severity levels with actionable fix suggestions.

5 stars

Best use case

skill-eval is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Evaluate all workspace-hub skills for structural validity, content quality, cross-reference integrity, and registry consistency. Runs 18 checks across critical, warning, and info severity levels with actionable fix suggestions.

Teams using skill-eval should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/skill-eval/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/development/skill-eval/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/skill-eval/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How skill-eval Compares

Feature / Agentskill-evalStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Evaluate all workspace-hub skills for structural validity, content quality, cross-reference integrity, and registry consistency. Runs 18 checks across critical, warning, and info severity levels with actionable fix suggestions.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill Eval

## Quick Start

```bash
# Full evaluation of all skills
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py

# JSON output
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --format json

# Single skill
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --skill testing-tdd-london

# Only critical issues
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --severity critical
```

## When to Use

- Auditing skill quality after bulk creation or migration
- Pre-release validation of the skills library
- CI/CD quality gate for skill changes
- Identifying broken cross-references after renaming skills
- Checking compliance with v2 SKILL.md template format

## Core Concepts

### Evaluation Dimensions

The evaluator runs 18 checks organized into three severity levels:

**Critical** (blocks skill usage):
- YAML frontmatter exists and parses
- Required fields present: `name`, `description`

**Warning** (degrades quality):
- Version follows semver, category matches directory
- Required content sections present (Quick Start, When to Use, etc.)
- Code blocks in key sections, no TODO/FIXME markers
- Cross-references in `related_skills` resolve to real skills

**Info** (improvement opportunities):
- Uses v2 template format, has optional sections (Metrics, etc.)
- No duplicate skill names across the library

### Report Output

Reports include:
- Summary with pass/fail counts and percentages
- Issues grouped by severity with counts
- Per-category breakdown
- Top 10 most common issues
- Per-skill details with actionable fix suggestions

## Usage Examples

### Full Evaluation

```bash
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py
```

Output:
```
================================================================
  SKILL EVALUATION REPORT
  Generated: 2026-01-29T14:30:00+00:00
================================================================

SUMMARY
----------------------------------------
  Total skills evaluated:  230
  Passed (no critical):    187  (81.3%)
  Warnings only:           102  (44.3%)
  Critical failures:        43  (18.7%)
```

### JSON for CI/CD

```bash
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py \
  --format json --severity critical \
  --output reports/skill-eval.json
```

### Filter by Category

```bash
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --category development
```

### Summary Only

```bash
uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --summary-only
```

## Audit Scripts

Run these scripts as part of skill evaluation to catch structural violations and coverage gaps:

```bash
# Check for structural violations (README presence, word count, description length, XML tags)
bash scripts/skills/audit-skill-violations.sh

# Validate skill structure (name conventions, required fields)
bash scripts/skills/validate-skills.sh

# Check which skills lack any script call reference
bash scripts/skills/skill-coverage-audit.sh
```

## Housekeeping Issue Workflow

When asked to review the entire skill ecosystem and create a housekeeping GitHub issue, use a layered audit rather than relying on one script:

1. Run the evaluator summary for the whole ecosystem:
   ```bash
   uv run .Codex/skills/development/skill-eval/scripts/eval-skills.py --summary-only
   ```
2. Check cross-agent visibility/parity before claiming ecosystem health:
   ```bash
   find -L .Codex/skills -name SKILL.md -not -path '*/_archive/*' | wc -l
   find -L .codex/skills -name SKILL.md -not -path '*/_archive/*' | wc -l
   find -L .gemini/skills -name SKILL.md -not -path '*/_archive/*' | wc -l
   test -L .codex/skills && echo codex_symlink_ok || echo codex_symlink_bad
   test -L .gemini/skills && echo gemini_symlink_ok || echo gemini_symlink_bad
   ```
3. Add a targeted active-skill inventory that excludes `_archive` but deliberately reports grouping/taxonomy drift, including:
   - top-level category counts and categories with <=2 skills
   - missing `category` frontmatter
   - frontmatter category vs directory mismatches
   - duplicate frontmatter names
   - oversized `SKILL.md` files
   - missing `## Quick Start` / `## When to Use`
   - skills without linked `scripts/`, `references/`, `templates/`, or `assets/`
4. Search existing GitHub issues before creating a new one, and reference related open/closed skill-curation issues to avoid duplication.
5. Frame the issue as a recurring housekeeping umbrella when the user asks for periodic review: weekly deterministic report, monthly semantic/grouping review, quarterly adversarial taxonomy review.
6. Include acceptance criteria for reports, trend deltas, archive handling (`_archive` and `_archived`), category alias/waiver policy, and no issue spam.

## Best Practices

- Run after creating new skills with `/skill-creator` to validate structure
- Use `--format json` in CI pipelines for machine-readable output
- Address critical issues first (missing frontmatter, invalid YAML)
- Use `--severity warning` to focus on actionable improvements
- Run `--category` filters for focused audits of specific skill areas
- If skills or index markdown changes, regenerate derived skills summary artifacts: `uv run --no-project python scripts/skills/generate-skill-summary.py`

## Error Handling

| Exit Code | Meaning |
|-----------|---------|
| 0 | All skills pass (no critical issues) |
| 1 | Critical failures found |
| 2 | Script error (missing directory, invalid arguments) |

| Common Issue | Cause | Fix |
|-------------|-------|-----|
| `frontmatter_missing` | Skill uses legacy heading format | Add `---` delimited YAML frontmatter |
| `yaml_invalid` | Syntax error in frontmatter | Fix YAML syntax (check colons, indentation) |
| `related_skill_unresolved` | Referenced skill name doesn't exist | Correct the name or remove the reference |
| `section_missing` | Missing required H2 section | Add the section heading and content |

## Metrics & Success Criteria

| Metric | Target |
|--------|--------|
| Skills passing all critical checks | 100% |
| Skills with complete v2 sections | >80% |
| Resolved cross-references | 100% |
| No TODO/FIXME in skills | 100% |

## Version History

- **1.0.0** (2026-01-29): Initial release with 18 checks, human + JSON output, category/skill filtering

Related Skills

library-evaluation-integration

5
from vamseeachanta/workspace-hub

Create evaluation scripts and integration tests for Python scientific libraries in the digitalmodel package. Follows the established pattern from fluids, ht, meshio, sectionproperties, and pygmt evaluations.

evaluate-local-commits-via-cherry-pick-dry-run

5
from vamseeachanta/workspace-hub

Technique to identify which ahead commits contain real changes vs. already-merged or ephemeral content

evaluating-llms-harness

5
from vamseeachanta/workspace-hub

Evaluates LLMs across 60+ academic benchmarks (MMLU, HumanEval, GSM8K, TruthfulQA, HellaSwag). Use when benchmarking model quality, comparing models, reporting academic results, or tracking training progress. Industry standard used by EleutherAI, HuggingFace, and major labs. Supports HuggingFace, vLLM, APIs.

plan-rerun-state-revalidation

5
from vamseeachanta/workspace-hub

Revalidate live plan state before rerunning adversarial review or resuming from a handoff so review prompts do not encode stale approval/artifact assumptions.

oil-and-gas-economic-evaluation

5
from vamseeachanta/workspace-hub

Sub-skill of oil-and-gas: Economic Evaluation (+2).

polars-2-lazy-evaluation-and-query-optimization

5
from vamseeachanta/workspace-hub

Sub-skill of polars: 2. Lazy Evaluation and Query Optimization.

polars-1-use-lazy-evaluation-by-default

5
from vamseeachanta/workspace-hub

Sub-skill of polars: 1. Use Lazy Evaluation by Default (+4).

data-analysis-1-lazy-evaluation-first

5
from vamseeachanta/workspace-hub

Sub-skill of data-analysis: 1. Lazy Evaluation First (+3).

time-tracking-4-rescuetime-data-retrieval

5
from vamseeachanta/workspace-hub

Sub-skill of time-tracking: 4. RescueTime - Data Retrieval.

langchain-4-rag-retrieval-augmented-generation

5
from vamseeachanta/workspace-hub

Sub-skill of langchain: 4. RAG (Retrieval Augmented Generation).

dspy-3-retrieval-augmented-generation

5
from vamseeachanta/workspace-hub

Sub-skill of dspy: 3. Retrieval-Augmented Generation.

agenta-3-evaluation-metrics-and-testing

5
from vamseeachanta/workspace-hub

Sub-skill of agenta: 3. Evaluation Metrics and Testing.