Skip to content

ADR-v2-071 — Citation-by-Voice from a local BibTeX/CSL library

Status: Accepted (2026-07-02) · Wave I Context links: [[adr-v2-021-voice-grounded-rag]] (retrieve+generate vs deterministic lookup), [[adr-v2-030-spoken-math-latex]], [[adr-011]]

Context

Wave I research (#10) — "cite Vaswani 2017" → a correctly formatted citation, fully offline, no internet lookup. Fuzzy-matches the spoken author/year against a local .bib file and inserts a citation in a chosen style (or a \cite{key} key for LaTeX). Distinct from Voice-grounded RAG, which retrieves and generates — this is deterministic lookup + formatting from the user's own library. An academic-accessibility win needing no model.

Decision

Add an opt-in Citation-by-Voice: [cite] enabled=false, style="latex". Pure cores: parse_bibtex(text)Entry(key, authors, year, title) list (a minimal, dependency-free parser), resolve_citation(query, entries) → the best entry by surname + year fuzzy score, and format_citation(entry, style) → LaTeX \cite{key}, or Surname (Year) / Surname et al. (Year) for plain/APA. An optional embedding index for large libraries is deferred. OFF by default.

Consequences

  • Offline citation insertion — no internet round-trip a cloud tool would make.
  • Pure parse + resolve + format → fully testable with an in-memory .bib.
  • Distinct from RAG (deterministic lookup vs generation).
  • Privacy (ADR-011): reads a local file; nothing transmitted.
  • Caveat: the minimal parser covers common @type{key, field = {…}} entries; exotic BibTeX is the deferred tier. Off by default.