Extract candidate claims. Deterministic work belongs to the script — do
not eyeball the paper for claims:
python3 scripts/claim_audit.py path/to/main.tex --json /tmp/claims.json
It scans the prose (skipping math, comments, tables) for sentences carrying
novelty markers ("first", "novel", "we are the only", "unlike prior
work"), superiority markers ("outperforms", "state-of-the-art", "best",
"superior"), magnitude/result markers ("significantly", "X% improvement",
"Nx faster", "substantially"), and generalization markers ("always",
"in all cases", "guarantees"). It also pulls every numeric token in the
prose and every numeric cell in the tables, so you can cross-check.
Each candidate gets a type, the sentence, and a file:line location.
Useful variants:
--type novelty (or superiority, result, generalization) — focus one
class of claim.
--numbers — emit only the prose-number vs. table-number cross-check list
(for the "do my results match my tables?" question).
--context N — include N sentences of surrounding text per claim.
--min-confidence high — only the strongest-signal candidates (fewer false
positives) when the paper is large.
Exit codes: 0 no candidate claims found (rare — usually means the file
parsed but is near-empty; check the input), 2 candidate claims were found
(the normal case — they need author triage, not a "problem"), 1
operational failure (unreadable file, bad arguments). The script finds
claims; it does not judge them — a nonzero 2 is the expected, healthy
result, not a failure.