Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Eval-driven skill tuning. Given a task and an LLM-judge rubric, iteratively rewrites a SKILL.md until a downstream executor agent performs well against the judge. Low-code: all evaluation is LLM-as-judge, not deterministic Python.
.claude/skills/clawbio-clawpathy-autoresearch/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -46% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 78% | 0% |
Eval-driven skill development. The system iteratively rewrites a SKILL.md so a downstream executor agent performs better at a task class, as judged by an LLM against a paper/task-specific rubric.
propose (sonnet) → execute (sonnet, shell) → judge (opus, rubric)
↑ │
└──────── feedback: verdict + recommended edits ────────┘a per-task rubric. Lower is better; 0 = perfect.
revert. Stop on target_score or on early_stop_n consecutive regressions.
You (the agent reading this) don't run the loop yourself. You dispatch subagents to build the workspace, then hand off to the Python loop.
Dispatch a subagent with prompts/scout.md to research the paper/task. Report key findings to the user in a few lines.
Have a conversation. Ask ONE question at a time, multiple-choice where helpful. Agree on:
Present a summary and get approval.
Dispatch a builder subagent with prompts/builder.md and the agreed scope. It writes:
task.jsonrubric.md — the authoritative scoring rubric for the LLM judgereference/ (optional; judge-only)skill/SKILL.md — seedValidate:
pythonfrom skills.clawpathy_autoresearch import validate_workspace print(validate_workspace(Path("WORKSPACE"))) # [] means valid
bashpython -m skills.clawpathy_autoresearch WORKSPACE_DIR # or with custom models: python -m skills.clawpathy_autoresearch WORKSPACE_DIR \ --proposer-model sonnet --executor-model sonnet --judge-model opus
The loop streams progress to WORKSPACE/history.jsonl, snapshots every iteration's skill to WORKSPACE/snapshots/iter-NNN.md, and writes the executor's full transcript to WORKSPACE/executor_runs/iter-NNN.log.
workspace/
task.json # task metadata + loop knobs
rubric.md # LLM-judge rubric (the heart of the system)
reference/ # optional ground truth, judge-only
skill/SKILL.md # iterated by the loop
output/ # executor outputs (cleared each iter)
executor_runs/iter-NNN.log # transcripts (judge reads these)
snapshots/iter-NNN.md # per-iter SKILL.md snapshots
history.jsonl # one row per iter: score, kept, verdictthrough judge.md + opus. This keeps the system low-code and lets the rubric carry paper-specific nuance without adding code.
methods?" above "did the numbers match?". Ground-truth match is a signal, not the objective — the goal is better SKILL.md files.
reference/ is judge-only. The executorprompt says not to read it, and the judge penalises leakage.
both enforce this. The executor must derive results by running methods.
floor. Later iters that tie or regress revert to the best.
tunes nothing. Get the user to agree on methodology expectations.
They rewarded API-fetching, not methodology. The judge is the scorer.
the judge is calibrated wrong, fix the rubric, not the history.
Other measured skills in the registry, with their headline benchmark lift.