#26 ships the half that needs no network: whether a document contradicts itself. This tracks the
other half — whether a reference that is internally consistent corresponds to a paper that exists.
The shape it should take
A reference that survives every offline check can still be invented. Catching that means a lookup
against Crossref or OpenAlex, which crosses the line this project has held since the beginning.
Non-negotiables if it gets built:
- Opt-in, per analysis, never remembered silently. The default stays "nothing leaves this
machine".
- Only the citation string goes out — never the document. A DOI, or an author/title/year triple.
Not the essay, not the surrounding sentence, not the file name.
- Say so where it happens, in the same panel, before the request. Not in a privacy policy.
- A negative result is not proof of anything. Plenty of real work has no DOI, is not indexed, or
is a book, a thesis, a government report, a newspaper. "Not found in Crossref" must never render as
"invented" — and this is where a tool in this category most easily becomes unfair to writers
outside English-language journal publishing.
Where it fits
ICitationLookup in Core, implemented in the host with the injected HttpClient — the same seam
ILocalPerplexity and IDocumentReader already use, so SignsOfAI.Core keeps its zero package
dependencies.
Smaller follow-ups from #26
- Note-style citations (Chicago footnotes,
Ibid., op. cit.) are not read at all. Numbered and
author-year are.
- Reference-list detection needs a heading. A bibliography that just starts, with no
"References"/"Referencias" line, is invisible — deliberately, since guessing produces complaints out
of formatting. Worth revisiting whether a trailing block of author-shaped lines is safe to detect.
- In-text ranges across styles:
[1]–[3] with the dash outside the brackets is not expanded.
- A false "missing reference" is the bug report I want most. No server, no telemetry, so a human
reporting it under False positives in Discussions is the only way we find out.
#26 ships the half that needs no network: whether a document contradicts itself. This tracks the
other half — whether a reference that is internally consistent corresponds to a paper that exists.
The shape it should take
A reference that survives every offline check can still be invented. Catching that means a lookup
against Crossref or OpenAlex, which crosses the line this project has held since the beginning.
Non-negotiables if it gets built:
machine".
Not the essay, not the surrounding sentence, not the file name.
is a book, a thesis, a government report, a newspaper. "Not found in Crossref" must never render as
"invented" — and this is where a tool in this category most easily becomes unfair to writers
outside English-language journal publishing.
Where it fits
ICitationLookupin Core, implemented in the host with the injectedHttpClient— the same seamILocalPerplexityandIDocumentReaderalready use, soSignsOfAI.Corekeeps its zero packagedependencies.
Smaller follow-ups from #26
Ibid.,op. cit.) are not read at all. Numbered andauthor-year are.
"References"/"Referencias" line, is invisible — deliberately, since guessing produces complaints out
of formatting. Worth revisiting whether a trailing block of author-shaped lines is safe to detect.
[1]–[3]with the dash outside the brackets is not expanded.reporting it under False positives in Discussions is the only way we find out.