The search and the ranking each hard-code their own order. The registry
names every criterion once, with its direction and family, and compiles
an operator order of tiers with integer weights (1 to 100) into the two
orders the engine reads; with no stored order it returns exactly today's
search tuple, acceptance switch and ranking. A stored order that breaks
a rule (shared lone criterion, weight, order inside a tier) is refused
by name. Goal matching reads OU/ET rules over normalised tags.
Checked: 60 tests, 100% branches on both modules (guard updated).
--- FR ---
[ADD] moteur : registre des critères, paliers, correspondance
La recherche et le classement figent chacun leur ordre. Le registre nomme
chaque critère une fois, avec son sens et sa famille, et compile un ordre
de paliers à poids entiers (1 à 100) en les deux ordres que lit le
moteur ; sans ordre écrit, il rend exactement le n-uplet, la bascule et
le classement d'aujourd'hui. Un ordre qui enfreint une règle (critère
seul partagé, poids, ordre dans un palier) est refusé par son nom. La
correspondance lit les règles OU/ET sur des étiquettes normalisées.
Vérifié : 60 épreuves, 100 % de branches aux deux modules (garde suivie).
Assisted-by: Claude Opus 5.5