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
| De | Qué |
|---|---|
| PE-4 · Propuesta enviada | La 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 productos | La categoría web calculada antes de la calificación. |
| FT-IA-04 · Integración de los modelos de IA existentes | El 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
| A | Qué |
|---|---|
| PE-5 · Visto bueno dado | La 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 SAP | La 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ías | En Mercaderías y Suburbia, la calificación informativa que Compras ve al decidir. |
| FT-IA-06 · Asistente conversacional para que el seller reporte errores | La 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ón | De → a | Cuándo |
|---|---|---|
| T05 | En revisión → Creación de SKU | Visto 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). |
| T04 | En revisión → Borrador | Rechazo 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
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.
Los pasos en texto
| Paso | De | A | Qué hace | API o evento |
|---|---|---|---|---|
| 1 | MS-02 Producto | MS-06 Evaluación | Pide la calificación de visto bueno | API-06-006 |
| 2 | MS-06 Evaluación | MS-02 Producto | Lee la propuesta con sus valores e imágenes | API-02-054 |
| 3 | MS-06 Evaluación | MS-01 Catálogo | Lee qué pide el SKU y los niveles del negocio | API-01-028 |
| 4 | MS-06 Evaluación | MS-15 IA y enriquecimiento | Pide la coherencia de imagen, título y atributos | API-15-005 |
| 5 | MS-15 IA y enriquecimiento | Modelos de IA | Compara la imagen con título, género y talla | — |
| 6 | MS-15 IA y enriquecimiento | MS-06 Evaluación | Responde la confianza y lo que no cuadra | — |
| 7 | MS-06 Evaluación | Base pim | Guarda la calificación: pasa el visto bueno | — |
| 8 | MS-06 Evaluación | MS-02 Producto | Responde PASS con la calificación y su rango | — |
| 9 | MS-02 Producto | Base pim | Cierra Calificación de IA y pasa a Creación de SKU | — |
| 10 | MS-02 Producto | Eventos | Avisa el cambio de estado | catalog.product.changed/STATUS_CHANGED |
| 11 | MS-02 Producto | Eventos | Pide crear el artículo en SAP | catalog.product.publication/SAP_CREATION_REQUESTED |
3.1 Si no alcanza: regresa sin rechazo
3.2 Incoherencias y calificación mientras captura
3.3 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
| Campo | Valor |
|---|---|
| API | API-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 épica | Calcular la calificación: oficial para el visto bueno y vista previa mientras captura |
| Quién la llama | Entrada Única · Vendor Center (por el BFF), MS-02 Producto |
| Permiso | PREVIEW: el dueño de la propuesta; OFFICIAL: sólo MS-02 (cuenta de servicio) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | validation_results |
| Publica | catalog.validation.result/EVALUATION_DONE |
| También la usan | FT-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
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe o no es de quien llama |
| 409 | VERSION_CONFLICT | La versión no es la vigente del producto |
| 422 | VALIDATION_ERROR | OFFICIAL 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.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-06-004 | GET /api/v2/evaluations/{evaluationId} | Ver qué falta, qué no cuadra y el título sugerido | FT-FLU-03 · Decisión por negocio ante coincidencia |
| API-06-007 | GET /api/v2/validation-thresholds | Leer pesos, mínimo del visto bueno y rangos de publicación | FT-REF-03 · Servicio de matching |
| API-06-008 | POST /api/v2/validation-thresholds/plans | Cambiar pesos, mínimo o rangos con su impacto | FT-REF-03 · Servicio de matching |
| API-06-009 | POST /api/v2/validation-plans/{planId}/apply | Confirmar el cambio de pesos, mínimo o rangos | FT-REF-03 · Servicio de matching |
| API-15-005 | POST /api/v2/ai/quality-reviews | Pedir la coherencia de imagen, título y atributos, o del color de una variante | FT-IA-05 · Enriquecimiento continuo después de crear el SKU y después… |
| API-15-011 | POST /api/v2/ai/config/plans | Ajustar el umbral de la revisión de color de variantes | FT-IA-04 · Integración de los modelos de IA existentes |
| API-15-012 | POST /api/v2/ai-plans/{planId}/apply | Confirmar el umbral nuevo | FT-IA-04 · Integración de los modelos de IA existentes |
| API-01-028 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective | Leer qué pide el SKU y el nivel de cada atributo por negocio | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | Leer la propuesta completa para calificarla | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
| API-02-012 | POST /api/v2/products/{id}/values/plans | Guardar la corrección que hace el seller | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-02-014 | POST /api/v2/products/{id}/variants/link/plans | Ligar una variante nueva, que pasa por la revisión de color | FT-PRD-01 · Modelo canónico de producto |
| API-02-035 | POST /api/v2/tasks/plans | Aprobar o rechazar la variante en QA manual | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar la decisión de QA | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.changed/STATUS_CHANGED | Pasa 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_REQUESTED | La calificación de visto bueno pasa en Marketplace | FT-PRD-02 |
catalog.product.changed/TASK_CHANGED | Se cierra Calificación de IA, se abre Corrección «Por completar» o QA manual de una variante | FT-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
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.changed/TASK_CHANGED | MS-14 avisa al seller qué le falta, sin llamarlo rechazo | esta misma épica |
catalog.governance.changed/TEMPLATE_VIEW_CHANGED | MS-06 renueva su caché de niveles y pesos por plantilla y negocio | FT-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ón | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
validation_results | MS-06 | El resultado de cada evaluación: lista negra, coincidencias con su confianza y score. | escribe |
validation_thresholds | MS-06 | Los umbrales de coincidencia y de calificación por negocio. | escribe |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | lee |
ai_jobs | MS-15 | Cada trabajo de IA con su entrada, su resultado y su confianza. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-RAC-02·H1 · Calcular el score | P1 | pasos 1, 2, 3, 4, 5, 6, 7, 8; API-06-006 |
| FT-RAC-02·H2 · No avanzar sin rechazar | P1 | flujo «Si no alcanza: regresa sin rechazo»; API-06-007, API-06-008, API-06-009 |
| FT-RAC-02·H3 · Ver mi calificación mientras capturo | P1 | flujo «Incoherencias y calificación mientras captura»; API-06-006 |
| FT-RAC-02·H4 · Completo pero incoherente | P2 | pasos 4, 5, 6; flujo «Incoherencias y calificación mientras captura» |
| FT-RAC-02·H5 · Validar el color nuevo contra su foto | P2 | flujo «Variante nueva: color contra su foto»; API-15-011, API-15-012 |
| FT-RAC-02·H6 · Recomendar correcciones al seller por incoherencias | P3 | flujo «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
| ID | Qué falta |
|---|---|
| PD-24 | Ratificar 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-31 | Quié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
- [D]
trazabilidad/features/FT-RAC-02-score-calidad-completitud-confianza.md: la ficha de la épica, con sus historias, reglas y bloqueos. - [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
- [D]
docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta. - [D]
docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida. - [D]
docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md§7: estados, tareas y canales. - [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.