Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/ckorhonen/claude-skillsnpx agentmods add skills/ckorhonen/claude-skills/autoresearchWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ckorhonen/claude-skills/autoresearch)<a href="https://agentmods.dev/skills/ckorhonen/claude-skills/autoresearch"><img src="https://agentmods.dev/badge/skills/ckorhonen/claude-skills/autoresearch/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ckorhonen/claude-skills/autoresearch"><img src="https://agentmods.dev/badge/skills/ckorhonen/claude-skills/autoresearch.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00060 | $0.04140 |
| Opus 5.5 | $0.00024 | $0.01656 |
| Sonnet 5.5 | $0.00012 | $0.00828 |
| Haiku 4.5 | $0.00006 | $0.00414 |
Grade A, and why
autoresearch scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 449 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Autoresearch
Autonomous optimization is only useful when it behaves like disciplined research, not benchmark gambling.
This skill runs a strict experiment loop:
- clarify the target before changing code
- write down hypotheses before testing them
- measure with repeated trials, not one-off wins
- record every experiment, including failures
- generate local reports and graphs that are not checked in
Core Principles
- No silent scope inference
If the request is vague, stop and ask a short up-front Q&A before starting. Do not silently invent the target workload, correctness bar, or tradeoffs.
- One experiment = one hypothesis
State the proposed change and why it should help before making it. Avoid bundles of unrelated tweaks.
- All experiments are logged
Every experiment must be enumerated in a machine-readable ledger, including discarded ideas, crashes, and failed checks.
- Repeated measures beat noisy anecdotes
Do not keep a change because of one fast run. Use warmups, repeated measurements, and an explicit decision rule.
- Artifacts stay local
Reports, CSVs, JSONL ledgers, and graphs belong in a local .autoresearch/ directory and should not be committed.
Available scripts
scripts/init_experiment.py— initialize.autoresearch/session.json, ensure.autoresearch/stays untracked, and scaffoldautoresearch.mdwhen needed.scripts/run_experiment.py— run warmups and measured trials, parseMETRIClines, run optional checks, and emit a JSON experiment record.scripts/log_experiment.py— append an experiment to.autoresearch/results.jsonl, decidekeepvsdiscard, and refresh CSV and HTML artifacts.scripts/render_report.py— regenerate.autoresearch/results.csvand.autoresearch/report.htmlfrom the JSONL ledger.
All scripts are non-interactive, expose --help, emit structured JSON on stdout, and keep diagnostics on stderr.
Default workflow
- Initialize the session after the up-front Q&A:
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 449 lines · 60 tokens per session scan A 396ffd5ae34a
autoresearch is a skill published in the GitHub repository ckorhonen/claude-skills (21 stars, last pushed 1mo ago), licensed MIT. It adds 60 tokens to every session and 4,140 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
iso-24495-3
Sector-specific Plain Language standard for science and technical writing (ISO 24495-3:2026). Applied during software documentation, architecture specs, and technical analysis.
data-building-ledger
A lookup service for South Korean building-register and permit data from the Ministry of Land's BuildingHUB. It can show a property's use, structure, size, approval date, parking, seismic information, public-price history, age, demolition, and permits.
emem-field-tokens
Fetches a native-resolution raster field over an area from emem, or the same field over several dates, as a signed and re-derivable artifact rather than a set of per-cell scalars. Use when the user needs the actual grid of values over an area of interest (a world-model input, a band or NDVI drape, change analysis over…
emem-eudr-due-diligence
Produces a signed, Annex II shaped Due Diligence Statement under the EU Deforestation Regulation (EU 2023/1115) for one or more production plots with emem, and explains what it proves and what it leaves to the operator. Checks each plot against the JRC GFC2020 forest baseline and Hansen Global Forest Change loss year…
emem-locate-and-recall
Resolves a place name to an emem cell64 address and recalls signed Earth-observation facts there (weather, vegetation indices, elevation, soil, land cover, surface water, forest change). Use when the user asks for a measurable value at a named place ("what is the temperature in Bengaluru", "how high is Denali", "what…
emem-recall-polygon
Recalls signed Earth-observation facts at sampled cells inside an area (a named region, a bounding box, or a GeoJSON boundary) in one call. Use when the user asks about an extent rather than a point, such as "average NDVI inside this watershed", "precipitation across the Western Ghats", or "elevation across this admin…