Cómo computeRoleDiff() compara dos roles categoría por categoría, la convención A/B, qué significa cada categoría de cambio, y la diferencia entre la pestaña Diff dentro del constructor y la ruta de diff independiente.
Un diff de roles es la diferencia estructurada entre dos roles: aristas de perfil agregadas o eliminadas, cambios de clasificación de perfil, desplazamientos de IRI/ICI y reordenamientos de etapas de flujo. Es el artefacto de transformación en RPF — cuando ves lo que es distinto entre el rol de hoy y el de mañana, ves qué aprender, qué enseñar y qué contratar.
Tres audiencias leen el diff de forma distinta. Las entidades profesionales lo leen como evidencia de lo que "future-ready" significa realmente en la práctica. Los líderes organizacionales lo leen como la brecha que sus roles necesitan cerrar. Los profesionales lo leen como el currículo que necesitan recorrer.
El diff de roles es una función pura sobre dos roles publicados, A y B. Devuelve un paquete RoleDiff estructurado con cinco secciones: aristas de perfil (agregadas / eliminadas / clasificación cambiada / desplazamiento de IRI / desplazamiento de ICI) y etapas de flujo (agregadas / eliminadas / reordenadas). No devuelve prosa; devuelve datos estructurados categorizados que la UI renderiza.
Al igual que la brecha de perfil (M18.1), el diff se computa, no se redacta. No hay un "editor de diff". El diff es una lectura en vivo sobre ambos roles, recalculada cada vez que cualquiera de los lados cambia.
A es el rol desde el cual abriste el diff; B es el objetivo de comparación (típicamente el sucesor de A, o definido vía ?vs=<slug>). Visualmente, A se renderiza a la izquierda en tonos pizarra; B se renderiza a la derecha en tonos esmeralda. Los tonos verdes significan "agregado en B / incrementado hacia B"; los tonos ámbar significan "eliminado / disminuido".
El rol sujeto — usualmente el legado o el híbrido. Se renderiza al lado izquierdo del diff. Los tonos pizarra coinciden con la paleta de la insignia de arquetipo para legado.
El objetivo de comparación — usualmente el sucesor future-ready. Se renderiza al lado derecho del diff. Los tonos esmeralda coinciden con la paleta de la insignia de arquetipo para future-ready.
Perfiles vinculados a B pero no a A. Cada fila muestra la clasificación (core / primario / soporte). "Agregado" significa que el rol future-ready espera competencia en un perfil que el rol legado no exigía.
Perfiles vinculados a A pero no a B. "Eliminado" significa que una competencia que el rol legado exigía ya no es central para el rol future-ready — frecuentemente un flujo de trabajo que se ha automatizado o delegado.
Perfiles presentes en ambos lados donde la clasificación cambió (por ejemplo core → primario). La categoría captura el desplazamiento en la centralidad de un perfil dentro del rol, incluso cuando ambos lados lo cargan.
Delta de IRI por arista de perfil (B − A), sumado en iriShiftTotal. Un desplazamiento positivo significa que el rol future-ready exige más información a lo largo del perfil; uno negativo, menos. IRI va de 0 a 3 por perfil por rol.
Delta de ICI por arista de perfil (B − A), sumado en iciShiftTotal. Un desplazamiento positivo significa que el rol future-ready exige más profundidad de competencia (un listón cognitivo / de ejecución más alto). ICI va de 0 a 3 por perfil por rol.
Etapas de flujo presentes en ambos lados donde la posición ordinal cambió, más etapas agregadas o eliminadas. Un reordenamiento típicamente señala una reestructuración del flujo — por ejemplo, "coordinación de diseño" moviéndose antes en el ciclo de vida.
La pestaña Diff dentro del constructor de roles (LeftPane) muestra el mismo diff que la ruta independiente, pero con affordances de autoría: hacer clic en una fila puede llevarte a la sección relevante del constructor, y la pista de primera ejecución del agente se comparte con la ruta independiente mediante una sola clave de descarte para que el recorrido solo corra una vez en ambas superficies. La pestaña Diff reemplazó a la antigua pestaña Compare en M18.3.3c.
La ruta independiente es un componente de servidor de solo lectura, cacheable estáticamente, y el enlace canónico para compartir cuando alguien quiere ver el diff sin entrar al constructor. Acepta ?vs=<otro-slug> para sobrescribir el objetivo de comparación, y renderiza el panel del agente + la pista de primera ejecución en línea.