Skip to main content

Setup: Eval Data and Grading

Before you run fastskill optimize, you need two data files:
  1. Suite CSV — the eval cases the optimizer learns from.
  2. Checks TOML — the grading rules that score each response. (Optional but strongly recommended.)

1. Create the suite CSV

The suite is a CSV file with one row per eval case. Required columns: Example suite.csv:

Train vs test split

The optimizer trains only on train rows. The test split is held out and used for gating final epoch updates. This prevents the optimizer from over-fitting to the exact prompts it learned from. Rule: You must have at least one train case (the selection set). If the suite has zero training cases, fastskill optimize run will exit with error SKILLOPT_NO_SELECTION_CASES.

Tips for writing cases

  • Keep prompts realistic — use the same phrasing a real user would.
  • Include both positive cases (should_trigger: true) and negative cases (should_trigger: false). A mix prevents the optimizer from making the skill trigger on everything.
  • Aim for 20–50 training cases for a focused skill, more for broader skills.
  • Assign 10–20% of cases to test for a meaningful hold-out gate.

2. Create the checks TOML (grading)

Checks define what a “pass” looks like for each eval response. Without checks, the optimizer uses only should_trigger match as the signal, which is a weak grading signal. Example checks.toml:
Check types: Checks are scored and the weighted sum determines the per-case pass rate used by the gate.

3. Directory layout

We recommend this layout to keep things organized:

Next: configure the run

Once you have your suite and checks files ready, write the optimize.toml config and start the run.