Every AI writing tool claims it is "grounded in real papers." The difference is when the grounding happens. Most tools let the model write first and verify later — if they verify at all. Cento grounds before the model writes a single word, so a fabricated citation is never corrected after the fact. It never exists in the first place.
Before drafting begins, Cento queries PubMed, OpenAlex, Semantic Scholar and Europe PMC for the claim you are making and assembles a candidate set of real, retrieved papers — each with a stable identifier, its metadata, and a level-of-evidence grade. This set is the entire universe of sources the model is permitted to draw from. Nothing outside it can be cited.
When Cento drafts, the model does not type out an author list or a DOI. It emits structured output: prose interleaved with citation slots, where each slot can only point to a candidate from the retrieved set by ID. Naming a paper is not an action available to the model — so it cannot name one that isn't already in front of it.
After generation, the backend resolves each citation slot against the candidate set. Bind to a real candidate and the claim is Cited, with its source attached. Fail to bind and the claim is marked [UNCITED] and surfaced to you — never quietly filled with a plausible-looking reference. There is no path by which an invented citation reaches the page.
A citation that was accurate in the first draft can be wrong by the third. As you revise, Cento re-scores each claim against its bound source and computes an alignment score. Sharpen a sentence past what the evidence supports and the claim flags as Drifted, in amber, while it is still yours to fix — long before a reviewer ever sees it.
"The LLM cannot emit a citation that didn't come from retrieval. Every decision serves that one rule."