skills/autoresearcher-generator/SKILL.md
Generate a self-improving "autoresearch" loop for any Claude skill. Given a skill to improve and 3-5 quality constraints, scaffolds a standalone project (modeled on karpathy/autoresearch) that iterates on the skill's prompt by generating N samples per cycle, evaluating them against the constraints, and editing the skill to fix recurring failures — up to 30 cycles or until results are consistently perfect. Use when the user says something like "make an autoresearcher for my X skill" or "build a self-improving loop for skill Y".
npx skillsauth add jeffvincent/claude-config autoresearcher-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scaffolds a karpathy/autoresearch-style loop that iteratively improves a Claude skill's prompt by generating outputs, evaluating them against user-defined constraints, and having an "improver" subagent propose targeted edits to the skill prompt.
The user asks for a self-improving loop / eval harness / autoresearcher for one of their skills. Typical triggers:
Ask for exactly two things if not provided:
Skill.md (or SKILL.md).If the user gives fewer than 3 constraints, ask for more. If more than 5, ask them to pick the top 5. Do NOT silently proceed with a bad input set — the constraint list is the soul of the loop.
After you have both, propose 1–2 additional constraints you think are worth adding (based on reading the skill). The user approves or rejects before you scaffold.
A standalone project directory (default location: ~/autoresearch-<skill-slug>/, but ask the user to confirm). The directory contains:
autoresearch-<slug>/
├── program.md # loop driver instructions — rendered from template
├── Skill.md # COPY of the target skill; mutable; edited by the loop
├── eval.mjs # programmatic checks synthesized from user constraints
├── judge-prompt.md # qualitative checks synthesized from user constraints
├── inputs/pool.tsv # rotating set of inputs for the skill (user confirms)
├── results.tsv # per-cycle log (gitignored)
├── scratch/ # generated outputs per cycle (gitignored)
├── .gitignore
└── README.md
It is its own git repo on a dedicated branch. The live skill at the original path is NEVER modified by the loop — only the copy in the project directory is.
Read the user's target Skill.md in full. You need to understand what the skill produces and what "good output" looks like so you can (a) suggest extra constraints and (b) classify each constraint as programmatic vs qualitative.
For each user constraint, decide:
A constraint may require BOTH (e.g. "not too much text" → programmatic char count + judge for subjective overload). In that case, implement both and require both to pass.
The loop needs inputs to feed the skill. For the Excalidraw case it was "notes to diagram." For other skills, it could be prompts, source files, data files, etc. Ask the user to point at a directory or hand-pick 3–5 inputs. Do NOT proceed without real inputs — synthetic ones lead to a skill that overfits.
~/autoresearch-<slug>/ where slug is derived from the skill name.Create the directory and write files using the templates in templates/ as starting points. You synthesize eval.mjs and judge-prompt.md from the user's constraints — do not copy them verbatim from the Excalidraw example.
After writing files:
git init in the new directory.git checkout -b autoresearch/<slug>-initial.baseline: scaffold for <skill-name>.Print a short summary:
diff + cp after the loop.eval.mjs, judge-prompt.md, or inputs/pool.tsv in the set of files the loop is allowed to edit. These are the fixed yardstick. Say so explicitly in program.md.git reset --hard HEAD~1.Templates live in templates/ next to this SKILL.md:
program.md.tmpl — loop driver, with {{PLACEHOLDERS}} for slug, N, constraints summary, input source description.eval.mjs.tmpl — skeleton with helper functions; you fill in the actual checks based on the user's constraints.judge-prompt.md.tmpl — skeleton rubric; you fill in the qualitative criteria.README.md.tmpl — user-facing readme.Read the templates, substitute the placeholders, and synthesize the per-skill eval logic. Do not just copy templates blindly — the checks are the whole point.
A working example of a scaffolded autoresearch project lives at ~/Projects/Knowledge System/autoresearch-excalidraw/. When in doubt about structure or tone, look there. That project targets the Excalidraw Creator skill with 9 checks (5 programmatic, 4 qualitative). It is the canonical pattern.
tools
Render a video clip with captions overlaid, using the Remotion captioner at `/Users/jvincent/Projects/remotion-captioner/`. Use when user provides a video file and wants to add captions/subtitles, mentions "caption this video", "add captions", "burn in subtitles", or provides a video + SRT file pair.
development
Upload video files to Wistia projects using the Data API. Use when user wants to upload videos to their Wistia account for hosting, transcription, or sharing.
development
Transcribe voice memos to text using Whisper. Use when user provides audio/video files (.m4a, .mp3, .mov, etc.) and asks to transcribe them into text and SRT format with timestamps.
testing
# Voice Authenticity Reviewer ## Purpose Review any written content for alignment with authentic speaking and writing voice using analyzed patterns from 7 meeting transcripts and strategic memos. ## When to Use This Skill - Before sharing strategic memos with leadership - Before sending important emails - When drafting presentation scripts - When reviewing documentation for external sharing - As part of Writing /produce-memo workflow (Step 6) - Anytime voice authenticity verification is needed