promptdojo_

The cite-check gate — every authority gets opened — step 6 of 7

Write verify_authorities(draft, citator) — the full three-check pass, returning a list of (case, verdict) tuples in draft order.

Verdict rules, checked in exactly this priority:

  1. case not in citator"STRIKE — not found"
  2. draft quote not a key of the entry's "quotes" dict → "STRIKE — quote not in source"
  3. entry "treatment" is "negative""STRIKE — negative treatment"
  4. quotes[quote] differs from the draft's "pin""FIX — wrong pinpoint"
  5. otherwise → "KEEP"

The report loop (provided) prints each verdict, then a tally: keeps / strikes / fixes, and FILE only when every verdict is KEEP — otherwise DO NOT FILE.

Expected output:

Kestrel Fabrication v. Orr Logistics: KEEP
Novak v. Brightline Storage: STRIKE — not found
Quist v. Delgado Partners: STRIKE — quote not in source
Draeger v. Pemberton Trust: STRIKE — negative treatment
Whitfield v. Amara Health: FIX — wrong pinpoint
1 keep / 3 strike / 1 fix — DO NOT FILE

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