autoresearch · aeonfun — Claude Code skill: what it does, how to install
This skill improves another skill through research, four candidate versions, and scoring. It fits changes that should end as a pull request.
npx skills add aeonfun/aeon --skill autoresearch -a claude-codeWhat autoresearch does
autoresearch takes a target skill name through var, reads its SKILL.md, and checks memory plus recent run logs. It then researches possible improvements, writes four versions with different approaches, and scores them for clarity, data quality, output value, failure handling, and adherence to Aeon conventions.
The winning version replaces the original file. The skill creates autoresearch/${var}, commits the change, pushes the branch, and opens a pull request with gh pr create. It also sends a message through ./notify and writes a record to memory/logs/${today}.md. Network work uses curl, with WebFetch available for a flaky public GET; authenticated APIs go through ./secretcurl and a variable supplied by requires:.
A run stops when var= has no skill name, and it also stops when skills/${var}/SKILL.md cannot be found. A working skill stays unchanged when every candidate scores no better than the original on improvement.
What it helps with
- improve an existing skill through four candidate versions
- compare variations with a weighted scoring rubric
- replace the original
SKILL.mdwith the selected version - open a pull request with the evaluation details
- record the result and send a notification
Example prompts for the agent
- Improve the
token-moversskill and open a pull request with the results. - Create four alternatives for
skills/rss-digest/SKILL.md, score them, and apply the winner. - Research improvements for
skills/security-scan/SKILL.md, then update it on an autoresearch branch.
How to install autoresearch
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill autoresearch -a claude-code2Manually: put the files in place
~/.claude/skills/autoresearch/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/autoresearch/
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill autoresearch -a codex2Manually: put the files in place
.agents/skills/autoresearch/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill autoresearch -a cursor2Manually: put the files in place
.cursor/skills/autoresearch/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aeonfun/aeon autoresearch2Manually: put the files in place
.github/skills/autoresearch/SKILL.md1Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill autoresearch -a gemini-cli2Platform CLI
gemini skills install https://github.com/aeonfun/aeon --path skills/autoresearchManually: put the files in place
.devin/skills/autoresearch/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill autoresearch -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about autoresearch
How do I install autoresearch in Claude Code?
Run npx skills add aeonfun/aeon --skill autoresearch -a claude-code, then check ~/.claude/skills/autoresearch/SKILL.md.
What does autoresearch do?
It researches ways to improve another skill, creates four distinct versions, scores them, and submits the selected version through a pull request. It also logs the run and sends a notification.
What does autoresearch need before it can run?
Set var to the name of an existing skill. Its file must be at skills/${var}/SKILL.md; otherwise the run stops.
Source text
SKILL.md · MIT
---
name: autoresearch
description: Evolve a skill by generating variations, evaluating them, and updating the best version
metadata:
title: Autoresearch
category: evolution
var: ""
tags:
- meta
- dev
---
> **${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.
## Goal
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.
## Steps
### 1. Load the target skill
Read `skills/${var}/SKILL.md`. If the file doesn't exist, abort and notify: "Skill '${var}' not found."
Parse the skill's:
- **Purpose**: what it does
- **Data sources**: APIs, URLs, commands it calls
- **Output format**: what it produces (article, notification, file)
- **Dependencies**: env vars, tools, other files it reads
Save the original content — you'll need it for the PR diff later.
### 2. Research improvements
Search the web for better approaches to what this skill does:
- Alternative or complementary APIs/data sources
- Best practices for the skill's domain (e.g., crypto analysis, RSS aggregation, security scanning)
- Common pitfalls or failure modes for the techniques the skill uses
- Output formats that are more actionable or readable
Also review:
- Recent memory/logs/ entries where this skill ran — did it produce useful output? Were there failures?
- `memory/cron-state.json` — has this skill been failing?
### 3. Generate 4 variations
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:
- Preserve the original frontmatter format (name, description, var, tags)
- Follow Aeon skill conventions (read memory, log to memory/logs/${today}.md, notify via `./notify`)
- Be a complete, ready-to-run SKILL.md — no placeholders
- Include a one-line comment at the top of the body: `<!-- autoresearch: variation X — thesis description -->`
### 4. Evaluate and score
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:
- Improvement: 3x weight (the whole point)
- Output value: 2x weight
- Clarity, Data quality, Robustness: 1.5x weight each
- Conventions: 1x weight
### 5. Select and apply the winner
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.
### 6. Create a PR
Create a branch named `autoresearch/${var}` and commit the change:
```bash
git 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:
- **Title**: `improve(${var}): autoresearch evolution`
- **Body**: Include the full scoring table, the winning variation's thesis, and a diff summary of what changed. Include all 4 variation summaries so the reviewer can see what was considered.
```bash
gh pr create --title "improve(${var}): autoresearch evolution" --body "..."
```
### 7. Notify and log
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]
```
## Network note
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`.
## Constraints
- Never downgrade a working skill. If all variations score lower than or equal to the original on "Improvement", skip the update and notify: "No improvement found for ${var} — all variations scored at baseline."
- Preserve the skill's core purpose — evolution, not replacement.
- Do not change the skill's tags or var semantics without strong justification.
- Do not add env vars that aren't already available in the workflow (check aeon.yml secrets).
© aeonfun · MIT · aeonfun/aeon
Similar skills
SKILL.md skills catalog →autoresearch by other authors comes first.