Sémantique de computeRoleDiff() — arêtes de profil, reclassifications, décalages IRI/ICI, réordonnancements d'étapes de flux — le niveau de stabilité de schéma, et le journal des changements.
La différence entre rôles est une fonction pure sur deux rôles publiés, A et B. Elle retourne un paquet RoleDiff structuré avec six sections de niveau supérieur — arêtes de profil ajoutées, retirées, reclassifications, deltas IRI/ICI par arête de profil, changements d'étapes de flux — plus un agrégat de résumé. Pure signifie : les mêmes entrées produisent toujours la même sortie, pas d'appels base de données dans la fonction, sûre à appeler depuis des composants serveur sans plomberie supplémentaire.
Chaque rôle porte un ensemble d'attachements d'arête de profil : (profile_id, classification, iri, ici). La différence classe chaque arête comme ajoutée (présente sur B, pas A), retirée (présente sur A, pas B), ou commune (présente sur les deux).
Profils présents à la fois sur A et B où la classification a changé (par exemple support → primaire). La différence porte (profil, classificationA, classificationB) afin que l'UI puisse rendre la paire avant/après.
L'IRI varie 0–3 par profil par rôle. Pour les arêtes de profil communes, le delta par arête est B.iri − A.iri. Les deltas par arête sont sommés en iriShiftTotal pour la barre de résumé. Un total positif signifie que le rôle prêt pour l'avenir exige plus d'information à travers ses profils.
L'ICI varie 0–3 par profil par rôle. Pour les arêtes de profil communes, le delta par arête est B.ici − A.ici. Les deltas par arête sont sommés en iciShiftTotal. Un total positif signifie que le rôle prêt pour l'avenir exige plus de profondeur de compétence à travers ses profils.
Chaque rôle porte une liste ordonnée d'étapes de flux. La différence classe chaque étape comme ajoutée (sur B pas A), retirée (sur A pas B), ou réordonnée (sur les deux avec une position ordinale différente).
Les réordonnancements sont généralement la catégorie la plus informative pour le cadrage de transformation — ils montrent comment le centre de gravité du flux se déplace. Un BIM Manager prêt pour l'avenir qui fait remonter « validation d'information » avant « coordination de modèle » est un type de rôle différent de celui qui les place dans l'ordre inverse.
Chaque paquet RoleDiff porte un résumé avec sept comptes : commonProfiles, addedProfiles, removedProfiles, classificationChanges, iriShiftTotal, iciShiftTotal, flowReorders. La barre de résumé en haut de RoleDiffView les lit et rend les sept comptes comme la forme à coup-d'œil de la transformation.
Les maths de la différence sont agnostiques de juridiction — étant donné A et B, la fonction retourne le même paquet RoleDiff peu importe qui lit. Ce qui est conscient de juridiction est quel rôle canonique prêt pour l'avenir un fork organisationnel donné compare contre ; cette décision vit en amont de la différence, dans la surface d'archétype de rôle.
Le schéma du paquet RoleDiff est au niveau de stabilité bêta. La forme peut évoluer dans des versions mineures jusqu'à 1.0 ; les changements de forme cassants incrémenteront le schemaVersion dans l'enveloppe du paquet et le changement sera signalé dans le journal des changements.