Skip to content
Back to skills

Bibtex Manager

ASecurity

Maintain the thesis .bib file as a single source of truth: fetch verified BibTeX from a DOI, arXiv id, or title via CrossRef and arXiv, normalise citation keys (firstauthorYEARkeyword), deduplicate entries, fix fields BibTeX and biblatex care about, and export to Zotero-friendly form when the writing happens in Word. Use when adding references, cleaning a messy bibliography, resolving duplicate keys, or converting a reading list into a .bib.

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentspythongoapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add KhaledSaeed18/dotclaude --skill bibtex-manager --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bibtex Manager?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bibtex Manager
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khaledsaeed18-bibtex-manager/badge)](https://www.skillsdirectory.com/skills/khaledsaeed18-bibtex-manager)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bibtex-manager
description: "Maintain the thesis .bib file as a single source of truth: fetch verified BibTeX from a DOI, arXiv id, or title via CrossRef and arXiv, normalise citation keys (firstauthorYEARkeyword), deduplicate entries, fix fields BibTeX and biblatex care about, and export to Zotero-friendly form when the writing happens in Word. Use when adding references, cleaning a messy bibliography, resolving duplicate keys, or converting a reading list into a .bib."
argument-hint: "(optional) a DOI, arXiv id, title, or path to a .bib or reading-list.md"
---

The `.bib` file is the one place a reference is allowed to exist. Every `\cite{}` in LaTeX, every `[@key]` in Markdown, and every Zotero item in Word traces back to an entry here that was fetched from an authority, never typed from memory.

## Add an entry

1. **Resolve the identifier to metadata from an authority.** Never write an entry by hand from a memory of the paper.
   - DOI: `curl -sL -H "Accept: application/x-bibtex" "https://doi.org/<doi>"` gives publisher BibTeX. Cross-check title and year against `https://api.crossref.org/works/<doi>`.
   - arXiv id: `curl -s "http://export.arxiv.org/api/query?id_list=<id>"` and build a `@misc` (or `@article` with `journal = {arXiv preprint arXiv:<id>}`) with `eprint`, `archivePrefix = {arXiv}`, `primaryClass`. If the paper was later published, prefer the published DOI and keep the arXiv id in `eprint`.
   - Title only: `https://api.crossref.org/works?query.bibliographic=<title>&rows=3`, confirm the top hit's title matches before taking its DOI; if it does not, tell the student rather than guessing.
2. **Normalise the key** to `<firstauthorsurname><year><firstsignificanttitleword>`, lowercase ASCII (`smith2023feedback`). Collisions get a letter suffix (`smith2023feedbacka`). Keep the student's existing key convention if the file already has one.
3. **Clean the fields.** Read [reference/fields.md](reference/fields.md). In short: protect capitals in titles with braces (`{LLM}`, `{Python}`), use `and` between authors, ISO-free `year`/`month`, `doi` without the `https://doi.org/` prefix, `url` only when there is no DOI, no `abstract` or `keywords` noise unless the student wants them, page ranges with `--`.
4. **Choose the entry type** from the source, not the venue name: `@inproceedings` for conference papers (with `booktitle`), `@article` for journals (`journal`, `volume`, `number`, `pages`), `@book`, `@incollection`, `@phdthesis`, `@techreport`, `@misc` for preprints and web pages (`howpublished`, `note = {Accessed YYYY-MM-DD}`).
5. **Append** to the `.bib` (default `references.bib` or the path in the thesis config), keeping the file sorted by key if it already is.

## Clean an existing file

Run these checks and report before changing anything:

- Duplicate DOIs or near-duplicate titles (normalised, first 60 chars): merge, keep the richest entry, note which key was removed so the text can be updated.
- Keys that do not match the convention: propose renames; apply only with `--rename`, and then update every `\cite`/`[@…]` in the source files the student names.
- Missing required fields per type (see the reference): list them; fetch from CrossRef when a DOI is present.
- Unprotected capitals in titles, `&` unescaped in `booktitle`, `pages` with a single hyphen, `month` as a number in quotes.
- Entries with no DOI, arXiv id, or URL: flag as unverifiable so `citation-verifier` can chase them.

## From a reading list

Given `reading-list.md` from `literature-search`, add every entry via step 1 using its DOI or arXiv id, and write a mapping `key -> title` at the end of the reply so `paper-reader` notes can use the same keys.

## Zotero and Word

When the thesis is written in Word with Zotero:

- Import the `.bib` into Zotero (File → Import) or install Better BibTeX and set the `.bib` as an auto-export of the thesis collection, so the file remains the source of truth and Zotero is the view.
- Match Better BibTeX's key pattern to the convention above (`auth.lower + year + shorttitle(1,1).lower`) so keys are identical in both worlds.
- Never edit an entry only in Zotero; fix the `.bib` and re-import.

## Rules

- No entry without an identifier that resolved today. If the student insists on an unresolvable source (a lecture, an internal report), it goes in as `@misc` with a `note` explaining the provenance, and is listed in the reply as unverified.
- Never delete an entry without saying which citations in the text will break.
- Preserve the student's manual field additions (`annote`, `file`) when rewriting an entry.

Files in this skill

  • SKILL.md4.5 KB
  • reference/fields.md2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.