
Skill Autoresearch
- 206 installs
- 40 repo stars
- Updated August 4, 2026
- akillness/oh-my-skills
Automatically research domains, tools, and patterns to draft or improve Claude Code skills without manual spec hunting across docs, repos, and community examples.
About
Automates research to create and refine Claude Code skills: discover relevant sources, extract patterns and gaps, propose skill structures, and iterate drafts so agent capabilities stay current without hand-curating every reference.
- Automated source gathering for skill specifications
- Gap analysis across existing skills and workflows
- Draft skill outlines from docs and examples
- Pattern extraction from repos and community practice
- Iterative refinement loops for skill quality
Skill Autoresearch by the numbers
- 206 all-time installs (skills.sh)
- Ranked #178 of 782 Skill Development skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/akillness/oh-my-skills --skill skill-autoresearchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 206 |
|---|---|
| repo stars | ★ 40 |
| Last updated | August 4, 2026 |
| Repository | akillness/oh-my-skills ↗ |
What it does
Automatically research domains, tools, and patterns to draft or improve Claude Code skills without manual spec hunting across docs, repos, and community examples.
Files
Skill Autoresearch
Use this skill when the job is improving a reusable repo artifact with a frozen local benchmark.
The contract is simple: first decide whether a ratchet is justified at all, then freeze the judge, baseline the current artifact, change one meaningful thing only when needed, rerun the same harness, keep only measured improvements, and log both wins and reverts.
This skill is intentionally repo-local. It owns markdown/git-friendly ratchets for SKILL.md, SOPs, prompts, templates, and workflow docs. If the real need is product-scale traces, hosted dashboards, or app/runtime evaluation, route out instead of pretending this skill replaces LangSmith, Braintrust, Weave, or Promptfoo.
Read these support files before editing:
- references/eval-guide.md
- references/loop-charter-template.md
- references/run-packets-and-route-outs.md
When to use this skill
- A reusable
SKILL.mdor workflow document works inconsistently and needs a bounded improvement loop. - You need to decide whether the current artifact even deserves another ratchet, or whether
no ratchet justifiedis the correct outcome. - You want to tighten triggers, route-outs, or execution steps without moving the benchmark mid-run.
- You need to add or refresh
references/,evals/, compact variants, or discovery wording only after the main boundary is proven. - You need append-only keep/revert history that survives in git and PR review.
- You want a repeatable answer to “did this edit actually improve the artifact?”
Do not use this skill when
- The user already knows the exact rewrite they want and does not need a benchmark loop.
- The target has no representative prompts or no stable way to evaluate behavior.
- The work is really about running GPU-bound
karpathy/autoresearchexperiments ontrain.py/program.md/val_bpb→ useautoresearch. - The work is really about hosted prompt or app evaluation, production traces, large datasets, or experiment dashboards → route to LangSmith, Promptfoo, Braintrust, or Weave.
- You are about to change the artifact and the evaluator at the same time.
Required inputs
Do not start mutation work until you know the target artifact, 3-5 representative prompts or scenarios, 3-6 binary evals, a rerun/budget rule, and which supporting files are allowed beyond the primary artifact.
Before that, decide whether there is evidence for one of three outcomes:
- the baseline likely fails and needs a real ratchet,
- the main artifact is fine but support surfaces drifted,
- or no ratchet is justified yet.
Instructions
Step 1: Choose one packet
Normalize the request into one primary packet before editing anything.
skill_autoresearch_packet:
primary_packet: ratchet-eligibility | benchmark-readiness | charter-freeze | baseline-score | one-change-mutation | support-sync | final-report | route-out
target_artifact: SKILL.md | SOP | prompt-template | workflow-doc | other
evidence_shape: prompts-and-evals | dry-run-checklist | repo-validators | mixed | unknown
support_scope: none | references-only | evals-only | compact-only | discovery-surfaces | mixed
confidence: high | medium | lowPacket meanings:
ratchet-eligibility— decide whether the run should stop asno ratchet justified, jump tosupport-sync, or continue into a real benchmark loopbenchmark-readiness— the loop cannot start until prompts/evals/scope are frozencharter-freeze— write the loop contract before any mutationbaseline-score— snapshot the current artifact and record experiment0one-change-mutation— make exactly one meaningful change, rerun, keep or revertsupport-sync— update compact/docs/manifests only after the core ratchet is justified or when the main artifact is already good and only support surfaces driftedfinal-report— summarize baseline → final delta, keep/revert count, and remaining failuresroute-out— the request actually belongs to hosted eval tooling or MLautoresearch
Step 2: Read the target and neighboring surfaces
Read the primary artifact first, then only the support surfaces that matter:
- linked
references/,evals/,scripts/, or compact variants - README/setup/manifest wording if discoverability may change
- prior loop artifacts if a ratchet already exists
Capture:
- the artifact's real job
- what should trigger it
- what it should route out
- current failure modes
- any stale discovery wording or support drift
- whether the likely next state is
no ratchet justified,support-sync, or a real mutation loop
Step 3: Decide ratchet eligibility before freezing the loop
Before writing a charter, answer three things: 1. Does the baseline already appear to satisfy the current bar? 2. Is the real problem only support-surface drift? 3. Is there concrete evidence that a ratchet is still worth the churn?
If the answers point to no ratchet justified, stop and report that outcome. If the main artifact is already good but docs/manifests/compact surfaces drifted, route to support-sync instead of pretending a mutation loop happened. Only continue into the benchmark loop when the baseline genuinely fails or when there is explicit evidence-backed headroom worth pursuing.
Step 4: Freeze the evaluator
Before editing, write loop-charter.md.
The charter must freeze:
- goal of the run
- current baseline
- one primary mutable artifact
- fixed evaluation harness
- supporting files allowed in scope
- time / iteration / tool budget
- rejected directions for this run
Rules:
- do not change prompts, eval wording, or scoring rules mid-run
- if the evaluator changes, start a new comparison track
- keep one primary mutable artifact even if supporting files change later
Step 5: Build binary evals only
Use references/eval-guide.md.
Strong eval categories for skill and workflow artifacts:
- trigger precision
- route-out clarity
- execution determinism
- artifact usefulness
- benchmark discipline
- discovery-surface sync (only if the run changes positioning)
Rules:
- use yes/no checks only
- prefer observable checks over taste
- do not score the same failure twice
- use the same prompt set for baseline and mutation runs
Step 6: Baseline the current artifact
1. copy the current version to a baseline artifact such as SKILL.md.baseline 2. record experiment 0 3. score the current version on the frozen harness 4. summarize the failures before mutating anything
Decision gate:
- If the baseline already passes comfortably and there is no material support drift, stop and report
no ratchet justified. - If the baseline is good and only compact/docs/manifests drifted, jump to
support-syncand say so explicitly. - Only continue to mutation when the baseline actually fails or the charter names clear evidence-backed headroom worth pursuing.
Step 7: Run one-change mutations
This is the core loop: 1. inspect the failing outputs or artifact surfaces 2. form one hypothesis 3. change one meaningful thing only 4. rerun the same harness 5. compare against the baseline and current best 6. keep only score-improving changes 7. revert ties or regressions unless the charter explicitly prefers a secondary metric such as lower ambiguity or smaller front-door size 8. append the outcome to the run log
Good mutations:
- tighten a weak trigger description
- move a critical boundary rule higher
- add one focused support file that closes a clear usability gap
- remove a noisy instruction that causes over-triggering
- shrink a bloated front door by moving stable detail into a reference
Bad mutations:
- rewriting the skill and evaluator together
- broad multi-file churn before the core boundary is proven
- keyword stuffing for recall
- optimizing for style instead of measured behavior
Step 8: Sync support surfaces only after the ratchet holds
If the main change materially affects discoverability, onboarding, naming, or usage, then sync:
evals/evals.json- compact variants such as
SKILL.toon - discovery manifests such as
skills.json/ compact indexes - docs/setup surfaces such as
README.md, localized README entries, or setup prompts
Do this after the main artifact improvement is justified by the frozen evaluator.
Step 9: Log every experiment
Use append-only artifacts. Minimum package:
loop-charter.md- baseline copy
- structured results (
results.tsv,results.json, or equivalent) - plain-language changelog / experiment log
Every experiment should record:
- keep or revert
- score delta
- one-sentence mutation summary
- hypothesis
- remaining failures
Step 10: Apply the rule to this skill too
If the target artifact is skill-autoresearch itself, do not exempt it from the loop.
Validate:
- the target skill against the frozen rubric
- support-surface sync only after the main ratchet holds
- the final wording still preserves frozen evaluators, one-change iterations, append-only logs, and explicit keep/revert decisions
Output format
Return a compact ratchet report:
# Skill Autoresearch Report
## Packet
- Primary packet:
- Target artifact:
- Why this packet fits:
## Frozen harness
- Prompts / scenarios:
- Binary evals:
- Validators:
- Scope limits:
## Baseline
- Current score:
- Main failures:
## Mutation result
- Change tried:
- Keep or revert:
- Score delta:
- Remaining failures:
## Support sync
- Updated surfaces:
- Deferred surfaces:
## Next state
- Recommended next move:
- Artifact paths:Examples
Example 1: Trigger repair
Input
Improve this stale skill. It over-triggers and I want a bounded loop, not a rewrite.
Good direction
- packet:
one-change-mutation - freeze prompts/evals first
- rewrite description or route-out wording only
- keep or revert by measured result
Example 2: Benchmark drift repair
Input
I keep changing the tests while rewriting the skill. Help me optimize it anyway.
Good direction
- packet:
benchmark-readinessorcharter-freeze - stop the run from proceeding until the evaluator is frozen
- instruct the maintainer to start a new comparison track if the judge must change
Example 3: Discovery-surface follow-up
Input
The skill is better now. README, setup prompt, and compact wording may be stale.
Good direction
- packet:
support-sync - only after the main ratchet is proven, or because the main artifact is already fine and only support surfaces drifted
- sync manifests/docs without pretending that broad doc churn was the main experiment
Example 4: No-ratchet outcome
Input
The current skill already passes our frozen checks and reviewer feedback is good. I just feel like tuning it more.
Good direction
- packet:
ratchet-eligibility - conclude
no ratchet justifiedunless the maintainer can name concrete evidence-backed headroom - protect the passing baseline from churn
Example 5: Route-out
Input
I need online traces, dataset comparisons, and hosted dashboards for our app prompts.
Good direction
- packet:
route-out - explain that the job belongs to LangSmith, Promptfoo, Braintrust, or Weave rather than repo-local skill ratcheting
Best practices
1. Make no ratchet justified a valid success state instead of assuming every run needs mutation. 2. Freeze the evaluator before the first real edit. 3. Keep one primary mutable artifact even when support files are in scope. 4. Change one meaningful thing at a time. 5. Prefer representative prompts over perfect toy cases. 6. Log failed experiments, not just successes. 7. Treat smaller front doors as a valid secondary win only when the same harness still passes. 8. Sync compact/docs/manifests only after the main ratchet holds. 9. Keep the boundary sharp between repo-local skill maintenance, hosted eval platforms, and ML autoresearch.
References
{
"skill_name": "skill-autoresearch",
"evals": [
{
"id": 1,
"prompt": "Improve this stale SKILL.md. I want a bounded loop with clear prompts, fixed evals, and a keep-or-revert decision instead of a rewrite.",
"expected_output": "The skill activates as a repo-local ratcheting workflow, freezes the evaluator before edits, chooses a packet, and uses one-change iterations with append-only logging.",
"assertions": [
"The workflow requires a frozen evaluation harness or loop charter before mutations start.",
"The workflow chooses one primary packet or one primary mutable artifact before editing.",
"The workflow changes one meaningful thing at a time and records keep-or-revert history in append-only artifacts."
]
},
{
"id": 2,
"prompt": "My prompt benchmark is weak and I keep changing the tests while rewriting the skill. Help me optimize the skill anyway.",
"expected_output": "The skill stops the run at benchmark readiness or charter freeze, refuses evaluator drift, and tells the maintainer to freeze the judge or start a new comparison track.",
"assertions": [
"The skill warns against changing the evaluator mid-run.",
"The skill routes the request to a readiness or charter-freeze packet instead of pretending the loop can continue normally.",
"The skill does not treat ad hoc rewriting without a stable benchmark as acceptable autoresearch."
]
},
{
"id": 3,
"prompt": "I updated the main SKILL.md and now I think the README, setup prompt, and compact variant might be out of sync. What should the loop do?",
"expected_output": "The skill treats docs/setup/discovery updates as a support-sync packet and can take that path when the main artifact is already fine.",
"assertions": [
"The skill explicitly mentions support-surface sync for compact variants, manifests, or README/setup surfaces when positioning changed materially.",
"The skill allows support-sync when the main artifact is already good and only support surfaces drifted.",
"The skill keeps the primary mutable artifact focused even when support files are allowed."
]
},
{
"id": 4,
"prompt": "This skill already passes our frozen checks and reviewer feedback is good. Should we ratchet it anyway or stop?",
"expected_output": "The skill uses a ratchet-eligibility or equivalent gate and can conclude that no ratchet is justified.",
"assertions": [
"The skill explicitly allows a no-ratchet-justified outcome before mutation.",
"The skill does not force charter, baseline, or mutation work when the baseline already passes and there is no material drift.",
"The skill protects the passing baseline from unnecessary churn unless concrete evidence-backed headroom exists."
]
},
{
"id": 5,
"prompt": "I need hosted traces, dataset comparisons, and experiment dashboards for our production AI app. Should I use this skill?",
"expected_output": "The skill routes the request outward to hosted eval or observability tools instead of stretching the repo-local ratchet loop.",
"assertions": [
"The skill explicitly routes hosted app-scale eval or observability work to LangSmith, Promptfoo, Braintrust, Weave, or similar tools.",
"The skill keeps repo-local markdown or git-based ratcheting as its own narrower niche.",
"The skill does not claim to replace production tracing or hosted experiment platforms."
]
},
{
"id": 6,
"prompt": "We want to improve skill-autoresearch itself. What extra rule should apply?",
"expected_output": "The skill applies its own frozen-harness and keep-or-revert discipline to itself instead of exempting the meta-skill.",
"assertions": [
"The skill includes a rule that it must validate itself under the same frozen-evaluator regime when it is the target.",
"The skill preserves append-only logs and explicit keep-or-revert decisions even for self-modification.",
"The skill does not exempt the meta-skill from its own rubric."
]
}
]
}
Eval Guide
Use this guide when turning fuzzy quality goals into binary skill evals.
Golden rule
Every eval must be answerable with yes or no.
Avoid:
- numeric scales
- vibe checks
- overlapping checks
- checks an agent cannot verify consistently
Good eval pattern
EVAL 1: Short name
Question: Yes/no question
Pass: Specific condition for yes
Fail: Specific condition for noGood vs bad evals
Writing skills
Bad:
- "Is the writing good?"
- "Does it feel engaging?"
Good:
- "Does the first paragraph contain a concrete claim, date, or metric?"
- "Does the output avoid banned filler phrases?"
- "Does the output end with a specific next action?"
Visual or presentation skills
Bad:
- "Does it look professional?"
- "Is the layout good?"
Good:
- "Is all text legible with no overlap or truncation?"
- "Does the layout flow in one clear reading direction?"
- "Does the palette stay within the defined color constraints?"
Code or technical skills
Bad:
- "Is the code clean?"
- "Does it follow best practices?"
Good:
- "Does the code run without errors?"
- "Does the output contain zero TODO or placeholder text?"
- "Does every external call have explicit error handling?"
Document skills
Bad:
- "Is it comprehensive?"
- "Does it address the client's needs?"
Good:
- "Does it include all required sections?"
- "Is every major claim backed by a number, date, or source?"
- "Is the executive summary within the target size limit?"
Quick quality check
Before accepting an eval, ask:
1. Would two agents likely score the same output the same way? 2. Can the skill game the eval without really improving? 3. Does the eval measure something the user actually cares about?
If any answer is bad, rewrite the eval.
Loop Charter Template
Use this template before mutating a skill. The point is to freeze the benchmark for the run so you can compare edits honestly.
# Loop Charter
## Goal
What outcome should improve?
## Current Baseline
What is the current best version and how good is it now?
## Mutable Artifact
Exactly one primary file or object to change in this loop.
## Fixed Evaluation Harness
- Validation script or checklist
- Representative prompts
- Binary pass/fail rubric
- Pass threshold or ratchet rule
## Constraints
- Max time / iterations / tool budget
- Supporting files allowed in scope
- Forbidden edits
- Output artifact requirements
## Tried Already
- Keep
- Revert
- WhyWhat to freeze
Freeze these before the first mutation:
- prompt set
- eval wording
- scoring method
- budget cap
- what counts as “in scope” edits
If any of those change, start a new comparison track instead of mixing results.
Suggested dry-run rubric for skills
Use 3-6 binary checks. Common categories: 1. Trigger precision 2. Trigger recall on core prompts 3. Route-out clarity 4. Step determinism 5. Artifact usefulness 6. Discovery-surface sync (only if the run changed positioning)
Keep-or-revert rule
Keep only if the new version beats the current baseline under the same harness. Revert ties unless the run explicitly prioritizes a secondary metric such as lower ambiguity or smaller artifact surface.
Common failure modes
- Changing the skill and the evaluator at the same time
- Turning the run into a broad rewrite with no attribution
- Using vague taste-based evals
- Benchmarking only best-case prompts
- Logging wins but not discarded experiments
Run Packets and Route-outs
Use this reference to keep skill-autoresearch small at the front door.
Packet chooser
1. ratchet-eligibility
Use before the loop expands.
Ask:
- does the baseline already satisfy the current bar?
- is the real problem only support-surface drift?
- is there concrete evidence that more mutation is worth the churn?
Deliverable:
- one of
no ratchet justified,support-sync, orcontinue into benchmark loop
2. benchmark-readiness
Use when the maintainer wants to improve a skill or workflow doc but the run still lacks:
- a stable prompt/scenario set
- binary evals
- a scope limit
- a clear primary mutable artifact
Deliverable:
- a short readiness brief listing what is missing before the ratchet can begin
3. charter-freeze
Use when the inputs exist but the run contract is still loose.
Deliverable:
loop-charter.mdwith goal, baseline, mutable artifact, fixed evaluation harness, constraints, and rejected directions
4. baseline-score
Use when the harness is frozen and the current version must be measured before edits.
Deliverable:
- baseline copy
- experiment
0 - summary of current failures
5. one-change-mutation
Use when the maintainer already knows the highest-value failure and wants one bounded edit.
Good candidates:
- weak trigger wording
- noisy boundary/route-out wording
- buried critical rule
- one missing support file that closes a clear gap
- front-door bloat that can move into a stable reference
Deliverable:
- one mutation
- rerun on the same harness
- keep or revert decision
6. support-sync
Use only after the main ratchet holds.
Candidate surfaces:
evals/evals.jsonSKILL.toon/ compact variantsskills.json/ aggregate discovery filesREADME.md, localized READMEs, setup prompts
Deliverable:
- synced discovery/support surfaces with the same boundary wording as the main artifact
7. final-report
Use when the run is complete or when no justified ratchet exists.
Deliverable:
- baseline to final score, or a clear
no ratchet justifiedresult - keep vs revert count
- top changes or the reason mutation was skipped
- remaining failures
- artifact paths
8. route-out
Use when the real request belongs elsewhere.
Route-outs that matter
Route to autoresearch
If the real workflow is:
program.mdtrain.py- immutable
prepare.py val_bpb- GPU-bound experiment loops
That is ML autoresearch, not repo-local skill ratcheting.
Route to hosted eval / observability platforms
If the user mainly needs:
- online traces
- production dashboards
- dataset management
- app or agent runtime observability
- hosted experiment comparison across deployed systems
Use tools like Promptfoo, LangSmith, Braintrust, or Weave instead of stretching this skill.
Route to skill-standardization
If the job is a direct spec-compliance cleanup, path/layout fix, or catalog-sync validation without needing an iterative benchmark loop.
Route to the domain skill itself
If the improvement target is already obvious and the user wants implementation now rather than a ratchet loop.
Secondary win rule
A smaller front door is a valid win only when:
- the same frozen harness still passes, and
- the moved detail remains reachable in support files.
Do not delete critical detail just to reduce line count.
Suggested log row
| Iteration | Target | Hypothesis | Change | Validation result | Keep/Revert | Notes |
|---|---|---|---|---|---|---|
| 1 | SKILL.md | moving packet detail to a reference will preserve clarity while shrinking the front door | add run-packets-and-route-outs.md; tighten SKILL.md | spec passes; route-out clarity improves | Keep | secondary win: smaller front door |
N:skill-autoresearch
D:Route reusable skill-improvement work into one bounded repo-local ratcheting packet: ratchet eligibility, benchmark readiness, loop charter freeze, baseline scoring, one-change mutation, support-surface sync, or final keep/revert report. Use when a SKILL.md, SOP, prompt, or workflow doc may need a frozen local benchmark and append-only experiment logs, or when you need to prove no ratchet is justified yet. Route GPU-bound `autoresearch` runs and hosted eval/observability platforms outward.
G:skill-autoresearch skill-optimization evals prompt-iteration benchmark mutation-loop ratcheting autoresearch
U[5]:
Improve a reusable repo artifact with a frozen local benchmark instead of ad hoc rewriting
Choose one packet before editing: readiness, charter, baseline, mutation, support-sync, final report, or route-out
Keep one primary mutable artifact and one meaningful change per iteration
Sync compact/docs/manifests only after the core ratchet holds
Preserve append-only keep/revert history in repo-visible artifacts
S[7]{n,action,details}:
1,ChoosePacket,Normalize the request into benchmark-readiness; charter-freeze; baseline-score; one-change-mutation; support-sync; final-report; or route-out
2,ReadTarget,Read the primary artifact and only the neighboring support/discovery surfaces that matter for this run
3,FreezeEvaluator,Write loop-charter.md with goal; baseline; fixed harness; scope; constraints; rejected directions
4,Baseline,Create a baseline copy and record experiment 0 on the frozen harness
5,MutateOnce,Make one meaningful change; rerun the same harness; keep only score-improving changes; revert ties or regressions unless the charter says otherwise
6,SyncSupport,Update evals; compact variants; manifests; README/setup surfaces only after the main ratchet is justified
7,Deliver,Report baseline-to-final delta; keep-vs-revert count; remaining failures; artifact paths
R[7]:
Do not start without representative prompts or scenarios plus binary evals
Do not change prompts; eval wording; or scoring rules mid-run
Keep one primary mutable artifact even if support files are later in scope
Change one meaningful thing at a time so the result stays attributable
Log both keeps and reverts
Route hosted eval/tracing work outward instead of stretching this skill
Apply the same frozen-harness rule when the target is skill-autoresearch itself
E[3]{desc,in,out}:
"Trigger repair","A reusable skill over-triggers and needs a bounded loop","packet chosen; evaluator frozen; one wording mutation kept or reverted by score"
"Benchmark drift repair","The maintainer keeps changing tests while editing the skill","run halted into readiness/charter packet until the evaluator is frozen or a new comparison track begins"
"Support-surface follow-up","The main skill improved and README/setup/compact wording may now be stale","support-sync happens only after the core ratchet is proven"