← Arquitectura por épica

FT-RAC-02 · Score de calidad del producto

Arquitectura del Nuevo PIM por épica · corte del 18-oct-2026

Propuesta del TL: no sustituye la spec de cada épica

Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.

Qué responde. Cómo funciona por dentro FT-RAC-02: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.

Para quién. Los equipos que van a construir la épica, QA y arquitectura.

Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.

Fuente. docs/arquitectura/por-epica/epicas/FT-RAC-02.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-RAC-02-score-calidad-completitud-confianza.md.

En 30 segundos

En Marketplace no hay un comprador que dé el visto bueno: lo da una calificación. Esta épica calcula si el producto tiene sus obligatorios (sí o no), qué tan completo está en recomendados y opcionales y qué tan coherentes son su imagen, título y atributos. Antes del SKU sólo frena lo que el SKU necesita; lo que no alcanza regresa al seller como «Por completar», sin rechazo. El seller ve su calificación mientras captura y qué le falta para subirla.

  • Módulo dueño: MS-06 Evaluación. También participan: MS-01 Catálogo, MS-02 Producto, MS-14 Avisos y ayuda, MS-15 IA y enriquecimiento.
  • Etapa 4 · Visto bueno. Recibe «PE-4 · Propuesta enviada» y entrega «PE-5 · Visto bueno dado».
  • APIs: construye 1 y usa 13 que construyen otras épicas.
  • Eventos: publica 3 y consume 2.

1. Dónde encaja

Recibe

DeQué
PE-4 · Propuesta enviadaLa propuesta de Marketplace En revisión, con los obligatorios completos y la tarea Calificación de IA abierta.
FT-RAC-01 · Motor de validación en línea y candados de datos…La propuesta validada por la Validación automática, con la identificación revisada y su categoría ya calculada.
FT-CAT-03 · Categorización de productosLa categoría web calculada antes de la calificación.
FT-IA-04 · Integración de los modelos de IA existentesEl grupo de artículos y la sección, elegidos por la tabla, por la IA o por Gobierno de Datos.
FT-PLT-06 · Configuración de atributos por plantilla y por negocio…Los requeridos, recomendados y opcionales de cada negocio con que se calcula la completitud.
FT-IA-03 · Enriquecimiento de atributos opcionales con IA y política…Los recomendados y opcionales que el seller llenó con ayuda de la IA, que suben la completitud.

Entrega

AQué
PE-5 · Visto bueno dadoLa propuesta en Creación de SKU: la calificación de visto bueno pasó y se pidió el artículo a SAP con SAP_CREATION_REQUESTED.
FT-PRD-02 · Creación de SKU con SAPLa petición de crear el artículo en SAP para la propuesta de Marketplace.
FT-RAC-03 · Publicación por rangos de score y revisión de calidad…La calificación guardada (obligatorios, completitud y confianza) y su rango de publicación según los rangos de MS-06.
FT-PRD-04 · Propuesta del proveedor de MercaderíasEn Mercaderías y Suburbia, la calificación informativa que Compras ve al decidir.
FT-IA-06 · Asistente conversacional para que el seller reporte erroresLa calificación y lo que le falta a cada producto, para que el asistente explique por qué no avanza.

Cambios de estado que hace

TransiciónDe → aCuándo
T05En revisión → Creación de SKUVisto bueno: Compras en Mercaderías; en Marketplace, la Calificación de IA confirma que tiene lo que el SKU necesita (el score decide después la publicación).
T04En revisión → BorradorRechazo de Compras o de las reglas; se abre Corrección.

Tareas que abre o cierra: Calificación de IA, Corrección, QA manual.

2. Diagrama de contexto

Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.

🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño

Sistemas externos

Nuevo PIM · un solo sistema

Pantallas y sistemas

Personas

Calcular la calificación de un produc…

Foto del producto para publicar
Responde PASS con la calificación y s…
y 1 más

Vista efectiva de una plantilla por n…

Revisar la calidad con IA

Compara la imagen con título, género…
Ve un vaso amarillo: confianza 0.41

Responde la confianza y lo que no cua…

STATUS_CHANGED
SAP_CREATION_REQUESTED
y 1 más

TASK_CHANGED

Avisa qué le falta, sin llamarlo rech…

Calcular la calificación de un produc…
Detalle de una evaluación

Responde calificación, qué la sube e…

Revisar valores en el momento
Ligar una variante a su genérico
y 2 más

Revisar la calidad con IA

Responde debajo del umbral de la tarea

Seller

QA y Category

Entrada Única · Vendor Center

