Le banc mesure maintenant le code de production (computeBlockLayout), sans
écran, en quatre étages lus dans l'ordre et jamais additionnés :
- invariants qui doivent valoir zéro (chevauchement, couple non adjacent,
fratrie coupée ou hors de l'ordre choisi, rangée différente de la génération
de parenté recalculée ici, années de naissance qui redescendent) ;
- défauts comptés sur la géométrie vraiment dessinée (renvois, lignes de
fratrie au-dessus d'un portrait étranger, croisements, lignes et foyers plus
larges qu'un écran, proches de la référence visibles dans un écran) ;
- quatorze archétypes (ordre d'une fratrie, issue #67, branche courte, Marc et
Nadia, petit conjoint, fratrie de douze, remariage, cousins, oncle et nièce,
parent seul, adoption, deux familles, belle-famille, trois familles
enchaînées) rendus en texte, témoins dans __snapshots__/archetypes, testés
par vitest ; deux échecs connus (belle-famille, trois-belles-familles) en
attendant la règle « le sang de la référence garde son enfant » ;
- stabilité : retirer une feuille ne devrait déplacer que son foyer.
Les modèles ELK écartés en septembre, elk-common et l'ancienne mesure sur
segments droits sont supprimés, avec la dépendance elkjs. Le générateur
d'arbres fictifs (gen-fr.mjs) entre dans le dépôt ; les arbres réels restent
dans fixtures/, ignoré par git.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>