К основному содержанию
скилл CX Codex

dev:dry-run — скилл для Claude Code: проверка пайплайна evolve

Прогоняет пайплайн evolve вхолостую: проверяет синтаксис инструментов и связи между скиллами, а с ключом LangSmith запускает полный цикл на мок-агенте.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a claude-code
Открыть на GitHub

Что делает dev:dry-run

Скилл dev:dry-run нужен, когда хочется убедиться, что плагин harness-evolver вообще работает, до того как тратить на него реальные эксперименты. Он сам определяет режим: если в окружении есть LANGSMITH_API_KEY, идёт онлайн-прогон, если нет — офлайн-проверка.

В офлайн-режиме скрипт проходит по всем *.py в каталоге инструментов, парсит их через ast и отдельно вызывает каждый файл с --help, чтобы поймать расхождения в argparse. Потом сверяет, что инструменты, упомянутые в skills/evolve/SKILL.md, действительно лежат на диске. Пути берутся из переменных EVOLVER_TOOLS и EVOLVER_PY, иначе подставляются tools или $HOME/.evolver/tools и python3.

Онлайн-режим создаёт временный каталог с мок-агентом на Python и тремя тестовыми вопросами, прогоняет setup.py, run_eval.py, read_results.py и trace_insights.py, а затем удаляет за собой временные файлы. Без LANGSMITH_API_KEY полный цикл не запустится — останется только проверка синтаксиса.

Какие задачи решает

  • проверить, что инструменты evolve не падают на импорте и разборе аргументов
  • найти инструменты, на которые ссылается скилл evolve, но которых нет в каталоге
  • прогнать полный цикл setup → eval → read → trace на мок-агенте
  • убедиться, что плагин работает, до запуска настоящих экспериментов
  • почистить временные файлы после тестового прогона

Примеры запросов агенту

  • Сделай dry run пайплайна evolve
  • Прогони smoke test инструментов evolve
  • Проверь пайплайн evolve целиком, с ключом LangSmith

Как установить dev:dry-run

1Через Skills CLI (Vercel)

npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a claude-code

2Вручную: положить файлы

~/.claude/skills/dev-dry-run/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/dev-dry-run/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о dev:dry-run

Как установить dev:dry-run в Claude Code?

Выполните npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a claude-code. Скилл появится по пути ~/.claude/skills/dev-dry-run/SKILL.md.

Что делает dev:dry-run?

Проверяет пайплайн evolve в двух режимах: офлайн — синтаксис инструментов, флаги argparse и перекрёстные ссылки в скилле evolve, онлайн — полный цикл на мок-агенте с временными файлами.

Что нужно для онлайн-режима?

Переменная окружения LANGSMITH_API_KEY. Без неё скилл переключается на офлайн-проверку и полный цикл не запускает.

Исходный текст

SKILL.md · MIT
---
name: dev:dry-run
description: "Use when the user wants to smoke-test the evolve pipeline, test tools, or verify the plugin works end-to-end. Also use when the user says 'dry run', 'smoke test', or 'test pipeline'."
allowed-tools: [Read, Bash, Glob, Grep]
---

# /dev:dry-run

Smoke-test the evolve pipeline. Two modes depending on whether LANGSMITH_API_KEY is available.

## Resolve Paths

```bash
TOOLS="${EVOLVER_TOOLS:-$([ -d "tools" ] && echo "tools" || echo "$HOME/.evolver/tools")}"
EVOLVER_PY="${EVOLVER_PY:-$([ -f "$HOME/.evolver/venv/bin/python" ] && echo "$HOME/.evolver/venv/bin/python" || echo "python3")}"
```

## Check: Online or Offline?

```bash
if [ -n "$LANGSMITH_API_KEY" ]; then
    echo "MODE: Online (LANGSMITH_API_KEY found)"
    MODE="online"
else
    echo "MODE: Offline (no LANGSMITH_API_KEY)"
    MODE="offline"
fi
```

## Offline Mode (no API key)

Validate tool syntax and argparse consistency:

```bash
echo "=== Tool Syntax Check ==="
for f in $TOOLS/*.py; do
    python3 -c "import ast; ast.parse(open('$f').read())" 2>&1
    if [ $? -eq 0 ]; then echo "OK: $(basename $f)"; else echo "FAIL: $(basename $f)"; fi
done

echo ""
echo "=== Argparse Flags Check ==="
for f in $TOOLS/*.py; do
    $EVOLVER_PY "$f" --help > /dev/null 2>&1
    if [ $? -eq 0 ]; then echo "OK: $(basename $f) --help"; else echo "FAIL: $(basename $f) --help"; fi
done

echo ""
echo "=== Skill Cross-Reference Check ==="
# Check every tool referenced in evolve skill exists
for TOOL in $(grep -oh '\$TOOLS/[a-z_]*.py' skills/evolve/SKILL.md | sed 's/\$TOOLS\///' | sort -u); do
    if [ -f "$TOOLS/$TOOL" ]; then
        echo "OK: $TOOL referenced and exists"
    else
        echo "FAIL: $TOOL referenced in evolve skill but not found"
    fi
done
```

## Online Mode (with API key)

Run the full pipeline with a mock agent:

### 1. Create temp directory with mock agent

```bash
TMPDIR=$(mktemp -d)
cat > "$TMPDIR/agent.py" << 'PYEOF'
import json, sys
input_path = sys.argv[1] if len(sys.argv) > 1 else None
if input_path:
    with open(input_path) as f:
        data = json.load(f)
    question = data.get("input", data.get("question", ""))
    print(json.dumps({"output": f"Mock answer to: {question}"}))
else:
    print(json.dumps({"output": "No input provided"}))
PYEOF

cat > "$TMPDIR/test_inputs.json" << 'JSONEOF'
[
    {"input": "What is 2+2?"},
    {"input": "Name a color"},
    {"input": "What is Python?"}
]
JSONEOF
echo "Mock agent created at $TMPDIR"
```

### 2. Run setup

```bash
$EVOLVER_PY $TOOLS/setup.py \
    --project-name "dry-run-test" \
    --entry-point "python3 $TMPDIR/agent.py {input}" \
    --framework "unknown" \
    --goals "accuracy" \
    --dataset-from-file "$TMPDIR/test_inputs.json" \
    --output "$TMPDIR/.evolver.json"
```

### 3. Run eval

```bash
$EVOLVER_PY $TOOLS/run_eval.py \
    --config "$TMPDIR/.evolver.json" \
    --worktree-path "$TMPDIR" \
    --experiment-prefix "dry-run-v001a"
```

### 4. Read results

```bash
$EVOLVER_PY $TOOLS/read_results.py \
    --experiment "dry-run-v001a" \
    --config "$TMPDIR/.evolver.json" \
    --format markdown
```

### 5. Trace insights

```bash
$EVOLVER_PY $TOOLS/trace_insights.py \
    --from-experiment "dry-run-v001a" \
    --output "$TMPDIR/trace_insights.json"
```

### 6. Cleanup

```bash
rm -rf "$TMPDIR"
echo "Dry run complete. Temp files cleaned up."
```

## Report

```
Dry Run Results ({MODE} mode):
  Tool syntax: {N}/{N} passed
  Argparse: {N}/{N} passed
  Cross-refs: {N}/{N} passed
  {If online: setup/eval/read/trace pipeline: PASS/FAIL}
```

© raphaelchristi · MIT · raphaelchristi/harness-evolver

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора3

Спонсоры проекта

Компании, которые помогают держать аналитику открытой