Sequential numbers are globally ordered. Distributed branches are not.
If several branches can create records concurrently, allocating permanent numbers at filing time can produce collisions.
Luria can represent provisional identity explicitly.
Configure merge allocation
For a scheme:
schemes:
ADR:
allocate: mergeCreate records normally
$ luria new adr --title "..."The kind is the scheme’s prefix in lowercase.
The new entry receives a visibly temporary code — the reserved tmp prefix plus a random suffix where the number would go — rather than pretending its global sequence number is already known.
The temporary identity is first-class on the branch: it can be linted, indexed, and cited.
This behavior is governed by ADR-049.
Concretize where merges serialize
At the merge queue / merge-to-main serialization point:
$ luria concretizeLuria assigns permanent numbers, renames source files, rewrites references, and preserves the temporary spelling as a former identity/alias so old citations do not become dead names.
Guard the trunk
$ luria concretize --checkUse this where a temporary code on the serialized branch should be considered mechanically fixable and therefore inadmissible.
Why this is a product feature
The point is not merely avoiding filename collisions.
The record distinguishes:
provisional identityfrom:
serialized permanent identityinstead of encoding a distributed guess as if it were globally authoritative.