Architecture decisions¶
Ongoing log of non-obvious design choices in citeformer, in ADR (Architecture Decision Record) style. Each entry is a short record of what we decided, why, and what follows. Decisions are numbered in the order they were made; when one is superseded, we mark it and link to the replacement rather than editing history.
- ADR-001 — Grammar builder emits GBNF, not Lark
- ADR-002 —
GenerationResult.textkeeps[N]markers verbatim - ADR-003 — Bundle five CSL styles; accept user paths; drop Vancouver from v0.1
- ADR-004 — Replace citeproc-py with a home-grown formatter
- ADR-005 — Metadata-fetch and render deps go in main, not extras
- ADR-006 —
vllmexcluded from theallextra - ADR-007 — REQUIRED policy lets the model stall in content state
- ADR-008 —
GenerationResult+VerificationReportbumped to schema_version=2 - ADR-009 — Bounded
contentrule closes the REQUIRED progression gap - ADR-010 —
VerificationReportgainscitations_checked(schema v3) - ADR-011 — Configurable inline marker shapes
- ADR-012 —
GenerationResultbumped to schema_version=3 with optionalusage - ADR-013 —
Citationextended with cited_text + source_span + document_title - ADR-014 — Async surface (
agenerate/astream) on Backend + Citeformer - ADR-015 — Defer Bedrock + Vertex AI backends to a future release
- ADR-016 — Defer fine-grain windowing for
verify()until calibration data exists - ADR-017 — Defer per-model cost tables; surface tokens, let consumers price