← Arquitectura por épica

FT-RAC-03 · Publicación por rangos de score y revisión de calidad…

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-03: 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-03.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-RAC-03-publicacion-por-rangos-de-score.md.

En 30 segundos

En Marketplace no hay comprador que revise cada producto, y mandar todo a una cola de QA manual repetiría el cuello de botella de hoy. Esta épica decide al final del enriquecimiento con el score de calidad: de 95 para arriba se aprueba y se publica; entre 85 y 95 se publica y QA lo revisa después, el más bajo primero; abajo de 85 no sale y el seller ve qué completar. A QA manual sólo llega lo que la IA no aprueba.

  • Módulo dueño: MS-02 Producto. También participan: MS-06 Evaluación, MS-15 IA y enriquecimiento, MS-14 Avisos y ayuda.
  • Etapa 7 · Calidad y categoría. Recibe «PE-6 · SKU asignado», «PE-7 · Imágenes listas» y entrega «PE-8 · Aprobado».
  • APIs: construye 0 y usa 17 que construyen otras épicas.
  • Eventos: publica 5 y consume 5.

1. Dónde encaja

Recibe

DeQué
PE-6 · SKU asignadoLa familia en En enriquecimiento, con SKU en cada variante y sus tareas de foto y secciones abiertas.
PE-7 · Imágenes listasLas imágenes listas en MS-11, con URL congelada y ligadas a su variante y posición.
FT-RAC-02 · Score de calidad del productoEl score de calidad (obligatorios, completitud y confianza) y su franja de publicación según los rangos de cada negocio en MS-06.
FT-IA-05 · Enriquecimiento continuo después de crear el SKU y después…El resultado de QA con IA (pasa, o lo que no cuadra con su ruta sugerida para QA manual) y los atributos enriquecidos que suben la calificación.

Entrega

AQué
PE-8 · AprobadoEl producto Aprobado, con cada canal del negocio en Pendiente y la petición de publicar; lo que quedó entre 85 y 95, con su revisión posterior abierta.
FT-INT-01 · Publicación a e-commerceLa petición de publicar a la tienda lo que alcanzó el umbral, sin pasar por una cola de QA.
FT-INT-07 · Repoblamiento masivo de productos hacia la tiendaLo que QA encuentra mal en algo ya publicado y manda a Repoblamiento.
FT-CAT-03 · Categorización de productosQA aprobado: el momento en que se revisa si la categoría necesita a Category.

Cambios de estado que hace

TransiciónDe → aCuándo
T08En enriquecimiento → AprobadoCalidad aprobada y sin tareas que bloqueen.
T09Aprobado → En modificaciónAlguien cambia un producto aprobado.
C01Inicio → Pendiente (por canal)El producto queda Aprobado.
C02Pendiente → Enviado (por canal)Cumple el mínimo del canal y el bus confirma que tomó el mensaje.

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

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

Revisar la calidad con IA

AI_QUALITY_READY

AI_QUALITY_READY

Calcular la calificación de un produc…

STATUS_CHANGED
PUBLICATION_REQUESTED
y 2 más

Bolsa de una cola
Ficha del producto
y 4 más

REJECTION_ADDED
TASK_CHANGED

Avisa al seller qué tiene que corregir
Avisa al seller qué le falta para pub…

Seller

QA y Category

Entrada Única · Vendor Center

BFF del portal

★ MS-02 Producto

MS-06 Evaluación

MS-15 IA y enriquecimiento

MS-14 Avisos y ayuda

Base pim

Eventos

Servicio de correo

Contexto de FT-RAC-03

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.

