citation-receipts
Systematic per-citation verification protocol for academic writing. MUST be used whenever writing content that cites sources — papers, blog posts, SOTAs, or…
Acquire PDFs for bibliographic references via a strict 8-source cascade (Crossref OA → arXiv → OpenAlex → Unpaywall → HAL → CORE → archive.org → WebSearch queue; optionally Sci-Hub + Anna's Archive, plus Anna's via a windowed browser, in opt-in mode). Each acquired PDF is
$ npx -y skills add roomi-fields/paper-trail --skill pdf-cascade --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pdf-cascadeContext preview
The summary Claude sees to decide when to auto-load this skill.
Acquire PDFs for bibliographic references via a strict 8-source cascade (Crossref OA → arXiv → OpenAlex → Unpaywall → HAL → CORE → archive.org → WebSearch queue; optionally Sci-Hub + Anna's Archive, plus Anna's via a windowed browser, in opt-in mode). Each acquired PDF is
name: pdf-cascade description: > Acquire PDFs for bibliographic references via a strict 8-source cascade (Crossref OA → arXiv → OpenAlex → Unpaywall → HAL → CORE → archive.org → WebSearch queue; optionally Sci-Hub + Anna's Archive, plus Anna's via a windowed browser, in opt-in mode). Each acquired PDF is validated against expected author/title/year (page 1 anti-homonymy) before being accepted. Trigger this skill whenever the user wants to download a PDF for a reference, fill a cascade, retry an acquisition, or push a `candidate`/`uid_resolved` ref forward in the FSM. Use also for `/paper-trail:cascade <slug>` and `/paper-trail:reactivate-ocr`. Triggers on French and English phrases: "télécharge le PDF", "lance la cascade", "acquérir les sources", "DL ce papier", "passer en pdf_acquired", "valider page 1", "reprise OCR", "download this paper", "acquire PDFs", "run cascade", "retry acquisition", "advance candidates". The skill never decides whether a citation is truthful — that is the curator's role (sota-auditor skill). It only executes the technical state transitions of the worker B.
Wraps the paper-trail worker B's acquisition cascade. Given a single reference slug or a state filter, it advances the matching refs from `candidate` toward `page1_validated` through the FSM, with strict page 1 anti-homonymy validation.
Anchors all downloads in the local registry (`pdf_path`, `pdf_sha256`, `acquisition_attempts[]`) so the curator can audit everything.
Trigger this skill for any of:
refs forward
`/paper-trail:reactivate-ocr`, or `/paper-trail:status`
Do NOT invoke for semantic decisions (is this citation correct?) — that belongs to `sota-auditor`.
The skill delegates to the worker B Python CLI:
# Single ref by slug python -m pipeline run --ref <slug> # Batch by state filter python -m pipeline run --state candidate --limit 50 # Dry-run (no mutation) python -m pipeline run --state candidate --dry-run # Reactivate refs waiting for OCR python -m pipeline reactivate-ocr
The CLI invokes the 8-source cascade (10 with `RESEARCH_ENABLE_SHADOW_LIBS=1` — see DISCLAIMER.md — and 11 when the browser route is available too, see `docs/ACQUISITION_HEADFUL.md`). Each acquired PDF must pass page 1 validation (author + title similarity ≥ 0.3 + zero off-domain keywords) before being accepted into the registry.
1. Crossref OA (DOI-based, open-access metadata)
2. arXiv (preprints CS/math/physics/q-bio/q-fin/etc.)
3. OpenAlex (cross-domain academic graph)
4. Unpaywall (OA discovery, fallback)
5. HAL (Hyper Articles en Ligne, French academia)
6. CORE (UK-based open repository aggregator)
7. archive.org (digitized books and articles)
8. WebSearch queue (manual fallback — adds the ref to a queue for
human-driven search via Claude Code interactive)If shadow libs are activated, sources 8 and 9 are inserted before WebSearch:
8. scihub_optin (Sci-Hub multi-mirror) 9. annas_archive_optin (Anna's Archive via scidb DOI + title search) 10. websearch
Every successful PDF download passes through `_save_and_validate` which:
1. Verifies PDF integrity (magic bytes, page count > 0) 2. Extracts page 1 text via `pdftotext` 3. Compares to expected metadata:
4. Sets `state: page1_validated` if all 3 pass; `pdf_acquired` if PDF structure OK but text not extractable (likely scan, will trigger OCR via `awaiting_rtfm_ocr`); quarantines if validation fails
Quarantined PDFs go to `_registry/_quarantine/<slug>_HOMONYM_*.pdf` with the suffix indicating the failure mode.
The CLI prints a session recap:
Récap session : planned=N done=N pending=N blocked=N skipped_terminal=N
And the doctor runs in the end (unless `--no-doctor`) to flag any invariant violation introduced.
For each ref processed, the `acquisition_attempts[]` field is appended in its registry file, providing a complete audit trail.
User: "télécharge le PDF de arnold_1982" Skill: invokes `python -m pipeline run --ref arnold_1982 -v`
User: "lance la cascade sur les 30 prochaines candidates" Skill: invokes `python -m pipeline run --state candidate --limit 30`
User: "qu'est-ce qui se passerait si je lançais sur tous les uid_resolved ?" Skill: invokes `python -m pipeline run --state uid_resolved --dry-run`
User: "reprise OCR sur les awaiting_rtfm_ocr" Skill: invokes `python -m pipeline reactivate-ocr`
the ref needs human-driven action (e.g., contact author, institutional access)
quarantined + `blocked_human:title_mismatch`
temporarily disabled for this session (Couche 2 circuit-breaker)
ref left in its previous state
Each is logged in `acquisition_attempts[]` with `verdict` and `reason`.
When a ref ends in `blocked_human:cascade_exhausted_needs_manual`, the pipeline writes `_registry/_hints/<slug>.md` listing what was t
Anti-hallucination plugin for academic research in Claude Code. Create literature reviews and papers guaranteed without fabricated citations.
Systematic per-citation verification protocol for academic writing. MUST be used whenever writing content that cites sources — papers, blog posts, SOTAs, or…
Write academic papers (IMRaD structure) for conferences and journals, with mandatory anti-hallucination citation verification. Triggers (FR + EN) : "écris un…
Audit the bibliography registry for consistency via 19 mechanical invariants (I1-I19) covering state validity, slug uniqueness, UID format, PDF path…
Final authority on the truthfulness of references cited in State-of-the-Art reviews and academic papers. Activate this skill whenever the session involves…
Write structured State-of-the-Art (SOTA) reviews / literature reviews for academic research projects with **zero hallucinated citations**. Activate this skill…