Skip to content

Delegation Fit

Ratified

Some tasks cost more to review than to write.

  • Before prompting, decide per task: delegate, pair, or write by hand
  • Keep decisions that belong to a human with the human; decide first, then delegate the rest
  • Brief delegated work in one message with explicit non-goals
  • Everyday interactive work, before the first prompt
  • A feature with parts of different difficulty
  • Output from past tasks of this kind needed heavy correction
  • Multi-hour or unattended runs; use Spec, Then Build
  • Pure exploration, where the model’s interpretation is the point

For delegating

  • The outcome is checkable by a command
  • The repo has an exemplar to mirror
  • Boilerplate, broad search, or mechanical change
  • Reversible

Against delegating

  • You already hold the full solution and typing is the only cost
  • No check exists, so you become the check (Verification Loops)
  • Tacit design judgment that is hard to write down
  • Review would take longer than writing

These signals are judgment calls and shift as models change. Reassess them on the Deliberate Currency cadence.

  • Architecture choices
  • Ambiguous requirements
  • Anything Human in the Loop lists under low confidence
  • Decide these first; then delegate the work they unblock
  • The model explores, drafts tests, or lists edge cases
  • The human writes the core logic
  • Useful when the core needs tacit judgment but the edges are mechanical

Extends the problem prompt in Problem Before Prescription for small delegated tasks. It is a small-task subset of the Spec Fields in Spec, Then Build.

  • Goal: the problem, not the fix
  • Constraints: what must not change
  • Non-goals: what not to touch or start (the spec’s “Out of scope”)
  • Mirror: an existing file or function to follow
  • Done: the command that proves it
  • Ask: state assumptions or ask questions before editing

Prior art: Claude Code best practices recommend pointing the model at an existing pattern in the codebase to follow.

  • Illustrative case (composite, not a transcript)
  • Feature: add CSV export to the orders report

Split

Part Mode Why
Export format and column contract with the finance team By hand Ambiguous requirement; a human decision
Streaming large result sets without loading all rows Pair Model drafts edge-case tests; human writes the streaming core
Handler, route, and auth wiring Delegate GET /reports/{id}/pdf is an exemplar; tests check it

Vague prompt

  • “Add CSV export to the orders report”
  • Outcome: one large diff; invented columns, a new CSV library; five correction turns

Brief

  • Goal: finance needs the orders report as CSV
  • Constraints: existing report API unchanged; columns exactly as in docs/orders-export.md
  • Non-goals: no streaming changes; no new dependencies
  • Mirror: follow GET /reports/{id}/pdf for route, auth, and tests
  • Done: make test passes, including new test_orders_csv_columns
  • Ask: list assumptions before editing
  • Outcome: one question about date format, answered; one correction, a header casing
  • Minutes (illustrative): both rows delegate the same slice, the CSV route, column mapping, and its test; by hand is that same slice typed directly
Path Minutes Against 30 by hand
Vague prompt 1 prompt + 44 review and correction = 45 15 worse
Brief 7 brief + 9 review = 16 14 better
  • Delegating the architecture decision, then correcting the architecture in review
  • Delegating work you could type faster than you could brief
  • A brief with no non-goals, so the diff grows past the task
  • Fit decided once and never revisited as models change