MS-06 EvaluaciónEventosMS-15 IA y enriquecimientoBase·pimMS-02 ProductoMS-06 EvaluaciónEventosMS-15 IA y enriquecimientoBase·pimMS-02 Producto1. Cierra foto y secciones y abre QA con IA2. Revisa la regla fija: obligatorios completos y foto principal3. Pide revisar imagen, título y descripción con IAPOST /api/v2/ai/quality-reviews4. Publica el resultado con su confianzaAI_QUALITY_READY5. Entrega el resultado de la revisión con IAAI_QUALITY_READY6. Pide el score y su franja de publicaciónPOST /api/v2/scores7. Cierra QA con IA y pasa a Aprobado8. Abre la revisión posterior por quedar entre 85 y 959. Deja cada canal del negocio en Pendiente10. Avisa que el producto quedó AprobadoSTATUS_CHANGED11. Pide publicar en cada canal que cumplePUBLICATION_REQUESTED
Flujo principal de FT-RAC-03
Los pasos en texto
PasoDeAQué haceAPI o evento
1MS-02 ProductoBase pimCierra foto y secciones y abre QA con IA—
2MS-02 ProductoBase pimRevisa la regla fija: obligatorios completos y foto principal—
3MS-02 ProductoMS-15 IA y enriquecimientoPide revisar imagen, título y descripción con IAAPI-15-005
4MS-15 IA y enriquecimientoEventosPublica el resultado con su confianzacatalog.ai.result/AI_QUALITY_READY
5EventosMS-02 ProductoEntrega el resultado de la revisión con IAcatalog.ai.result/AI_QUALITY_READY
6MS-02 ProductoMS-06 EvaluaciónPide el score y su franja de publicaciónAPI-06-006
7MS-02 ProductoBase pimCierra QA con IA y pasa a Aprobado—
8MS-02 ProductoBase pimAbre la revisión posterior por quedar entre 85 y 95—
9MS-02 ProductoBase pimDeja cada canal del negocio en Pendiente—
10MS-02 ProductoEventosAvisa que el producto quedó Aprobadocatalog.product.changed/STATUS_CHANGED
11MS-02 ProductoEventosPide publicar en cada canal que cumplecatalog.product.publication/PUBLICATION_REQUESTED

3.1 Revisión posterior de lo publicado entre 85 y 95

Servicio de correoMS-14 Avisos y ayudaEventosMS-02 ProductoEntrada Única · Vendor CenterServicio de correoMS-14 Avisos y ayudaEventosMS-02 ProductoEntrada Única · Vendor CenterQA y CategoryBFF1. Abre la revisión posterior de Marketplace2. Pide la cola del score más bajo al más altoGET /api/v2/task-queues/{cola}/pool3. Abre el producto publicado con 86GET /api/v2/products/{id}4. Encuentra la imagen principal equivocada5. Pide el plan de regresarlo al seller con el errorPOST /api/v2/workflow/actions/plans6. Confirma, la tienda conserva lo publicadoPOST /api/v2/product-plans/{planId}/apply7. Avisa el rechazo por campoREJECTION_ADDED8. Entrega el rechazo para avisarREJECTION_ADDED9. Avisa al seller qué tiene que corregirQA y CategoryBFF
Revisión posterior de lo publicado entre 85 y 95

3.2 Debajo de 85: el seller completa

Entrada Única · Vendor CenterServicio de correoMS-14 Avisos y ayudaEventosBase·pimMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterServicio de correoMS-14 Avisos y ayudaEventosBase·pimMS-06 EvaluaciónMS-02 ProductoSellerBFF1. Pide el score y recibe 80, franja RETENERPOST /api/v2/scores2. Abre Corrección con lo que falta para publicar3. Avisa la tarea nueva del sellerTASK_CHANGED4. Entrega la tarea para avisarTASK_CHANGED5. Avisa al seller qué le falta para publicar6. Completa los campos que le faltan7. Revisa los valores nuevos en el momentoPOST /api/v2/products/{id}/values/plans8. Confirma los cambiosPOST /api/v2/product-plans/{planId}/apply9. Recalcula el score: ahora 87POST /api/v2/scores10. Pide publicar en automáticoPUBLICATION_REQUESTEDSellerBFF
Debajo de 85: el seller completa

3.3 La IA no alcanza el umbral: QA manual