BFF del portal

MS-01 Catálogo

MS-02 Producto

★ MS-06 Evaluación

MS-14 Avisos y ayuda

MS-15 IA y enriquecimiento

Base pim

Eventos

Modelos de IA

Servicio de correo

Contexto de FT-RAC-02

3. Diagrama de flujo

El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.

EventosBase·pimModelos de IAMS-15 IA y enriquecimientoMS-01 CatálogoMS-06 EvaluaciónMS-02 ProductoEventosBase·pimModelos de IAMS-15 IA y enriquecimientoMS-01 CatálogoMS-06 EvaluaciónMS-02 Producto1. Pide la calificación de visto buenoPOST /api/v2/scores2. Lee la propuesta con sus valores e imágenesGET /internal/product/products/{id}/publication-snapshot?versio…3. Lee qué pide el SKU y los niveles del negocioGET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective4. Pide la coherencia de imagen, título y atributosPOST /api/v2/ai/quality-reviews5. Compara la imagen con título, género y talla6. Responde la confianza y lo que no cuadra7. Guarda la calificación: pasa el visto bueno8. Responde PASS con la calificación y su rango9. Cierra Calificación de IA y pasa a Creación de SKU10. Avisa el cambio de estadoSTATUS_CHANGED11. Pide crear el artículo en SAPSAP_CREATION_REQUESTED
Flujo principal de FT-RAC-02
Los pasos en texto
PasoDeAQué haceAPI o evento
1MS-02 ProductoMS-06 EvaluaciónPide la calificación de visto buenoAPI-06-006
2MS-06 EvaluaciónMS-02 ProductoLee la propuesta con sus valores e imágenesAPI-02-054
3MS-06 EvaluaciónMS-01 CatálogoLee qué pide el SKU y los niveles del negocioAPI-01-028
4MS-06 EvaluaciónMS-15 IA y enriquecimientoPide la coherencia de imagen, título y atributosAPI-15-005
5MS-15 IA y enriquecimientoModelos de IACompara la imagen con título, género y talla—
6MS-15 IA y enriquecimientoMS-06 EvaluaciónResponde la confianza y lo que no cuadra—
7MS-06 EvaluaciónBase pimGuarda la calificación: pasa el visto bueno—
8MS-06 EvaluaciónMS-02 ProductoResponde PASS con la calificación y su rango—
9MS-02 ProductoBase pimCierra Calificación de IA y pasa a Creación de SKU—
10MS-02 ProductoEventosAvisa el cambio de estadocatalog.product.changed/STATUS_CHANGED
11MS-02 ProductoEventosPide crear el artículo en SAPcatalog.product.publication/SAP_CREATION_REQUESTED

3.1 Si no alcanza: regresa sin rechazo

Entrada Única · Vendor CenterServicio de correoMS-14 Avisos y ayudaEventosBase·pimMS-02 ProductoMS-06 EvaluaciónEntrada Única · Vendor CenterServicio de correoMS-14 Avisos y ayudaEventosBase·pimMS-02 ProductoMS-06 EvaluaciónSeller1. Responde RETURN con lo que le falta al SKU2. Regresa a Borrador con Corrección «Por completar»3. Avisa la tarea del sellerTASK_CHANGED4. Entrega la tarea para avisar al sellerTASK_CHANGED5. Avisa qué le falta, sin llamarlo rechazo6. Completa lo que le falta y reenvíaSeller
Si no alcanza: regresa sin rechazo

3.2 Incoherencias y calificación mientras captura

MS-02 ProductoMS-01 CatálogoMS-06 EvaluaciónEntrada Única · Vendor CenterMS-02 ProductoMS-01 CatálogoMS-06 EvaluaciónEntrada Única · Vendor CenterSellerBFF1. Llena dos recomendados mientras captura2. Pide la calificación en vista previaPOST /api/v2/scores3. Lee los pesos por nivel de la plantillaGET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective4. Responde calificación, qué la sube e incoherencias5. Pide el detalle con el título sugeridoGET /api/v2/evaluations/{evaluationId}6. Acepta el título sugerido o lo edita7. Guarda el cambio con el plan de valoresPOST /api/v2/products/{id}/values/plans8. Recalcula: la confianza ya usa el título nuevoPOST /api/v2/scoresSellerBFF
Incoherencias y calificación mientras captura

3.3 Variante nueva: color contra su foto

