Autoresearch Iteration Loop
uditgoenka/autoresearch
Runs an autonomous modify, verify, keep-or-discard loop against any metric, with subcommands for planning, debugging, fixing, security audits, shipping and more.
Runs one improvement mission as a bounded loop: each round makes a change, runs a strict JSON evaluator, logs the decision in markdown and continues until a max runtime is hit.
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Yeachan-Heo/gajae-code autoresearch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .claude/skills/autoresearch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .claude/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Yeachan-Heo/gajae-code autoresearch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .agents/skills/autoresearch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .agents/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Yeachan-Heo/gajae-code autoresearch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .cursor/skills/autoresearch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .cursor/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Yeachan-Heo/gajae-code.git --path packages/coding-agent/src/defaults/gjc/skills/autoresearch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Yeachan-Heo/gajae-code autoresearch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .gemini/skills/autoresearch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .gemini/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Yeachan-Heo/gajae-code autoresearchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .github/skills/autoresearch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .github/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Yeachan-Heo/gajae-code autoresearch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yeachan-Heo/gajae-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/coding-agent/src/defaults/gjc/skills/autoresearch .opencode/skills/autoresearch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "autoresearch" agent skill from https://github.com/Yeachan-Heo/gajae-code/tree/main/packages/coding-agent/src/defaults/gjc/skills/autoresearch into .opencode/skills/autoresearch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "autoresearch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
autoresearchRuns one improvement mission as a bounded loop: each round makes a change, runs a strict JSON evaluator, logs the decision in markdown and continues until a max runtime is hit.
Autoresearch keeps working on a single mission, one experiment per iteration. Each round makes one change, runs the evaluator, saves the result as JSON and appends a readable decision-log entry, and it keeps going when an evaluation does not pass. The evaluator must output structured JSON with a boolean `pass` and an optional numeric `score`.
It expects the mission and evaluator to exist already, created by `/deep-interview --autoresearch`, and its first version refuses multiple missions. State records the mission, evaluator reference, iteration count, timestamps and a required max runtime or deadline, which is the main stop condition along with explicit user cancellation. Artifacts such as the mission spec, evaluator reference, per-iteration JSON and decision logs live under `.omc/autoresearch/`. Periodic reruns can use Claude Code's native cron. The excerpt is cut off in the list of stop conditions.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 91fe978. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Autoresearch Improvement Loop loads about 3.6k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,906 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Yeachan-Heo/gajae-code at commit 91fe978, republished under its MIT licence (© Yeachan-Heo). 1,906 words, ~3,625 tokens.
.claude/skills/autoresearch/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Use when the user asks for autoresearch, or gives a bounded research goal whose deliverable is a defensible verdict rather than code ("find out", "investigate", "benchmark and draw a conclusion").
/skill:autoresearch "<research goal>"
/skill:autoresearch --spec .gjc/_session-{sessionid}/specs/deep-interview-<slug>.mdInvoke this workflow as /skill:autoresearch; the durable state behind it is driven by the gjc autoresearch runtime command.
autoresearch runs one goal-directed research mission: it interleaves web research with data/environment experimentation and ends on a single structured, best-effort verdict. The verdict receipt carries a structured status, evidence[], caveats[], and the evaluator identity that issued it. The mission is research, NOT implementation: its durable outputs are findings, evidence, run records, and a verdict — never product code.
All mission state persists per session under .gjc/_session-{sessionid}/autoresearch/ and survives across gjc autoresearch invocations. The global ~/.gjc/autoresearch store is never written.
Use these exact gjc autoresearch commands before spending tool calls rediscovering syntax:
gjc autoresearch --spec <deep-interview-spec-path>
gjc autoresearch "<goal>"
gjc autoresearch
gjc autoresearch read --json
gjc autoresearch clearintake --spec <path> (or the bare --spec flag) — spec intake from a persisted deep-interview spec; asks zero questions."<goal>" or bare invocation — cold intake; goal, constraints, and deliverables must be clarified before research begins.read --json — current mission artifact plus the append-only ledger snapshot.clear — retire the mission artifact and its working set, recording mission_cleared in the ledger. This never touches the session python REPL kernel; reset that with the python tool's own clear action.Use when the user wants a bounded research mission whose output is a defensible verdict: a question that needs evidence from the web, local data, or both before any conclusion is drawn ("does X hold for this dataset?", "which approach benchmarks best?", "what changed between these two releases?"); an explicit request to run
autoresearch; or a goal whose acceptance is a structured verdict with evidence and caveats.
ralplan/deep-interview instead of opening a research mission.read/search resolves directly.Both intakes write the same mission artifact (objective, mode, deliverables, constraints, slug).
gjc autoresearch intake --spec <path> (or the bare --spec flag) reads a persisted deep-interview spec and starts the mission with zero clarification questions. The spec MUST declare its mission mode explicitly (a line like autoresearch-mode: web); a missing or invalid declaration is a hard fail. The consumed spec path and handoff time are recorded on the mission artifact.
gjc autoresearch "<goal>" (or a bare gjc autoresearch) signals cold intake. Clarify the goal, constraints, and deliverables BEFORE any research tool fires — no web search, no python kernel, no harness build — then write the mission with an explicit mode.
Every mission carries an explicit mode: web, mixed, or data. The mode is stated at intake and persisted in the mission artifact. It is NEVER inferred from the presence of a data file: a data file in the workspace without an explicit mode is a rejection, not a default. Data-context loading is gated to data/mixed mode only; web mode never attaches data context.
Autoresearch asks the agent to drive its mission through GJC goal mode: an inline goal keeps the autonomous continuation loop nudging the agent through intake → research → verdict until the mission's structured verdict receipt exists. This is a cooperative, instruction-only integration, not an autoresearch runtime enforcement boundary: the agent calls the unified goal tool itself; gjc autoresearch commands and hooks never mutate goal state; and no autoresearch-specific nudge budget or ask blocking applies. Generic goal-runtime guards, abort behavior, and handoff behavior still apply and can leave a mission or goal open; the agent must surface or retry those failures rather than treating them as completed lifecycle steps.
Lifecycle:
goal({"op":"get"}); create only when it returns no goal or a terminal complete/dropped goal. Use goal({"op":"create","objective":"Drive the autoresearch mission '<mission objective>' to a persisted structured verdict receipt"}). No goal exists during intake questioning, so ask-driven cold-intake clarification is unaffected.active or paused goal is a collision, not an invitation to call create: never replace, resume, complete, or drop a different goal. If the existing goal has this mission's exact objective, continue its lifecycle; otherwise run the mission without goal mode and leave the other goal untouched. This matters because the goal runtime rejects create over any nonterminal goal, including a paused one.gjc autoresearch read --json), inspect both the latest persisted verdict and goal({"op":"get"}). With no verdict or an explicit status.disposition: "inconclusive", create a goal only when no goal or a terminal goal exists; resume a matching paused goal with goal({"op":"resume"}), continue a matching active goal, and honor any different active/paused goal as a collision. With status.disposition: "conclusive", never create or resume a new goal: complete the matching nonterminal goal if one exists, otherwise retry only the pending mission clear. A missing or different disposition is treated as open rather than auto-cleared..gjc/_session-{sessionid}/autoresearch/, call goal({"op":"complete"}) exactly once for the matching nonterminal mission goal. Any verdict completes the goal-tracking pass, including best-effort and inconclusive verdicts; an inconclusive mission stays open for follow-up, but its current goal pass is complete. Verdict writes themselves are append-only and not idempotent: after an uncertain verdict command, read the latest ledger/receipt before retrying and do not issue a duplicate verdict merely because the first response was lost. If goal completion or the following clear fails, retain the durable state and retry on re-entry rather than issuing a second completion or dropping a completed goal.status.disposition: "conclusive" is terminal for mission cleanup; best-effort evidence and confidence do not by themselves determine terminality. Immediately after completing the matching goal, run gjc autoresearch clear so no stale conclusive mission artifact lingers. This automatic clear follows a completed goal and never calls goal({"op":"drop"}); if the clear fails, retry it on re-entry without creating a new goal. Inconclusive, missing, or other dispositions skip the clear — the mission stays open for follow-up under the existing non-terminal contract.goal({"op":"drop"}) only for this mission's matching nonterminal goal, whether active or paused: on a manual gjc autoresearch clear (pre-verdict or open-inconclusive mission), on handoff to /skill:ralplan, /skill:deep-interview, or /skill:ultragoal, and on user cancel. Never drop a different goal. The post-verdict auto-clear is exempt — its goal is already complete, and a completed goal is never dropped.The runtime does not make these transitions transactional: gjc autoresearch clear and canonical skill handoff do not drop an inline goal for the agent, user cancellation can preserve an active goal, and the generic runtime does not itself prevent a caller from dropping a completed goal. Before a manual clear or handoff, drop the matching goal explicitly when the turn still permits tool calls; after cancellation or a failed handoff, re-enter, inspect goal({"op":"get"}), and clean up only a matching nonterminal goal. An unrelated or unreadable Ultragoal state can also reject generic goal operations; do not bypass that guard or clear mission state early.
Goal mode never authorizes implementation: the mission remains research-only (findings, evidence, run records, verdict), and the nudge loop must never be used to start product-code changes.
Web research and data/environment experimentation are not separately gated tracks. Inside one mission they mix freely: a web finding motivates an experiment, an experiment's result triggers the next web search, and both land in the same mission ledger and the same final verdict. The mode decides which evidence sources exist, not when they may be used.
The mission runs in two phases.
Use an existing benchmark command or a research-only harness artifact explicitly approved for the mission. It must:
METRIC <name>=<value>, and any secondary metrics as additional METRIC <name>=<value> lines;Do not edit product source, manifests, dependencies, or benchmark binaries. When a useful benchmark requires a code or harness change, record that limitation as a caveat and route the change through the normal approval-gated implementation path. Validate the existing command by running it and confirming it exits 0 and emits at least one METRIC line. Output may also carry ASI key=value learning lines.
Iterate existing experiments with baseline/keep/discard discipline. Log every run: keep when the primary metric improves, discard when it regresses or stays flat, crash when the run fails, checks_failed when validation fails. Flag suspect runs (reward-hacked or invalid) so they are excluded from baseline and best-metric math. This workflow does not create branches, commit changes, or revert files because it never changes product code.
The python tool provides a persistent session REPL: variables, imports, and loaded data survive across calls. It is available without an active mission, uses the distinct python:<session-id> kernel owner, and appends every execution to the session JSONL transcript. Clearing its kernel is an action on the same tool (action: "clear"); session cleanup also disposes it.
The mission ends on one mission-level structured verdict: status (structured data, not a pinned enum), evidence[], caveats[], and the evaluator identity. The verdict is self-issued by default. An optional critic pass records a separate evaluator identity on the verdict (critic_receipt), distinct from the mission agent's. The verdict is best-effort, not a rigid per-lane checklist: missing lanes surface as caveats, not automatic failure. Use status.disposition: "inconclusive" for an explicitly non-terminal verdict; the mission stays open for follow-up rather than being closed as finished. Only status.disposition: "conclusive" is terminal for the mission artifact; after the matching goal pass completes, the agent requests gjc autoresearch clear as the next cleanup step (see Goal mode (nudge until verdict)).
.gjc/_session-{sessionid}/autoresearch/ — mission artifact, append-only JSONL ledger, session-scoped run records (plus the TUI run-table dashboard).mission_created, mode_set, run_logged, verdict_issued, critic_recorded, and mission_cleared events; verdict and critic receipts ride on their events as structured data.gjc autoresearch; never hand-edit .gjc/ (no direct write/edit/ast_edit against .gjc/ paths without an explicit force override).gjc autoresearch read --json; do not read or edit .gjc/_session-{sessionid}/autoresearch/ files directly.Autoresearch produces research findings and a verdict; it never implements. Downstream implementation goes through the normal approval-gated path (planning → pending approval → explicitly approved execution).
Two exits, both one step: These exits cover pre-verdict and inconclusive missions — a conclusive verdict requests the same clear sequence from the agent after its matching goal pass completes.
/skill:ralplan, /skill:deep-interview, or /skill:ultragoal — autoresearch is handoff-ready at any phase (intake/research/verdict), and the skill tool performs the atomic workflow-state handoff itself, not an atomic goal-state cleanup. No gjc state preparation is needed.gjc autoresearch clear retires the mission artifact and its working set, appends mission_cleared to the ledger, and marks the workflow complete — no handoff target required.Neither command or handoff automatically drops an inline goal: explicitly drop this mission's matching nonterminal goal before a manual exit when possible, and after cancellation or failed cleanup re-enter and reconcile it. The post-verdict auto-clear never drops its goal because that goal is already complete — see Goal mode (nudge until verdict).
© Yeachan-Heo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in packages/coding-agent/src/defaults/gjc/skills/autoresearch of Yeachan-Heo/gajae-code.
Open the folder on GitHubat commit 91fe978
Autoresearch Improvement Loop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Autoresearch Improvement Loop this skillYeachan-Heo/gajae-code | 2.9k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Autoresearch Iteration Loopuditgoenka/autoresearch | 6.5k | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Install Loop Engineeringcobusgreyling/loop-engineering | 11k | 1 repos | ~648 | Automated safety check: Pass | MIT | |
| LoopX Self Repairloopx-project/loopx | 6.2k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| PUA Looptanweai/pua | 20k | — | ~1.1k | Automated safety check: Pass | MIT | |
| PRP LoopWirasm/prp | 2.3k | — | ~894 | Automated safety check: Pass | MIT |
uditgoenka/autoresearch
Runs an autonomous modify, verify, keep-or-discard loop against any metric, with subcommands for planning, debugging, fixing, security audits, shipping and more.
cobusgreyling/loop-engineering
Installs Loop Engineering into a project through the single @cobusgreyling/loop CLI, scaffolding a report-only loop and a readiness score.
loopx-project/loopx
Diagnoses surprising LoopX behavior, such as stale recommendations or tiny progress, assigns it to the responsible layer and repairs it at the lowest durable level.
tanweai/pua
Runs an unattended iterate-until-verified loop in which a user-set verify command, not the agent's own claim, decides when the task is finished.
Wirasm/prp
Runs the plan, implement and review pipeline detached in fresh headless sessions, looping review and fix until the pull request is clean.
Yeachan-Heo/oh-my-claudecode
Runs an autonomous improvement loop on a repository: agents propose and execute plans, a tournament picks the winner by benchmark, and each round is recorded and plotted.
Yeachan-Heo/gajae-code
Operate trusted local GJC sessions through a reviewed broker-bound CLI allowlist with single-use human approval.
Yeachan-Heo/gajae-code
Shorthand for oh-my-claudecode's consensus planning, where Planner, Architect and Critic agents iterate on a plan before any execution begins.
Yeachan-Heo/gajae-code
Breaks a brief into ordered goals, keeps a durable ledger under .omc/ultragoal and prints handoff text so a Claude /goal run survives session restarts.
Yeachan-Heo/gajae-code
Delegate planning and execution workflows to gajae-code via the coordinator MCP server.
Yeachan-Heo/gajae-code
Discover and inspect trusted local GJC sessions through the broker-bound session CLI.
Yeachan-Heo/gajae-code
Operate GJC SDK sessions from the CLI (gjc sdk session list|inspect|send|status|tail|close|raw plus the explicit raw control|query|global hatch).
Categories
Runs one improvement mission as a bounded loop: each round makes a change, runs a strict JSON evaluator, logs the decision in markdown and continues until a max runtime is hit. Autoresearch keeps working on a single mission, one experiment per iteration. Each round makes one change, runs the evaluator, saves the result as JSON and appends a readable decision-log entry, and it keeps going when an evaluation does not pass.
Autoresearch Improvement Loop fits situations like: iterating on one measurable goal with a fixed evaluator until a time limit; keeping durable experiment logs of each change and its evaluation; scheduling periodic reruns of an improvement mission.
Run `npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a claude-code`. Or copy the skill folder (packages/coding-agent/src/defaults/gjc/skills/autoresearch in Yeachan-Heo/gajae-code) into .claude/skills/autoresearch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a codex`. Or copy the skill folder (packages/coding-agent/src/defaults/gjc/skills/autoresearch in Yeachan-Heo/gajae-code) into .agents/skills/autoresearch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Yeachan-Heo/gajae-code --skill autoresearch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/autoresearch, .gemini/skills/autoresearch, .github/skills/autoresearch and .opencode/skills/autoresearch in your project.
SKILL.md names no scripts, command-line tools or credentials: Autoresearch Improvement Loop is instructions for the agent only. Our summary lists: A mission and evaluator prepared with `/deep-interview --autoresearch`.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Autoresearch Improvement Loop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Autoresearch Improvement Loop: Autoresearch Iteration Loop (uditgoenka/autoresearch, 6.5k stars), Install Loop Engineering (cobusgreyling/loop-engineering, 11k stars), LoopX Self Repair (loopx-project/loopx, 6.2k stars) and PUA Loop (tanweai/pua, 20k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Yeachan-Heo (a GitHub user) maintains it in Yeachan-Heo/gajae-code, which has 2,937 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.
Source: Yeachan-Heo/gajae-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.