adrianco/retort/compare-runs
Claude Code and agent skill by adrianco/retort
- community
Checking that the SKILL.md file is still in the repository.
Compare evaluated runs in a retort experiment along factor dimensions. Surfaces effects of each factor, aggregates across replicates, and highlights cells that diverge qualitatively — complementing (not replacing) retort's ANOVA analysis.
Install
npx vskill@latest install adrianco/retort/compare-runsSKILL.md
Compare Runs
Overview
Retort is a Design of Experiments engine — every run sits at a point in the factor space, and replicates exist to measure noise. Unlike pourpoise's compare-attempts (which maintains a ranked leaderboard of ad-hoc submissions), comparing retort runs is about factor effects and qualitative divergence, not "who won".
This skill is the qualitative counterpart to retort analyze / retort report effects. The ANOVA tells you whether a factor is significant. This skill tells you what changed in the generated code as you varied it.
Parameters
- experiment_dir (required): e.g.
experiment-1/. Must containretort.dband aruns/directory of per-run archives, each already evaluated byevaluate-run(i.e. eachrep<N>/has anevaluation.mdandfindings.jsonl). - output_file (optional, default:
{experiment_dir}/reports/comparison.md): Where to write the comparison report. - group_by (optional, default: all factors): Comma-separated factors whose effect you want to isolate. The other factors are aggregated over.
- include_failed (optional, default: true): Whether to include failed runs in the comparison (they're still informative — failure itself is a finding).
Steps
1. Discover evaluated runs
Parse each path to extract the cell (from the parent directory name, e.g. language=rust_model=opus_tooling=beads) and replicate (from the rep<N> or rep<N>-failed segment).
Constraints:
- You MUST skip runs under
salvaged-*/— those are manually-archived artifacts from before auto-archival existed, and their layout is not regular. - You MUST handle both
rep<N>/(success) andrep<N>-failed/(failure) directory names. - You SHOULD warn but not fail if some cells have no evaluation (evaluator hadn't run yet).
2. Load findings and metrics
For each evaluated run, load:
- Factors (from the cell directory name or the run's
stack.json) - Summary metrics (from
evaluation.mdheader: requirements pass count, test counts, build status) - Findings (from
findings.jsonl) — categorize bykindandseverity - Architecture signal (from
summary/index.md: the "Shape" one-liner)
Constraints:
- You MUST NOT re-evaluate. If
evaluation.mdis stale relative to the source, add astaletag but use what's there. - You MUST preserve replicates separately — do not average them into the cell yet.
3. Aggregate per cell
Group runs by cell (same factor combination across replicates):
| Cell | Replicates | Req pass (mean ± sd) | Test pass (mean ± sd) | Build failures | Distinct "shapes" | |
|---|---|---|---|---|---|---|
| lang=python,model=opus,tooling=none | 3/3 | 8.7±0.6 / 10 | 12.3±0.5 / 12 | 0 | 1 (all Flask+SQLite) | |
| lang=python,model=opus,tooling=beads | 2/3 | 6.0±1.4 / 10 | 10.0±1.0 / 12 | 1 | 2 (Flask vs FastAPI) | |
| ... | ... | ... | ... | ... | ... |
Constraints:
- You MUST show mean ± sample standard deviation, not just mean. Variance across replicates is a first-class signal.
- "Distinct shapes" counts unique architecture summaries across replicates — a cell where the agent chose a different framework each time is a signal worth surfacing.
- Cells with only one replicate: drop the
±sdand mark asn=1.
4. Surface factor effects
For each factor in group_by, hold the others roughly fixed and report the effect:
Constraints:
- You MUST NOT claim statistical significance yourself — cite
retort analyzeor note "directional only". - You MUST cross-reference the structured effect size reported by
retort report effectswhen available at{experiment_dir}/reports/analysis/*.md. - Qualitative claims MUST cite specific run IDs or findings (
see rep3 of lang=python,model=opus,tooling=beads).
5. Identify qualitative divergence
Find cells where runs within a replicate group diverged in a way pure metrics miss:
Constraints:
- You MUST highlight cells where replicates disagree on framework/library/storage, not just scores.
- You SHOULD identify at most 5 "most divergent" cells — past that it becomes noise.
- You MUST NOT label divergence as a failure — sometimes it's the signal the experiment was built to find.
6. Surface shared issues
Aggregate findings across all runs. A finding kind that shows up in >50% of runs is a property of the task or the model, not of the individual run.
7. Write the report
Use the Output Format below. The report MUST link to individual evaluation.md files so readers can drill in.
Output Format
Constraints Summary
- You MUST read evaluation reports, not re-evaluate. This skill is purely aggregation.
- You MUST NOT produce a single "winner" ranking. Retort is about factor effects, not tournaments.
- You MUST preserve replicate-level detail at least down to the per-cell table.
- You MUST cite specific runs by their archive path when surfacing qualitative claims.
- You MUST cross-reference
retort analyzeoutput when making causal claims about factors. - Output MUST be markdown that renders in GitHub's viewer.
Troubleshooting
No evaluations yet
- Exit 0 with a single-line report:
No evaluated runs yet. Run evaluate-run on each rep<N>/ first. - Do not attempt to evaluate as a side effect — that's the user's / CLI's decision.
Evaluations with different schema versions
- Read what you can from each, note the schema mismatch in the "Coverage" section.
- Do not silently drop older evaluations — surface the problem.
`retort analyze` reports don't exist
- Proceed without them. Note in "Factor effects" that statistical backing is absent and the direction is qualitative-only.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/compare-runs/SKILL.md
Popularity
- Repository stars
- 120
- Repository forks
- 7
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/adrianco/retort/compare-runs)