Base·pimModelos de IAMS-15 IA y enriquecimientoMS-02 ProductoEntrada Única · Vendor CenterBase·pimModelos de IAMS-15 IA y enriquecimientoMS-02 ProductoEntrada Única · Vendor CenterSellerBFFQA y Category1. Agrega la variante negra de un vaso2. Pide el plan para ligar la variantePOST /api/v2/products/{id}/variants/link/plans3. Pide comparar el color con su fotoPOST /api/v2/ai/quality-reviews4. Ve un vaso amarillo: confianza 0.415. Responde debajo del umbral de la tarea6. Abre QA manual: la variante no avanza7. Revisa la foto y aprueba o rechaza la variante8. Pide el plan de su decisión sobre la tareaPOST /api/v2/tasks/plans9. Confirma la decisiónPOST /api/v2/product-plans/{planId}/applySellerBFFQA y Category
Variante nueva: color contra su foto

4. Si algo sale mal

  • La propuesta no tiene lo que el SKU necesita (o no alcanza el mínimo que el negocio configuró). Regresa a Borrador con una Corrección de origen calificación; el seller ve «Por completar» con lo que falta y cuánto sube cada dato, y recibe un aviso. No es un rechazo.
  • MS-15 no responde la coherencia. La calificación se guarda con «confianza pendiente» y no frena el visto bueno, porque la confianza decide la publicación y no el SKU; QA con IA la revisa después.
  • Falta el grupo de artículos o la sección. No pasa: MS-06 responde REVIEW y MS-02 abre Gobierno de Datos (FT-IA-04); al resolverse, MS-02 vuelve a pedir la calificación.
  • La plantilla cambió entre el envío y la calificación. MS-06 califica con la vista efectiva de la versión enviada y guarda con qué versión lo hizo; con TEMPLATE_VIEW_CHANGED renueva su caché para la siguiente.

5. APIs

Las que construye esta épica (1)

POST /api/v2/scores · Calcular la calificación de un producto
CampoValor
APIAPI-06-006 · MS-06 Evaluación
Para quéCalcula la calificación de calidad: los obligatorios como sí o no, la completitud ponderada de recomendados y opcionales, y la confianza (coherencia entre imagen, título y atributos), y dice si pasa el visto bueno de Marketplace y en qué rango de publicación cae. En vista previa (PREVIEW, la pide la pantalla mientras el seller captura) responde en línea, no guarda nada y reusa la última confianza calculada. La oficial (OFFICIAL) la pide MS-02: para un producto responde en línea y la guarda; para un lote de hasta 100 (después de una carga masiva) responde 202 con un evaluationId por producto y avisa con EVALUATION_DONE. La confianza sale de la última revisión de calidad de MS-15 para esa versión (qualityJobId) o se pide en línea.
En esta épicaCalcular la calificación: oficial para el visto bueno y vista previa mientras captura
Quién la llamaEntrada Única · Vendor Center (por el BFF), MS-02 Producto
PermisoPREVIEW: el dueño de la propuesta; OFFICIAL: sólo MS-02 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id, Idempotency-Key
Escribe envalidation_results
Publicacatalog.validation.result/EVALUATION_DONE
También la usanFT-CAT-03, FT-FLU-01, FT-FLU-05, FT-IA-03, FT-RAC-03

Request

{
  "mode": "PREVIEW",
  "productId": "PRD-0004812",
  "version": 7,
  "draftValues": {
    "MATERIAL": "PLASTICO_ABS",
    "CABLE_INCLUIDO": "SI"
  }
}

Response · 200

