From academic-research
Automatically detects uncited claims in LaTeX manuscripts, searches Semantic Scholar and DBLP for papers, fetches official BibTeX, and inserts \cite{} commands. Updates .tex and .bib files.
npx claudepluginhub jeandiable/academic-research-plugin --plugin academic-researchThis skill uses the workspace's default tool permissions.
The citation-assistant skill automatically finds uncited claims in LaTeX manuscripts, searches for the right papers, fetches official BibTeX entries (never fabricates), and inserts `\cite{}` commands at the right locations. This eliminates the manual process of hunting down citations for statements, methods, datasets, and claims that lack proper attribution.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
The citation-assistant skill automatically finds uncited claims in LaTeX manuscripts, searches for the right papers, fetches official BibTeX entries (never fabricates), and inserts \cite{} commands at the right locations. This eliminates the manual process of hunting down citations for statements, methods, datasets, and claims that lack proper attribution.
The skill uses a multi-stage pipeline:
One or more .tex file paths provided as arguments. The skill automatically:
.bib files in the same directory as the .tex files\bibliography{} and \addbibresource{} commands to locate referenced bibliography files.tex files and any detected .bib files to understand the current citation stateInstall required dependencies using:
pip install -r BASE_DIR/scripts/requirements.txt
Ensure the following Python scripts are available in the BASE_DIR/scripts/ directory:
paper_search.py — searches Semantic Scholar and DBLPbibtex_utils.py — fetches and merges BibTeX entriesRead all provided .tex files using the Read tool. Extract:
\cite{}, \citep{}, and \citet{} commands and their citation keys\bibliography{} and \addbibresource{} references to locate bibliography filesScan the stripped text for statements that need citations but don't have them. Look for these patterns:
Skip logic: Do not flag locations that already have \cite{} within 2 sentences (they may be adequately cited).
For each identified uncited location, construct a search query from the surrounding context (2-3 sentences). Focus on extracting:
Example: For "ResNet has become the standard backbone for computer vision", generate query: "ResNet residual networks computer vision deep learning"
For each query, run:
python "BASE_DIR/scripts/paper_search.py" --query "QUERY" --max-results 5 --sort citations
Parse the JSON output and select the most relevant paper based on:
For each selected paper, run:
python "BASE_DIR/scripts/bibtex_utils.py" fetch --title "PAPER TITLE"
This fetches official BibTeX from Semantic Scholar → DBLP → arXiv in that order of preference. Never fabricate or manually construct BibTeX entries; if official sources fail, flag the entry as unconfirmed.
For each identified uncited location:
\cite{key} at the appropriate position in the .tex file\cite{key1, key2} or adapt to the document's citation style\cite{} for basic citations\citep{} for parenthetical citations (natbib style)\citet{} for textual citations (natbib style).tex files to the output directory (do NOT overwrite originals)If an existing .bib file was found:
python "BASE_DIR/scripts/bibtex_utils.py" merge --inputs existing.bib new_entries.bib --output references.bib
Otherwise, create a new references.bib file with all new entries. Ensure:
.tex files\cite{key1, key2} or separate citations within 1-2 words of each other\cite{} appears within 2 sentences; the statement is likely already attributedpaper_search.py returns no relevant results, note the location and original text in changes.md but do NOT insert a placeholder citationnatbib, biblatex, or basic bibtex via \usepackage{} commands and use the appropriate citation commandThe skill produces three main outputs:
.tex File(s)output/citation-assistant/YYYY-MM-DD-HHMMSS/ directory\cite{} commands inserted.tex files remain untouchedreferences.bibchanges.mdDetailed changelog documenting every citation addition in table format:
# Citation Changes
| # | Location (file:line) | Original Text | Added Citation | Paper Title | Reason |
|---|---------------------|---------------|----------------|-------------|--------|
| 1 | main.tex:45 | "Transformers have revolutionized..." | \cite{Vaswani2017} | Attention Is All You Need | Foundational work on transformers |
| 2 | main.tex:87 | "achieves 96.5% on ImageNet" | \cite{He2016} | Deep Residual Learning for Image Recognition | ImageNet dataset reference and method |
| 3 | related_work.tex:32 | "Recent work in NLP has focused on..." | \cite{Devlin2019,Radford2019} | BERT and GPT papers | Multiple relevant recent approaches |
| 4 | methods.tex:15 | "We use ResNet as backbone" | \cite{He2016} | Deep Residual Learning for Image Recognition | ResNet method reference |
Columns:
.tex file and approximate line number\cite{} command insertedAll outputs are saved to:
./output/citation-assistant/YYYY-MM-DD-HHMMSS/
With structure:
output/citation-assistant/2025-03-03-154230/
├── main.tex (modified)
├── methods.tex (modified)
├── related_work.tex (modified)
├── references.bib (new or merged)
└── changes.md (changelog)
changes.md to catch any incorrect matchesAuthorYear or Author_et_al_Year)