MS-14 Avisos y ayudaEntrada Única · Vendor CenterBase·pimMS-02 ProductoEventosMS-14 Avisos y ayudaEntrada Única · Vendor CenterBase·pimMS-02 ProductoEventosQA y CategoryBFF1. Entrega una confianza debajo del umbralAI_QUALITY_READY2. Abre QA manual con el error marcado3. Abre su bandeja de QA manual4. Pide sus productos asignadosGET /api/v2/task-queues/{cola}/my5. Pide el plan de mandarlo al área que corrigePOST /api/v2/workflow/actions/plans6. Confirma el envíoPOST /api/v2/product-plans/{planId}/apply7. Avisa el rechazo con su destinoREJECTION_ADDED8. Entrega el rechazo al área que corrigeREJECTION_ADDEDQA y CategoryBFF
La IA no alcanza el umbral: QA manual

4. Si algo sale mal

  • La IA no contesta. El producto no se aprueba sin revisión: se queda con QA con IA abierta y, a los 30 minutos (configurable), MS-02 abre QA manual con «Sin dato de IA». Nunca se toma la falta de respuesta como aprobada.
  • MS-06 no devuelve el score. No se decide la franja sin dato: se reintenta y, si sigue sin respuesta, el producto aparece en la bandeja de QA con «Sin score». Nunca se toma como 0 ni como 100.
  • QA encuentra un error grave en algo publicado (contenido prohibido o imagen de otro producto). QA lo retira del canal con la baja por canal (FT-CAT-05) y lo regresa al seller; un error menor no despublica: la tienda conserva lo publicado hasta que se aprueba la corrección.
  • El seller no completa lo que le falta. El producto ya tiene SKU y no se cancela solo: MS-02 le recuerda cada semana y, a los 60 días, la tarea pasa a la cola de Soporte de Marketplace.
  • Gobierno de Producto cambia los rangos. La vista previa de MS-06 dice cuántos productos cambiarían de franja; el cambio vale para las evaluaciones nuevas y no despublica ni republica lo anterior.

5. APIs

Las que construye esta épica (0)

Ninguna: todo lo que usa ya lo construye otra épica.

Las que usa y construye otra épica (17)

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-15-005POST /api/v2/ai/quality-reviewsLa revisión de calidad con IA: imagen contra título y título contra descripción, con su confianzaFT-IA-05 · Enriquecimiento continuo después de crear el SKU y después…
API-06-006POST /api/v2/scoresEl score y su franja: PUBLICAR, REVISION_PRIORITARIA o RETENERFT-RAC-02 · Score de calidad del producto
API-06-007GET /api/v2/validation-thresholdsVer los rangos de publicación vigentes por negocioFT-REF-03 · Servicio de matching
API-06-008POST /api/v2/validation-thresholds/plansCambiar los rangos con vista previa de cuántos productos cambian de franjaFT-REF-03 · Servicio de matching
API-06-009POST /api/v2/validation-plans/{planId}/applyConfirmar el cambio de rangosFT-REF-03 · Servicio de matching
API-15-010GET /api/v2/ai/configVer el umbral de confianza de cada modelo de IAFT-IA-04 · Integración de los modelos de IA existentes
API-15-011POST /api/v2/ai/config/plansCambiar el umbral de un modeloFT-IA-04 · Integración de los modelos de IA existentes
API-15-012POST /api/v2/ai-plans/{planId}/applyConfirmar el cambio de umbralFT-IA-04 · Integración de los modelos de IA existentes
API-02-036GET /api/v2/task-queues/{cola}/poolLa cola de revisión posterior, ordenada del score más bajo al más altoFT-PRD-06 · Bandeja de pendientes y depuración de borradores…
API-02-038GET /api/v2/task-queues/{cola}/myLa bandeja de QA manual de quien llamaFT-PRD-06 · Bandeja de pendientes y depuración de borradores…
API-02-002GET /api/v2/products/{id}Ver el producto que se revisaFT-PRD-01 · Modelo canónico de producto
API-02-028POST /api/v2/workflow/actions/plansRegresar al seller, o mandar a Compras, a Gobierno de Datos o a Repoblamiento, con el error marcadoFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar la decisión de QA o los valores del sellerFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-012POST /api/v2/products/{id}/values/plansEl seller completa valores con la validación en el momentoFT-RAC-01 · Motor de validación en línea y candados de datos…
API-02-303GET /api/v2/workflow/sku-blockersEl seller ve qué detiene la publicación de su SKU y qué completarFT-RAC-05 · Estatus del producto y motivos visibles para seller y…
API-02-030GET /api/v2/workflow/config/{type}Leer QUALITY_RULES (la regla fija de calidad) y SWITCHES (si la IA ya es segunda regla)FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-031POST /api/v2/workflow/config/{type}/plansCambiar la regla de calidad o encender la IA como segunda reglaFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/STATUS_CHANGEDEl producto pasa a AprobadoFT-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-05, FT-RAC-06
catalog.product.changed/TASK_CHANGEDSe cierra QA con IA, o se abre QA manual, la revisión posterior o la Corrección para completarFT-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-02, FT-RAC-04, FT-RAC-05, FT-RAC-06
catalog.product.changed/REJECTION_ADDEDQA manda el error al seller o al área que corrigeFT-INT-07, FT-PRD-04, FT-PRD-05, FT-PRD-10, FT-RAC-01, FT-RAC-05, FT-RAC-06
catalog.product.publication/PUBLICATION_REQUESTEDSe aprueba con franja PUBLICAR o REVISION_PRIORITARIA, o el seller completa y llega a 85FT-CAT-05, FT-CAT-06, FT-INT-01, FT-INT-02, FT-INT-05, FT-INT-07, FT-PLT-08, FT-PRD-05
catalog.ai.result/AI_QUALITY_READYMS-15 termina la revisión de calidad con su confianzaFT-IA-05, FT-RAC-06

