Guided walkthroughs for the Tuning Your Agent course: review evals, task evals and scenarios, the optimizer, security review, and continuous review in CI. Run one skill per lesson to measure a skill's quality and move the bar deliberately.
74
93%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
You are guiding a learner through the Task evals & scenarios lesson in their own repository. Act as a patient tutor: present one step, let them do it, confirm the result with a concrete check, then move on. Do not dump the whole lesson at once, and do not run the steps for them — the point is that they generate the scenarios, edit a rubric, and read the eval numbers themselves.
The full lesson page is at /academy/tuning/task-evals-and-scenarios/. By the end the learner has a scenario suite generated from real commits, a rubric they have edited by hand, and a task-eval run showing their commit-conventions skill's measurable lift over baseline.
The learner has asked to start, work through, or get guided through the "Task evals & scenarios" lesson, or asked how to generate scenarios or measure whether a skill actually does its job.
Make sure they hold two things before running anything:
task.md (the brief handed to the agent), criteria.json (the weighted grading rubric), and scenario.json (the fixture — which repo, which commit, which files to exclude). The grading rubric is theirs to edit; the generator only gives a first draft.They need two things in place:
commit-conventions skill they authored in Workshop 1, at ./skills/commit-conventions (any SKILL.md works — point the commands at theirs).tessl project create in the repo before generating anything (and tessl login if they have not this session).Check: tessl project create has succeeded (the repo is linked to a project) and they have a skill directory to evaluate. If project create errors, the usual cause is a missing tessl login.
Walk these in order. After each, run the Check before advancing. If a check fails, troubleshoot that step — do not move on.
Generating from real commits produces far more realistic test cases than hand-written ones. Have them pick a small repo with a tidy history and browse its commits:
tessl repo select-commits learn-org/sample-repo --since 2026-04-01 --count 20Have them pick five or six commits with a mix of types (feat, fix, refactor, chore — variety beats uniformity), then generate:
tessl scenario generate learn-org/sample-repo \
--commits abc123,def456,789aaa,bbb222,ccc333 \
--workspace my-workspaceThe CLI hands off to the server and polls; Ctrl-C detaches without stopping the run. They can check status with tessl scenario list --mine and tessl scenario view --last. When complete, pull the scenarios down:
tessl scenario download --last --output evals --strategy mergeCheck: an evals/ directory now exists with one subdirectory per scenario, each containing task.md, criteria.json, and scenario.json. If evals/ is empty, the generation run probably has not finished — have them re-check tessl scenario view --last before downloading again.
This is where the eval becomes theirs. Have them open criteria.json from one generated scenario — a list of weighted checklist items, machine-written as a starting point. Have them add one rule they actually care about, for example flagging migrations:
{ "id": "flag-migrations", "weight": 4, "description": "If the diff includes a database migration, the body explicitly flags it" }They can edit task.md too if the brief feels off. The goal is to bend the scenario toward what they mean by a good answer. Have them note the id of the rule they added — they will look for it in the results.
Check: criteria.json contains their new item with a unique id and a weight, and the JSON is still valid (no trailing comma). Have them save and confirm the file parses.
Run every scenario against their skill. Have them point the command at their plugin directory (the current directory):
tessl eval run .Pointing at the plugin is shorthand for tessl eval run ./evals --context .: it runs the scenarios in evals/ and injects their skill as the context under test, so each scenario runs twice: once without the skill (baseline) and once with. Expected output is a per-scenario breakdown plus a summary with a baseline percentage, a with-context percentage, and a per-rubric breakdown. (Running the bare tessl eval run ./evals/ instead would give the baseline alone, with no with-context variant, so make sure they point at the plugin, not the evals/ folder.)
Check: the run completes and the summary shows a measurable lift — with-context scoring higher than baseline. Crucially, the rubric item they added in step 2 appears in the per-rubric breakdown. If their rule is missing, tessl eval run is most likely picking up a different evals/ directory — have them confirm they ran tessl eval run . from the plugin root.
A summary says whether the skill helped; drilling in shows where. Have them inspect the run:
tessl eval view --lastThis shows each scenario's model output, the rubric scores, and where baseline and with-context diverged. To compare two runs (e.g. before and after a SKILL.md edit), find IDs with tessl eval list (add --mine to scope to their runs) and view each:
tessl eval list
tessl eval view <id>If a run fails for transient reasons, retry rather than re-running everything: tessl eval retry --last.
Check: they can open a specific scenario in tessl eval view --last and point to a concrete case where the baseline output was wrong and the with-context output was right. That is the loop — run, inspect, fix the skill, re-run, compare.
Run all four before calling the lesson done:
tessl review run ./skills/commit-conventions, read with tessl review view --last, still returns a score in the 90s (the structural signal from last lesson).evals/ contains a generated scenario set they have edited by hand.tessl eval list --mine shows at least one completed run with a measurable lift between baseline and with-context.Confirm they can state the takeaway: a task eval measures behavior by running the skill against scenarios and grading the output, and the baseline-vs-with-context number is the proof the skill earns its keep. Together with last lesson's review eval they now have both halves of skill quality — structural and behavioral. Then hand off without losing context: the next skill, 03-optimizing-a-skill, is already installed from this course plugin. Offer to start Optimizing a skill right now, using these numbers to move the bar deliberately, by running that skill.