Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-IA-05: 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-IA-05.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-IA-05-enriquecimiento-continuo-post-sku-publicacion.md.
En 30 segundos
En Marketplace el SKU nace con lo mínimo para vender rápido, sobre todo en la carga masiva, y el contenido se completa después sin frenar la venta. Esta épica corre la IA una sola vez después de crear el SKU y otra después de publicar (con fuentes externas por marca y modelo), aplica sola lo de confianza alta, manda a Gobierno de Datos lo de confianza baja, marca el artículo como enriquecido y revisa la calidad con IA (QA con IA) antes de aprobar.
- Módulo dueño: MS-15 IA y enriquecimiento. También participan: MS-01 Catálogo, MS-02 Producto.
- Etapa 7 · Calidad y categoría. Recibe «PE-6 · SKU asignado», «PE-7 · Imágenes listas», «PE-9 · Publicado por canal» y entrega «PE-10 · Cambio aprobado».
- APIs: construye 2 y usa 9 que construyen otras épicas.
- Eventos: publica 3 y consume 4.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-6 · SKU asignado | El producto En enriquecimiento: SAP devolvió el 122 y cada variante tiene SKU. |
| PE-7 · Imágenes listas | Las imágenes listas en MS-11, con URL congelada, que necesita QA con IA. |
| PE-9 · Publicado por canal | El producto Publicado en su canal: arranca el enriquecimiento posterior por marca y modelo. |
| FT-IA-03 · Enriquecimiento de atributos opcionales con IA y política… | La política: qué atributos se persiguen, cuáles son de contexto y la ventana de enriquecimiento desde el SKU. |
| FT-FLU-05 · Reglas de negocio en la carga masiva | Los productos de la carga masiva, creados sin IA. |
| FT-PRD-10 · Catalogación por API del proveedor o seller | Los valores que mandó el proveedor por API, con origen PARTNER_API por campo, para buscar sólo los que faltan. |
Entrega
| A | Qué |
|---|---|
| FT-RAC-03 · Publicación por rangos de score y revisión de calidad… | 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. |
| PE-10 · Cambio aprobado | El cambio por enriquecimiento posterior aplicado a un producto aprobado: vuelve a Aprobado y sus canales pasan de Publicado a Enviado. |
Cambios de estado que hace
| Transición | De → a | Cuándo |
|---|---|---|
| T09 | Aprobado → En modificación | Alguien cambia un producto aprobado. |
| T10 | En modificación → Aprobado | El cambio se aplica o se descarta. |
Tareas que abre o cierra: QA con IA, Gobierno de Datos, 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-15 IA y enriquecimiento | Pide enriquecer el SKU recién creado | API-15-004 |
| 2 | MS-15 IA y enriquecimiento | MS-01 Catálogo | Lee qué atributos se persiguen y cuáles llena la IA | API-01-028 |
| 3 | MS-15 IA y enriquecimiento | MS-02 Producto | Lee lo que ya trae: busca sólo lo que falta | API-02-054 |
| 4 | MS-15 IA y enriquecimiento | Modelos de IA | Reconoce la imagen y busca datos en un solo paso | — |
| 5 | MS-15 IA y enriquecimiento | Base pim | Guarda valores en atributos y unidades de la plantilla | — |
| 6 | MS-15 IA y enriquecimiento | Eventos | Avisa que el enriquecimiento está listo | catalog.ai.result/AI_ENRICHMENT_READY |
| 7 | Eventos | MS-02 Producto | Entrega el enriquecimiento | catalog.ai.result/AI_ENRICHMENT_READY |
| 8 | MS-02 Producto | MS-15 IA y enriquecimiento | Lee los valores propuestos con su confianza | API-15-008 |
| 9 | MS-02 Producto | Base pim | Aplica lo de confianza alta y marca «enriquecido» | — |
| 10 | MS-02 Producto | MS-15 IA y enriquecimiento | Con imágenes listas, pide QA con IA | API-15-005 |
| 11 | MS-15 IA y enriquecimiento | Modelos de IA | Revisa imagen contra título, descripción y atributos | — |
| 12 | MS-15 IA y enriquecimiento | Eventos | Avisa el resultado con su confianza | catalog.ai.result/AI_QUALITY_READY |
| 13 | Eventos | MS-02 Producto | Entrega el resultado de QA con IA | catalog.ai.result/AI_QUALITY_READY |
3.1 Después de publicar: completar por marca y modelo
3.2 Confianza baja: revisa Gobierno de Datos
3.3 Fuentes, ventana y umbrales
4. Si algo sale mal
- El producto ya pasó por este disparo o está fuera de su ventana. MS-15 lo omite y lo dice en el trabajo (skipped); no se paga el modelo y el producto sigue su camino.
- Una fuente externa trae otra estructura u otras unidades. MS-15 lo lleva al atributo que ya existe y a sus unidades (pulgadas a centímetros); lo que no tiene atributo se queda en el trabajo de IA y no entra al producto.
- El modelo de QA con IA no responde. La tarea cae a QA manual con el motivo «sin dato» y nada se aprueba sin revisión (FT-RAC-03).
- El enriquecimiento posterior cambia un producto ya publicado. Sólo se aplican opcionales de confianza alta, nunca datos maestros de SAP; el producto vuelve a Aprobado, los canales pasan a Enviado y la tienda conserva lo publicado hasta el acuse.
5. APIs
Las que construye esta épica (2)
POST /api/v2/ai/enrichments · Enriquecer productos ya creados
| Campo | Valor |
|---|---|
| API | API-15-004 · MS-15 IA y enriquecimiento |
| Para qué | Busca, para 1 a 100 productos con SKU o ya publicados, sólo los atributos enriquecibles que les faltan, con reconocimiento de imagen y fuentes externas en un mismo paso, los lleva a la estructura y a las unidades de la plantilla y da una confianza por atributo. Respeta la ventana de enriquecimiento y una sola pasada por disparo; nunca propone datos maestros que van a SAP. Responde 202 y avisa con AI_ENRICHMENT_READY. |
| En esta épica | Enriquecer después del SKU o después de publicar, una sola vez por disparo |
| Quién la llama | MS-02 Producto |
| Permiso | Sólo MS-02 (cuenta de servicio) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | ai_jobs |
| Publica | catalog.ai.result/AI_ENRICHMENT_READY |
| También la usan | FT-PRD-10 |
Request
{
"trigger": "SKU_ASSIGNED",
"business": "MKP",
"scope": "MISSING_ENRICHABLE",
"items": [
{
"productId": "PRD-0004812",
"version": 9
},
{
"productId": "PRD-0004813",
"version": 4
}
]
}
Response · 202
{
"success": true,
"data": {
"jobId": "job-0004100",
"status": "ACCEPTED",
"items": 2,
"skipped": [],
"links": {
"self": "/api/v2/ai/jobs/job-0004100"
}
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 422 | VALIDATION_ERROR | Más de 100 productos o un disparo que no existe |
| 409 | BUSINESS_ERROR | Todos los productos ya pasaron por este disparo o están fuera de su ventana: no hay nada que enriquecer |
| 409 | IDEMPOTENCY_MISMATCH | Se repite la llave con otros productos |
POST /api/v2/ai/quality-reviews · Revisar la calidad con IA
| Campo | Valor |
|---|---|
| API | API-15-005 · MS-15 IA y enriquecimiento |
| Para qué | Revisa con IA la coherencia de un producto o de una variante: imagen contra título, género, talla y color, y anomalías de la imagen principal cuando esa revisión esté encendida. Dice la confianza, qué no cuadra con una corrección sugerida y si alcanza el umbral de la tarea. Con respond=SYNC (calificación de MS-06 o una sola variante) contesta 200 en línea; con ASYNC (QA con IA) responde 202 y avisa con AI_QUALITY_READY. |
| En esta épica | Revisar la calidad con IA antes de aprobar (QA con IA) |
| Quién la llama | MS-02 Producto, MS-06 Evaluación |
| Permiso | Sólo MS-02 y MS-06 (cuentas de servicio) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | ai_jobs |
| Publica | catalog.ai.result/AI_QUALITY_READY |
| También la usan | FT-FLU-01, FT-IA-04, FT-PRD-05, FT-RAC-02, FT-RAC-03 |
Request
{
"productId": "PRD-0004890",
"version": 12,
"business": "MKP",
"purpose": "SCORE",
"respond": "SYNC",
"variantId": null,
"checks": [
"IMAGE_VS_TITLE",
"IMAGE_VS_GENDER",
"IMAGE_VS_SIZE",
"COLOR_VS_IMAGE"
]
}
Response · 200
{
"success": true,
"data": {
"jobId": "job-0004188",
"status": "DONE",
"confidence": 0.62,
"acceptThreshold": 0.85,
"passes": false,
"findings": [
{
"check": "IMAGE_VS_TITLE",
"attribute": "TITULO",
"finding": "La imagen muestra una playera de niño y el título dice «hombre»",
"confidence": 0.91,
"suggestion": {
"value": "Playera de algodón con estampado para niño"
}
},
{
"check": "IMAGE_VS_SIZE",
"attribute": "TALLA",
"finding": "La talla capturada es de adulto y las imágenes son de niño",
"confidence": 0.84,
"suggestion": {
"value": "8"
}
}
],
"route": {
"suggested": "PROVEEDOR",
"why": "Los datos del producto no coinciden con su imagen"
}
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto o la variante no existen |
| 422 | VALIDATION_ERROR | Un chequeo que no existe o que está apagado en la configuración |
| 503 | DEPENDENCY_UNAVAILABLE | El modelo no respondió: la tarea cae a la persona (QA manual) y nada se queda detenido |
Las que usa y construye otra épica (9)
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-15-008 | GET /api/v2/ai/jobs/{jobId} | Leer los valores propuestos, su fuente y su confianza | FT-IA-04 · Integración de los modelos de IA existentes |
| API-15-010 | GET /api/v2/ai/config | Ver fuentes, ventana y umbrales del enriquecimiento | FT-IA-04 · Integración de los modelos de IA existentes |
| API-15-011 | POST /api/v2/ai/config/plans | Cambiar fuentes, ventana o umbral con su impacto | FT-IA-04 · Integración de los modelos de IA existentes |
| API-15-012 | POST /api/v2/ai-plans/{planId}/apply | Confirmar el cambio de configuración | FT-IA-04 · Integración de los modelos de IA existentes |
| API-01-028 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective | Leer qué atributos se persiguen, cuáles son de contexto y cuáles son datos maestros | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-01-001 | GET /api/v2/attributes | Buscar el atributo que ya existe para lo que descubre la IA | FT-PLT-02 · Catálogo de atributos |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | Leer lo que ya trae el producto y su origen por campo | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
| API-02-012 | POST /api/v2/products/{id}/values/plans | Guardar los valores que acepta Gobierno de Datos | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar los valores y cerrar la tarea | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.ai.result/AI_ENRICHMENT_READY | MS-15 termina un enriquecimiento después del SKU o de publicar | MS-05 (bitácora) |
catalog.ai.result/AI_QUALITY_READY | MS-15 termina la revisión de calidad con IA | FT-RAC-03, FT-RAC-06 |
catalog.product.changed/PRODUCT_UPDATED | MS-02 aplica los valores enriquecidos con origen IA | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.ai.result/AI_ENRICHMENT_READY | MS-02 aplica lo de confianza alta, manda lo bajo a Gobierno de Datos y marca el artículo como enriquecido | esta misma épica |
catalog.ai.result/AI_QUALITY_READY | MS-02 cierra QA con IA o abre QA manual (FT-RAC-03) | esta misma épica |
catalog.delivery.result/DELIVERY_RESULT | MS-02 sabe que el canal quedó Publicado y pide el enriquecimiento posterior | FT-CAT-02, FT-CAT-05, FT-INT-01, FT-INT-02, FT-INT-05, FT-INT-07, FT-PRD-02 |
catalog.product.changed/MEDIA_CHANGED | MS-15 vuelve a revisar la calidad con IA cuando cambian las imágenes de un producto en enriquecimiento o aprobado. | FT-ACT-02, FT-ACT-04, FT-ACT-06 |
7. Datos
Cada colección tiene un solo dueño, el único que escribe en ella.
| Colección | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
ai_jobs | MS-15 | Cada trabajo de IA con su entrada, su resultado y su confianza. | escribe |
ai_config | MS-15 | Qué modelo atiende cada tarea y con qué umbral. | 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 |
attributes | MS-01 | Cada atributo: tipo, lista, restricciones, grupos e identificadores externos. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-IA-05·H1 · Que la IA enriquezca después de crear mis SKUs | P1 | pasos 1, 2, 3, 4, 5, 6, 7, 8, 9; API-15-004 |
| FT-IA-05·H2 · Completar con scraping por marca y modelo, después de publicar, los atributos… | P1 | flujo «Después de publicar: completar por marca y modelo» |
| FT-IA-05·H3 · Dar seguimiento a los atributos que faltan después de publicar | P2 | flujo «Confianza baja: revisa Gobierno de Datos» |
| FT-IA-05·H4 · Acotar el enriquecimiento posterior | P3 | flujo «Fuentes, ventana y umbrales»; API-15-011 |
| FT-IA-05·H5 · Bandera de enriquecido | P1 | pasos 9 |
| FT-IA-05·H6 · Fuentes con valor de verdad | P2 | flujo «Fuentes, ventana y umbrales», «Después de publicar: completar por marca y modelo» |
| FT-IA-05·H7 · Confianza por atributo | P1 | flujo «Confianza baja: revisa Gobierno de Datos», «Fuentes, ventana y umbrales» |
| FT-IA-05·H8 · Normalizar lo que viene de fuera | P2 | pasos 5; flujo «Después de publicar: completar por marca y modelo» |
| FT-IA-05·H9 · Un solo paso de enriquecimiento | P2 | pasos 4 |
| FT-IA-05·H10 · Guardar lo que descubre la IA | P2 | pasos 5; API-01-001 |
| FT-IA-05·H11 · Enriquecer sin frenar la publicación | P1 | pasos 9; flujo «Después de publicar: completar por marca y modelo» |
| FT-IA-05·H12 · Intento único y completar lo que falta | P2 | pasos 3; API-15-004, API-02-054 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-IA-05-1. MS-02 decide cuándo (al crear el SKU y al publicar, una sola vez por disparo) y MS-15 decide qué (sólo atributos enriquecibles y perseguidos que faltan, dentro de la ventana, de la fuente con más valor de verdad). Nada de esto es una tarea que bloquee: el producto se aprueba y se publica aunque el enriquecimiento no haya terminado. Por qué: Dos carreteras: el enriquecimiento corre fuera de la ruta de publicación y no frena la venta. Se apoya en RN-GEN-03, RN-ENR-08, RN-ENR-07.
- D-IA-05-2. Después del SKU, lo que alcanza el umbral de su tarea se aplica sin persona (origen IA, visible para el seller como «agregado por IA» y corregible) y lo de confianza baja va a Gobierno de Datos, no al seller. En el alta, en cambio, todo lo sugerido lo confirma el usuario (FT-IA-01): son dos reglas acotadas por canal, la opción A de PD-27. Por qué: En la carga masiva el seller «puede que ni vea el paso»; mandar todo a revisión humana recrearía el cuello de botella, y sólo lo dudoso necesita a una persona. Se apoya en PD-27, PEN-47, DEC-47.
- D-IA-05-3. El enriquecimiento nunca toca datos maestros que van a SAP: MS-15 no los propone y MS-02 rechaza escrituras de origen IA sobre ellos. Tampoco sobrescribe lo que mandó el dueño del contenido: sólo llena lo vacío. Por qué: Un dato maestro cambiado por la IA rompería la conciliación con SAP; lo del dueño gana. Se apoya en RN-INT-07, FT-PRD-10.
- D-IA-05-4. Un solo paso por producto: reconocimiento de imagen y fuentes externas juntos, con las fuentes y su valor de verdad (el sitio de la marca antes que los marketplaces) por categoría, marca y grupo de artículos en la configuración de MS-15. Lo externo se lleva a la estructura y a las unidades de la plantilla; lo descubierto se mapea al atributo que ya existe y lo que no tiene atributo se queda en el trabajo de IA, sin entrar al producto, hasta que se decida PEN-167. Por qué: No pagar dos veces, no copiar errores de fuera y no duplicar atributos. Se apoya en PEN-167, PEN-192.
- D-IA-05-5. QA con IA: MS-15 revisa la coherencia con el umbral de su tarea por negocio y devuelve qué no cuadra y a quién sugiere mandarlo; si su resultado decide o sólo se mide lo controla el interruptor del motor de MS-02 (FT-RAC-03). Si el modelo no responde, cae a QA manual. Por qué: La IA propone y el motor decide con una regla; ningún umbral vive en dos lugares. Se apoya en PD-27, DUD-35, FT-RAC-03.
- D-IA-05-6. El artículo queda marcado como enriquecido, con fecha y trabajo, aunque no se encuentre nada; esa marca es la que impide repetirlo y la que dice qué falta enriquecer. Por qué: Saber qué sólo se publicó y qué además se enriqueció, sin gastar IA de más. Se apoya en PEN-34, RF-ENR-12.
Qué falta decidir
| ID | Qué falta |
|---|---|
| PD-27 | Ratificar las dos reglas de validación humana acotadas por canal (alta: siempre confirma el usuario; después del SKU: por confianza). |
También siguen abiertos: PEN-47, Quién valida lo que la IA agrega cuando el seller no ve el paso (aquí: Gobierno de Datos lo de confianza baja); PEN-34, La ventana real de enriquecimiento (aquí 90 días desde el SKU); PEN-167, Dónde guardar y cómo mapear lo que la IA descubre y no tiene atributo en la plantilla; PEN-192, Qué atributos enriquecidos se mandan a qué sistemas.
Fuentes
- [D]
trazabilidad/features/FT-IA-05-enriquecimiento-continuo-post-sku-publicacion.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.