promptdojo_

Every number has an address — sample checks and the traceable memo — step 6 of 7

Write the audit a hostile CFO would run — before she does.

audit_memo(claims, results) takes the memo's claims (each with text, ref, value) and the verified RESULTS store. For each claim, in order, decide exactly one verdict:

  1. ref is NoneUNTRACED (a number with no address)
  2. ref not in resultsDEAD REF (cites a result that doesn't exist)
  3. results[ref] != valueMISMATCH (the memo drifted from the data)
  4. otherwise → TRACED

Print each as {verdict:<9} {text}, then the summary line: with n failing claims (anything not TRACED) print n claim(s) fail — memo does not ship, else every number traces — memo ships.

Expected output:

TRACED    July conversion was 15.1% overall
TRACED    Paid converts at 30.0%
UNTRACED  Partner is our fastest-growing channel
MISMATCH  Partner sample is 400 visits
DEAD REF  Sunsetting trial adds $40K MRR
3 claim(s) fail — memo does not ship

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