← Notes

citesure init: start the paper with a gate, not a scramble

2026-07-23 · SybilGambleyyu · citesure 0.5.67–0.5.68

Most bibliography failures show up the night before arXiv or the journal deadline: placeholder DOIs, year pasted into volume=, inverted page ranges, invented case reporters, titles that never existed. The fix is not another one-off script — it is a paper repo that fails closed from day one.

One command

pip install https://github.com/SybilGambleyyu/citesure/releases/download/v0.5.68/citesure-0.5.68-py3-none-any.whl

citesure init my-paper
cd my-paper
# edit refs.bib …
citesure gate . --preset ci      # offline floor
citesure gate . --preset arxiv   # live multi-source before submit

citesure init writes:

Fresh empty bibliographies pass the hard-ID floor (there is nothing to cover yet). As soon as entries appear, floors apply again.

What the gate actually checks

Domain packs as regression fixtures

Fifty-five live-clean domain packs (demography, sociology, political science, anthropology, ML, law, ecology, …) ship in the wheel. Maintainers run:

citesure packs --gate-all
citesure packs --run anthropology-classics

Evidence on the latest release: 256/256 integrity · 209/209 claim pairs · 139 unit tests · 55 packs.

Why this form

Serious work does not need another citation manager. It needs a CI-grade integrity gate that authors, pre-commit, GitHub Actions, and coding agents all call the same way. init is the on-ramp; gate is the bar.

Source: github.com/SybilGambleyyu/citesure · Demo: citesure.sybilgambleyyu.workers.dev · Latest: releases