From claude-evolve
Score one evolution candidate against the workspace evaluator. Runs the candidate's evolution_<id>.py through evaluator.py under the same sandbox the claude-evolve engine uses, parses the performance number, and writes status + performance back to evolution.csv. Use when the user says "score gen02-003", "evaluate this candidate", "run the evaluator on <id>", or when a parent skill dispatches scoring. Scoring is deterministic (no model reasoning needed) — this skill exists so the evaluator's output noise stays out of the main conversation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-evolve:evolve-score <candidate-id> [--working-dir DIR]<candidate-id> [--working-dir DIR]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Score a single candidate. This is **deterministic** — the work is "run the user's `evaluator.py` and record the number." There is no algorithmic judgment to make. The reason it is a skill (and, in the omnibus, a Haiku subagent) is purely to keep evaluator output — which can be thousands of lines — out of the main conversation.
Score a single candidate. This is deterministic — the work is "run the user's evaluator.py and record the number." There is no algorithmic judgment to make. The reason it is a skill (and, in the omnibus, a Haiku subagent) is purely to keep evaluator output — which can be thousands of lines — out of the main conversation.
This skill runs with $CLAUDE_PLUGIN_ROOT set. Capture it:
echo "PLUGIN_ROOT=$CLAUDE_PLUGIN_ROOT"
If a subagent invoked you without it, fall back to the path the caller passed you in the prompt.
Run exactly one command. It syntax-checks the candidate, runs validator.py if the workspace has one, runs evaluator.py under the sandbox, parses the score, and writes the result to the CSV:
python3 "$CLAUDE_PLUGIN_ROOT/scripts/score.py" --working-dir "<WORKING_DIR>" <CANDIDATE_ID>
<WORKING_DIR> is the evolution workspace (the directory containing config.yaml). If the user didn't specify one, omit --working-dir and let it auto-detect evolution/config.yaml or ./config.yaml.{"id":"...","ok":true,"score":1.23,"status":"complete","extra":{...}}{"id":"...","ok":false,"status":"failed|failed-validation","error":"...","stage":"syntax|validator|evaluator"}The script has already written the status and performance to evolution.csv either way — you do not touch the CSV yourself.
Return a single line to whoever called you:
<id>: score=<n> (complete)<id>: FAILED at <stage> — <short error> (status=<status>)Do not dump the full evaluator output into your reply. If the user explicitly asks why something failed, include the error field; otherwise keep it to the one-liner. That brevity is the whole point of running scoring in an isolated context.
failed.npx claudepluginhub willer/claude-evolve --plugin claude-evolveProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.