6138d831da
J'ai classé readLinks comme notre invention parce qu'AddLinkV0 n'est construit nulle part en amont. C'était raisonner depuis l'absence — ce que cette règle interdit, et que je citais dans la même session. La bonne lecture était que la cible a DÉFINI la forme et ne l'a pas câblée : nous l'implémentons, ce qui est le meilleur alignement disponible. Les deux arrivent ensemble et l'absence est la plus bruyante, ce qui lui fait gagner des arguments qu'elle devrait perdre. D'où la règle : lire la déclaration, et laisser le silence autour ne rien dire. Elle gagne sa place dans la taxonomie, parce que la confondre avec « invention » fait croire qu'on est plus loin de la cible qu'on ne l'est — et un lecteur ultérieur, voyant « notre idée », se sentira libre de la changer. Cinq catégories désormais, et une provenance à côté de chaque symbole plutôt que dans un document qui dérive : le niveau qui répond, la référence amont, la catégorie. Un test l'exige sur la surface publiée. Il ne peut pas vérifier que la citation est vraie, et c'est acceptable : une citation se réfute en quelques secondes, une prose non — docs/api-contract.md affirmait un passthrough « 1:1 » faux sur deux points et un décompte de membres erroné, sans que rien n'oblige personne à aller voir. La classification vaut aussi pour le code non publié qui PRÉTEND ressembler à la cible : la faute qui motive tout ceci a été commise sur une fonction interne, et n'être pas exportée n'a protégé personne.