CoachDiscoverMapCompareSavedAI LearningAI WeeklyAbout
← Library
03 · Advanced

Evals & Auto-Optimization

Let the AI score your skill against known-good inputs, propose a better version, and iterate until the score holds. The skill improves itself.

Takeaway 1
An eval is a measurable test you can rerun. The AI uses the score to know if a change actually helped.
Takeaway 2
The auto-research skill automates the loop: baseline, mutate, rerun, keep what wins.
Takeaway 3
Always save improved skills as a new version (V2) so the old one is preserved as a rollback.

What an Eval Actually Does

An eval — short for evaluation — runs your skill against a fixed set of inputs and scores each output against measurable criteria. It turns "is this skill any good?" into a number. With a number, you can see whether a change helped, hurt, or did nothing.

Evals replace vibes with measurement. Without a score, every "improvement" is a guess. With one, you can compare baseline to mutation in a single pane.

In the demo, the author uses a small library of three real YouTube transcripts as inputs. The skill under test — a YouTube description generator — runs against each transcript. Each output is graded on hook quality, timestamps, tone, structure, and hallucinations. Five tests per criterion, scored pass/fail.

"An eval is a unit test." Not quite — unit tests check exact outputs. Evals check qualities: does the hook create curiosity? Is the tone right? Does it hallucinate facts? They use the model itself as the judge.

The Auto-Research Skill

The auto-research skill (built by Marcus on the SharePoint AI team) is a skill that improves other skills. You point it at a target skill, give it inputs to test against, and define what "good" looks like. It runs the baseline, proposes a mutation, reruns, and keeps iterating until the score plateaus or hits your target.

The auto-research skill is a meta-skill. It treats your other skills as code under optimization — running, measuring, mutating, and rerunning until it converges.

You invoke it with one big prompt that names the target skill, the input set, the criteria, and an output convention (e.g. "save the improved version as V2"). Then you watch it work. The model is both the engineer who edits the skill and the judge who scores the result.

Writing Good Eval Criteria

Each criterion is a yes/no question with a defined pass/fail bar. For the description skill the author used: "Do the first one to two sentences create curiosity or clearly state value?" Pass = yes. Fail = no. Specific enough that even the model judging can answer it the same way twice.

A good criterion is a short question with an obvious failure mode. Vague criteria like "is it good?" produce vague scores. Tight criteria produce reliable scores.

The author cheats — productively — by asking Copilot to draft an initial criteria list from a sample of inputs. The model knows what these transcripts look like, so it can suggest dimensions worth grading. You edit and approve, then hand it to the eval skill.

"Hand-write every eval criterion from scratch." You'll undershoot. Use the model to draft criteria first, then trim. It catches dimensions you wouldn't think of.

Baseline → Mutate → Rerun

The loop has three steps. Baseline: run the skill on every input, score each output, record the total. Mutate: based on the failing scores, the skill edits its own prompt — rewording instructions, tightening anti-hallucination guardrails, restructuring sections. Rerun: same inputs, same criteria, fresh score.

In the demo, the baseline scored 85%. The first mutation lifted it to 100% on the first four inputs — but a follow-up rerun on a larger set exposed a remaining hallucination issue. The skill mutated again, reran, and finally held the improvement across the full set. Final lift: 15 percentage points.

One pass isn't enough. A good auto-research run loops until the score holds across an expanded input set — otherwise you're just memorising the first four examples.

Skill Versioning — Why V2 Matters

Always tell the auto-research skill to save its improved output as a new version (V2, V3 …) rather than overwriting the original. The original is your rollback. If V2 turns out to regress on a real-world input the eval set didn't catch, you can swap back in seconds.

Treat skill files like code. Version them. Diff them. Keep the original until you've used the new one in production for long enough to trust it.

Naming convention: youtube-description.md stays. The optimizer writes youtube-description-v2.md. You compare side by side, promote V2 when you're confident, archive the original.

"The optimizer made it better, so just overwrite." Don't. Real-world inputs always have edge cases the eval set missed. Keep the previous version until V2 has earned trust.
Flashcards — Advanced
03 · Advanced
Eval
tap to reveal →
A measurable test that runs a skill against fixed inputs and scores each output against defined criteria. Turns subjective quality into a number you can compare.
← tap to flip back
03 · Advanced
Auto-Research Skill
tap to reveal →
A meta-skill that improves other skills by running baseline evals, mutating the target skill, rerunning evals, and keeping the version that scores best.
← tap to flip back
03 · Advanced
Eval Criterion
tap to reveal →
A short, specific yes/no question used to grade one dimension of a skill's output — hook quality, hallucination, tone, structure, and so on.
← tap to flip back
03 · Advanced
Baseline Score
tap to reveal →
The eval score of a skill before any optimization. Every mutation is judged against this number — improvement is the lift over baseline.
← tap to flip back
03 · Advanced
Skill Mutation
tap to reveal →
A single proposed change to a skill's instructions — usually a reworded section or new guardrail — generated by the auto-research loop in response to failing eval criteria.
← tap to flip back
03 · Advanced
Skill Versioning (V2)
tap to reveal →
Saving an improved skill under a new name (V2, V3 …) instead of overwriting the original. Preserves rollback and lets you A/B the versions on live work.
← tap to flip back