dev-release
Use when the user wants to release a new version, publish to npm, create a GitHub release, bump version, or tag a release. Also…
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'.
Claude Code
$ npx -y skills add raphaelchristi/harness-evolver --skill dev-dry-run --agent claude-code
Codex
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a codex -y
Cursor
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a cursor -y
Gemini CLI
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a gemini-cli -y
GitHub Copilot
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a github-copilot -y
OpenCode
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a opencode -y
Windsurf
$ npx skills add raphaelchristi/harness-evolver --skill dev-dry-run -a windsurf -y
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]
Smoke-test the evolve pipeline. Two modes depending on whether LANGSMITH_API_KEY is available.
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")}"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"
fiValidate tool syntax and argparse consistency:
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
doneRun the full pipeline with a mock agent:
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"$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"$EVOLVER_PY $TOOLS/run_eval.py \
--config "$TMPDIR/.evolver.json" \
--worktree-path "$TMPDIR" \
--experiment-prefix "dry-run-v001a"$EVOLVER_PY $TOOLS/read_results.py \
--experiment "dry-run-v001a" \
--config "$TMPDIR/.evolver.json" \
--format markdown$EVOLVER_PY $TOOLS/trace_insights.py \
--from-experiment "dry-run-v001a" \
--output "$TMPDIR/trace_insights.json"rm -rf "$TMPDIR" echo "Dry run complete. Temp files cleaned up."
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}Point at any LLM agent codebase. Harness Evolver will autonomously improve it — prompts, routing, tools, architecture — using multi-agent evolution with LangSmith as the evaluation backend.
Use when the user wants to release a new version, publish to npm, create a GitHub release, bump version, or tag a release. Also…
Use when the user wants to validate the plugin, check integrity, verify cross-references, or before a release. Also use when the…
Use when the user wants to verify that the evolved agent's score is stable and reliable. Runs evaluation multiple times and…
Use when the user is done evolving and wants to finalize, clean up, tag the result, or push the optimized agent.
Use when the user wants to run the optimization loop, improve agent performance, evolve the agent, or iterate on quality.…
Use when the user wants to check dataset quality, diagnose eval issues, or before running evolve. Checks size, difficulty…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.