| name | bib-formatter |
| description | Convert reference lists and in-text citations between RIS, BibTeX, plain text, and CSL-JSON, triggered when you need to unify bibliography/citation styles before journal submission or compare before/after formatting differences. |
| license | MIT |
| author | AIPOCH |
Source: https://github.com/aipoch/medical-research-skills
When to Use
- You have a bibliography in RIS/BibTeX/plain text/CSL-JSON and must reformat it to a journal style (e.g., NEJM, The Lancet, Nature) before submission.
- You need to switch in-text citation formatting (e.g., generating formatted citations for specific cite keys/IDs).
- You are consolidating references from multiple sources and want a single consistent output style.
- You want a before/after comparison to verify formatting changes and spot missing metadata.
- You need to validate and repair incomplete entries (missing authors, year, journal, pages, DOI/URL) prior to final export.
Key Features
- Supports input formats: RIS, BibTeX, plain text, CSL-JSON.
- Outputs bibliography entries compatible with CSL styles (including NEJM/Lancet/Nature or any custom
.csl).
- Journal-name driven style selection with automatic CSL retrieval (exact match preferred; download first, then search fallback).
- Batch conversion via
scripts/format_bibliography.py.
- In-text citation generation mode for specified cite keys/IDs.
- Produces a Markdown Before/After table (minimum 2 examples) for quick review.
- Detects entries that cannot be reliably parsed and requests missing fields.
Dependencies
- Python 3.10+
- Citation Style Language (CSL) style files (
.csl) for target formatting (e.g., styles/nature.csl, styles/the-lancet.csl, styles/new-england-journal-of-medicine.csl)
Example Usage
1) Auto-retrieve a journal style (recommended)
python scripts/format_bibliography.py \
--input refs.bib \
--input-format bibtex \
--journal "Nature"
2) Use a local CSL style file for bibliography formatting
python scripts/format_bibliography.py \
--input refs.bib \
--input-format bibtex \
--style "styles/nature.csl" \
--output formatted.txt
3) RIS input example
python scripts/format_bibliography.py \
--input refs.ris \
--input-format ris \
--style "styles/the-lancet.csl"
4) In-text citations mode (format citations for specific IDs)
python scripts/format_bibliography.py \
--input refs.json \
--input-format csljson \
--style "styles/new-england-journal-of-medicine.csl" \
--mode citations \
--cite-keys "ITEM-1,ITEM-2"
Implementation Details
When Not to Use
- Do not proceed when required input files, identifiers, parameters, or context are missing — ask the user to provide them first.
- Do not assume capabilities beyond this skill's declared scope when the user requests external operations or inferences.
- Do not proceed without user confirmation when overwriting existing results, executing high-cost batch operations, or expanding task scope.
Required Inputs
| Field | Required | Format/Source | Example | If Missing |
|---|
| User task description | Yes | Text | Research question, writing goal, analysis objective | Stop and ask user to provide |
| Primary input material | Depends on task | Text, file path, ID, table, or literature | PMID, PDF, CSV, DOCX, keywords, etc. | Specify which material type is missing |
| Output preference | No | Text | Language, format, target journal, template | Use skill default format |
Output Contract
- Primary output: Structured result or target file aligned with this skill's objective.
- Optional output: Intermediate check notes, issue list, supplementary suggestions, or generated file paths.
- Format requirement: Unless the user specifies otherwise, prefer stable, reviewable Markdown or JSON; if the skill's bundled script requires a fixed format, use that format.
- If partially complete: Must explicitly mark as PARTIAL and state which steps are completed and which remain.
Failure Handling
- Missing critical input: Explicitly state which fields, files, or identifiers are missing and pause.
- Script, template, or resource execution failure: Report the failing step, likely cause, and recovery suggestions — do not silently degrade.
- Partial completion only: Return the verified portion first, then list remaining blockers and suggested next steps.
User Checkpoints
- Before executing batch processing, overwriting files, long-running searches, or multi-stage generation, confirm scope and output format with the user.
- Before proceeding when a key judgment is ambiguous, evidence is insufficient, or the workflow is entering the next stage, confirm with the user.
Input Validation
This skill accepts requests that match the documented purpose of bib-formatter and include enough context to complete the workflow safely.
Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:
bib-formatter only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.
Quick Validation
- Check that key scripts, templates, or reference file paths this skill depends on exist.
- Check that the final output contains the core fields, sections, or files specified for this task.
- Check that results clearly mark assumptions, limitations, and incomplete items.