You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Filed after checking #474 — this is the one source-layer gap that survey does not cover, because it is an identifier gap rather than a source gap.
What is missing
Ref::Pmid does not exist. It is parked, deliberately and in writing:
crates/doiget-core/src/refs.rs:17 — "Identifier-pick priority per ADR-0030 D3: doi > arxiv > pmid"
crates/doiget-core/src/refs.rs:18 — "PMID adapter parking until the Ref::Pmid variant lands"
crates/doiget-core/src/refs.rs:233 — "(PMID parking — Ref::Pmid not yet defined …)"
crates/doiget-core/src/canonical.rs:22 — future variants "(Pmid, Handle, …)" are anticipated by the canonical-class contract but not implemented
ADR-0030 D3 already decided PMID's priority. Nothing implemented its existence.
The consequence is a silent skip
crates/doiget-core/src/refs.rs:406: an entry whose only identifier is a PMID — eprinttype = {pubmed} — "is skipped rather than" parsed. A bibliography of biomedical references therefore yields fewer entries than it contains, and nothing says which ones went missing or why.
That is the same failure class as #476, #441, #458 and the arXiv claim in #493: the code is correct about what it does, and the user is never told what it did not do. A .bib exported from PubMed is the single most common bibliography shape in the life sciences, and against doiget it silently under-resolves.
#474 argues, correctly for its time, that adding sources to a chain with a known skip bug (#458) and no end-to-end harness (#462) multiplies the #442 defect class. That argument still holds for sources. It does not apply here, for two reasons:
Ref::Pmid(...) and Ref::Pmcid(...) as canonical classes, with the "pmid" / "pmcid" class strings reserved per the canonical.rs:22 contract and a safekey story that matches ADR-0007.
Once a PMID resolves to a DOI, the existing chain takes over unchanged; PMC full text routes through Europe PMC, which is already there.
The eprinttype = {pubmed} path at refs.rs:406 stops skipping, and whatever it still cannot resolve says so.
Not in scope here
The rest of #474's candidate list stays in #474. Two of its entries are additionally claimed by #461 (BASE, Zenodo) and one by #463 (ACM), and this issue deliberately does not touch any of them.
Sources named in paper-search-mcp but absent from both #474 and here — SSRN, IACR ePrint, CiteSeerX, chemRxiv beyond #474's mention — are lower value per integration and belong as additions to the #474 table, not as separate issues.
Filed after checking #474 — this is the one source-layer gap that survey does not cover, because it is an identifier gap rather than a source gap.
What is missing
Ref::Pmiddoes not exist. It is parked, deliberately and in writing:crates/doiget-core/src/refs.rs:17— "Identifier-pick priority per ADR-0030 D3:doi>arxiv>pmid"crates/doiget-core/src/refs.rs:18— "PMID adapter parking until theRef::Pmidvariant lands"crates/doiget-core/src/refs.rs:233— "(PMID parking —Ref::Pmidnot yet defined …)"crates/doiget-core/src/canonical.rs:22— future variants "(Pmid, Handle, …)" are anticipated by the canonical-class contract but not implementedADR-0030 D3 already decided PMID's priority. Nothing implemented its existence.
The consequence is a silent skip
crates/doiget-core/src/refs.rs:406: an entry whose only identifier is a PMID —eprinttype = {pubmed}— "is skipped rather than" parsed. A bibliography of biomedical references therefore yields fewer entries than it contains, and nothing says which ones went missing or why.That is the same failure class as #476, #441, #458 and the arXiv claim in #493: the code is correct about what it does, and the user is never told what it did not do. A
.bibexported from PubMed is the single most common bibliography shape in the life sciences, and against doiget it silently under-resolves.Why this is worth doing before the rest of #474
#474 argues, correctly for its time, that adding sources to a chain with a known skip bug (#458) and no end-to-end harness (#462) multiplies the #442 defect class. That argument still holds for sources. It does not apply here, for two reasons:
Refvariant plus a resolver, not a new leg on the Tier-2/Tier-3 chain. It does not widen the surface bug(tdm): the Tier-3 chain is skipped whenever Crossref answers, so a TDM source can never close the fetch gap it was added for #458 and test: an end-to-end use-case suite driven through the real entry points, because every "unreachable source" bug passed its unit tests #462 are about.Proposed shape
Ref::Pmid(...)andRef::Pmcid(...)as canonical classes, with the"pmid"/"pmcid"class strings reserved per thecanonical.rs:22contract and a safekey story that matches ADR-0007.eutils.ncbi.nlm.nih.gov) as the PMID → DOI / metadata resolver. Free, no key required; an optional free key raises the documented rate from 3 to 10 requests/second. None of that is verified against NCBI's own documentation — per survey(source): trustworthy sources not yet covered — preprint servers, physics indexes, regional platforms #474's opening rule and the lesson of test(tdm-ieee): the unexpected-shape fixture is a JSON guess; IEEE actually answers text/xml, and the 403 never reaches the JSON path at all #460, check the endpoint, auth shape, response shape, rate limits and terms against the primary source before writing code. NCBI's usage policy also asks for a tool name and contact email on every request, which maps onto the existing polite-pool plumbing.eprinttype = {pubmed}path atrefs.rs:406stops skipping, and whatever it still cannot resolve says so.Not in scope here
The rest of #474's candidate list stays in #474. Two of its entries are additionally claimed by #461 (BASE, Zenodo) and one by #463 (ACM), and this issue deliberately does not touch any of them.
Sources named in
paper-search-mcpbut absent from both #474 and here — SSRN, IACR ePrint, CiteSeerX, chemRxiv beyond #474's mention — are lower value per integration and belong as additions to the #474 table, not as separate issues.Refs #474, #415, #462, ADR-0030, ADR-0007.