paper-claim-audit

Zero-context verification that every number, comparison, and scope claim in the paper matches raw result files. Uses a fresh cross-model reviewer with NO prior context to prevent confirmation bias. Use when user says "审查论文数据", "check paper claims", "verify numbers", "论文数字核对", or before submission to

By wanshuiyin · 365 installs

npx skills add wanshuiyin/auto-claude-code-research-in-sleep --skill paper-claim-audit

Source repository · Upstream listing

Paper Claim Audit: Zero Context Evidence Verification 🔒 Do not wrap this skill in /loop , /schedule , or CronCreate . It is verdict bearing — it judges paper to evidence fidelity with a deliberately zero context fresh reviewer. Re firing that verdict on a wall clock timer adds no new signal (it changes only when the paper or results change). Schedule the external wait that precedes it — paper draft ready → then audit once . See [ shared references/external cadence.md ](../shared references/external cadence.md). Verify that every claim in the paper matches raw evidence for: $ARGUMENTS Why This Exists The executor writes experiments AND writes the paper. It "knows" what the results should be. This creates confirmation bias: Rounding 84.7% up to 85.3% Reporting best seed instead of average Citing metrics from a different experiment config Claiming "improves by 15%" when the delta is actually 12.8% A fresh reviewer with zero prior context catches these because it has no expectations — it just compares paper text vs raw files. How This Differs From Other Audit Skills Skill Question it answers /experiment audit Is the experiment code honest? (fake GT, normalization fraud) /result to claim Does the data scientifically support this claim? /paper claim audit Does the paper report the data truthfully and precisely? Core Principle Zero context, fresh reviewer. The auditor receives ONLY: Paper .tex files (the claims) Raw result files (the evidence) It does NOT receive: ❌ EXPERIMENT LOG.md ❌ EXPERIMENT TRACKER.md ❌ AUTO REVIEW.md ❌ NARRATIVE REPORT.md ❌ Any executor summary or interpretation ❌ Any prior audit results ❌ Any conversation history This is stricter than reviewer independence — it's zero context evidence audit. Workflow Step 1: Collect Files (Executor — Claude) Locate paper and result files WITHOUT reading or interpreting them. Paper files (claims) — paths shown relative to the shell's working directory so you can find them with ls ; when writing them into audited input hashes , use paths relative to the paper dir (no paper/ prefix) per the "Submission Artifact Emission" section below: Result files (evidence): Exclude (no summaries, no interpretations): Step 2: Fresh Reviewer Audit (GPT 6 Astra — NEW thread, no reply) CRITICAL: Use mcp codex codex (new thread), NEVER mcp codex codex reply . Every run must be a fresh context. Step 3: Write Report (Executor — Claude) Parse the reviewer's response and write PAPER CLAIM AUDIT.md : Also write PAPER CLAIM AUDIT.json for machine consumption. Step 4: Print Summary When to Run 1. After /paper write — first check before improvement loop 2. After /auto paper improvement loop — recheck if improvement loop changed numbers 3. Before submission — final verification Integration with Other Skills Read by /auto paper improvement loop (if exists) Advisory, Never Blocking Same pattern as /experiment audit : PASS → continue normally WARN → print warning, continue, flag draft as "check numbers before submission" FAIL → print alert, continue, but do NOT mark as submission ready Render HTML view (auto, when RENDER HTML = true , default) After writing paper/PAPER CLAIM AUDIT.md and paper/PAPER CLAIM AUDIT.json , invoke /render html on the audit report so the user has a readable HTML view of the verdict + per claim breakdown: Uses full Codex review gate (audit class artifact — render fidelity check matches the skill's existing zero context cross model audit invariant). Output lands at paper/PAPER CLAIM AUDIT.html with embedded source SHA256 and a .review.json sidecar carrying the render verdict. Non blocking : if /render html fails (helper missing, Codex MCP unavailable, file write error), log the failure and treat the skill as complete — the JSON + MD verdict files are the canonical outputs; the HTML view is a convenience for human readers. Skip if RENDER HTML = false is set in the project's CLAUDE.md or passed as — render html: false . Key Rules Fresh thread EVERY run. Never use codex reply . Never carry context. Zero executor interpretation. Only file paths. No summaries. Only raw results. No EXPERIMENT LOG, no AUTO REVIEW, no human summaries. Rounding rule. Only standard rounding to displayed precision. 84.7% → 84.7% or 85% is OK. 84.7% → 85.3% is NOT OK. Cross model. Reviewer must be a different model family from executor. Review Tracing After each mcp codex codex or mcp codex codex reply reviewer call, save the trace following shared references/review tracing.md (Policy C — forensic; never silently skip). Use save trace.sh (resolved per the chain in shared references/integration contract.md §2) or write files directly to .aris/traces/<skill /<date run<NN / . Respect the trace: parameter (default: full ). Submission Artifact Emission This skill always writes paper/PAPER CLAIM AUDIT.json , regardless of caller or detector outcome. A detector negative run (paper has no numeric claims) emits verdict NOT APPLICABLE ; a paper with numeric claims but no raw results run emits BLOCKED . Silent skip is forbidden — paper writing Phase 6 and verify paper audits.sh both rely on this artifact existing at a predictable path. The artifact conforms to the schema in shared references/assurance contract.md : audited input hashes scope Hash the declared input set passed into this audit invocation — i.e. the exact .tex files and raw result / config files this run read — not a repo wide union and not the reviewer's self reported subset. If a caller passed only main.tex + a single result file, hash those two files and no others. The external verifier rehashes these entries; any mismatch flags STALE . Path convention (must match what verify paper audits.sh expects): keys are paths relative to the paper directory (the arg passed to the verifier) for in paper files — so main.tex , not paper/main.tex — and absolute paths for out of paper files such as external results/ dirs. The verifier resolves relative entries via os.path.join(paper dir, key) ; prefixing with paper/ produces paper/paper/main.tex and false fails as STALE. Verdict decision table Input state Verdict reason code example No numeric claims detected in paper NOT APPLICABLE no numeric claims Numeric claims detected, no raw result files found BLOCKED no raw evidence All claims reconcile to raw data PASS all numbers match Minor rounding drift only, no material mismatch WARN rounding drift Any material mismatch (wrong number, config mismatch) FAIL claim mismatch Reviewer invocation failed (network / malformed) ERROR reviewer error Thread independence Every invocation uses a fresh mcp codex codex thread. Never codex reply . Do not accept prior audit outputs (PROOF AUDIT, CITATION AUDIT, EXPERIMENT LOG, AUTO REVIEW summaries) as input to this audit — the fresh thread preserves reviewer independence per shared references/reviewer independence.md . Human readable sibling paper/PAPER CLAIM AUDIT.md is written alongside the JSON for readers. The JSON is authoritative for verify paper audits.sh ; the Markdown is for humans. The parent skill ( paper writing Phase 6) plus the verifier decide whether the verdict blocks finalization — this skill itself never blocks; it only emits.