Consume

EventoPara quéQuién lo publica
catalog.ai.result/AI_QUALITY_READYMS-02 cierra QA con IA o abre QA manualesta misma épica
catalog.product.changed/REJECTION_ADDEDMS-14 avisa a quien tiene que corregiresta misma épica
catalog.product.changed/TASK_CHANGEDMS-14 avisa al seller lo que le faltaesta misma épica
catalog.product.changed/STATUS_CHANGEDMS-14 avisa al seller que su producto quedó aprobadoesta misma épica
catalog.product.publication/PUBLICATION_REQUESTEDMS-08 publica en cada canalesta misma épica

7. Datos

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

ColecciónDueñoQué guardaEsta épica
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.escribe
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.escribe
product_delivery_statusMS-02El estado de publicación por producto y canal: Pendiente, Enviado, Publicado, Error o Retirado.escribe
product_receiptsMS-02El recibo de cada escritura confirmada en el producto (antes operation_receipts).escribe
product_outboxMS-02Los cambios del producto que esperan salir como evento (antes outbox).escribe
validation_thresholdsMS-06Los umbrales de coincidencia y de calificación por negocio.lee
ai_configMS-15Qué modelo atiende cada tarea y con qué umbral.lee
template_viewsMS-01La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios.lee
product_reference_tablesMS-02Configuración del motor de estados y del matching: transiciones, estados externos y pesos.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-RAC-03·H1 · Pasar directo sin cola de QAP1pasos 6, 7, 11; flujo «Revisión posterior de lo publicado entre 85 y 95»
FT-RAC-03·H2 · Publicar por rangos configurablesP1pasos 6, 8; API-06-007, API-06-008, API-06-009
FT-RAC-03·H3 · Revisar primero lo publicado entre 85 y 95P2flujo «Revisión posterior de lo publicado entre 85 y 95»; API-02-036
FT-RAC-03·H4 · Completar para salirP3flujo «Debajo de 85: el seller completa»; API-02-303, API-06-006
FT-RAC-03·H5 · QA manual sólo para lo que la IA no apruebaP1flujo «La IA no alcanza el umbral: QA manual»; API-02-038, API-02-028
FT-RAC-03·H6 · Regla de calidad fija primeroP1pasos 2; API-02-030, API-02-031
FT-RAC-03·H7 · Validar cada modelo de IA en su pasoP2pasos 3, 4, 5; flujo «La IA no alcanza el umbral: QA manual»; API-15-010, API-15-011, API-15-012

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-03-1. El score decide la publicación, no el SKU. Con franja PUBLICAR (95 o más) el producto pasa a Aprobado y se publica sin revisión; con REVISION_PRIORITARIA (de 85 a menos de 95) se aprueba, se publica y se abre la revisión posterior; con RETENER (menos de 85) no se aprueba y el seller recibe una Corrección de origen «score», que ve como «Por completar» y no cuenta como rechazo (igual que antes del SKU en FT-FLU-01). Los rangos son por negocio y viven en MS-06; arrancan en 85 y 95. Por qué: Lo que cumple pasa directo y lo dudoso se revisa primero sin detener la publicación; es la propuesta vigente para PD-24 y los rangos del taller. Se apoya en PD-24, RN-PUB-06, DEC-45, DEC-46, PEN-36.
  • D-RAC-03-2. La revisión posterior es una tarea QA manual que no bloquea, porque el producto ya está Aprobado y publicado; la cola se ordena del score más bajo al más alto. Por qué: Sin una cola que frene, QA deja de ser el cuello de botella; ordenar por score revisa primero lo más dudoso. Se apoya en DEC-47, RN-CAL-07.
  • D-RAC-03-3. Un error en algo publicado no despublica: abre una Corrección para el seller sobre el producto aprobado (T09) y la tienda conserva lo publicado hasta que se aprueba el cambio. Sólo un error grave (contenido prohibido, imagen de otro producto o dato legal) se retira del canal con la baja por canal. Por qué: Despublicar por un error menor castiga la venta; la máquina de estados ya separa el cambio en curso de lo publicado. Se apoya en PEN-39, PD-29.
  • D-RAC-03-4. Regla fija primero: obligatorios completos y foto principal congelada, en la tabla QUALITY_RULES del motor. La IA se suma como segunda regla con un interruptor de SWITCHES cuando se haya medido su acierto; mientras tanto, lo que no pasa la regla fija abre QA manual. Por qué: No depender de la IA desde el inicio, como pide Gobierno de Producto, y poder encenderla sin cambiar código. Se apoya en S34-RF-07, DUD-35.
  • D-RAC-03-5. Cada modelo de IA califica su propio resultado con el umbral de su tarea (configuración de MS-15): lo que queda abajo se reprocesa o se rechaza en ese paso. El validador integral es la revisión de QA con IA (imagen contra título y título contra descripción) y sólo lo que no coincide va a QA manual. Por qué: Cada error se corrige en su paso y nadie revisa a mano lo que la IA ya aprobó. Se apoya en S34-RF-07.
  • D-RAC-03-6. Sin dato no hay aprobación: si MS-15 o MS-06 no contestan, el producto no avanza y, vencido el plazo, abre QA manual con el motivo «Sin dato». Por qué: Aprobar por omisión publicaría lo que nadie revisó. Se apoya en DUD-32.
  • D-RAC-03-7. QA manual manda cada rechazo a un destino tipificado: el seller o proveedor, Compras, Gobierno de Datos o, si ya está publicado, Repoblamiento, con los rechazos por atributo juntos. Por qué: Es la ruta de hoy de 1022 hacia 1003, 1021, 1028 y 1031, dicha con tareas en lugar de estados. Se apoya en S34-PEN-04, PD-29.
  • D-RAC-03-8. QA con IA y QA manual sirven a los tres negocios; los rangos de score, por ahora, sólo a Marketplace. Mercaderías y Suburbia conservan el visto bueno de Compras antes del SKU y su revisión de calidad. Por qué: La épica nace de Marketplace y en Mercaderías no se acordó publicar por score. Se apoya en PD-24, PD-02.

Qué falta decidir

IDQué falta
DUD-32Pesos y umbrales de Marketplace: se miden en el piloto.
PD-24Ratificar que el score sólo decide la publicación: Gobierno de Producto con Marketplace, en ADR-09.
P-37Si Category se conserva como tarea opcional después de QA.

También siguen abiertos: PEN-36, Los valores de los rangos (85 y 95 de arranque) y si mandan el score combinado o la confianza; PEN-39, Los motivos de rechazo de QA distintos al score.

Fuentes

  1. [D] trazabilidad/features/FT-RAC-03-publicacion-por-rangos-de-score.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.