Problem
When a paper is fetched, the note only stores the raw source: URL, and
_detect_content_type lumps everything into content_type: paper. So journal,
volume, etc.. are never captured but arXiv preprint
is indistinguishable from a peer-reviewed journal article. That distinction is
useful info we currently throw away.
Motivation
- The vault compounds over time; it's far more valuable if each paper carries
real bibliographic identity, not just a URL.
- Preprint vs published, venue, etc.. are worth keeping on the note.
Proposed strategy
A standalone, opt-in hr biblio command (working name). Does not touch the
fetch path or the 16-step pipeline.
- Scans
content_type: paper notes, parses the DOI/arXiv ID from the existing
source: URL, queries OpenAlex (no key), writes bib fields into frontmatter.
- Confident-ID match only (no title-search → no mis-linking). fail-open on any
error. Fills empty fields by default; --force to refresh (can update preprint→published).
- New optional
NoteMeta fields: doi, journal, volume, issue, pages, year, authors, openalex_id, pub_type, bib_enriched_at (+ a preprint/venue field).
- Add matching SQLite columns via idempotent migration;
sync rebuilds them from
frontmatter. Surface the fields in note show / search / MCP read tools.
Out of scope (for now)
No BibTeX export, no change to report ## Sources, no fetch-time auto-enrichment.
Problem
When a paper is fetched, the note only stores the raw
source:URL, and_detect_content_typelumps everything intocontent_type: paper. So journal,volume, etc.. are never captured but arXiv preprint
is indistinguishable from a peer-reviewed journal article. That distinction is
useful info we currently throw away.
Motivation
real bibliographic identity, not just a URL.
Proposed strategy
A standalone, opt-in
hr bibliocommand (working name). Does not touch thefetch path or the 16-step pipeline.
content_type: papernotes, parses the DOI/arXiv ID from the existingsource:URL, queries OpenAlex (no key), writes bib fields into frontmatter.error. Fills empty fields by default;
--forceto refresh (can update preprint→published).NoteMetafields:doi, journal, volume, issue, pages, year, authors, openalex_id, pub_type, bib_enriched_at(+ a preprint/venue field).syncrebuilds them fromfrontmatter. Surface the fields in
note show/search/ MCP read tools.Out of scope (for now)
No BibTeX export, no change to report
## Sources, no fetch-time auto-enrichment.