Match one or more local paper PDFs to existing BibTeX entries or metadata records, identify likely duplicates, and report confident or ambiguous matches before any downstream note-writing or archive steps. Use when Codex needs to determine which paper a PDF actually is, decide whether it already exists in the local library, reconcile PDFs against a `.bib` file, or hand a confirmed paper identity to later skills such as `paper-bibkey`, `paper-rename`, `paper-organize`, or `paper-notes`.
Identify what a local paper PDF actually is before downstream normalization or archive work begins.
.bib filestemplates/, scripts/, and references/templates/match-report-template.md.bib entriesreferences/matching-evidence.md as the decision baselinescripts/collect_signals.py when a quick local evidence dump would help.bib content unless the user explicitly expands the taskFor each target PDF, report at least:
Use this skill to determine which paper a local PDF corresponds to.
This skill is responsible for identity resolution, not for renaming, archive placement, bibkey repair, or note writing.
Default goal:
.bib entry or metadata record when possible..bib entries.Do not:
bibkey.bib content unless the user explicitly expands the taskDefault inputs may include:
.bib fileThe skill should work even when filenames are noisy.
Inspect the target PDFs. Ignore noisy filenames as identity evidence unless nothing stronger exists. Recover title, author, year, DOI, venue, and first-page text where possible.
Scan the local bibliography and metadata.
Search .bib entries, local metadata notes, and any existing paper catalogs or indexes.
Produce match candidates. Prefer exact title matches. Use authors, year, venue, and DOI to separate near matches.
Assess confidence. Mark the result as confident, ambiguous, or unmatched. Stop on ambiguity rather than guessing.
Check for duplicates. Search for the same paper under different filenames, locations, or records. Report the duplicate evidence and whether the incoming PDF appears redundant.
Hand off the result.
If the paper identity is confirmed but the bibkey is missing or bad, send the next step to $paper-bibkey.
If the paper is identified and already keyed, send later filename work to $paper-rename, archive work to $paper-organize, and note writing to $paper-notes.
$paper-reconcile.$paper-missing.bibkey, use $paper-bibkey.$paper-rename.$paper-organize.$paper-notes.Prefer fast local inspection:
rg -n "^@(article|inproceedings|misc)\\{" <bibfile>pdfinfo <file.pdf>pdftotext -f 1 -l 1 -nopgbrk -layout <file.pdf> -rg -n "<title>|<doi>|<author>|<year>" <workspace-root>python scripts/collect_signals.py