
Citation Audit
Audit an existing document's claims against its citations and report every mismatch: a reviewer pairs each cited claim with the citation it depends on and locks the audit rubric, a researcher opens each cited source and verifies the claim is actually supported, and a reviewer compiles a per-citation audit report with verdicts and fixes. The ordering matters because auditing without first pairing claims to citations misses unsupported claims, and a report without a fixed verdict scale is inconsistent; building the claim-citation pairing and rubric first makes the audit exhaustive and the report actionable. Use this for checking that citations support their claims, source-verification of a draft, catching citation drift or unsupported statements, and 'do these references actually back up the text' reviews.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the auditreviewerentry
pair each cited claim to its citation + lock the rubric
Show working prompt
1. Read the target document and build a pairing table in notes/scope.md: for every inline citation, record a pair id (P1, P2, ...), the exact claim sentence it supports, and the citation/reference it points to. 2. Also flag every factual claim that has NO citation as a candidate (these are audit findings too). 3. Lock the verdict rubric: Supported (source clearly backs the claim), Partially-Supported (source backs part / overstates), Not-Supported (source does not back it), Source-Missing/Dead (citation cannot be located), Uncited-Claim. 4. Write an acceptance-criteria checklist (e.g. 'every inline citation is paired and audited', 'uncited factual claims are listed', 'each pair gets exactly one verdict from the rubric', 'each Not-Supported/Partial verdict quotes the source to justify it', 'a fix is proposed per problem'). 5. Record decisions. Call write_task_note with the pairing table + rubric + checklist; write the same to notes/scope.md.
- Verify each citationresearcher
open each source, confirm it backs the paired claim
Show working prompt
1. For each pair id, locate and open the cited source and read the relevant part. 2. Log to notes/verify.md: the pair id, whether the source was reachable, the exact passage/figure the claim relies on (quote it), and a proposed verdict from the locked rubric with a one-line reason. 3. Be strict: a source on the right topic that does not actually state the specific claim is Not-Supported, not Supported. 4. For dead or unfindable citations, record Source-Missing/Dead and what you searched. 5. For each problem, draft a concrete fix (correct the claim, swap the source, or add a citation). Good looks like a verify log where every pair's verdict is justified by a quote. Do not write the final report yet.
- Compile the audit reportreviewer
per-citation verdicts, justifying quotes, and fixes
Show working prompt
1. Write audit.md with a summary (counts per verdict, and the count of uncited claims) then one entry per pair id: the claim, the citation, the verdict from the rubric, the justifying quote from the source, and the proposed fix for any non-Supported verdict. 2. Add a dedicated 'Uncited claims' section listing factual statements that lack a citation. 3. Use ONLY rubric verdicts and base each strictly on notes/verify.md. 4. Make it actionable — an editor should be able to apply every fix directly. 5. On a loop-back, fix only the named gaps. 6. Call write_task_note with the report path and which criteria now pass.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Open audit.md and check EACH criterion PASS/FAIL: (1) every citation paired in notes/scope.md has an audited entry — none skipped; (2) an uncited-claims section lists statements lacking citations; (3) each entry has exactly one rubric verdict; (4) every Not-Supported/Partially-Supported/Dead verdict is justified by a quoted source passage (spot-check 3 against notes/verify.md); (5) each problem has a concrete, applicable fix; (6) the summary counts match the entries. A report that marks a topically-related-but-non-supporting source as Supported, or skips a citation, FAILS. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "report" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- audit the citations
- check citations support the claims
- verify the references in this doc
- citation accuracy check
- are these sources legit
Source
View this craftbook on GitHub · MIT license