Skip to main content
A build takes a brief. The brief says what to build, how success is measured, where you start, where you want to end, what must never happen, and how much to spend. The judge reads it whole: every experiment is scored against it, and the campaign stops when the objective reads as met.
examples/churn-first-build/kapso-brief.md

What each line does

A line starts with its name; indented lines continue it, and a blank line between two lines of the same field is a paragraph break. Rules and Experience take - items. Budget takes name=value tokens. An unknown or repeated name, a missing objective, or a line that belongs to no field is refused with its line number, never guessed at. The full grammar is in the brief format reference.

A sentence is a brief too

kapso build --goal "..." and build("...") take a sentence and make a brief with only an objective. Use it for a quick run; use the file when the task has a measurement, a baseline or rules, which is most tasks worth an hour of experiments.

Three cases, by what you have

  • An evaluator. Run it once for the baseline, put the metric and the target in the brief, pass the evaluator with --evaluation. It is protected: a candidate that edits it is rejected and unscored.
  • A success criterion, no evaluator. Write the protocol under Measured by: the data, the split, the seed, the metric and how it is printed. The campaign’s first node builds the evaluator from it, the judge checks it is fair, and from then on it is protected like one you wrote. See Evaluation.
  • Nothing yet. Write the objective and the best measurement you can name, and Target as maximise within budget. The campaign measures first; the first result replaces unknown in Baseline.

Rules, not methods

Rules go in the brief; methods do not. The judge holds every candidate to a rule for the whole campaign, so “the evaluator is never modified” and “no fitting on the hold-out” belong there. “Use gradient boosting” would be frozen the same way, and the point of a campaign is to find out whether something else does better.

Targets with headroom

A target the data cannot reach ends in max_iterations, not in a result. When you know the ceiling, leave room below it; when you do not, say in the brief that the target is proposed, and read the first measurement before raising it.

What the judge sees

The whole brief, rendered as the text above, becomes the campaign’s goal: the judge scores every candidate against it and decides when to stop, and the checkpoint fingerprints those exact bytes so a resume continues the same brief. Nothing is clipped on the way, whatever its length.

Evaluation

Provided, proposed and versioned evaluators

Run and watch

Launch the build and follow it

Brief format

The grammar, line by line

Your first build

The churn example, end to end
Related pages: Evaluation · Run and watch · Brief format · Your first build Kapso is an open-source framework by Leeroo that builds software toward measurable goals through experiment campaigns. Source code: github.com/Leeroo-AI/kapso · Install: pip install leeroo-kapso · Every page as plain text: llms.txt.