Repository navigation
Check bibliography entries in reviews, and a reference check - #11
Merged
Merged
Conversation
An agent can add a .bib entry for a work that does not exist, or with the wrong authors, year or DOI, and the review showed such a change as a word diff of source lines, cut at 6000 characters, or only as the bibliography line BibTeX typesets for a cited entry. A round now reads the .bib files before and after and shows each entry it adds, removes or modifies whole: every field, a modified field's old and new value, and where the paper cites it. Hunks that touch the same entry, or the same key on either side, make one change, so an entry is never half accepted. A removed entry the paper still cites, a key defined twice, a .bib file the paper does not read, and new citations of keys without an entry are flagged. A .bib edit no longer takes the "no visible change" shortcut, which treated % in a URL as a comment. After a round is published, the page asks the engine to look up the added and modified entries: a DOI through doi.org, an arXiv identifier through arXiv, and otherwise the title and authors in Crossref, DBLP and arXiv. Each entry is verified, differs from its record (with the fields side by side), not verified, or could not be checked. Searches pick the record that agrees in title, first author and year, so later copies of a preprint or a review of a book are not taken for the work; a preprint's year before the published version's and a subtitle are small differences only. Results are kept in .git/latex-review. Only titles, authors, years and identifiers are sent, one request at a time per host, and a host that turns clients away is skipped and named. Accepting a change with an entry that is not verified, or one with any of the problems above, asks first; Accept all leaves such changes for the author. An entry the author checked by hand can be marked so; the confirmation holds until its looked-up fields change. The page skips online checks when latex-review:references is "off" in local storage. Real Crossref, doi.org and arXiv answers were checked on fabricated, misattributed and correct entries; DBLP currently answers every client with a bot check, so the tests use recorded answers only.
Papilot passes the engine's bibliography checks through: the review gateway allows a round's references and the confirmation of an entry, without refreshing the task or drafting a commit message for it, and the review of uncommitted changes gets the same routes. Both share one result file in the data folder, and confirmations live beside the engine's state in the repository, so a task's review, the uncommitted changes and the reference check agree. Settings gains "Check references online", on by default, which the review page reads. Agents are told never to write a bibliography entry from memory, to take its details from the published record with its DOI or arXiv identifier, and to name the entries they add or change. More, under Manuscript in the sidebar, opens a menu beside it (a sheet on a phone) with Reference check: the whole bibliography as it is on disk, read only once the page is opened. Without looking anything up it lists citations of keys no entry defines, keys defined twice, the same work under two keys, uncited entries and entries BibTeX cannot read; Check online compares every entry with its record. An entry can be marked as checked by hand. Ask an agent to look into the problems opens a new task, editable before it is sent, that asks the agent to change nothing and find out what happened: whether each work exists, what its record says, and where the entry or citation came from in Git. The side menu also opens with the right arrow and closes with the left, as a submenu does.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
An agent can add a
.bibentry for a work that does not exist, or with the wrong authors, year or DOI. Until now a.bibchange showed up in the review as a truncated word diff of source lines, or only as the typeset bibliography line of a cited entry, and nothing was checked.What changes
Reviews (review engine)
.bibchange is shown entry by entry: every field, old → new for modified fields, the lines it occupies, and where the paper cites it. Hunks of one entry are decided together, so an entry is never half accepted. Changes to@stringdefinitions, including nested macros, show the old and new expanded fields. Bibliography files share macros in declaration order, so a definition change also checks dependent entries in unchanged files. Dependent hunks in one file are grouped; when multiple files change, every affected edit displays the entry and has the acceptance guard..git/latex-review. Cache keys and manual confirmations include the entry type, so changing an article into a book triggers a new check..bibfile the paper does not read, new\citekeys without an entry, including in documents that use\nocite{*}.Papilot
How it was checked
\nocite{*}, type-sensitive caching, old cache invalidation and manual confirmations.Known issues
scripts/check-ui.mjs:524(focus after collapsing the manuscript panel) is flaky: it failed once in two runs on a cleanorigin/maintoo. Engine browser testsreview.spec.ts:7and:359also fail onmain.TODO
Reference check page
.biblines.Review cards
Sidebar
Sources and tests
scripts/.🤖 Generated with Claude Code