autoresearch

Runs hypothesis-driven optimization loops with repeated trials, JSONL ledgers, and HTML reports.

1|Updated May 6, 2026
One-click install
npx skills add https://github.com/surfingalien/FinSurfing --skill autoresearch-surfingalien
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: autoresearch
Source: https://github.com/surfingalien/FinSurfing/tree/main/.claude/skills/autoresearch
Command: npx skills add https://github.com/surfingalien/FinSurfing --skill autoresearch-surfingalien

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Optimization work often degrades into benchmark gambling: one-off timing runs, unrecorded failures, and changes kept on noisy evidence. This Skill enforces a disciplined experiment loop where every hypothesis is stated before testing, every trial is measured repeatedly, and every result is logged to a machine-readable ledger. ## Core Features & Use Cases - Structured experiment loop: Initialize a session with an explicit goal, metric, direction, and threshold, then record baselines and candidates as JSON experiment records. - Repeated measurement protocol: Runs warmup and measured trials, parses METRIC lines from benchmark output, and summarizes results with median, mean, min, and max. - Automatic disposition decisions: Classifies each experiment as keep, discard, checks_failed, or crash based on the declared improvement threshold and correctness gates. - Local reporting: Generates a CSV summary and a self-contained HTML report with SVG charts showing metric trends, best-so-far progression, and trial distributions. - Use Case: You want to reduce latency in a hot code path. The Skill scaffolds autoresearch.md and autoresearch.sh, records a baseline, then logs each candidate change with statistical evidence before deciding whether to keep it. ## Quick Start Ask the agent to run autoresearch to reduce latency in your hot path, specifying the benchmark command, the metric name, and that lower values are better.

Frequently Asked Questions about autoresearch

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a disciplined benchmark optimization loop?

Initialize a session with init_experiment.py specifying your goal, metric name, unit, direction, and benchmark command. Then record a baseline with run_experiment.py, log it with log_experiment.py, and repeat for each candidate change with a stated hypothesis.

How to decide whether a code change actually improves performance?

Run at least 2 warmup and 5 measured trials, then compare medians against the current best. Keep a change only when improvement clears a pre-declared threshold (default 1%) and all correctness checks pass.

What dependencies does the autoresearch skill require?

It requires python3, a POSIX shell, and git for the safest workflow. All bundled scripts use only the Python standard library, so no pip packages or external tools need to be installed.

Why did my experiment get marked as checks_failed instead of keep?

A checks_failed disposition means the benchmark improved but the correctness gates in autoresearch.checks.sh failed. The change is not safe to keep regardless of the metric gain, so fix the correctness issue before re-testing.

When should I stop an autoresearch optimization loop?

Stop when the time or compute budget is exhausted, when several consecutive experiments show no meaningful improvement, or when hypotheses start repeating earlier ideas. Record the stopping reason in autoresearch.md and render the final HTML report.