Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
uditgoenka avatar

Autoresearch

  • 1.9k installs
  • 5.8k repo stars
  • Updated June 23, 2026
  • uditgoenka/autoresearch

autoresearch is an agent skill for "Autonomous iteration loop: modify, verify, keep/discard against any metric"

About

The autoresearch skill "Autonomous iteration loop: modify, verify, keep/discard against any metric" It covers never push, publish, or deploy without explicit user approval.. Key workflows include bounded by default. Override with Iterations: unlimited .. Developers invoke autoresearch when the task matches the triggers and reference files in SKILL.md for grounded, stepwise execution. Reference files and progressive disclosure keep context focused while preserving concrete commands, configuration fields, and validation checks copied from the upstream documentation. Reference files and progressive disclosure keep context focused while preserving concrete commands, configuration fields, and validation checks copied from the upstream documentation. Reference files and progressive disclosure keep context focused while preserving concrete commands, configuration fields, and validation checks copied from the upstream documentation. Reference files and progressive disclosure keep context focused while preserving concrete commands, configuration fields, and validation checks copied from the upstream documentation.

  • Never push, publish, or deploy without explicit user approval.
  • Bounded by default. Override with Iterations: unlimited .
  • All results logged to autoresearch/{subcommand}-{YYMMDD}-{HHMM}/ directory.
  • Chain handoff via handoff.json . Evals reads -results.tsv .
  • Classify - scripts/orchestrate.sh classify "<goal " → archetype label + mode.

Autoresearch by the numbers

  • 1,944 all-time installs (skills.sh)
  • +82 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #294 of 2,203 Security skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

autoresearch capabilities & compatibility

Capabilities
never push, publish, or deploy without explicit · bounded by default. override with iterations: un · all results logged to autoresearch/{subcommand} · chain handoff via handoff.json . evals reads re · classify scripts/orchestrate.sh classify "<goa
Use cases
security audit · testing · debugging
From the docs

What autoresearch says it does

description: "Autonomous iteration loop: modify, verify, keep/discard against any metric"
SKILL.md
npx skills add https://github.com/uditgoenka/autoresearch --skill autoresearch

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.9k
repo stars5.8k
Security audit2 / 3 scanners passed
Last updatedJune 23, 2026
Repositoryuditgoenka/autoresearch

What problem does autoresearch solve for developers using the documented workflows?

"Autonomous iteration loop: modify, verify, keep/discard against any metric"

Who is it for?

Developers working with autoresearch patterns described in the skill documentation.

Skip if: Skip when docs are empty or the task is outside the skill documented scope.

When should I use this skill?

Use when "Autonomous iteration loop: modify, verify, keep/discard against any metric"

What you get

Actionable autoresearch guidance grounded in SKILL.md workflows and reference files.

  • Metric-validated code changes
  • Iteration outcome log

By the numbers

  • Accepts Iterations count as an explicit loop limit argument
  • Supports optional --evals evaluation flag

Files

SKILL.mdMarkdownGitHub ↗

Autoresearch — Autonomous Goal-directed Iteration

Safety Invariants (all subcommands)

  • Never push, publish, or deploy without explicit user approval.
  • Bounded by default. Override with Iterations: unlimited.
  • All results logged to autoresearch/{subcommand}-{YYMMDD}-{HHMM}/ directory.
  • Chain handoff via handoff.json. Evals reads *-results.tsv.

Dispatch (bare $autoresearch)

Parse the invocation in this order:

ConditionMode
Metric: or Verify: presentClassic — existing metric loop, unchanged
Free-form natural-language goal, no metric/verifyOrchestrator — see Orchestrator section
NothingSetup wizard — interactive config builder
--classic flagForce Classic regardless of goal text
--auto flagForce Orchestrator regardless of goal text

Print a banner on every invocation: [autoresearch] mode: classic | orchestrator | wizard.

Subcommands

CommandDoesDefault Iterations
$autoresearchIterate against a metric: modify → verify → keep/discard25
$autoresearch planConvert a goal into validated Scope, Metric, Verify configN/A
$autoresearch debugHunt bugs: hypothesize → test → falsify → repeat15
$autoresearch fixCrush errors one-by-one until zero remain20
$autoresearch securitySTRIDE + OWASP audit with red-team personas15
$autoresearch shipShip through 8 phases: checklist → dry-run → deploy → verifyN/A
$autoresearch scenarioGenerate edge cases across 12 dimensions20
$autoresearch predict5 expert personas debate before implementationN/A
$autoresearch learnScout codebase → generate docs or wiki → validate → fix loop10
$autoresearch reasonAdversarial debate with blind judges until convergence8
$autoresearch probe8 personas interrogate requirements until saturation15
$autoresearch improveResearch ICP challenges, discover improvements, generate PRDs15
$autoresearch evalsAnalyze iteration results: trends, plateaus, regressionsN/A
$autoresearch regressionRegression stability gate: baseline vs candidate, verdict STABLE/UNSTABLEN/A

Universal Flags

