citelisted
Install: claude install-skill ericluo04/claude-academic-workflow
# /cite — resolve identifier, file in Zotero, append BibTeX
## Personalization
This skill resolves placeholders against `~/.claude/state/personal_config.json`. See `_config/README.md` and `_config/personal_config.example.json` for setup. If the config is missing or a needed field is unset, the skill must surface an error to the user and refuse to proceed rather than guess.
Required config fields:
- `personal_config.paths.overleaf_root` — root containing project subdirs.
- `personal_config.projects[]` — each entry should declare `name`, `overleaf_subdir`, `bib_file`, and optional `zotero_collection_key` (used by step 4 below). Aliases may also help match free-form mentions.
- Zotero credentials (`ZOTERO_API_KEY`, `ZOTERO_USER_ID`) are read from environment variables, not from `personal_config.json`. See `docs/mcps.md` for the Zotero MCP setup; the read-only MCP picks them up automatically.
## When to invoke
The user invokes `/cite` followed by one or more identifiers:
- DOI: `10.1287/mksc.2023.1234` or `https://doi.org/10.1287/mksc.2023.1234`
- arXiv ID or URL: `2403.12345`, `arXiv:2403.12345`, `https://arxiv.org/abs/2403.12345`
- Paper title in quotes: `"Some Paper Title"`
- A Zotero item key already in the library
- Free-form: a URL pointing to a paper page on Springer / journal site — extract DOI from it
Multiple identifiers in one invocation are allowed; process each independently and report a summary at the end. If `/cite` is invoked with no argument, ask once what