adversarial-case-build…
Synthesize the single strongest EVIDENCE-BOUND reviewer case to reject a paper, built ONLY from the evidence ledger (claims.json)…
Citation-integrity forensics: is every reference real, correctly attributed, and used in a context the cited work actually supports? Catches hallucinated references (no paper at the claimed arXiv id/DOI/venue, fabricated authors/year), metadata drift (wrong year/venue/version),
$ npx -y skills add wanshuiyin/Anti-Autoresearch --skill citation-forensics --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/citation-forensicsContext preview
The summary Claude sees to decide when to auto-load this skill.
Citation-integrity forensics: is every reference real, correctly attributed, and used in a context the cited work actually supports? Catches hallucinated references (no paper at the claimed arXiv id/DOI/venue, fabricated authors/year), metadata drift (wrong year/venue/version),
name: citation-forensics description: "Citation-integrity forensics: is every reference real, correctly attributed, and used in a context the cited work actually supports? Catches hallucinated references (no paper at the claimed arXiv id/DOI/venue, fabricated authors/year), metadata drift (wrong year/venue/version), and wrong-context citations (a real paper cited for a claim it never makes — or argues against). A hot zone for machine-generated papers. Decidable at L0 (text + canonical sources). Span-anchored to the evidence ledger (claims.json); the executor gathers canonical facts (DBLP / arXiv / DOI), then one FRESH cross-model thread per cited key proposes findings; reviewer != adjudicator. Emits citation-forensics.findings.json; NEVER computes the verdict. Triggers: \"citation forensics\", \"check the references\", \"hallucinated citations\", \"wrong-context citation\", \"verify references\", \"引用核对\"." argument-hint: [paper-dir | claims.json] allowed-tools: Bash(*), Read, Write, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex, mcp__mcp-dblp__search, mcp__mcp-dblp__fuzzy_title_search, mcp__mcp-dblp__get_venue_info
Audit citation integrity for: **$ARGUMENTS** (requires `claims.json` from `/evidence-ledger`; reasons over its `type:"citation"` claims). Emit span-anchored `citation-forensics.findings.json`. This skill computes **no verdict**.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is > verdict-bearing input — it proposes the citation findings the deterministic > adjudicator turns into the report. Re-firing it on a wall-clock timer adds no > signal: its output changes only when the **paper / ledger / bibliography** > changes, not with the clock, and each run spends real cross-model + lookup budget > per cited key. Schedule the *external wait that precedes it* — bibliography > finalized → ledger rebuilt → audit **once**. (Mirrors ARIS's external-cadence > doctrine.)
> Adapted from ARIS `citation-audit`, re-wired onto this repo's evidence ledger and > the reviewer≠adjudicator contract, and reframed from "audit + **rewrite** the bib" > to **"emit ledger-anchored findings, never touch the paper."** Three layers, ported > verbatim: **existence → metadata → context.** Following the repo's > `baseline-comparison-audit` pattern, the **executor** gathers the canonical facts > (DBLP / arXiv / DOI) as neutral evidence; a **fresh cross-model reviewer** judges > existence + metadata + context over those facts. The reviewer never grades — the > deterministic adjudicator does.
An autoresearch pipeline (or a rushed human) generates a bibliography in a separate pass from the prose and never reconciles the two. The failure modes are **not** wildly fake entries — those are easy to spot. The dangerous ones are:
authors, title, or year are fabricated. (`HP-CITE-HALLUC`, critical)
preprint number used after the work appeared at CVPR/ICML/NeurIPS, or vice versa), or a v1 title silently merged with a v3 retitle. (`HP-CITE-HALLUC`, major)
make, or argues *against* (e.g. citing a self-refinement paper to support "self-feedback yields correlated errors" when the cited paper argues the opposite). (`HP-CITE-CONTEXT`, major)
None of this needs the code, the data, or a re-run — only the citing sentence (from the ledger) checked against the cited work's public record (DBLP / arXiv / publisher). That is why this layer is **L0-decidable** (observability-wise — no repo or result files needed) and independently defensible. (The citing-sentence *claims* it anchors to still enter the ledger only via the LaTeX path; a pure PDF-text ledger yields none — see Step 0.)
**Ledger-anchored, span-verified, canonical-fact-checked-or-handed-off, reviewer≠adjudicator, detect-only.**
1. The cite keys and the **citing sentences** come from the deterministic ledger (`claims.json`, `type:"citation"`), never from re-reading the PDF. 2. The executor assembles a neutral per-key **dossier** (citing spans + the claimed `.bib` metadata) and gathers a reproducible **resolution snapshot** of the canonical record (DBLP / arXiv / DOI). It gathers **facts, never a judgment** — whether a mismatch is fabrication, a typo, or a preprint→venue migration is the reviewer's call. 3. A **fresh cross-model reviewer** (gpt-5.6-sol xhigh, one thread per cited key) *proposes* findings, judging existence + metadata + context over those facts. 4. **Every above-info finding cites a ledger `claim_id` + a verbatim span** of the **citing sentence** (`references/integrity-forensics-contract.md` rules 1–2). The bib entry, the canonical record, and any URL live in the finding's `description`, never as the anchor span. 5. The model **proposes**; `tools/adjudicate_findings.py` **decides** (`references/reviewer-independence.md` Layer 2). This skill emits findings only. 6. **Fact-or-hand-off honesty.** Existence/metadata MUST be settled against a real source (snapshot record + URL in `description`). Cannot settle → `verdict_local: needs_external_check` — **never** a guessed "fabricated". A false hallucination flag is a serious error.
> **The anchor is the citing sentence, not the bib line.** `tools/build_claim_ledger.py` > puts `type:"citation"` claims in the ledger whose `text_span` is the *sentence that > contains `\cite{key}`* and whose `refs` are the cite keys — it does **not** parse > the `.bib`. So a citation finding always anchors to that citing sentence (quote a > verbatim substring of it, e.g. `\cite{smith2024bar}` or the surrounding phrase). > What the `.bib` claims and what DBLP/arXiv actually return go i
Synthesize the single strongest EVIDENCE-BOUND reviewer case to reject a paper, built ONLY from the evidence ledger (claims.json)…
Transparent, itemized impressions of AI-generated WRITING STYLE — the repo's ONLY non-integrity track. Two passes: a…
Audit whether a paper's baseline comparisons are COMPLETE, FAIR, and SIGNIFICANT: a required recent SOTA baseline is missing…
Flagship intra-paper self-consistency forensics: does the paper contradict ITSELF across abstract/intro/tables/body/appendix, and…
Audit whether a paper's EVALUATION DESIGN actually measures what it claims and whether its reporting is complete — the validity…
Build the deterministic evidence ledger (artifact_manifest.json + claims.json) that every other Anti-Autoresearch auditor reads.…