Context
The generated contract page shows the asymmetry plainly. status,
consensus and tags each render with an italic gloss saying what the field
means. Every relation renders as a bare type declaration:
extends— optional, one or moreSOTAcodes when present
The knowledge was not missing. luria.yaml carries paragraphs of comment
around these fields explaining exactly this. It is in a form nothing can
render, quote or scaffold from — which is the case luria’s own Reference
docstring makes for the label: and blurb: keys it has supported since
LU-#254 and that no record had filled in.
The cost was not theoretical. ADR-048 closed asking for a
specializes: relation, because SOTA-083 (custom kernels for critical
ops) and SOTA-085 (flash attention) are a general rule and its instance,
joined by compared_against, which ADR-011 defines as this work evaluates
itself against that one. Nobody ran that comparison. The edge was in the
wrong field, and two passes read that as evidence the vocabulary was short a
word rather than that a filer had picked wrongly from a vocabulary nobody had
written down.
Decision
All twenty-one relations across SOTA, THEORY, LIT and NOTE carry
label: and blurb:. Where a YAML comment already said it, the prose
moves into the data and the comment keeps only the reasoning the blurb does
not need to carry.
extends is not split, because writing its blurb showed one coherent
idea:
the earlier practice this one builds on and could not stand without — a later version of the same recommendation, a narrower case of it, or a rule that only exists because the earlier one is followed
Those three looked like three relations from a distance. They are one
assertion — B carries A’s claim further and does not stand without A — and
the line reads correctly oldest-first in every case. SOTA-106 (a later
version of flash attention), SOTA-085 (a narrower case of custom kernels)
and SOTA-161 (a rule that exists only because flash attention is used) all
belong on one line under one arrow.
SOTA-085 and SOTA-106 now extend SOTA-083 rather than being
compared_against it. That is a correction under ADR-011’s existing
definition, not a new policy, and the practice line now reads: use custom
kernels for critical ops → use flash attention → use flash-attention-2.
Alternatives considered
- Add
specializes:. WhatADR-036andADR-048both asked for. Rejected onceextendswas written down: a narrower case is a case of building on and not standing without. Adding it would split one true relation into two that filers must choose between, and a wrong choice between two similar relations is silent. - Split
extendsintosupersedes-version,specializesanddepends-on. The fuller version of the same move. It buys precision the record has no use for — nothing reads the distinction, no view renders it, no check depends on it — at the cost of three vocabulary decisions per filing.DP-008’s corollary is the general form: do not add a category to admit a single document. - Leave the blurbs in comments and write an ADR instead. What the record has been doing. A decision is where a choice is argued; the contract page is where a filer looks while filing, and it was rendering nothing. The two are not substitutes.
- Keep
compared_againstonSOTA-083and treat the crossing as a vocabulary problem. Rejected: the relation asserts somebody ran a comparison and nobody did. The unbound-lineage report was right that something was wrong there and wrong about what.
Consequences
The contract page now says what every relation means, which is where a filer is looking at the moment they need it. Twenty-one glosses, generated, not a second copy to drift.
ADR-048’s standing request is withdrawn, and the SOTA-089 ↔
SOTA-107 pair it also cited is left alone — that edge’s far end is in the
attic and it is a comparison the record genuinely made.
The unbound relation does not disappear, and should not. SOTA-083
carries systems-optimization and SOTA-085 carries attention-techniques,
so the edge still crosses a vocabulary fault line — now as part of a line
rather than as a comparison nobody ran. SOTA-085’s frontmatter comment
asked that this edge “keep showing up until someone answers it”; this
answers what the relation is, not what the tags are, and the report is
correct to go on showing the second.
Blurbs are now a thing a new relation needs. Anything added to
references: without one will render as a bare type on a page where
everything around it explains itself, which is the kind of gap that gets
noticed.