SKILL·0FF43E

dev:validate

raphaelchristi
Updated 1 month ago
36
4
36
View on GitHub
Othergeneral

About

This skill validates plugin integrity before releases by checking version synchronization, skill/agent frontmatter, cross-references, Python tool syntax, and hook script executability. It triggers automatically when users request validation or use terms like "check plugin" or "verify." The skill performs systematic checks using Read, Bash, Glob, and Grep tools to ensure all components are properly configured.

Quick Install

Claude Code

Recommended
Primary
npx skills add raphaelchristi/harness-evolver -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/raphaelchristi/harness-evolver
Git CloneAlternative
git clone https://github.com/raphaelchristi/harness-evolver.git ~/.claude/skills/dev:validate

Copy and paste this command in Claude Code to install this skill

Documentation

/dev:validate

Check plugin integrity: skill/agent frontmatter, cross-references, Python tool syntax, version sync, hook script executability.

Checks

1. Version Sync

PKG_V=$(python3 -c "import json; print(json.load(open('package.json'))['version'])")
PLUGIN_V=$(python3 -c "import json; print(json.load(open('.claude-plugin/plugin.json'))['version'])")
if [ "$PKG_V" = "$PLUGIN_V" ]; then
    echo "OK: versions match ($PKG_V)"
else
    echo "FAIL: package.json=$PKG_V, plugin.json=$PLUGIN_V"
fi

2. Skill Frontmatter

For each skills/*/SKILL.md:

  • Must have name: in frontmatter
  • Must have description: in frontmatter
  • Must have allowed-tools: in frontmatter
for f in skills/*/SKILL.md; do
    NAME=$(grep -m1 "^name:" "$f" | cut -d: -f2- | xargs)
    DESC=$(grep -m1 "^description:" "$f")
    TOOLS=$(grep -m1 "^allowed-tools:" "$f")
    if [ -z "$NAME" ] || [ -z "$DESC" ] || [ -z "$TOOLS" ]; then
        echo "FAIL: $f missing frontmatter fields"
    else
        echo "OK: $f ($NAME)"
    fi
done

3. Agent Frontmatter

For each agents/*.md:

  • Must have name: in frontmatter
  • Must have description: in frontmatter
  • Must have tools: in frontmatter
  • Must have color: in frontmatter
for f in agents/*.md; do
    NAME=$(grep -m1 "^name:" "$f" | cut -d: -f2- | xargs)
    COLOR=$(grep -m1 "^color:" "$f" | cut -d: -f2- | xargs)
    if [ -z "$NAME" ] || [ -z "$COLOR" ]; then
        echo "FAIL: $f missing name or color"
    else
        echo "OK: $f ($NAME, $COLOR)"
    fi
done

4. Agent Cross-References

Check that every subagent_type: referenced in skills exists as an agent file:

for AGENT in $(grep -roh 'subagent_type: "[^"]*"' skills/ | sed 's/subagent_type: "//;s/"//' | sort -u); do
    if [ ! -f "agents/$AGENT.md" ]; then
        echo "FAIL: subagent_type '$AGENT' referenced in skills but agents/$AGENT.md not found"
    else
        echo "OK: $AGENT agent exists"
    fi
done

5. Python Tool Syntax

ERRORS=0
for f in tools/*.py; do
    python3 -c "import ast; ast.parse(open('$f').read())" 2>&1
    if [ $? -ne 0 ]; then
        echo "FAIL: $f has syntax errors"
        ERRORS=$((ERRORS+1))
    else
        echo "OK: $f"
    fi
done
echo "Python tools: $ERRORS errors"

6. Hook Script

if [ -f "hooks/session-start.sh" ]; then
    if [ -x "hooks/session-start.sh" ]; then
        echo "OK: hooks/session-start.sh is executable"
    else
        echo "FAIL: hooks/session-start.sh not executable"
    fi
    if [ -f "hooks/hooks.json" ]; then
        python3 -c "import json; json.load(open('hooks/hooks.json'))" 2>&1
        if [ $? -eq 0 ]; then echo "OK: hooks.json valid JSON"; else echo "FAIL: hooks.json invalid"; fi
    fi
else
    echo "WARN: no hooks/session-start.sh"
fi

7. CLAUDE.md Accuracy

Check that tool count and agent count in CLAUDE.md match reality:

TOOL_COUNT=$(ls tools/*.py 2>/dev/null | wc -l)
AGENT_COUNT=$(ls agents/*.md 2>/dev/null | wc -l)
echo "Tools: $TOOL_COUNT Python files"
echo "Agents: $AGENT_COUNT agent definitions"

Report

Print a summary:

Plugin Validation:
  Versions: {OK/FAIL}
  Skills: {N} checked, {N} passed
  Agents: {N} checked, {N} passed
  Cross-refs: {N} checked, {N} passed
  Python tools: {N} checked, {N} syntax errors
  Hooks: {OK/FAIL}

Result: {PASS/FAIL}

GitHub Repository

raphaelchristi/harness-evolver
Path: .claude/skills/dev-validate
0
agent-evolutionclaude-code-plugincodex-skillsharness-engineeringmeta-harness
FAQ

Frequently asked questions

What is the dev:validate skill?

dev:validate is a Claude Skill by raphaelchristi. Skills package instructions and resources that Claude loads on demand, so Claude can perform dev:validate-related tasks without extra prompting.

How do I install dev:validate?

Use the install commands on this page: add dev:validate to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.

What category does dev:validate belong to?

dev:validate is in the Other category, tagged general.

Is dev:validate free to use?

Yes. dev:validate is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.

Related Skills

llamaguard
Other

LlamaGuard is Meta's 7-8B parameter model for moderating LLM inputs and outputs across six safety categories like violence and hate speech. It offers 94-95% accuracy and can be deployed using vLLM, Hugging Face, or Amazon SageMaker. Use this skill to easily integrate content filtering and safety guardrails into your AI applications.

View skill
cost-optimization
Other

This Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.

View skill
sports-betting-analyzer
Other

This Claude Skill analyzes sports betting markets including spreads, over/unders, and prop bets by examining historical trends and situational statistics to identify value bets. It provides structured markdown output with actionable recommendations for educational purposes. Developers should use this for sports betting analysis tools while noting it's designed for entertainment/education only.

View skill
quantizing-models-bitsandbytes
Other

This skill quantizes LLMs to 8-bit or 4-bit precision using bitsandbytes, achieving 50-75% memory reduction with minimal accuracy loss. It's ideal for running larger models on limited GPU memory or accelerating inference, supporting formats like INT8, NF4, and FP4. The skill integrates with HuggingFace Transformers and enables QLoRA training and 8-bit optimizers.

View skill