MCP HubMCP Hub
Вернуться к навыкам

dev:validate

raphaelchristi
Обновлено 5 days ago
27
4
27
Посмотреть на GitHub
Другоеgeneral

О программе

Этот навык проверяет целостность плагинов перед выпуском, контролируя синхронизацию версий, фронтмэттер навыков/агентов, перекрёстные ссылки, синтаксис Python-инструментов и исполняемость скриптов-хуков. Он автоматически активируется, когда пользователи запрашивают проверку или используют такие формулировки, как "проверить плагин" или "верифицировать". Навык выполняет систематические проверки с использованием инструментов Read, Bash, Glob и Grep, чтобы убедиться в корректной конфигурации всех компонентов.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add raphaelchristi/harness-evolver -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/raphaelchristi/harness-evolver
Git клонированиеАльтернативный
git clone https://github.com/raphaelchristi/harness-evolver.git ~/.claude/skills/dev:validate

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

/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 репозиторий

raphaelchristi/harness-evolver
Путь: .claude/skills/dev-validate
0
agent-evolutionclaude-code-plugincodex-skillsharness-engineeringmeta-harness

Похожие навыки

llamaguard

Другое

LlamaGuard — это модель от Meta с 7–8 миллиардами параметров для модерации входных и выходных данных больших языковых моделей по шести категориям безопасности, таким как насилие и разжигание ненависти. Она обеспечивает точность 94–95% и может быть развернута с помощью vLLM, Hugging Face или Amazon SageMaker. Используйте этот навык, чтобы легко интегрировать фильтрацию контента и защитные механизмы в ваши ИИ-приложения.

Просмотреть навык

cost-optimization

Другое

Этот навык Claude помогает разработчикам оптимизировать облачные расходы за счет правильного подбора ресурсов, стратегий тегирования и анализа затрат. Он предоставляет framework для сокращения облачных расходов и внедрения управления затратами в AWS, Azure и GCP. Используйте его, когда вам нужно проанализировать расходы на инфраструктуру, оптимизировать ресурсы или уложиться в бюджетные ограничения.

Просмотреть навык

quantizing-models-bitsandbytes

Другое

Этот навык выполняет квантизацию LLM до 8-битной или 4-битной точности с использованием библиотеки bitsandbytes, обеспечивая сокращение использования памяти на 50-75% при минимальной потере точности. Он идеально подходит для запуска больших моделей при ограниченной памяти GPU или для ускорения вывода, поддерживая форматы INT8, NF4 и FP4. Навык интегрируется с HuggingFace Transformers и позволяет использовать обучение QLoRA и 8-битные оптимизаторы.

Просмотреть навык

dispatching-parallel-agents

Другое

Этот навык Claude распределяет нескольких агентов для исследования и устранения трёх и более независимых проблем параллельно. Он предназначен для сценариев с несвязанными сбоями, которые можно устранить без общего состояния или зависимостей. Ключевая возможность — параллельное решение проблем, где за каждую независимую предметную область назначается отдельный агент для максимальной эффективности.

Просмотреть навык