-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem
AI-generated or user-supplied citations can be fake, non-resolving, or retracted.
OneCite currently cleans and normalizes references but does not verify authenticity.
Users need a quick way to ensure their references are real and safe to cite.
Goal
Provide a lightweight verification step that confirms each reference:
- Exists (DOI or URL resolves),
- Comes from a legitimate venue/domain,
- Is not retracted, withdrawn, or flagged,
and returns a simple pass/fail with minimal evidence.
Out of Scope (v1)
- PDF provenance or content forensics
- Citation quality or impact scoring
- Complex confidence weighting
Proposed Approach (v1)
-
Data sources: Crossref (required), PubMed (optional for biomedical), OpenAlex (supplement), Unpaywall (OA domain sanity).
-
Checks:
- DOI/URL resolution
- Crossref relations or updates (retraction, withdrawal, correction, expression of concern)
- Optional PubMed
pubtypeverification - Optional OpenAlex
is_retractedflag
-
Decision:
status = valid | needs_review | blocked -
Output: simple JSON report + optional filtered
.bibfor valid entries.
UX (CLI & API)
CLI
onecite verify refs.txt \
--report verify.json \
--emit-bib good.bib \
--fail-on blockedPython
from onecite.verify import verify_references
report = verify_references(items, fail_on="blocked")Minimal Rules (v1)
- R1 DOI resolves (2xx/3xx) to a known publisher → else
blocked - R2 Crossref shows retraction/withdrawal/EoC →
blocked; correction/erratum →needs_review - R3 (optional) PubMed
pubtypeincludes retraction →blocked
Acceptance Criteria
- Retracted DOI →
status=blocked, CLI exits non-zero when--fail-on blocked. - Valid DOI →
status=valid, includes publisher URL in report. - Unmatched title →
status=needs_review, excluded fromgood.bib.
Open Questions
- Default behavior for
needs_review(warn or fail)? - Maintain built-in trusted domain list or fetch dynamically?
- Default data sources enabled?
Next Steps
- Implement
onecite verifyskeleton using Crossref. - Define minimal JSON schema for verification results.
- Add optional PubMed and OpenAlex adapters later.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request