{
  "success": true,
  "data": {
    "productId": "PRD-0004812",
    "version": 7,
    "business": "MKP",
    "mode": "PREVIEW",
    "mandatory": {
      "status": "PASS",
      "missing": []
    },
    "completeness": {
      "value": 72,
      "recommended": {
        "filled": 4,
        "total": 6,
        "weight": 2
      },
      "optional": {
        "filled": 3,
        "total": 10,
        "weight": 1
      }
    },
    "confidence": {
      "value": 0.91,
      "computedForVersion": 6,
      "incoherences": []
    },
    "total": 66,
    "vistoBueno": {
      "passes": true,
      "minimum": 0,
      "gates": {
        "mandatory": "PASS",
        "template": "PASS",
        "itemGroup": "PASS",
        "identification": "PASS"
      }
    },
    "publicationBand": "REVISION_PRIORITARIA",
    "improvements": [
      {
        "attribute": "PUERTOS_SALIDA",
        "label": "Puertos de salida",
        "level": "RECOMMENDED",
        "gain": 6
      },
      {
        "attribute": "PESO_NETO",
        "label": "Peso neto",
        "level": "OPTIONAL",
        "gain": 3
      }
    ],
    "thresholdsVersion": 4
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl producto no existe o no es de quien llama
409VERSION_CONFLICTLa versión no es la vigente del producto
422VALIDATION_ERROROFFICIAL con más de 100 productos, o PREVIEW con valores de atributos que no son de la plantilla

Las que usa y construye otra épica (13)

Su request y su response están en la página de la épica que la construye.

APIMétodo y rutaPara qué, aquíLa construye
API-06-004GET /api/v2/evaluations/{evaluationId}Ver qué falta, qué no cuadra y el título sugeridoFT-FLU-03 · Decisión por negocio ante coincidencia
API-06-007GET /api/v2/validation-thresholdsLeer pesos, mínimo del visto bueno y rangos de publicaciónFT-REF-03 · Servicio de matching
API-06-008POST /api/v2/validation-thresholds/plansCambiar pesos, mínimo o rangos con su impactoFT-REF-03 · Servicio de matching
API-06-009POST /api/v2/validation-plans/{planId}/applyConfirmar el cambio de pesos, mínimo o rangosFT-REF-03 · Servicio de matching
API-15-005POST /api/v2/ai/quality-reviewsPedir la coherencia de imagen, título y atributos, o del color de una varianteFT-IA-05 · Enriquecimiento continuo después de crear el SKU y después…
API-15-011POST /api/v2/ai/config/plansAjustar el umbral de la revisión de color de variantesFT-IA-04 · Integración de los modelos de IA existentes
API-15-012POST /api/v2/ai-plans/{planId}/applyConfirmar el umbral nuevoFT-IA-04 · Integración de los modelos de IA existentes
API-01-028GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effectiveLeer qué pide el SKU y el nivel de cada atributo por negocioFT-PLT-06 · Configuración de atributos por plantilla y por negocio…
API-02-054GET /internal/product/products/{id}/publication-snapshot?version=Leer la propuesta completa para calificarlaFT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio
API-02-012POST /api/v2/products/{id}/values/plansGuardar la corrección que hace el sellerFT-RAC-01 · Motor de validación en línea y candados de datos…
API-02-014POST /api/v2/products/{id}/variants/link/plansLigar una variante nueva, que pasa por la revisión de colorFT-PRD-01 · Modelo canónico de producto
API-02-035POST /api/v2/tasks/plansAprobar o rechazar la variante en QA manualFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar la decisión de QAFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/STATUS_CHANGEDPasa el visto bueno (T05) o regresa a Borrador (T04)FT-ACT-05, FT-ARQ-02, FT-CAT-05, FT-FLU-01, FT-IA-04, FT-PRD-02, FT-PRD-04, FT-PRD-06, FT-PRD-10, FT-RAC-03, FT-RAC-05, FT-RAC-06
catalog.product.publication/SAP_CREATION_REQUESTEDLa calificación de visto bueno pasa en MarketplaceFT-PRD-02
catalog.product.changed/TASK_CHANGEDSe cierra Calificación de IA, se abre Corrección «Por completar» o QA manual de una varianteFT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06

Consume

EventoPara quéQuién lo publica
catalog.product.changed/TASK_CHANGEDMS-14 avisa al seller qué le falta, sin llamarlo rechazoesta misma épica
catalog.governance.changed/TEMPLATE_VIEW_CHANGEDMS-06 renueva su caché de niveles y pesos por plantilla y negocioFT-IA-03, FT-MIG-02, FT-PLT-04, FT-PLT-05, FT-PLT-06, FT-PLT-09

7. Datos

Cada colección tiene un solo dueño, el único que escribe en ella.

ColecciónDueñoQué guardaEsta épica
validation_resultsMS-06El resultado de cada evaluación: lista negra, coincidencias con su confianza y score.escribe
validation_thresholdsMS-06Los umbrales de coincidencia y de calificación por negocio.escribe
template_viewsMS-01La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios.lee
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.lee
ai_jobsMS-15Cada trabajo de IA con su entrada, su resultado y su confianza.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-RAC-02·H1 · Calcular el scoreP1pasos 1, 2, 3, 4, 5, 6, 7, 8; API-06-006
FT-RAC-02·H2 · No avanzar sin rechazarP1flujo «Si no alcanza: regresa sin rechazo»; API-06-007, API-06-008, API-06-009
FT-RAC-02·H3 · Ver mi calificación mientras capturoP1flujo «Incoherencias y calificación mientras captura»; API-06-006
FT-RAC-02·H4 · Completo pero incoherenteP2pasos 4, 5, 6; flujo «Incoherencias y calificación mientras captura»
FT-RAC-02·H5 · Validar el color nuevo contra su fotoP2flujo «Variante nueva: color contra su foto»; API-15-011, API-15-012
FT-RAC-02·H6 · Recomendar correcciones al seller por incoherenciasP3flujo «Incoherencias y calificación mientras captura»; API-06-004

9. Decisiones de esta épica

Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.

  • D-RAC-02-1. El visto bueno de Marketplace (Calificación de IA, T05) es una calificación de sí o no sobre lo que el SKU necesita: obligatorios completos, plantilla, grupo de artículos y sección asignados, e identificación limpia (sin lista negra ni coincidencia abierta). El score de calidad se calcula en el mismo momento y viaja al producto, pero sólo frena el SKU si el negocio configura un mínimo de visto bueno (arranca en 0); su uso principal es decidir la publicación por rangos (FT-RAC-03). Por qué: Concilia «dos carreteras» con «lo que no alcanza no avanza»: antes del SKU sólo se exige lo que el SKU necesita y la calidad del contenido frena la publicación de cada canal, como proponen FT-FLU-01, FT-FLU-02 y FT-RAC-03. Se apoya en PD-24, RN-CAL-06, RN-GEN-03, DEC-48.
  • D-RAC-02-2. La fórmula: obligatorios como sí o no (si faltan, la calificación es 0); completitud de recomendados y opcionales llenos, ponderada por nivel (arranque 2 y 1, y llenar siempre sube); confianza, la coherencia de imagen, título y atributos que da MS-15; total igual a completitud por confianza. Pesos, mínimo y rangos son por negocio en validation_thresholds, con plan y vista previa del impacto. Por qué: Dos componentes y tres clases de atributo, como se acordó, con valores configurables porque los del taller son sólo ejemplos. Se apoya en DEC-45, RN-CAL-08, RN-CAL-09, RN-CAL-10.
  • D-RAC-02-3. Lo que no alcanza regresa a Borrador (T04) con una Corrección de origen calificación, que el seller ve como «Por completar» con lo que le falta y cuánto sube cada dato; no es un rechazo. Por qué: «Si no cumplen, no avanzan», sin castigar al seller con un rechazo. Se apoya en RN-CAL-06, DEC-46.
  • D-RAC-02-4. La calificación que decide la calcula MS-06 con lo guardado (OFFICIAL); la de la pantalla es vista previa con los valores que se están capturando y la última confianza calculada, que se renueva cuando se guarda un cambio que la afecta. Por qué: El seller ve su avance al momento sin que se corra la IA en cada tecla, y la pantalla nunca decide. Se apoya en RF-CAL-10, RN-CAL-10.
  • D-RAC-02-5. En Mercaderías y Suburbia la calificación se calcula igual pero es informativa: Compras la ve en su visto bueno y el proveedor en su propuesta; no frena nada. Por qué: Ahí el visto bueno es de Compras; la calificación ayuda a decidir sin cambiar quién decide. Se apoya en RF-CAL-06, DUD-32.
  • D-RAC-02-6. El color de una variante nueva contra su foto lo revisa MS-15 con el umbral de su tarea (configuración de MS-15); debajo, MS-02 abre QA manual y la variante no avanza hasta que QA la apruebe. Al cambiar el umbral, la siguiente variante ya usa el nuevo. Por qué: La IA propone y una persona decide lo dudoso, sin revisar a mano todas las variantes. Se apoya en RF-CAL-07, PD-27.

Qué falta decidir

IDQué falta
PD-24Ratificar con Gobierno de Producto y Marketplace que el score frena la publicación y no el SKU (aquí el mínimo de visto bueno arranca en 0).
DUD-31Quién calcula hoy la completitud y con qué fórmula, para comparar contra la nueva.

También siguen abiertos: PEN-36, Valores de pesos, mínimo y rangos (aquí 2 y 1, mínimo 0 y rangos 85 y 95); PEN-37, Cerrar que los obligatorios cuentan como sí o no y no como porcentaje; PEN-38, Qué pasa con un producto completo pero incoherente (aquí: no frena el SKU, sí la publicación).

Fuentes

  1. [D] trazabilidad/features/FT-RAC-02-score-calidad-completitud-confianza.md: la ficha de la épica, con sus historias, reglas y bloqueos.
  2. [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
  3. [D] docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta.
  4. [D] docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida.
  5. [D] docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md §7: estados, tareas y canales.
  6. [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.