What problem does it solve? After running multiple prompt or skill candidates through an evaluation workspace, teams need a deterministic way to pick a winner from existing grading, timing, and benchmark artifacts without rerunning optimization or inventing missing scores. ## Core Features & Use Cases - Artifact-based leader selection: Reads existing grading.json and timing.json run artifacts across config directories such as with_skill, without_skill, and old_skill, falling back to benchmark.json only when raw runs are unavailable. - Coverage-aware scoring: Penalizes incomplete eval coverage so partially graded candidates cannot beat fully validated ones, with tie-breakers on raw score, errors, time, tokens, and stable name ordering. - Explainable JSON output: Returns the winner, winning prompt text or file path, per-candidate summaries, selection source, and manifest traceability fields. - Use Case: After an optimization loop produces three candidate prompts scored against an authored evals/evals.json manifest, run the election script on the latest iteration to pick the leader and persist the reasoning for later review. ## Quick Start Run the election script with your workspace directory, for example: python skills/trainer-election/scripts/run_election.py <workspace_dir> --iteration 3 --manifest-file evals/evals.json.