promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_

Name the narrow job — step 3 of 3

Write lint_specialist_job(job) — the check that decides whether a job card is narrow enough to train. Walk the fields in this order and return the first failure string (do not collect a list):

  1. job["sentence"] empty or more than 24 words → "hold: job sentence must be one short sentence"
  2. set(job["labels"]) is not exactly {"flake", "product-bug", "needs-human"}"hold: labels must be flake, product-bug, needs-human"
  3. fewer than 3 items in job["acceptance"]"hold: need at least 3 acceptance tests"
  4. job.get("knowledge_changing") is truthy → "hold: changing facts belong in RAG"
  5. otherwise → "pass"

The starter already prints four cards. Expected output:

good              pass
long-sentence     hold: job sentence must be one short sentence
extra-label       hold: labels must be flake, product-bug, needs-human
handbook-facts    hold: changing facts belong in RAG

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