Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Evolve a skill by generating variations, evaluating them, and updating the best version
.claude/skills/aeonfun-autoresearch/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -17% | 0% |
| case-14 | ✓→✗ | ▼ Worse | -56% | 0% |
| case-19 | ✓→✗ | ▼ Worse | -62% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 432% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 123% | 0% |
> ${var} — Name of the skill to evolve (e.g. token-movers). Required.
If ${var} is empty, abort with: "autoresearch requires var= set to a skill name" and exit.
Read memory/MEMORY.md for context.
Improve an existing skill by researching better approaches, generating 4 distinct variations, scoring them against a rubric, and committing the winning version as a PR.
Read skills/${var}/SKILL.md. If the file doesn't exist, abort and notify: "Skill '${var}' not found."
Parse the skill's:
Save the original content — you'll need it for the PR diff later.
Search the web for better approaches to what this skill does:
Also review:
memory/cron-state.json — has this skill been failing?Create 4 distinct improved versions of the SKILL.md, each with a different thesis:
Variation A — Better inputs: Improve data sources. Add alternative/complementary APIs, better search queries, more reliable endpoints. Fix any broken or deprecated sources found in step 2.
Variation B — Sharper output: Improve the output format and content quality. Make notifications more actionable, articles more substantive, analysis more insightful. Reduce noise, improve signal.
Variation C — More robust: Improve reliability and edge-case handling. Add fallback logic for when APIs fail, better deduplication, graceful handling of empty data, clearer error messages.
Variation D — Rethink: Take a fundamentally different approach to achieving the same goal. Different methodology, different angle, or a creative combination of techniques the original didn't consider.
Each variation must:
./notify)<!-- autoresearch: variation X — thesis description -->Score each variation on a 1-5 scale across these criteria:
| Criterion | What to evaluate | |-----------|-----------------| | Clarity | Will Claude execute this correctly? Are instructions unambiguous? | | Data quality | Are sources reliable, diverse, and likely to return useful data? | | Output value | Is the output actionable and worth reading? Low noise? | | Robustness | Does it handle failures, empty data, and edge cases? | | Conventions | Does it follow Aeon patterns? (memory, logging, notify, var usage) | | Improvement | How much better is this than the original? |
Write out your scoring with brief justification for each score. Calculate a weighted total:
Pick the highest-scoring variation. If scores are very close (within 2 points total), prefer the variation that makes the biggest single improvement rather than small incremental changes.
Write the winning variation to skills/${var}/SKILL.md, replacing the original.
Create a branch named autoresearch/${var} and commit the change:
bashgit checkout -b autoresearch/${var} git add skills/${var}/SKILL.md git commit -m "improve(${var}): autoresearch evolution Variation chosen: [A/B/C/D] — [thesis] Key changes: [1-2 sentence summary]" git push -u origin autoresearch/${var}
Open a PR with:
improve(${var}): autoresearch evolutionbashgh pr create --title "improve(${var}): autoresearch evolution" --body "..."
Send via ./notify:
*Autoresearch — ${var}*
Winner: Variation [X] — [thesis]
Score: [total]/50
Key changes: [summary]
PR: [url]Log to memory/logs/${today}.md:
### autoresearch
- Target: ${var}
- Winner: Variation [X] ([score]/50)
- Thesis: [description]
- PR: [url]
- Runners-up: [brief scores]There is no network sandbox — curl works, with WebFetch as the fallback for a flaky public GET. For an auth'd API, call ./secretcurl with a {ENV_NAME} placeholder (the key is injected via requires:), never a bare $SECRET.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 21,976 | 3,487 | -84% | 1 | 1 | 0% | 5,074 | 1,609 | -68% | 0 | 0 | — |
case-02 | fail→fail | 4,254 | 4,871 | +15% | 1 | 1 | 0% | 265 | 1,626 | +514% | 0 | 0 | — |
case-03 | fail→fail | 12,207 | 20,374 | +67% | 1 | 1 | 0% | 241 | 3,438 | +1327% | 0 | 0 | — |
case-04 | fail→pass | 9,527 | 1,180 | -88% | 1 | 1 | 0% | 1,873 | 1,558 | -17% | 0 | 0 | — |
case-05 | pass→pass | 4,102 | 1,083 | -74% | 1 | 1 | 0% | 677 | 1,509 | +123% | 0 | 0 | — |
case-11 | fail→fail | 22,959 | 4,682 | -80% | 1 | 1 | 0% | 4,889 | 1,666 | -66% | 0 | 0 | — |
case-06 | fail→fail | 16,184 | 4,413 | -73% | 1 | 1 | 0% | 2,896 | 1,692 | -42% | 0 | 0 | — |
case-07 | fail→fail | 16,245 | 3,732 | -77% | 1 | 1 | 0% | 3,295 | 1,513 | -54% | 0 | 0 | — |
case-08 | fail→fail | 20,099 | 3,835 | -81% | 1 | 1 | 0% | 3,878 | 1,543 | -60% | 0 | 0 | — |
case-09 | fail→fail | 14,750 | 4,383 | -70% | 1 | 1 | 0% | 3,386 | 1,679 | -50% | 0 | 0 | — |
case-10 | fail→fail | 17,309 | 4,723 | -73% | 1 | 1 | 0% | 3,665 | 1,626 | -56% | 0 | 0 | — |
case-12 | fail→fail | 2,437 | 4,337 | +78% | 1 | 1 | 0% | 267 | 1,532 | +474% | 0 | 0 | — |
case-13 | fail→fail | 10,925 | 3,636 | -67% | 1 | 1 | 0% | 1,934 | 1,509 | -22% | 0 | 0 | — |
case-14 | pass→fail | 18,631 | 4,706 | -75% | 1 | 1 | 0% | 3,735 | 1,629 | -56% | 0 | 0 | — |
case-15 | fail→fail | 16,882 | 4,033 | -76% | 1 | 1 | 0% | 3,402 | 1,579 | -54% | 0 | 0 | — |
case-16 | fail→fail | 15,134 | 5,196 | -66% | 1 | 1 | 0% | 2,677 | 1,679 | -37% | 0 | 0 | — |
case-17 | fail→fail | 13,804 | 4,572 | -67% | 1 | 1 | 0% | 2,525 | 1,661 | -34% | 0 | 0 | — |
case-18 | fail→fail | 17,722 | 26,774 | +51% | 1 | 1 | 0% | 2,958 | 1,532 | -48% | 0 | 0 | — |
case-19 | pass→fail | 20,264 | 4,750 | -77% | 1 | 1 | 0% | 4,258 | 1,628 | -62% | 0 | 0 | — |
case-20 | fail→fail | 5,603 | 11,402 | +103% | 1 | 1 | 0% | 975 | 3,389 | +248% | 0 | 0 | — |
case-21 | pass→pass | 15,960 | 17,888 | +12% | 1 | 1 | 0% | 3,016 | 4,790 | +59% | 0 | 0 | — |
case-22 | pass→fail | 9,353 | 11,085 | +19% | 1 | 1 | 0% | 496 | 2,637 | +432% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 4 counted toward the lift figure. The other 18 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. A headline lift is not published for this run.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.