autoresearch
Autonomous experiment loop: edit code, commit, run benchmark, extract metrics, keep improvements or revert, repeat forever. Use this skill when the user asks to "run autoresearch", "start an experiment loop", "optimize a metric autonomously", "autonomous experiments", "autoresearch setup", "benchmark loop", "keep/discard experiments", "optimize test speed", "optimize bundle size", "optimize build time", "run experiments overnight", "speed up my tests", "make my build faster", "reduce compile time", "optimize this automatically", "keep trying until it's faster", "run experiments while I sleep",
npx skills add majiayu000/claude-skill-registry --skill autoresearch-proyecto26-autoresearch-ai-plug --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Autoresearch: Autonomous Experiment Loop An autonomous optimization loop where Claude edits code, runs a benchmark, measures a metric, and keeps improvements or reverts — repeating forever until stopped. ## Core Concept The loop is simple: **edit → commit → run → measure → keep or discard → repeat**. - **Primary metric is king.** Lower (or higher, depending on direction) is better. Improved → keep the commit. Equal or worse → `git revert`. - **State survives context resets** via `autoresearch.jsonl` (append-only log) and `autoresearch.md` (living session document). - **Domain-agnostic.** Works for any measurable target: test speed, bundle size, LLM training loss, Lighthouse scores, build times, etc. - **Be careful not to overfit to the benchmarks and do not cheat on the benchmarks.** Optimize the real workload, not the measurement harness. ## Setup Phase When the user triggers autoresearch, gather the following (ask if not provided): 1. **Goal** — what to optimize (e.g., "reduce unit test runtime") 2. **Command** — the benchmark to run (e.g., `pnpm test`, `uv run train.py`) 3. **Primary metric** — name, unit, and direction (`lower` or `higher` is better) 4. **Secondary metrics**
- Core Concept
- Setup Phase
- The Experiment Loop
- Decision Rules
- Simplicity Criterion
- Handling User Messages During Experiments
- Benchmark Timeout
- Don't Thrash
- Metric Output Format
- Secondary Metrics
- Actionable Side Information (ASI)
- Logging to autoresearch.jsonl
- Config Header (written once at setup)
- Experiment Results (appended after each run)
echo -e "autoresearch.jsonl\nrun.log" >> .gitignore
git add .gitignore && git commit -m "autoresearch: add session files to gitignore"
bash autoresearch.sh 2>&1 | bash ${CLAUDE_SKILL_DIR}/scripts/parse-metrics.sh
bash ${CLAUDE_SKILL_DIR}/scripts/log-experiment.sh \What does the autoresearch skill do?
Autonomous experiment loop: edit code, commit, run benchmark, extract metrics, keep improvements or revert, repeat forever. Use this skill when the user asks to "run autoresearch", "start an experiment loop", "optimize a metric autonomously", "autonomous experiments", "autoresearch setup", "benchmark loop", "keep/discard experiments", "optimize test speed", "optimize bundle size", "optimize build time", "run experiments overnight", "speed up my tests", "make my build faster", "reduce compile time", "optimize this automatically", "keep trying until it's faster", "run experiments while I sleep",
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill autoresearch-proyecto26-autoresearch-ai-plug --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
