kbanc85/claudia/auto-research
Claude Code and agent skill by kbanc85/claudia
- community
Checking that the SKILL.md file is still in the repository.
Iteratively improve a local artifact (draft, document, page) by running a hill-climbing loop. The user names the artifact, the evaluator, and the budget. Claudia edits the artifact, scores it, keeps it if better or reverts if worse, repeats. Use when user says \"iterate on this\", \"loop on this until it's better\", \"run experiments on this draft\", \"auto-research this\", \"make this better and don't stop until it's good\". Workspace-scoped, never touches live files, no external actions during the loop.
Install
npx vskill@latest install kbanc85/claudia/auto-researchSKILL.md
Auto-Research
A hill-climber for any local artifact with a rubric. Inspired by Karpathy's autoresearch pattern, adapted to Claudia's safety principles.
Mental model
Three primitives, one governance file:
- The artifact — what gets iterated on (a draft email, a brief, a wiki page, a one-pager). Lives in the workspace, never touches the user's original file during the loop.
- The evaluator — a scalar rubric. Plain English. An independent Checker (the
loop-checkeragent, Haiku) scores each iteration against it, not Claudia herself. The rubric must produce a number for the original artifact before the loop starts. - The budget — iteration count (default 20). Loop stops when budget is exhausted or score plateaus.
- The program (governance file) — what the user wants, what's off-limits, what counts as "better." Claudia helps the user write this if they don't volunteer it.
Loop: read program + artifact + results history, Claudia (the Maker) proposes one specific change, implements it, then dispatches the loop-checker (the Checker) to score it independently. If the Checker's score beats the running best, ratchet (commit); if worse, revert (git reset). Write the status file. Report each iteration as a one-line update. Repeat until budget is hit.
When to invoke this skill
User explicitly asks:
- "Iterate on this until it's [adjective]"
- "Loop on this draft"
- "Run experiments on this"
- "Auto-research this"
- "Hill-climb this against [criterion]"
- "Make this better, don't stop until it's good"
User implicitly invokes when:
- They've shared an artifact and a quality bar in the same message
- They've tried 2-3 manual revisions of the same draft in the same session and are still unsatisfied
When NOT to invoke
Refuse to start the loop if:
- External-action artifact. The artifact is, or directly drives, an external action (an email about to be sent, a Slack message in the compose window, a calendar invite). Auto-research on these is too easy to misuse. Hand-iterate with the user instead.
- No clear evaluator. The user can't articulate what "better" means even after one pass of helping. Without an evaluator, the loop hill-climbs the wrong hill.
- Sensitive content. Medical, deeply personal, legal-defensible artifacts. Iteration risks introducing fabricated detail that looks plausible. Decline and explain.
- The artifact is already good. If you score the baseline and it's above the user's stated threshold, tell them and offer one quick polish instead of N iterations.
- Bold structural change is the actual need. Karpathy's own limitation: RLHF-trained iteration is "cagy and scared." Iterations tend toward safe edits, not bold reframings. If the user wants a fundamentally different angle, iteration will not get them there. Suggest a fresh draft instead.
Workspace layout
Each run gets its own workspace at ~/.claudia/auto-research/<task-id>/:
The task-id is the slugified user phrase plus a short timestamp: iterate-board-update-20260515-1430.
Critical: The loop edits artifact.md inside the workspace. The user's original file (wherever it lives in their file system) is NEVER modified during the loop. At the end, Claudia asks the user where to put best.md; the user decides.
program.md template
Claudia's first action when invoked: read the artifact, draft a program.md based on what the user said, present it for confirmation, then start the loop.
The loop (Claudia's internal workflow)
For each iteration N:
- Read the state. Read
program.md,artifact.md, last 3 rows ofresults.tsv. - Propose one change. One specific edit, justified in one sentence. Not a rewrite. Not a refactor. One change.
- Implement. Apply the edit to
artifact.md. Save. - Score (independent Checker). Dispatch the
loop-checkeragent (Haiku) with the rubric fromprogram.md, the newartifact.md, and the one change you just made plus your expected effect (your Maker self-score). The Checker returns a verdict JSON:verified,score,max_score,issues,rationale,hard_constraint_violated. You do NOT score it yourself; the Checker'sscoregoverns the decision. (Seeskills/_loop/checker.md.) - Decide. If the Checker's
score> best score so far andhard_constraint_violatedis false: ratchet. Copyartifact.mdtoiterations/NN/, updatebest.mdto point at the new winner, append a row toresults.tsvmarkedkept. Otherwise: revert. Copyiterations/(best_iter)/artifact.mdback toartifact.md, append a row markedreverted. - Flag divergence. Compare the Checker's
scoreagainst your Maker self-score. If they diverge by more than 1.5 points on a 10-point scale, mark the iterationcontestedinresults.tsv. The Checker's verdict still governs; the flag just surfaces the disagreement in the end-of-run summary. - Write the status file. Atomically update
research_status.mdwithiteration,verified,score,budget_remaining,last_input,maker_proposal,checker_verdict(the Checker's rationale), andnext_action. Write to a temp sibling and rename; never edit it in place. (Seedocs/loop-status-schema.md.) - Report. One line to the user:
iter N: score 7.4 (kept), change: tightened lede to one sentence. Append[contested]when flagged. - Check stop conditions and self-repair. If the Checker has returned
verified: false3 times in a row, or its score has regressed for 3 straight iterations, enter the self-repair sub-loop (seeskills/_loop/repair.md) before giving up: it diagnoses whether the rubric or a brief is the real problem, proposes one fix, and proves it on the exact failing input. If budget exhausted: stop. If score plateaued (no improvement for 5 iterations): stop. Otherwise: next iteration.
The independent Checker (Maker-Checker)
This loop separates the producer from the verifier (Proposal 11, E2). Claudia is the Maker: she reads the state and proposes one change. The Checker is a separate agent (loop-checker, Haiku) that scores the result independently. The two never collapse into one model grading its own work, which is the bias the split exists to remove.
- The Checker's
score, not Claudia's, drives keep/revert. Claudia's expected
effect is only a self-score, used to detect disagreement.
- The Checker is adversarial by brief: it hunts for faults and defaults to
verified: false when uncertain. A passing verdict therefore means something.
- A
hard_constraint_violated: trueverdict forces a revert regardless of score.
Contested iterations. When the Checker's score and Claudia's self-score diverge by more than 1.5 points (10-point scale), the iteration is marked contested. The Checker still governs the decision; the flag makes the disagreement visible. The end-of-run summary reports how many iterations were contested, which is a useful signal that the rubric is ambiguous or that Claudia was over-optimistic.
Cost. The Checker runs on Haiku, so the verification pass is cheap and fast. With the default 20-iteration budget, that is at most 21 Checker dispatches (including the baseline), each scoped to a single small artifact.
Self-repair. If the loop stalls (the Checker fails 3 times running, or scores regress), auto-research enters a bounded self-repair sub-loop that treats the harness, not the artifact, as the suspect: it diagnoses the rubric or a brief, proposes one fix, and proves it on the exact failing input before adopting it. See skills/_loop/repair.md. It is capped at 2 repair attempts and never auto-edits shipped briefs (those changes go to a human approval gate).
Worked example (dry run)
A short run of "tighten this board update", to show the loop and the independent Checker in practice. The artifact is artifact.md; the rubric is the board update rubric below. Budget: 20 iterations.
The loop stops at iteration 6 on plateau. research_status.md at that point:
Hand-off to the user: "Started at 6.1, ended at 8.4 over 6 iterations. The three biggest jumps were moving the revenue number into the lede (iter 1), collapsing the ask into one sentence (iter 3), and the tone pass (iter 4). One iteration was contested: I scored iter 4 a 9.5, the Checker held it to 8.4 because the headline leaned on 'significantly' with no number behind it. I kept the Checker's call. Want iter 4 back at the original location?"
That contested iteration is the whole point of the split. Without an independent Checker, iter 4 ships at the inflated 9.5 self-score. With it, the unearned intensifier gets caught and the honest 8.4 governs.
Safety rules (mandatory, follow without exception)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/claudia/skills/auto-research/SKILL.md
Popularity
- Repository stars
- 292
- Repository forks
- 43
- Repository npm downloads, 7 days
- 646
- 7-day trend score
- 44
Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 16 Jun 2026, 4 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kbanc85/claudia/auto-research)