The solution
Papers have title pages; research software often did not. Users could see code but not the exact author list, version, DOI or preferred citation, so software was cited inconsistently or not at all.
Citation File Format solved this with almost no infrastructure. A maintainer adds `CITATION.cff`, a plain-text YAML file, to the repository root. The file tells people and machines exactly how to cite the software or dataset.
The adoption lever was platform support. GitHub reads CFF and exposes a 'Cite this repository' prompt with APA and BibTeX output; Zenodo and Zotero can reuse the same metadata rather than asking authors to re-enter it.
What it achieved
Put citation metadata beside code
Why it worked
The filename is conventional and discoverable at the repository root.
YAML kept the file human-writable while still structured enough for validation and conversion.
Platform rendering turned a maintainer convention into an end-user workflow.
Preferred citations let software point to a paper or dataset without losing software metadata.
What can be applied
When attribution is the problem, the best standard may be a tiny file at the point where users already look for the project.
Aftermath
CFF became a practical bridge between code hosting and scholarly citation. GitHub documents direct support for CITATION.cff files and renders them into APA and BibTeX, while the CFF project points to support from GitHub, Zenodo and Zotero.
FOLLOW THE EVIDENCE
The sources
- Citation File Format (CFF) - Specifications zenodo.org
- About CITATION files docs.github.com