diff --git a/skills/delegating/SKILL.md b/skills/delegating/SKILL.md index e4dd1f6..44c6ba0 100644 --- a/skills/delegating/SKILL.md +++ b/skills/delegating/SKILL.md @@ -44,6 +44,28 @@ An agent that has to ask a question has already cost more than it saved. So the Run it in the background and carry on. A brief good enough to run unattended is the same brief that makes the result reviewable. +# Choosing the model + +**The cheapest one that will get it right.** Not the cheapest one; the cheapest one that will get it +right, which is a different question and has to be asked per task. + +- **Haiku** — mechanical and high-volume with no judgement in it. A rename across forty call sites, a + JSON transform, moving a block of files to a new shape. +- **Sonnet** — the default, and what most of this work is. A feature whose design is settled and whose + brief names the files: translations, a form, tests for a rule already agreed, a migration over a list. +- **Opus** — when the work still contains a decision. Which usually means the brief is incomplete, so + the first move is to finish the brief rather than to spend more per token on writing it. + +## Cheapness is a property of the pair, not the model + +A cheap model on a vague brief is the most expensive option available: it returns something plausible, +you review it, you reject it, you write the brief you should have written, and you pay for the whole +round twice. The saving comes from the brief being good enough that a smaller model cannot go wrong — +so if you find yourself reaching for a bigger model to compensate for a thin brief, fix the brief. + +The other direction is real too, and cheaper to correct: a task that comes back wrong from Haiku goes to +Sonnet and costs one wasted run. Start low. + # Reviewing what comes back **Read the diff, not the summary.** The summary is written by the thing being reviewed. `git diff` is not.