FlagApplies ToPurpose
Iterations: NAll loopingSet iteration count
Iterations: unlimitedAll loopingOpt-in unbounded
--evalsAll loopingMid-loop checkpoints + final summary
--evals-interval NAll loopingOverride checkpoint frequency
--chain <targets>AllSequential handoff after completion
--<subcommand>AllShorthand for --chain <subcommand>
--dry-runOrchestratorPrint derived config + planned pipeline; no execution
--max-cycles NOrchestratorHard ceiling on orchestration cycles (default 50)
--classicBare $autoresearchForce Classic metric-loop mode
--autoBare $autoresearchForce Orchestrator mode

Orchestrator

Activated when a plain-language goal is given without Metric:/Verify:. Classifies the goal into a Goal archetype — see references/orchestrator-routing.md for the archetype table and router decision table.

Two modes based on archetype:

  • Orchestration loop — predicate-bearing archetypes (ship-ready, optimize-metric, fix-broken, harden, build-feature, explore). Goal has a mechanical Success predicate; the loop runs until that predicate is met.
  • Single-pass dispatch — subjective/terminal archetypes (document, what-to-build, decide-design). Routes once to the fitting subcommand (learn / improve / reason), lets it self-terminate, then reports. No loop, no Plateau, no ship gate.

Orchestration Loop Steps

Backed by scripts/orchestrate.sh (deterministic seam — all routing logic lives there). Subcommands exposed: classify, next-hop, units, plateau, screen-cmd, verdict, validate-state, screen-state-predicate.

1. Classifyscripts/orchestrate.sh classify "<goal>" → archetype label + mode. 2. Derive predicate — reuse plan logic to produce a concrete Success predicate: exact shell command + expected output. For optimize-metric, run the full plan/wizard derivation internally. 3. Confirm — ONE request_user_input showing: archetype, mode, concrete predicate (command + expected output), terminal choice (stop-at-verified vs proceed-to-ship). Misclassifications are caught here, not mid-run. 4. Round-0 dry-run — prove the predicate command runs and returns a value; safety-screen every derived command via screen-cmd; print projected cycle budget. Stop here if --dry-run. 5. Loop until predicate satisfied: a. Assess state via cheap signals (last handoff.json, regression verdict, error count) + affected-test verify. b. scripts/orchestrate.sh next-hop orchestrator-state.json → next subcommand. c. Run subcommand (its own bounded inner loop). d. Record per-hop outcome ∈ {progressed, no-op, failed, blocked}. e. Fold hop's handoff.json into orchestrator-state.json. f. scripts/orchestrate.sh units → recompute Units remaining. 6. Stop conditions (checked after each hop):

  • Predicate met → ship gate (only if ship is in the pipeline) else CONVERGED.
  • scripts/orchestrate.sh plateau orchestrator-state.json → true → stop + report PLATEAU.
  • Cycles > ceiling (default 50, override --max-cycles N) → stop + report CEILING.
  • Hop outcome blocked/failed with no alternative route → checkpoint + stop + report BLOCKED.

Orchestrator State

orchestrator-state.json — orchestrator-owned, additive. Tracks: goal, archetype, predicate, terminal-choice, units_remaining history, cycle count, per-hop pipeline log with outcomes, current incumbent. Each hop's handoff.json is unchanged (single-hop bridge); the orchestrator reads it and folds it in. Two clearly-owned state objects, no overlap.

Orchestrator Safety Invariants

  • Never auto-approve ship/deploy/push. The orchestrator never passes --auto to ship; deploy always requires explicit user approval.
  • Data-migration behind anchored DB-URL allowlist. Reuses regression's allowlist — host must be localhost/127.0.0.1/container hostname, or database name carries _test/_ci suffix. Bare substring match does not qualify. Anything else refused.
  • screen-cmd on every derived command — run before the loop starts AND on every command read from a persisted state file on resume. Persisted commands are never trusted; resume re-screens the pinned predicate via screen-state-predicate and refuses on refuse.
  • No un-screened commands mid-loop. The autonomous loop cannot introduce new shell commands that bypass screen-cmd.
  • Predicate pinned, not re-derived. Round-0 writes the derived Success predicate verbatim into orchestrator-state.json; every cycle and every resume reuses that exact string so "done" is reproducible across runs.
  • Validate the ledger before routing. validate-state gates orchestrator-state.json (required fields + coarse types); a malformed ledger is not trusted to route from.
  • Independent verify before convergence. High-impact changes accepted on the working signal set pending_verify; next-hop routes to a verify hop (held-out / adversarial check) before DONE or ship. The verify hop never auto-approves ship.
  • Unknown-units cycles excluded from Plateau counter. A cycle where units returns unknown (e.g. runner crash) is not counted as zero-progress; repeated unknown routes to BLOCKED.

Related skills

How it compares

Use autoresearch when you have a measurable metric and verify command; use manual review skills when success criteria are qualitative.

FAQ

Who is autoresearch for?

Developers and software engineers working with autoresearch patterns described in the skill documentation.

When should I use autoresearch?

When "Autonomous iteration loop: modify, verify, keep/discard against any metric".

Is autoresearch safe to install?

Review the Security Audits panel on this page before installing in production.

Securityappsec

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.