promptdojo_

The spec is the build — tickets an AI can execute without you in the room — step 8 of 8

Checkpoint

One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.

Checkpoint: the triage router — every ticket lands in one of three lanes before a builder touches it.

Write route_ticket(spec) returning (lane, reasons):

  1. Lint first. Run the lesson's lint rules (owner → acceptance → vague words → scope fence, same reason strings as the last step). Any reasons → lane "spec-first", with those reasons.
  2. Then the frontier. If the spec's ground_truth field is missing or falsy — no checkable way to verify the output — lane is "pair-review", reasons [].
  3. Otherwise lane is "delegate", reasons [].

Four tickets run. Expected output:

DS-501: delegate
DS-502: spec-first — A1 vague: robust
DS-503: pair-review
DS-504: spec-first — no owner

full-screen editor opens — close anytime to keep reading.