Context

ADR-001 made a note’s citation structural with requires = ["arxiv"] on the LIT scheme, and the rule paid for itself at once: two papers had reached the corpus with no identifier at all. The check is the mechanism DP-001 describes — a document that does not name its source fails the build, at the moment of writing, while the author still knows where they read it.

The first document to fail it for a different reason was the Falcon-H1-Tiny release (LIT-119): a 70-page technical blogpost with the ablations this anthology exists to collect, published on a Hugging Face Space and never posted to arXiv. It has a source. It does not have an arXiv id, and requires can only demand a named field — it cannot say “one of these”.

Luria 0.7 added the construct that can. A field group names a need and the fields that satisfy it:

[luria.schemes.LIT.field_groups.source]
fields  = ["arxiv", "doi", "url"]
require = "at-least-one"

This is the shape luria’s own knowledge-base example uses for exactly this scheme, and it is what the requires docstring recommends for “a paper that was never posted to arXiv but has a DOI, or only a URL”.

Decision

A LIT note must carry at least one of arxiv:, doi:, url:. The requires = ["arxiv"] line is gone; the field group replaces it.

The three are not equal, and the order in the config is the order of preference:

  • arxiv: and doi: are identifiers. Written as ARXIV-2507.22448 or DOI:10.1145/3600006.3613165 in prose they resolve through a remote, so the lint can check them and luria remotes --pin can endorse the content they name. A DOI remote is added alongside the arXiv one for this reason; the delimiter is : because a DOI carries its own dots and slash.
  • url: is a string. Nothing checks that it resolves, nothing can pin what it points at, and nothing will notice when it moves. It is allowed because a report with only a URL still has a source, and a source that is a string beats a source that is blank. Use it only when neither identifier exists, and say in the note’s Standing section where a durable copy is.

Nothing about SOTA changes: a practice still names a LIT document, and the note is where the note’s own source lives.

Alternatives considered

  • File the report under its parent paper’s arXiv id. Falcon-H1-Tiny builds on the Falcon-H1 report (ARXIV-2507.22448) and its learnable-multiplier preprint (ARXIV-2601.04890), and either id would have satisfied the lint. Both name a different document. A citation that resolves to the wrong paper is worse than one that fails, because the lint stops looking.
  • Put the URL in arxiv:. Satisfies “any truthy value”. It is the failure ADR-001 records — a field whose name promises one thing and whose contents are another — reintroduced deliberately.
  • Drop the requirement. A citation kept as an optional field is a citation that is empty in most records (DP-001). The requirement is the point.
  • Require url: on every note instead. Every arXiv paper has a URL, so one field would cover everything. But a URL cannot be found to be retired, cannot be pinned, and cannot be counted as the same paper when two notes spell it differently; the typed id is what makes “cite the paper” and “the citation resolves” one check. Requiring the weak form everywhere to admit it somewhere gives up the strong form for the 118 notes that have it.
  • A separate scheme for grey literature. A REPORT scheme with its own requires. It splits the reading list on where a document was posted rather than on what it says, and every practice would need to know which scheme its source lives in. The distinction that matters — paper or note, evidence or claim — is already ADR-002’s.
  • Status quo. The blogpost cannot be filed, and neither can the eight practices drawn from it. The next technical report meets the same wall.

Consequences

  • DP-001 is bumped to v2: its “applied here” sentence named arxiv: as the mechanism, and the mechanism is now the group. The principle itself is unchanged; this is its second instance.
  • The lint’s finding for a note with no source now reads no source — one of arxiv:, doi:, url:, citing this table. The unresolved-codes and retirement checks are unaffected: they run on codes in prose, and a url: never produces one.
  • The corpus gains its first url:-only note and its first DOI remote with, so far, nothing cited through it. The remote is there so that the first DOI-only source can be filed without another decision.
  • What this does not fix: a url: note is exactly as checkable as the YAML this record replaced, for that one field. If such notes become common, the next step is a remote for the host they share — a Hugging Face Spaces uid remote would make HF:tiiuae/tiny-h1-blogpost a resolvable code — and that is the decision to make when there are two.