config.
5 of 121 decisions. Back to the full index.
| # | Title | Summary | Status |
|---|---|---|---|
| ADR-082 | A field can be required by another field’s value | A record can state what it believes and had no way to state what would change its mind, so provisional documents accumulate with nothing saying what they are provisional pending. required_when demands a field only while another field holds one of a listed set of values — one field, one set, no expression language, because the value of the rule is that it is legible in the line that declares it. | Active |
| ADR-107 | A whole-field derivation holds what its source holds | derive = "{tags}" off a plural source derives a plural field. many says so and is checked against the source’s scheme rather than inferred, because a followed derivation reads a scheme the loader has not finished assembling. Both directions of disagreement are refused eagerly — the one that was possible before was silent, emptying every tag page of the scheme with nothing failing. Rejected: inferring many from the template, and leaving the blanket refusal in place. | Active |
| ADR-109 | A config object says what it is, and where it says it depends on what it is | label + blurb for a thing named inside a scheme — a vocabulary, a tag group, a plain field, a field group — matching what a relation already had; title + blurb for a thing that renders its own page, which is a scheme, a journal and a chain. A vocabulary’s pair lives in the central table, not on the field that invokes it, so a set two schemes share is described once. Rejected: putting it on the field, which is where the first implementation put it and where it would have drifted. | Active |
| ADR-110 v2 | A vocabulary’s alert belongs to the set, like its blurb | alert on a vocabulary moves from the field that names it to the central table, beside label and blurb. The rule it explains is a fact about the set, and a record whose three schemes name one vocabulary was otherwise writing the same sentence three times. The nested form’s key list is read off a dataclass shaped like the table, because the version that was spelled inline did not know about alert and refused the first record to use both features together; the key holding the values is terms, not values. | Active |
| ADR-111 | A field the project declares unique, checked across the scheme | unique: true on a plain field, or once on a field group to say it of each field in it, and a lint violation when two documents hold one value. Every other check asks whether a pointer resolves; this asks the converse, whether two documents resolve to the same place, and nothing did. A duplicate retired naming its survivor is the resolution and not the finding, so the check clears on the pointer rather than on a status. Rejected: a bespoke duplicate-source finding, a warning class, pooling a group’s values across its fields, and waiting on an alternative backend. | Active |