01 · Resumen ejecutivo

Acciones canónicas, no recomendaciones sueltas

Este catálogo establece 31 acciones canónicas agrupadas en 7 familias (ACT-COM/FIN/STK/PUR/OPS/DQ/DIR) que son la fuente única de verdad de FARO Connect MVP. Si un código ACT-* no está acá, el motor evaluador no debería poder recomendarlo ni la UI proponerlo.

FARO maneja dos namespaces de acciones que coexisten intencionalmente:

  • Catálogo MVP plano (este documento): 31 códigos por familia ACT-COM-001..008, ACT-FIN-001..006, ACT-STK-001..005, ACT-PUR-001..003, ACT-OPS-001..003, ACT-DQ-001..003, ACT-DIR-001..003 que rigen el motor evaluador, las reglas YAML, la UI operativa, la demo en Empresa Demo Cuyo S.A., los tests de integración y los reportes del primer release.
  • Biblioteca extendida v2 (300 acciones): universo conceptual con códigos compuestos ACT-NNN indexados por área/módulo. Vive en biblioteca-acciones.html y existe para roadmap multi-industria, RACI 105 y workflow. Mapea con el MVP en la sección 11.

La regla dura: ninguna tensión, regla YAML o motor evaluador puede disparar una action_code que no esté en faro.action_definitions con status = 'active'. El parser de reglas rechaza códigos desconocidos con UNKNOWN_ACTION_CODE. Cada acción disparada hereda automáticamente del catálogo: responsable por defecto, aprobador, SLA en días, criterio de cierre, evidencia requerida, impacto esperado en FARO Score y tensiones que la justifican.

El salto conceptual es claro: antes las tensiones recomendaban textos libres de acción que se interpretaban distinto en cada módulo; ahora recomiendan códigos canónicos con dueño, plazo, evidencia y criterio de cierre. Pasamos de "sugerencia" a "sistema de ejecución".

Nota sobre conteo. El documento fuente FARO-SQL-005 dice "30 acciones MVP", pero la lista nominal y el seed V029 contienen 31 INSERTs (8+6+5+3+3+3+3). El HTML refleja la realidad del seed: 31 acciones. La validación 10.7 del doc original ya muestra esta distribución (commercial=8, finance=6, stock=5, purchasing=3, operations=3, data_quality=3, direction=3 = 31).

02 · Reglas de gobierno del catálogo

8 reglas que protegen la coherencia operativa

Antes de tocar cualquier código ACT-*, leer estas reglas. Romperlas se nota seis meses después cuando una acción cerrada en producción no tiene evidencia, no tiene dueño o no tiene criterio de cierre. Y la gente se acostumbra a "cerrar de palabra".

Regla 01

Código inmutable

Una vez asignado, ACT-COM-001 = Revisar política de descuentos nunca se reutiliza para otra acción. Reutilizar códigos rompe el histórico, los reportes de ejecución y los tests.

Regla 02

No se borra, se archiva

Si una acción deja de usarse, pasa a status = archived. Borrar acciones rompe las referencias en actions históricas y en evidencias cargadas.

Regla 03

Versionado por contrato

Si cambia SLA, dueño por defecto o criterio de cierre, se incrementa version. El action_code base se mantiene. UNIQUE (action_code, version) + índice único parcial por activo.

Regla 04

Action_type enum cerrado

Valores permitidos: corrective, preventive, follow_up, approval, analysis, escalation, data_quality, governance. No se inventan nuevos sin migración.

Regla 05

Toda acción tiene evidencia

Si evidence_required_codes está vacío, la acción no entra al catálogo MVP. Sin evidencia el cierre se reduce a "ya está hecho" en una reunión.

Regla 06

Toda acción tiene criterio de cierre

El campo closure_criteria es obligatorio y no puede ser texto vacío. Define cuándo una acción está realmente terminada, no solo "marcada como cerrada".

Regla 07

SLA y prioridad consistentes

Prioridad critical implica SLA ≤ 3 días. Prioridad high ≤ 10 días. Prioridad medium ≤ 21 días. El motor valida coherencia entre default_priority y default_sla_days.

Regla 08

Catálogo es fuente única

YAML, parser, motor, UI, tests y reportes consumen faro.action_definitions. Prohibido ACTION_CATALOG hardcodeado en código de aplicación. La función faro.action_code_exists() es la verificación oficial.

03 · 7 familias canónicas

Distribución por familia · ACT-COM/FIN/STK/PUR/OPS/DQ/DIR

Las 31 acciones se agrupan en 7 familias funcionales. Cada familia tiene un código prefijo estable, un rango numérico propio y una "promesa ejecutiva" diferenciada.

ACT-COM-*
8 acciones

Comercial

Política de descuentos, comisiones, autorizaciones, vendedores, mix, sucursales, cartera de clientes y ticket promedio.

ACT-FIN-*
6 acciones

Finanzas

Cobranza prioritaria, bloqueo de crédito, plan de cobranza semanal, límites, proyección de caja 30/60/90 y renegociación con proveedores.

ACT-STK-*
5 acciones

Stock

Reposición priorizada, transferencias entre sucursales, liquidación de inmovilizado, registro de ventas perdidas y revisión de cobertura.

ACT-PUR-*
3 acciones

Compras

Revisión de proveedor/costo crítico, renegociación de proveedor crítico y bloqueo de reposición sin rotación.

ACT-OPS-*
3 acciones

Operaciones / Ejecución

Regularizar acciones vencidas, exigir evidencia de cierre y asignar responsable faltante. Disciplina de ejecución pura.

ACT-DQ-*
3 acciones

Data Quality

Corregir fuente de datos, validar KPI crítico con baja confianza y regularizar reporte semanal ejecutivo.

ACT-DIR-*
3 acciones

Dirección

Escalar tensión a dirección, convocar comité ejecutivo por reincidencia y aprobar cambio de política crítica.

04 · Estructura oficial

Los 27 campos canónicos por acción

Toda acción MVP cumple este contrato. Es lo que define faro.action_definitions en SQL y lo que el motor evaluador puede esperar al instanciar una acción a partir de una tensión disparada.

Campo Tipo Descripción Ejemplo (ACT-COM-001)
action_definition_iduuid · pkIdentificador interno; UUID v4 generado por la base.gen_random_uuid()
action_codetext · uniqueCódigo canónico inmutable. Formato ACT-FAM-NNN.ACT-COM-001
nametextNombre canónico ejecutivo de la acción.Revisar política de descuentos
short_nametext · nullNombre corto para tablas densas y UI compacta.Política descuentos
action_familytextFamilia funcional. Valores MVP: commercial, finance, stock, purchasing, operations, data_quality, direction.commercial
area_codetextÁrea organizacional donde se ejecuta.commercial
module_codetextMódulo FARO específico dentro del área.discounts
descriptiontextQué hace técnicamente la acción (1-2 líneas).Analizar descuentos por vendedor, producto, cliente y sucursal; definir límites y excepciones.
executive_purposetextPara qué sirve a dirección. Lectura ejecutiva.Recuperar margen y evitar crecimiento comprado con descuentos excesivos.
action_typeenumTipo de acción. Valores: corrective, preventive, follow_up, approval, analysis, escalation, data_quality, governance.corrective
default_priorityenumPrioridad base. Valores: low, medium, high, critical.critical
default_sla_daysinteger ≥ 1SLA por defecto en días para el cierre.7
default_owner_roletextRol responsable por defecto.commercial_manager
approver_roletext · nullRol aprobador por defecto.general_manager
evidence_requiredbooleanSi la acción requiere evidencia documentada para cerrar.true
evidence_required_codestext[]Códigos canónicos de evidencia obligatoria.EVD-007 EVD-012
closure_criteriatextCriterio mínimo para considerar cerrada la acción.Nueva política de descuentos aprobada por dirección y comunicada al equipo comercial.
success_metrictext · nullMétrica que indica que la acción tuvo impacto.Reducción del descuento promedio y recuperación de margen bruto.
expected_business_impacttext · nullImpacto ejecutivo esperado sobre el negocio.Mejora de margen, disciplina comercial y rentabilidad.
score_dimensiontextDimensión del FARO Score que la acción ayuda a recuperar.commercial_health
expected_score_recovery_min / maxnumeric(9,4)Rango de recuperación esperada de FARO Score (positivo).+3 a +8
triggered_by_tensionstext[]Tensiones que normalmente recomiendan esta acción.TNS-001 TNS-002 TNS-007 TNS-014 TNS-015
industry_scopetext[]Industrias donde aplica. Default: ['all'].commercial retail distribution
module_scopetext[]Módulos operativos relacionados.sales discounts margin
statusenumEstado: active, inactive, archived. Default active.active
versionintegerVersión semántica de la acción. Default 1.1
metadatajsonbMetadatos libres (canonical, mvp, flags).{"canonical": true, "mvp": true}

La DDL real (sección 8) agrega además created_at, updated_at, el constraint UNIQUE (action_code, version), el índice único parcial por status='active' y 7 índices secundarios (familia, área, módulo, prioridad, status, GIN sobre evidencia y GIN sobre tensiones).

05 · Las 31 acciones canónicas

Fichas completas · ACT-COM/FIN/STK/PUR/OPS/DQ/DIR

Una ficha por acción con código, familia, prioridad, SLA, dueño y aprobador, evidencia requerida, criterio de cierre, impacto esperado y tensiones que la disparan (clickeables hacia catalogo-tensiones-mvp.html).

Acciones comerciales · ACT-COM

ACT-COM-001
Critical

Revisar política de descuentos

Commercial discounts corrective

Analizar descuentos aplicados por vendedor, producto, cliente y sucursal; definir límites y excepciones.

Recuperar margen y evitar crecimiento comprado con descuentos excesivos.

Owner
commercial_manager → general_manager
Evidencia
EVD-007EVD-012
Cierre
Nueva política de descuentos aprobada por dirección y comunicada al equipo comercial.
Impacto
Mejora de margen, disciplina comercial y rentabilidad.
SLA 7d Score: commercial_health +3 a +8
ACT-COM-002
High

Revisar comisiones vinculadas a margen

Commercial commissions analysis

Evaluar si el esquema de comisión incentiva ventas de bajo margen o descuentos excesivos.

Alinear incentivos comerciales con rentabilidad y no solo con facturación.

Owner
general_manager → director
Evidencia
EVD-010EVD-012
Cierre
Propuesta de esquema de comisiones revisada y aprobada por dirección.
Impacto
Mejora de rentabilidad y calidad comercial.
SLA 10d Score: commercial_execution +2 a +6
ACT-COM-003
Critical

Bloquear descuentos fuera de autorización

Commercial authorizations corrective

Definir límites de descuento por rol y circuito de aprobación para excepciones.

Evitar descuentos discrecionales que erosionan margen sin aprobación.

Owner
commercial_manager → general_manager
Evidencia
EVD-007EVD-012
Cierre
Regla de autorización activa o política aprobada con responsables definidos.
Impacto
Mejora inmediata de control comercial y margen.
SLA 5d Score: margin_health +3 a +8
ACT-COM-004
High

Revisar performance comercial por vendedor

Commercial salespeople analysis

Analizar vendedores por venta, margen, descuento, mix, cobranza y reincidencia de tensiones.

Detectar si el problema comercial está concentrado en responsables específicos.

Owner
commercial_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Informe por vendedor revisado y plan de mejora o decisión ejecutiva registrada.
Impacto
Mejora de calidad de venta y accountability comercial.
SLA 7d Score: commercial_execution +2 a +6
ACT-COM-005
Medium

Rediseñar mix comercial por familia

Commercial product_mix analysis

Revisar familias de producto con bajo margen, baja rotación o descuentos recurrentes.

Reorientar el mix comercial hacia familias más rentables o estratégicas.

Owner
commercial_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Plan de mix comercial aprobado con familias objetivo, margen mínimo y política de venta.
Impacto
Mejora de rentabilidad estructural.
SLA 14d Score: margin_health +2 a +5
ACT-COM-006
High

Recuperar ventas de sucursal relevante

Commercial branch_sales corrective

Analizar caída de ventas por sucursal y ejecutar plan de recuperación comercial.

Evitar que una sucursal pierda ritmo mientras el promedio general oculta el problema.

Owner
commercial_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Plan de recuperación aprobado con responsables, metas y seguimiento semanal.
Impacto
Mejora de performance por sucursal.
Tensiones
SLA 10d Score: branch_commercial_health +2 a +6
ACT-COM-007
Medium

Diversificar cartera de clientes

Commercial customers preventive

Definir acciones para reducir dependencia de pocos clientes relevantes.

Bajar riesgo comercial por concentración de ventas.

Owner
commercial_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Plan de diversificación aprobado con segmentos objetivo y metas de captación.
Impacto
Reducción de riesgo comercial.
Tensiones
SLA 21d Score: commercial_risk +1 a +5
ACT-COM-008
Medium

Mejorar ticket promedio y venta cruzada

Commercial ticket corrective

Diseñar acciones comerciales para recuperar ticket promedio mediante bundles, venta cruzada o foco por familia.

Mejorar eficiencia comercial sin depender solo de descuentos.

Owner
commercial_manager → general_manager
Evidencia
EVD-010
Cierre
Plan comercial validado con acciones de ticket, familias objetivo y seguimiento.
Impacto
Mayor productividad comercial.
Tensiones
SLA 14d Score: commercial_health +1 a +4

Acciones financieras · ACT-FIN

ACT-FIN-001
Critical

Priorizar cobranza de clientes vencidos

Finance receivables corrective

Gestionar clientes con mora relevante y registrar contacto, acuerdo o resultado.

Convertir venta pendiente en caja y reducir exposición de riesgo.

Owner
finance_manager → general_manager
Evidencia
EVD-011EVD-006
Cierre
Cliente contactado y acuerdo de pago, comprobante o gestión documentada cargada como evidencia.
Impacto
Mejora de caja y reducción de riesgo financiero.
SLA 3d Score: cash_health +3 a +9
ACT-FIN-002
Critical

Bloquear venta a crédito de cliente crítico

Finance credit_risk corrective

Suspender o limitar venta a crédito a clientes con mora crítica o límite excedido.

Evitar que la empresa siga aumentando exposición financiera sobre clientes de riesgo.

Owner
finance_manager → general_manager
Evidencia
EVD-011EVD-012
Cierre
Restricción aprobada y comunicada; cliente marcado con condición comercial actualizada.
Impacto
Menor riesgo de incobrabilidad.
SLA 2d Score: cash_risk +3 a +8
ACT-FIN-003
High

Definir plan de cobranza semanal

Finance collections corrective

Crear plan semanal de cobranza con clientes prioritarios, responsables y vencimientos.

Pasar de cobranza reactiva a cobranza gobernada.

Owner
finance_manager → general_manager
Evidencia
EVD-010EVD-011
Cierre
Plan semanal cargado con responsables, clientes priorizados y seguimiento.
Impacto
Mejora de ejecución financiera.
SLA 5d Score: cash_execution +2 a +7
ACT-FIN-004
High

Revisar límites de crédito

Finance credit_policy analysis

Revisar límites de crédito por cliente según mora, volumen, historial y riesgo.

Alinear crédito comercial con capacidad de pago real.

Owner
finance_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Nueva matriz de límites de crédito aprobada.
Impacto
Mejor control de riesgo crediticio.
SLA 7d Score: credit_risk +2 a +7
ACT-FIN-005
Critical

Preparar proyección de caja 30/60/90

Finance cash_projection analysis

Preparar proyección de caja con cobranzas esperadas, pagos críticos y escenarios.

Anticipar insuficiencia de caja y ordenar decisiones financieras.

Owner
finance_manager → director
Evidencia
EVD-010EVD-012
Cierre
Proyección de caja aprobada con escenario base, crítico y acciones definidas.
Impacto
Mejora de control financiero.
Tensiones
SLA 3d Score: cash_risk +3 a +9
ACT-FIN-006
High

Renegociar pagos críticos a proveedores

Finance supplier_payments corrective

Renegociar vencimientos críticos con proveedores para proteger caja y abastecimiento.

Evitar tensión financiera-operativa por presión de pagos y necesidad de stock.

Owner
finance_manager → director
Evidencia
EVD-011EVD-012
Cierre
Acuerdo con proveedor documentado o plan de pago aprobado.
Impacto
Mejora de equilibrio caja-stock-proveedores.
SLA 5d Score: cash_stock_health +2 a +7

Acciones de stock · ACT-STK

ACT-STK-001
High

Generar reposición priorizada

Stock replenishment corrective

Priorizar reposición de productos críticos según rotación, cobertura, ventas y margen.

Evitar quiebres de stock en productos relevantes.

Owner
stock_manager → general_manager
Evidencia
EVD-005EVD-002
Cierre
Orden de compra emitida, proveedor confirmado o reposición planificada con fecha.
Impacto
Mejora de disponibilidad y reducción de ventas perdidas.
SLA 3d Score: stock_health +3 a +8
ACT-STK-002
High

Transferir stock entre sucursales

Stock transfers corrective

Mover stock disponible desde sucursales con excedente hacia sucursales con cobertura crítica.

Resolver faltantes antes de comprar más cuando hay stock disponible en otra ubicación.

Owner
stock_manager → general_manager
Evidencia
EVD-002EVD-005
Cierre
Transferencia registrada, aprobada y ejecutada o programada.
Impacto
Mejora de eficiencia de stock.
SLA 3d Score: stock_health +2 a +6
ACT-STK-003
Medium

Liquidar stock inmovilizado controladamente

Stock stock_rotation corrective

Definir plan controlado para vender, transferir, devolver o liquidar stock inmovilizado.

Liberar capital atrapado sin destruir margen innecesariamente.

Owner
stock_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Plan aprobado con SKUs, descuentos máximos, responsables y plazo.
Impacto
Liberación de caja y mejora de salud de stock.
SLA 10d Score: stock_cash_health +2 a +7
ACT-STK-004
Medium

Registrar ventas perdidas por quiebre

Stock lost_sales data_quality

Implementar registro de ventas perdidas por falta de stock.

Medir el costo real del quiebre de stock.

Owner
stock_manager → general_manager
Evidencia
EVD-002EVD-004
Cierre
Registro implementado y primera carga validada.
Impacto
Mejora de calidad de decisión sobre reposición.
Tensiones
SLA 7d Score: data_stock_health +1 a +5
ACT-STK-005
High

Revisar stock mínimo y cobertura

Stock coverage_policy preventive

Actualizar stocks mínimos, puntos de pedido y cobertura objetivo por producto.

Evitar reposición reactiva y quiebres recurrentes.

Owner
stock_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Nueva política de cobertura aprobada y comunicada.
Impacto
Mejora de planificación de stock.
SLA 10d Score: stock_execution +2 a +6

Acciones de compras · ACT-PUR

ACT-PUR-001
High

Revisar proveedor/costo crítico

Purchasing supplier_cost analysis

Analizar proveedor, costo, plazo, condición comercial y alternativas de abastecimiento.

Corregir problemas de costo, demora o dependencia de proveedor.

Owner
purchasing_manager → general_manager
Evidencia
EVD-010EVD-012
Cierre
Análisis proveedor/costo validado y decisión documentada.
Impacto
Mejora de margen y disponibilidad.
SLA 7d Score: purchasing_health +2 a +7
ACT-PUR-002
High

Renegociar proveedor crítico

Purchasing supplier_negotiation corrective

Renegociar condiciones con proveedor crítico por precio, plazo, entrega o financiación.

Reducir dependencia, sobrecosto o demora recurrente.

Owner
purchasing_manager → general_manager
Evidencia
EVD-011EVD-012
Cierre
Nueva condición, acuerdo o alternativa de proveedor documentada.
Impacto
Mejora de compras y abastecimiento.
SLA 10d Score: supplier_stock_risk +2 a +7
ACT-PUR-003
Medium

Bloquear reposición sin rotación suficiente

Purchasing purchase_control preventive

Bloquear o exigir aprobación para compras de productos con baja rotación o stock inmovilizado.

Evitar seguir comprando productos que no se venden o que inmovilizan caja.

Owner
purchasing_manager → general_manager
Evidencia
EVD-007EVD-012
Cierre
Política de compra o autorización implementada para productos de baja rotación.
Impacto
Mejora de caja y rotación.
SLA 7d Score: stock_purchasing_health +1 a +5

Acciones de operaciones / ejecución · ACT-OPS

ACT-OPS-001
High

Regularizar acciones vencidas

Operations workflow follow_up

Revisar acciones vencidas y definir cierre, reprogramación, evidencia o escalamiento.

Recuperar disciplina de ejecución.

Owner
general_manager → director
Evidencia
EVD-004EVD-012
Cierre
Acciones vencidas regularizadas, cerradas con evidencia, reprogramadas o escaladas.
Impacto
Mejora de ejecución y accountability.
SLA 2d Score: execution_health +2 a +7
ACT-OPS-002
High

Exigir evidencia de cierre

Operations evidence follow_up

Solicitar evidencia faltante para validar cierre real de acciones.

Evitar cierres ficticios o no comprobables.

Owner
general_manager → director
Evidencia
EVD-004EVD-012
Cierre
Evidencia cargada, revisada y aprobada por responsable correspondiente.
Impacto
Mejora de confianza de ejecución.
SLA 2d Score: execution_trust +2 a +7
ACT-OPS-003
Critical

Asignar responsable faltante

Operations raci governance

Asignar responsable a acciones o tensiones críticas sin dueño.

Evitar que problemas críticos queden sin accountability.

Owner
general_manager → director
Evidencia
EVD-004
Cierre
Responsable asignado y notificado; vencimiento definido.
Impacto
Mejora de gobierno y ejecución.
Tensiones
SLA 1d Score: governance_execution +2 a +6

Acciones de data quality · ACT-DQ

ACT-DQ-001
High

Corregir fuente de datos

Data Quality data_sources data_quality

Revisar origen, frecuencia, responsable, formato y errores de una fuente crítica.

Recuperar confiabilidad de datos para decisiones ejecutivas.

Owner
data_owner → general_manager
Evidencia
EVD-002EVD-004
Cierre
Fuente corregida, carga validada o responsable asignado con evidencia.
Impacto
Mejora de confianza del sistema.
SLA 3d Score: data_quality +2 a +8
ACT-DQ-002
High

Validar KPI crítico con baja confianza

Data Quality kpi_confidence data_quality

Revisar fórmula, fuente, consistencia y confianza de un KPI crítico.

Evitar decisiones basadas en indicadores poco confiables.

Owner
data_owner → general_manager
Evidencia
EVD-002EVD-004
Cierre
KPI validado, corregido o marcado como no confiable con explicación.
Impacto
Mayor confiabilidad ejecutiva.
Tensiones
SLA 3d Score: data_trust +2 a +8
ACT-DQ-003
High

Regularizar reporte semanal ejecutivo

Data Quality reports follow_up

Asegurar generación y entrega del reporte ejecutivo semanal con KPIs y tensiones actualizadas.

Garantizar visibilidad semanal para dirección.

Owner
general_manager → director
Evidencia
EVD-010EVD-012
Cierre
Reporte semanal generado, revisado y entregado a dirección.
Impacto
Mejora de dirección y control.
Tensiones
SLA 2d Score: direction_data_health +2 a +6

Acciones de dirección · ACT-DIR

ACT-DIR-001
Critical

Escalar tensión a dirección

Direction executive_escalation escalation

Elevar tensión crítica o bloqueada a dirección para decisión ejecutiva.

Asegurar que los temas críticos no queden atascados en mandos medios.

Owner
general_manager → director
Evidencia
EVD-010EVD-012
Cierre
Decisión ejecutiva documentada con responsable, vencimiento y seguimiento.
Impacto
Mejora de gobierno ejecutivo.
SLA 2d Score: direction_execution +2 a +8
ACT-DIR-002
Critical

Convocar comité ejecutivo por reincidencia

Direction executive_committee escalation

Convocar reunión ejecutiva para tensión crítica reincidente y definir cambio estructural.

Resolver problemas que el workflow normal no está logrando corregir.

Owner
general_manager → director
Evidencia
EVD-010EVD-012
Cierre
Comité realizado con acta, decisión, responsables y acciones derivadas.
Impacto
Mejora de aprendizaje y gobierno.
Tensiones
SLA 3d Score: learning_execution +3 a +9
ACT-DIR-003
High

Aprobar cambio de política crítica

Direction policy_approval approval

Aprobar formalmente cambios de política comercial, financiera, stock, crédito o datos.

Evitar que decisiones críticas queden como recomendaciones no implementadas.

Owner
general_manager → director
Evidencia
EVD-007EVD-012
Cierre
Política crítica aprobada y comunicada a los responsables.
Impacto
Mejora de gobierno y control.
SLA 5d Score: governance_execution +2 a +7
06 · Distribución por familia

Cómo se reparten las 31 acciones entre las 7 familias

La distribución refleja dónde se concentra el trabajo operativo del MVP: comercial y finanzas dominan (45% del catálogo) porque ahí se juega la rentabilidad y la caja; las familias de gobierno (OPS/DQ/DIR) son más chicas pero cubren los pilares de ejecución y datos.

commercial
8 · 25.8%

Comercial

ACT-COM-001 a 008. Política de descuentos, comisiones, autorizaciones, vendedores, mix, sucursales, cartera, ticket.

finance
6 · 19.4%

Finanzas

ACT-FIN-001 a 006. Cobranza, bloqueo de crédito, plan semanal, límites, proyección de caja, renegociación.

stock
5 · 16.1%

Stock

ACT-STK-001 a 005. Reposición, transferencias, liquidación, ventas perdidas, cobertura.

purchasing
3 · 9.7%

Compras

ACT-PUR-001 a 003. Proveedor crítico, renegociación, bloqueo sin rotación.

operations
3 · 9.7%

Operaciones

ACT-OPS-001 a 003. Vencidas, evidencia, responsable faltante.

data_quality
3 · 9.7%

Data Quality

ACT-DQ-001 a 003. Fuente, KPI con baja confianza, reporte semanal.

direction
3 · 9.7%

Dirección

ACT-DIR-001 a 003. Escalamiento, comité de reincidencia, aprobación de política.

Distribución por action_type (8 valores enum): corrective · 12  |  analysis · 5  |  follow_up · 4  |  preventive · 3  |  data_quality · 3  |  escalation · 2  |  governance · 1  |  approval · 1.

Distribución por default_priority: critical · 10  |  high · 14  |  medium · 7  |  low · 0. Toda acción tiene prioridad asignada; el MVP no permite acciones de baja prioridad porque la operación no necesita ruido.

Distribución por SLA en días: 1d · 1  |  2d · 4  |  3d · 4  |  5d · 4  |  7d · 7  |  10d · 5  |  14d · 3  |  21d · 1. Promedio ponderado ≈ 7.4 días.

07 · Tabla maestra

31 acciones × 10 columnas operativas

Vista densa para escanear todo el catálogo de un golpe. Click en el código abre la ficha en sección 5; click en el código de tensión abre la ficha correspondiente en catalogo-tensiones-mvp.html.

Código Acción Familia Tipo Prio SLA Owner → Aprobador Evidencia Score dim Tensiones
ACT-COM-001Revisar política de descuentoscommercialcorrectiveCRT7dcommercial_manager → general_managerEVD-007 EVD-012commercial_healthTNS-001 TNS-002 TNS-007 TNS-014 TNS-015
ACT-COM-002Revisar comisiones vinculadas a margencommercialanalysisHI10dgeneral_manager → directorEVD-010 EVD-012commercial_executionTNS-001 TNS-003
ACT-COM-003Bloquear descuentos fuera de autorizacióncommercialcorrectiveCRT5dcommercial_manager → general_managerEVD-007 EVD-012margin_healthTNS-001 TNS-002 TNS-003 TNS-015
ACT-COM-004Revisar performance comercial por vendedorcommercialanalysisHI7dcommercial_manager → general_managerEVD-010 EVD-012commercial_executionTNS-003 TNS-011 TNS-012 TNS-013
ACT-COM-005Rediseñar mix comercial por familiacommercialanalysisMED14dcommercial_manager → general_managerEVD-010 EVD-012margin_healthTNS-014 TNS-015 TNS-025
ACT-COM-006Recuperar ventas de sucursal relevantecommercialcorrectiveHI10dcommercial_manager → general_managerEVD-010 EVD-012branch_commercial_healthTNS-013
ACT-COM-007Diversificar cartera de clientescommercialpreventiveMED21dcommercial_manager → general_managerEVD-010 EVD-012commercial_riskTNS-011
ACT-COM-008Mejorar ticket promedio y venta cruzadacommercialcorrectiveMED14dcommercial_manager → general_managerEVD-010commercial_healthTNS-012
ACT-FIN-001Priorizar cobranza de clientes vencidosfinancecorrectiveCRT3dfinance_manager → general_managerEVD-011 EVD-006cash_healthTNS-004 TNS-005 TNS-018 TNS-020
ACT-FIN-002Bloquear venta a crédito de cliente críticofinancecorrectiveCRT2dfinance_manager → general_managerEVD-011 EVD-012cash_riskTNS-004 TNS-005 TNS-016
ACT-FIN-003Definir plan de cobranza semanalfinancecorrectiveHI5dfinance_manager → general_managerEVD-010 EVD-011cash_executionTNS-004 TNS-018 TNS-019 TNS-020
ACT-FIN-004Revisar límites de créditofinanceanalysisHI7dfinance_manager → general_managerEVD-010 EVD-012credit_riskTNS-005 TNS-016
ACT-FIN-005Preparar proyección de caja 30/60/90financeanalysisCRT3dfinance_manager → directorEVD-010 EVD-012cash_riskTNS-019
ACT-FIN-006Renegociar pagos críticos a proveedoresfinancecorrectiveHI5dfinance_manager → directorEVD-011 EVD-012cash_stock_healthTNS-019 TNS-024
ACT-STK-001Generar reposición priorizadastockcorrectiveHI3dstock_manager → general_managerEVD-005 EVD-002stock_healthTNS-006 TNS-008 TNS-021
ACT-STK-002Transferir stock entre sucursalesstockcorrectiveHI3dstock_manager → general_managerEVD-002 EVD-005stock_healthTNS-006 TNS-021
ACT-STK-003Liquidar stock inmovilizado controladamentestockcorrectiveMED10dstock_manager → general_managerEVD-010 EVD-012stock_cash_healthTNS-007 TNS-024 TNS-025
ACT-STK-004Registrar ventas perdidas por quiebrestockdata_qualityMED7dstock_manager → general_managerEVD-002 EVD-004data_stock_healthTNS-021
ACT-STK-005Revisar stock mínimo y coberturastockpreventiveHI10dstock_manager → general_managerEVD-010 EVD-012stock_executionTNS-006 TNS-008 TNS-021
ACT-PUR-001Revisar proveedor/costo críticopurchasinganalysisHI7dpurchasing_manager → general_managerEVD-010 EVD-012purchasing_healthTNS-008 TNS-014 TNS-022 TNS-023 TNS-025
ACT-PUR-002Renegociar proveedor críticopurchasingcorrectiveHI10dpurchasing_manager → general_managerEVD-011 EVD-012supplier_stock_riskTNS-023 TNS-024
ACT-PUR-003Bloquear reposición sin rotación suficientepurchasingpreventiveMED7dpurchasing_manager → general_managerEVD-007 EVD-012stock_purchasing_healthTNS-025 TNS-007
ACT-OPS-001Regularizar acciones vencidasoperationsfollow_upHI2dgeneral_manager → directorEVD-004 EVD-012execution_healthTNS-009 TNS-029
ACT-OPS-002Exigir evidencia de cierreoperationsfollow_upHI2dgeneral_manager → directorEVD-004 EVD-012execution_trustTNS-010 TNS-020 TNS-030
ACT-OPS-003Asignar responsable faltanteoperationsgovernanceCRT1dgeneral_manager → directorEVD-004governance_executionTNS-029
ACT-DQ-001Corregir fuente de datosdata_qualitydata_qualityHI3ddata_owner → general_managerEVD-002 EVD-004data_qualityTNS-026 TNS-027 TNS-028
ACT-DQ-002Validar KPI crítico con baja confianzadata_qualitydata_qualityHI3ddata_owner → general_managerEVD-002 EVD-004data_trustTNS-028
ACT-DQ-003Regularizar reporte semanal ejecutivodata_qualityfollow_upHI2dgeneral_manager → directorEVD-010 EVD-012direction_data_healthTNS-026
ACT-DIR-001Escalar tensión a direccióndirectionescalationCRT2dgeneral_manager → directorEVD-010 EVD-012direction_executionTNS-009 TNS-010 TNS-019 TNS-023 TNS-024 TNS-026 TNS-029 TNS-030
ACT-DIR-002Convocar comité ejecutivo por reincidenciadirectionescalationCRT3dgeneral_manager → directorEVD-010 EVD-012learning_executionTNS-030
ACT-DIR-003Aprobar cambio de política críticadirectionapprovalHI5dgeneral_manager → directorEVD-007 EVD-012governance_executionTNS-001 TNS-002 TNS-016 TNS-026 TNS-030
08 · DDL SQL · V028

faro.action_definitions · 27 columnas + 9 índices

Definición oficial de la tabla canónica. Incluye constraints sobre action_type y default_priority como enums textuales, UNIQUE (action_code, version), índice único parcial por status = 'active' y dos índices GIN sobre arrays (evidence_required_codes y triggered_by_tensions) para joins rápidos en el motor evaluador.

▸ V028__create_action_definitions.sql · PostgreSQL 15+
-- ============================================================
-- FARO-SQL-005 · V028__create_action_definitions.sql
-- Catálogo canónico de acciones FARO MVP
-- Engine: PostgreSQL 15+
-- ============================================================

CREATE TABLE IF NOT EXISTS faro.action_definitions (
  action_definition_id uuid PRIMARY KEY DEFAULT gen_random_uuid(),

  action_code text NOT NULL,
  name text NOT NULL,
  short_name text NULL,

  action_family text NOT NULL,
  area_code text NOT NULL,
  module_code text NOT NULL,

  description text NOT NULL,
  executive_purpose text NOT NULL,

  action_type text NOT NULL CHECK (
    action_type IN (
      'corrective',
      'preventive',
      'follow_up',
      'approval',
      'analysis',
      'escalation',
      'data_quality',
      'governance'
    )
  ),

  default_priority text NOT NULL CHECK (
    default_priority IN ('low', 'medium', 'high', 'critical')
  ),

  default_sla_days integer NOT NULL CHECK (default_sla_days >= 1),

  default_owner_role text NOT NULL,
  approver_role text NULL,

  evidence_required boolean NOT NULL DEFAULT true,
  evidence_required_codes text[] NOT NULL DEFAULT ARRAY[]::text[],

  closure_criteria text NOT NULL,
  success_metric text NULL,
  expected_business_impact text NULL,

  score_dimension text NOT NULL,
  expected_score_recovery_min numeric(9,4) NOT NULL DEFAULT 0,
  expected_score_recovery_max numeric(9,4) NOT NULL DEFAULT 0,

  triggered_by_tensions text[] NOT NULL DEFAULT ARRAY[]::text[],

  industry_scope text[] NOT NULL DEFAULT ARRAY['all']::text[],
  module_scope text[] NOT NULL DEFAULT ARRAY[]::text[],

  status text NOT NULL DEFAULT 'active' CHECK (
    status IN ('active', 'inactive', 'archived')
  ),

  version integer NOT NULL DEFAULT 1,
  metadata jsonb NOT NULL DEFAULT '{}'::jsonb,

  created_at timestamptz NOT NULL DEFAULT now(),
  updated_at timestamptz NOT NULL DEFAULT now(),

  CONSTRAINT uq_action_definitions_code_version UNIQUE (action_code, version)
);

CREATE UNIQUE INDEX IF NOT EXISTS uq_action_definitions_one_active_per_code
ON faro.action_definitions (action_code)
WHERE status = 'active';

CREATE INDEX IF NOT EXISTS idx_action_definitions_code
ON faro.action_definitions (action_code);

CREATE INDEX IF NOT EXISTS idx_action_definitions_family
ON faro.action_definitions (action_family);

CREATE INDEX IF NOT EXISTS idx_action_definitions_area
ON faro.action_definitions (area_code);

CREATE INDEX IF NOT EXISTS idx_action_definitions_module
ON faro.action_definitions (module_code);

CREATE INDEX IF NOT EXISTS idx_action_definitions_priority
ON faro.action_definitions (default_priority);

CREATE INDEX IF NOT EXISTS idx_action_definitions_status
ON faro.action_definitions (status);

CREATE INDEX IF NOT EXISTS idx_action_definitions_evidence
ON faro.action_definitions USING gin (evidence_required_codes);

CREATE INDEX IF NOT EXISTS idx_action_definitions_tensions
ON faro.action_definitions USING gin (triggered_by_tensions);

COMMENT ON TABLE faro.action_definitions IS
'Catálogo canónico de acciones FARO. Define las acciones oficiales que el motor puede recomendar o crear.';

COMMENT ON COLUMN faro.action_definitions.action_code IS
'Código canónico de acción. Ejemplo: ACT-COM-001. No debe reutilizarse para otra acción.';

COMMENT ON COLUMN faro.action_definitions.closure_criteria IS
'Criterio mínimo para considerar cerrada la acción.';

COMMENT ON COLUMN faro.action_definitions.evidence_required_codes IS
'Códigos de evidencia requeridos para validar cierre.';

COMMENT ON COLUMN faro.action_definitions.triggered_by_tensions IS
'Tensiones que normalmente recomiendan esta acción.';
09 · Seed SQL · V029

31 INSERTs verbatim · idempotente con ON CONFLICT

Seed oficial de FARO-SQL-005. Las 31 entradas se presentan in extenso, idénticas al archivo fuente V029__seed_action_definitions_mvp.sql. El cierre con ON CONFLICT (action_code, version) DO UPDATE SET ... updated_at = now() hace que la migración sea idempotente: aplicar dos veces produce el mismo estado final.

▸ V029__seed_action_definitions_mvp.sql · v1.0
-- ============================================================
-- FARO-SQL-005 · V029__seed_action_definitions_mvp.sql
-- Seed Catálogo Canónico de Acciones MVP FARO
-- Version: v1.0
-- ============================================================

BEGIN;

INSERT INTO faro.action_definitions (
  action_code, name, short_name,
  action_family, area_code, module_code,
  description, executive_purpose,
  action_type, default_priority, default_sla_days,
  default_owner_role, approver_role,
  evidence_required, evidence_required_codes,
  closure_criteria, success_metric, expected_business_impact,
  score_dimension, expected_score_recovery_min, expected_score_recovery_max,
  triggered_by_tensions, industry_scope, module_scope,
  status, version, metadata
)
VALUES

-- ============================================================
-- COMERCIAL
-- ============================================================

(
  'ACT-COM-001',
  'Revisar política de descuentos',
  'Política descuentos',
  'commercial', 'commercial', 'discounts',
  'Analizar descuentos aplicados por vendedor, producto, cliente y sucursal; definir límites y excepciones.',
  'Recuperar margen y evitar crecimiento comprado con descuentos excesivos.',
  'corrective', 'critical', 7,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-007','EVD-012'],
  'Nueva política de descuentos aprobada por dirección y comunicada al equipo comercial.',
  'Reducción del descuento promedio y recuperación de margen bruto.',
  'Mejora de margen, disciplina comercial y rentabilidad.',
  'commercial_health', 3, 8,
  ARRAY['TNS-001','TNS-002','TNS-007','TNS-014','TNS-015'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','discounts','margin'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-002',
  'Revisar comisiones vinculadas a margen',
  'Comisiones margen',
  'commercial', 'commercial', 'commissions',
  'Evaluar si el esquema de comisión incentiva ventas de bajo margen o descuentos excesivos.',
  'Alinear incentivos comerciales con rentabilidad y no solo con facturación.',
  'analysis', 'high', 10,
  'general_manager', 'director',
  true, ARRAY['EVD-010','EVD-012'],
  'Propuesta de esquema de comisiones revisada y aprobada por dirección.',
  'Reducción de ventas de bajo margen y mejora del margen por vendedor.',
  'Mejora de rentabilidad y calidad comercial.',
  'commercial_execution', 2, 6,
  ARRAY['TNS-001','TNS-003'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','margin','employees','commissions'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-003',
  'Bloquear descuentos fuera de autorización',
  'Bloquear descuentos',
  'commercial', 'commercial', 'authorizations',
  'Definir límites de descuento por rol y circuito de aprobación para excepciones.',
  'Evitar descuentos discrecionales que erosionan margen sin aprobación.',
  'corrective', 'critical', 5,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-007','EVD-012'],
  'Regla de autorización activa o política aprobada con responsables definidos.',
  'Disminución de descuentos fuera de política.',
  'Mejora inmediata de control comercial y margen.',
  'margin_health', 3, 8,
  ARRAY['TNS-001','TNS-002','TNS-003','TNS-015'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','discounts','workflow'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-004',
  'Revisar performance comercial por vendedor',
  'Performance vendedor',
  'commercial', 'commercial', 'salespeople',
  'Analizar vendedores por venta, margen, descuento, mix, cobranza y reincidencia de tensiones.',
  'Detectar si el problema comercial está concentrado en responsables específicos.',
  'analysis', 'high', 7,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Informe por vendedor revisado y plan de mejora o decisión ejecutiva registrada.',
  'Mejora de margen por vendedor y reducción de descuentos excepcionales.',
  'Mejora de calidad de venta y accountability comercial.',
  'commercial_execution', 2, 6,
  ARRAY['TNS-003','TNS-011','TNS-012','TNS-013'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','employees','performance'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-005',
  'Rediseñar mix comercial por familia',
  'Mix comercial',
  'commercial', 'commercial', 'product_mix',
  'Revisar familias de producto con bajo margen, baja rotación o descuentos recurrentes.',
  'Reorientar el mix comercial hacia familias más rentables o estratégicas.',
  'analysis', 'medium', 14,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Plan de mix comercial aprobado con familias objetivo, margen mínimo y política de venta.',
  'Mejora del margen por familia y reducción de ventas no rentables.',
  'Mejora de rentabilidad estructural.',
  'margin_health', 2, 5,
  ARRAY['TNS-014','TNS-015','TNS-025'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','products','margin'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-006',
  'Recuperar ventas de sucursal relevante',
  'Recuperar sucursal',
  'commercial', 'commercial', 'branch_sales',
  'Analizar caída de ventas por sucursal y ejecutar plan de recuperación comercial.',
  'Evitar que una sucursal pierda ritmo mientras el promedio general oculta el problema.',
  'corrective', 'high', 10,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Plan de recuperación aprobado con responsables, metas y seguimiento semanal.',
  'Recuperación de ventas y margen en sucursal afectada.',
  'Mejora de performance por sucursal.',
  'branch_commercial_health', 2, 6,
  ARRAY['TNS-013'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['sales','branches'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-007',
  'Diversificar cartera de clientes',
  'Diversificar clientes',
  'commercial', 'commercial', 'customers',
  'Definir acciones para reducir dependencia de pocos clientes relevantes.',
  'Bajar riesgo comercial por concentración de ventas.',
  'preventive', 'medium', 21,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Plan de diversificación aprobado con segmentos objetivo y metas de captación.',
  'Reducción de concentración de ventas en top clientes.',
  'Reducción de riesgo comercial.',
  'commercial_risk', 1, 5,
  ARRAY['TNS-011'],
  ARRAY['commercial','distribution','services'],
  ARRAY['sales','customers','risk'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-COM-008',
  'Mejorar ticket promedio y venta cruzada',
  'Ticket y cross-sell',
  'commercial', 'commercial', 'ticket',
  'Diseñar acciones comerciales para recuperar ticket promedio mediante bundles, venta cruzada o foco por familia.',
  'Mejorar eficiencia comercial sin depender solo de descuentos.',
  'corrective', 'medium', 14,
  'commercial_manager', 'general_manager',
  true, ARRAY['EVD-010'],
  'Plan comercial validado con acciones de ticket, familias objetivo y seguimiento.',
  'Mejora del ticket promedio y margen por operación.',
  'Mayor productividad comercial.',
  'commercial_health', 1, 4,
  ARRAY['TNS-012'],
  ARRAY['commercial','retail','distribution'],
  ARRAY['sales','ticket','cross_sell'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- FINANZAS
-- ============================================================

(
  'ACT-FIN-001',
  'Priorizar cobranza de clientes vencidos',
  'Cobranza prioritaria',
  'finance', 'finance', 'receivables',
  'Gestionar clientes con mora relevante y registrar contacto, acuerdo o resultado.',
  'Convertir venta pendiente en caja y reducir exposición de riesgo.',
  'corrective', 'critical', 3,
  'finance_manager', 'general_manager',
  true, ARRAY['EVD-011','EVD-006'],
  'Cliente contactado y acuerdo de pago, comprobante o gestión documentada cargada como evidencia.',
  'Reducción de mora vencida y días de cobranza.',
  'Mejora de caja y reducción de riesgo financiero.',
  'cash_health', 3, 9,
  ARRAY['TNS-004','TNS-005','TNS-018','TNS-020'],
  ARRAY['commercial','distribution','services','construction_supplies'],
  ARRAY['receivables','collections','cash'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-FIN-002',
  'Bloquear venta a crédito de cliente crítico',
  'Bloquear crédito',
  'finance', 'finance', 'credit_risk',
  'Suspender o limitar venta a crédito a clientes con mora crítica o límite excedido.',
  'Evitar que la empresa siga aumentando exposición financiera sobre clientes de riesgo.',
  'corrective', 'critical', 2,
  'finance_manager', 'general_manager',
  true, ARRAY['EVD-011','EVD-012'],
  'Restricción aprobada y comunicada; cliente marcado con condición comercial actualizada.',
  'Reducción de exposición crediticia.',
  'Menor riesgo de incobrabilidad.',
  'cash_risk', 3, 8,
  ARRAY['TNS-004','TNS-005','TNS-016'],
  ARRAY['commercial','distribution','services','construction_supplies'],
  ARRAY['credit','receivables','customers'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-FIN-003',
  'Definir plan de cobranza semanal',
  'Plan cobranza semanal',
  'finance', 'finance', 'collections',
  'Crear plan semanal de cobranza con clientes prioritarios, responsables y vencimientos.',
  'Pasar de cobranza reactiva a cobranza gobernada.',
  'corrective', 'high', 5,
  'finance_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-011'],
  'Plan semanal cargado con responsables, clientes priorizados y seguimiento.',
  'Reducción de mora y mejora de previsibilidad de caja.',
  'Mejora de ejecución financiera.',
  'cash_execution', 2, 7,
  ARRAY['TNS-004','TNS-018','TNS-019','TNS-020'],
  ARRAY['commercial','distribution','services','construction_supplies'],
  ARRAY['collections','cash','workflow'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-FIN-004',
  'Revisar límites de crédito',
  'Límites de crédito',
  'finance', 'finance', 'credit_policy',
  'Revisar límites de crédito por cliente según mora, volumen, historial y riesgo.',
  'Alinear crédito comercial con capacidad de pago real.',
  'analysis', 'high', 7,
  'finance_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Nueva matriz de límites de crédito aprobada.',
  'Reducción de clientes excedidos y exposición financiera.',
  'Mejor control de riesgo crediticio.',
  'credit_risk', 2, 7,
  ARRAY['TNS-005','TNS-016'],
  ARRAY['commercial','distribution','services','construction_supplies'],
  ARRAY['credit','customers','risk'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-FIN-005',
  'Preparar proyección de caja 30/60/90',
  'Caja 30/60/90',
  'finance', 'finance', 'cash_projection',
  'Preparar proyección de caja con cobranzas esperadas, pagos críticos y escenarios.',
  'Anticipar insuficiencia de caja y ordenar decisiones financieras.',
  'analysis', 'critical', 3,
  'finance_manager', 'director',
  true, ARRAY['EVD-010','EVD-012'],
  'Proyección de caja aprobada con escenario base, crítico y acciones definidas.',
  'Mayor visibilidad de caja y reducción de decisiones reactivas.',
  'Mejora de control financiero.',
  'cash_risk', 3, 9,
  ARRAY['TNS-019'],
  ARRAY['all'],
  ARRAY['cash','finance','planning'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-FIN-006',
  'Renegociar pagos críticos a proveedores',
  'Renegociar proveedores',
  'finance', 'finance', 'supplier_payments',
  'Renegociar vencimientos críticos con proveedores para proteger caja y abastecimiento.',
  'Evitar tensión financiera-operativa por presión de pagos y necesidad de stock.',
  'corrective', 'high', 5,
  'finance_manager', 'director',
  true, ARRAY['EVD-011','EVD-012'],
  'Acuerdo con proveedor documentado o plan de pago aprobado.',
  'Reducción de presión de caja y riesgo de corte de abastecimiento.',
  'Mejora de equilibrio caja-stock-proveedores.',
  'cash_stock_health', 2, 7,
  ARRAY['TNS-019','TNS-024'],
  ARRAY['commercial','distribution','manufacturing','construction_supplies'],
  ARRAY['finance','suppliers','payments'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- STOCK
-- ============================================================

(
  'ACT-STK-001',
  'Generar reposición priorizada',
  'Reposición priorizada',
  'stock', 'stock', 'replenishment',
  'Priorizar reposición de productos críticos según rotación, cobertura, ventas y margen.',
  'Evitar quiebres de stock en productos relevantes.',
  'corrective', 'high', 3,
  'stock_manager', 'general_manager',
  true, ARRAY['EVD-005','EVD-002'],
  'Orden de compra emitida, proveedor confirmado o reposición planificada con fecha.',
  'Reducción de productos con cobertura crítica.',
  'Mejora de disponibilidad y reducción de ventas perdidas.',
  'stock_health', 3, 8,
  ARRAY['TNS-006','TNS-008','TNS-021'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['stock','replenishment','purchasing'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-STK-002',
  'Transferir stock entre sucursales',
  'Transferencia stock',
  'stock', 'stock', 'transfers',
  'Mover stock disponible desde sucursales con excedente hacia sucursales con cobertura crítica.',
  'Resolver faltantes antes de comprar más cuando hay stock disponible en otra ubicación.',
  'corrective', 'high', 3,
  'stock_manager', 'general_manager',
  true, ARRAY['EVD-002','EVD-005'],
  'Transferencia registrada, aprobada y ejecutada o programada.',
  'Reducción de faltantes y mejor uso del inventario existente.',
  'Mejora de eficiencia de stock.',
  'stock_health', 2, 6,
  ARRAY['TNS-006','TNS-021'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['stock','branches','transfers'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-STK-003',
  'Liquidar stock inmovilizado controladamente',
  'Liquidar stock inmovilizado',
  'stock', 'stock', 'stock_rotation',
  'Definir plan controlado para vender, transferir, devolver o liquidar stock inmovilizado.',
  'Liberar capital atrapado sin destruir margen innecesariamente.',
  'corrective', 'medium', 10,
  'stock_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Plan aprobado con SKUs, descuentos máximos, responsables y plazo.',
  'Reducción de valor inmovilizado y mejora de rotación.',
  'Liberación de caja y mejora de salud de stock.',
  'stock_cash_health', 2, 7,
  ARRAY['TNS-007','TNS-024','TNS-025'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['stock','rotation','sales'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-STK-004',
  'Registrar ventas perdidas por quiebre',
  'Registrar ventas perdidas',
  'stock', 'stock', 'lost_sales',
  'Implementar registro de ventas perdidas por falta de stock.',
  'Medir el costo real del quiebre de stock.',
  'data_quality', 'medium', 7,
  'stock_manager', 'general_manager',
  true, ARRAY['EVD-002','EVD-004'],
  'Registro implementado y primera carga validada.',
  'Visibilidad de venta perdida por producto y sucursal.',
  'Mejora de calidad de decisión sobre reposición.',
  'data_stock_health', 1, 5,
  ARRAY['TNS-021'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['stock','sales','lost_sales','data_quality'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-STK-005',
  'Revisar stock mínimo y cobertura',
  'Stock mínimo',
  'stock', 'stock', 'coverage_policy',
  'Actualizar stocks mínimos, puntos de pedido y cobertura objetivo por producto.',
  'Evitar reposición reactiva y quiebres recurrentes.',
  'preventive', 'high', 10,
  'stock_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Nueva política de cobertura aprobada y comunicada.',
  'Reducción de quiebres y compras urgentes.',
  'Mejora de planificación de stock.',
  'stock_execution', 2, 6,
  ARRAY['TNS-006','TNS-008','TNS-021'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['stock','coverage','replenishment'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- COMPRAS
-- ============================================================

(
  'ACT-PUR-001',
  'Revisar proveedor/costo crítico',
  'Proveedor/costo crítico',
  'purchasing', 'purchasing', 'supplier_cost',
  'Analizar proveedor, costo, plazo, condición comercial y alternativas de abastecimiento.',
  'Corregir problemas de costo, demora o dependencia de proveedor.',
  'analysis', 'high', 7,
  'purchasing_manager', 'general_manager',
  true, ARRAY['EVD-010','EVD-012'],
  'Análisis proveedor/costo validado y decisión documentada.',
  'Reducción de sobrecosto o riesgo de abastecimiento.',
  'Mejora de margen y disponibilidad.',
  'purchasing_health', 2, 7,
  ARRAY['TNS-008','TNS-014','TNS-022','TNS-023','TNS-025'],
  ARRAY['commercial','retail','distribution','manufacturing','construction_supplies'],
  ARRAY['purchasing','suppliers','costs'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-PUR-002',
  'Renegociar proveedor crítico',
  'Renegociar proveedor',
  'purchasing', 'purchasing', 'supplier_negotiation',
  'Renegociar condiciones con proveedor crítico por precio, plazo, entrega o financiación.',
  'Reducir dependencia, sobrecosto o demora recurrente.',
  'corrective', 'high', 10,
  'purchasing_manager', 'general_manager',
  true, ARRAY['EVD-011','EVD-012'],
  'Nueva condición, acuerdo o alternativa de proveedor documentada.',
  'Mejora de costo, plazo o cumplimiento.',
  'Mejora de compras y abastecimiento.',
  'supplier_stock_risk', 2, 7,
  ARRAY['TNS-023','TNS-024'],
  ARRAY['commercial','retail','distribution','manufacturing','construction_supplies'],
  ARRAY['purchasing','suppliers'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-PUR-003',
  'Bloquear reposición sin rotación suficiente',
  'Bloquear reposición sin rotación',
  'purchasing', 'purchasing', 'purchase_control',
  'Bloquear o exigir aprobación para compras de productos con baja rotación o stock inmovilizado.',
  'Evitar seguir comprando productos que no se venden o que inmovilizan caja.',
  'preventive', 'medium', 7,
  'purchasing_manager', 'general_manager',
  true, ARRAY['EVD-007','EVD-012'],
  'Política de compra o autorización implementada para productos de baja rotación.',
  'Reducción de compras innecesarias y stock inmovilizado.',
  'Mejora de caja y rotación.',
  'stock_purchasing_health', 1, 5,
  ARRAY['TNS-025','TNS-007'],
  ARRAY['commercial','retail','distribution','construction_supplies'],
  ARRAY['purchasing','stock','rotation'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- OPERACIONES / EJECUCION
-- ============================================================

(
  'ACT-OPS-001',
  'Regularizar acciones vencidas',
  'Regularizar vencidas',
  'operations', 'direction', 'workflow',
  'Revisar acciones vencidas y definir cierre, reprogramación, evidencia o escalamiento.',
  'Recuperar disciplina de ejecución.',
  'follow_up', 'high', 2,
  'general_manager', 'director',
  true, ARRAY['EVD-004','EVD-012'],
  'Acciones vencidas regularizadas, cerradas con evidencia, reprogramadas o escaladas.',
  'Reducción de acciones vencidas.',
  'Mejora de ejecución y accountability.',
  'execution_health', 2, 7,
  ARRAY['TNS-009','TNS-029'],
  ARRAY['all'],
  ARRAY['actions','workflow','execution'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-OPS-002',
  'Exigir evidencia de cierre',
  'Exigir evidencia',
  'operations', 'direction', 'evidence',
  'Solicitar evidencia faltante para validar cierre real de acciones.',
  'Evitar cierres ficticios o no comprobables.',
  'follow_up', 'high', 2,
  'general_manager', 'director',
  true, ARRAY['EVD-004','EVD-012'],
  'Evidencia cargada, revisada y aprobada por responsable correspondiente.',
  'Reducción de acciones sin evidencia.',
  'Mejora de confianza de ejecución.',
  'execution_trust', 2, 7,
  ARRAY['TNS-010','TNS-020','TNS-030'],
  ARRAY['all'],
  ARRAY['actions','evidence','workflow'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-OPS-003',
  'Asignar responsable faltante',
  'Asignar responsable',
  'operations', 'direction', 'raci',
  'Asignar responsable a acciones o tensiones críticas sin dueño.',
  'Evitar que problemas críticos queden sin accountability.',
  'governance', 'critical', 1,
  'general_manager', 'director',
  true, ARRAY['EVD-004'],
  'Responsable asignado y notificado; vencimiento definido.',
  'Eliminación de acciones críticas sin responsable.',
  'Mejora de gobierno y ejecución.',
  'governance_execution', 2, 6,
  ARRAY['TNS-029'],
  ARRAY['all'],
  ARRAY['actions','raci','governance'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- DATA QUALITY
-- ============================================================

(
  'ACT-DQ-001',
  'Corregir fuente de datos',
  'Corregir fuente',
  'data_quality', 'data', 'data_sources',
  'Revisar origen, frecuencia, responsable, formato y errores de una fuente crítica.',
  'Recuperar confiabilidad de datos para decisiones ejecutivas.',
  'data_quality', 'high', 3,
  'data_owner', 'general_manager',
  true, ARRAY['EVD-002','EVD-004'],
  'Fuente corregida, carga validada o responsable asignado con evidencia.',
  'Mejora de calidad, frescura y disponibilidad del dato.',
  'Mejora de confianza del sistema.',
  'data_quality', 2, 8,
  ARRAY['TNS-026','TNS-027','TNS-028'],
  ARRAY['all'],
  ARRAY['data_sources','ingestion','data_quality'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-DQ-002',
  'Validar KPI crítico con baja confianza',
  'Validar KPI crítico',
  'data_quality', 'data', 'kpi_confidence',
  'Revisar fórmula, fuente, consistencia y confianza de un KPI crítico.',
  'Evitar decisiones basadas en indicadores poco confiables.',
  'data_quality', 'high', 3,
  'data_owner', 'general_manager',
  true, ARRAY['EVD-002','EVD-004'],
  'KPI validado, corregido o marcado como no confiable con explicación.',
  'Mejora de confianza del KPI.',
  'Mayor confiabilidad ejecutiva.',
  'data_trust', 2, 8,
  ARRAY['TNS-028'],
  ARRAY['all'],
  ARRAY['kpis','data_quality','confidence'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-DQ-003',
  'Regularizar reporte semanal ejecutivo',
  'Reporte semanal',
  'data_quality', 'direction', 'reports',
  'Asegurar generación y entrega del reporte ejecutivo semanal con KPIs y tensiones actualizadas.',
  'Garantizar visibilidad semanal para dirección.',
  'follow_up', 'high', 2,
  'general_manager', 'director',
  true, ARRAY['EVD-010','EVD-012'],
  'Reporte semanal generado, revisado y entregado a dirección.',
  'Mejora de visibilidad ejecutiva.',
  'Mejora de dirección y control.',
  'direction_data_health', 2, 6,
  ARRAY['TNS-026'],
  ARRAY['all'],
  ARRAY['reports','direction','data_quality'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),

-- ============================================================
-- DIRECCION
-- ============================================================

(
  'ACT-DIR-001',
  'Escalar tensión a dirección',
  'Escalar dirección',
  'direction', 'direction', 'executive_escalation',
  'Elevar tensión crítica o bloqueada a dirección para decisión ejecutiva.',
  'Asegurar que los temas críticos no queden atascados en mandos medios.',
  'escalation', 'critical', 2,
  'general_manager', 'director',
  true, ARRAY['EVD-010','EVD-012'],
  'Decisión ejecutiva documentada con responsable, vencimiento y seguimiento.',
  'Resolución o destrabe de tensión crítica.',
  'Mejora de gobierno ejecutivo.',
  'direction_execution', 2, 8,
  ARRAY['TNS-009','TNS-010','TNS-019','TNS-023','TNS-024','TNS-026','TNS-029','TNS-030'],
  ARRAY['all'],
  ARRAY['direction','escalation','governance'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-DIR-002',
  'Convocar comité ejecutivo por reincidencia',
  'Comité reincidencia',
  'direction', 'direction', 'executive_committee',
  'Convocar reunión ejecutiva para tensión crítica reincidente y definir cambio estructural.',
  'Resolver problemas que el workflow normal no está logrando corregir.',
  'escalation', 'critical', 3,
  'general_manager', 'director',
  true, ARRAY['EVD-010','EVD-012'],
  'Comité realizado con acta, decisión, responsables y acciones derivadas.',
  'Reducción de reincidencia de tensiones críticas.',
  'Mejora de aprendizaje y gobierno.',
  'learning_execution', 3, 9,
  ARRAY['TNS-030'],
  ARRAY['all'],
  ARRAY['direction','learning','governance'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
),
(
  'ACT-DIR-003',
  'Aprobar cambio de política crítica',
  'Aprobar política',
  'direction', 'direction', 'policy_approval',
  'Aprobar formalmente cambios de política comercial, financiera, stock, crédito o datos.',
  'Evitar que decisiones críticas queden como recomendaciones no implementadas.',
  'approval', 'high', 5,
  'general_manager', 'director',
  true, ARRAY['EVD-007','EVD-012'],
  'Política crítica aprobada y comunicada a los responsables.',
  'Implementación formal de cambio de política.',
  'Mejora de gobierno y control.',
  'governance_execution', 2, 7,
  ARRAY['TNS-001','TNS-002','TNS-016','TNS-026','TNS-030'],
  ARRAY['all'],
  ARRAY['direction','policy','governance'],
  'active', 1, '{"canonical": true, "mvp": true}'::jsonb
)

ON CONFLICT (action_code, version)
DO UPDATE SET
  name = EXCLUDED.name,
  short_name = EXCLUDED.short_name,
  action_family = EXCLUDED.action_family,
  area_code = EXCLUDED.area_code,
  module_code = EXCLUDED.module_code,
  description = EXCLUDED.description,
  executive_purpose = EXCLUDED.executive_purpose,
  action_type = EXCLUDED.action_type,
  default_priority = EXCLUDED.default_priority,
  default_sla_days = EXCLUDED.default_sla_days,
  default_owner_role = EXCLUDED.default_owner_role,
  approver_role = EXCLUDED.approver_role,
  evidence_required = EXCLUDED.evidence_required,
  evidence_required_codes = EXCLUDED.evidence_required_codes,
  closure_criteria = EXCLUDED.closure_criteria,
  success_metric = EXCLUDED.success_metric,
  expected_business_impact = EXCLUDED.expected_business_impact,
  score_dimension = EXCLUDED.score_dimension,
  expected_score_recovery_min = EXCLUDED.expected_score_recovery_min,
  expected_score_recovery_max = EXCLUDED.expected_score_recovery_max,
  triggered_by_tensions = EXCLUDED.triggered_by_tensions,
  industry_scope = EXCLUDED.industry_scope,
  module_scope = EXCLUDED.module_scope,
  status = EXCLUDED.status,
  metadata = EXCLUDED.metadata,
  updated_at = now();

COMMIT;

Verbatim del seed oficial. Las 31 entradas se presentan in extenso y sin recortes, idénticas a FARO-SQL-005 · V029__seed_action_definitions_mvp.sql. El cierre con ON CONFLICT (action_code, version) DO UPDATE SET ... updated_at = now() hace que la migración sea idempotente: aplicar dos veces produce el mismo estado final.

10 · Validaciones post-seed

7 queries que deben dar el resultado esperado

Ejecutar en orden después de aplicar V028 + V029. Cada query verifica una condición del contrato canónico. Si alguna falla, el seed no se considera aceptado y el motor evaluador no debería arrancar contra esta base.

10.1 · Conteo Esperado: 31

Existen 31 acciones activas

El catálogo MVP debe tener exactamente 31 registros con status = 'active'. El doc fuente dice 30; el seed real es 31. Esta query refleja la realidad del seed.

▸ SQL
SELECT COUNT(*) AS active_actions
FROM faro.action_definitions
WHERE status = 'active';
10.2 · Unicidad Esperado: 0 filas

No hay códigos duplicados activos

El índice único parcial uq_action_definitions_one_active_per_code debería prevenirlo, pero esta query lo verifica explícitamente.

▸ SQL
SELECT action_code, COUNT(*) AS total
FROM faro.action_definitions
WHERE status = 'active'
GROUP BY action_code
HAVING COUNT(*) > 1;
10.3 · Evidencia Esperado: 0 filas

Toda acción tiene evidencia requerida

Regla 05 del gobierno: sin evidencia no hay cierre confiable. evidence_required = true y evidence_required_codes con al menos un elemento.

▸ SQL
SELECT action_code, name
FROM faro.action_definitions
WHERE status = 'active'
  AND (
    evidence_required = false
    OR cardinality(evidence_required_codes) = 0
  );
10.4 · Cierre Esperado: 0 filas

Toda acción tiene criterio de cierre

Regla 06: closure_criteria es obligatorio y no puede ser cadena vacía. Sin criterio, "cerrar" no significa nada operativo.

▸ SQL
SELECT action_code, name
FROM faro.action_definitions
WHERE status = 'active'
  AND (
    closure_criteria IS NULL
    OR trim(closure_criteria) = ''
  );
10.5 · Tensiones Esperado: 0 filas

Toda acción recomendada por tensiones existe

Validación cruzada: para cada tension_definitions.recommended_actions[], el código debe existir activo en action_definitions. Sin esto, una tensión podría disparar una acción fantasma.

▸ SQL
SELECT
  td.tension_code,
  td.name AS tension_name,
  action_code
FROM faro.tension_definitions td
CROSS JOIN LATERAL unnest(td.recommended_actions) AS action_code
LEFT JOIN faro.action_definitions ad
  ON ad.action_code = action_code
 AND ad.status = 'active'
WHERE td.status = 'active'
  AND ad.action_code IS NULL;
10.6 · SLA Esperado: 0 filas

SLA coherente con prioridad

Regla 07: critical ≤ 3 días, high ≤ 10 días, medium ≤ 21 días. Si una acción critical tiene SLA de 14 días, el catálogo está mintiendo sobre su urgencia.

▸ SQL
SELECT action_code, name, default_priority, default_sla_days
FROM faro.action_definitions
WHERE status = 'active'
  AND (
    (default_priority = 'critical' AND default_sla_days > 3)
    OR (default_priority = 'high' AND default_sla_days > 10)
    OR (default_priority = 'medium' AND default_sla_days > 21)
  );
10.7 · Distribución Esperado: 7 filas (familias)

Distribución por familia

Verifica la distribución esperada: commercial=8, finance=6, stock=5, purchasing=3, operations=3, data_quality=3, direction=3 (total 31).

▸ SQL
SELECT action_family, COUNT(*) AS total
FROM faro.action_definitions
WHERE status = 'active'
GROUP BY action_family
ORDER BY action_family;
11 · Mapeo con v2

31 MVP ↔ 300 biblioteca extendida

Cada acción MVP del catálogo tiene una equivalencia conceptual (directa, parcial o múltiple) en biblioteca-acciones.html. El mapeo se resolvió cruzando las tensiones MVP → tensiones v2 → acciones v2 disparadas por esas tensiones.

Convención de mapeo. Directo = 1 acción v2 cubre el caso. Parcial = la v2 cubre un caso adyacente pero no aísla el vector específico del MVP (descuento, evidencia, reincidencia, comisiones). Múltiples = 2-3 acciones v2 cubren juntas el alcance MVP.

MVP Nombre canónico MVP Equivalente conceptual en biblioteca v2 (300) Estado
ACT-COM-001Revisar política de descuentosACT-002 · Recuperar resultado en ventas que erosionan conversión rentable
ACT-014 · Recuperar resultado en margen que erosiona rentabilidad sostenida
Cubre conversión rentable + erosión de margen; v2 no aísla "política de descuento" como vector.
Múltiples
ACT-COM-002Revisar comisiones vinculadas a margenACT-098 · Recuperar resultado en dotación que erosiona productividad humana
Cubre productividad humana / incentivos; v2 no aísla esquema de comisiones comerciales.
Parcial
ACT-COM-003Bloquear descuentos fuera de autorizaciónACT-002 · Recuperar resultado en ventas que erosionan conversión rentable
Cubre erosión de conversión rentable; v2 no aísla el circuito de autorización por rol.
Parcial
ACT-COM-004Revisar performance comercial por vendedorACT-001 · Recuperar resultado en ventas con alta actividad pero bajo resultado
ACT-098 · Recuperar resultado en dotación que erosiona productividad humana
Actividad sin resultado + productividad humana; v2 no aísla análisis por vendedor individual.
Múltiples
ACT-COM-005Rediseñar mix comercial por familiaACT-015 · Activar foco ejecutivo sobre margen fuera de ritmo contra plan
Cubre margen fuera de plan; v2 no aísla mix por familia de producto.
Parcial
ACT-COM-006Recuperar ventas de sucursal relevanteACT-159 · Activar foco ejecutivo sobre sucursales fuera de ritmo contra plan
1:1 conceptual.
Directo
ACT-COM-007Diversificar cartera de clientesACT-115 · Mitigar riesgo no controlado en base de clientes
1:1 conceptual sobre concentración / riesgo de cartera.
Directo
ACT-COM-008Mejorar ticket promedio y venta cruzadaACT-001 · Recuperar resultado en ventas con alta actividad pero bajo resultado
Engloba la mejora de ticket y cross-sell vía resultado por operación.
Directo
ACT-FIN-001Priorizar cobranza de clientes vencidosACT-045 · Acelerar ejecución en acciones sobre cartera de clientes vencidas
1:1 conceptual sobre cobranza vencida.
Directo
ACT-FIN-002Bloquear venta a crédito de cliente críticoACT-043 · Mitigar riesgo no controlado en cuentas por cobrar
1:1 conceptual sobre control de exposición crediticia.
Directo
ACT-FIN-003Definir plan de cobranza semanalACT-039 · Activar foco ejecutivo sobre cartera de clientes fuera de plan
ACT-045 · Acelerar ejecución en acciones sobre cartera vencidas
Cartera fuera de plan + aceleración de acciones vencidas.
Múltiples
ACT-FIN-004Revisar límites de créditoACT-043 · Mitigar riesgo no controlado en cuentas por cobrar
1:1 conceptual sobre política de límites de crédito.
Directo
ACT-FIN-005Preparar proyección de caja 30/60/90ACT-031 · Mitigar riesgo no controlado en flujo de fondos
1:1 conceptual sobre proyección y control de caja.
Directo
ACT-FIN-006Renegociar pagos críticos a proveedoresACT-031 · Mitigar riesgo no controlado en flujo de fondos
ACT-072 · Activar foco ejecutivo sobre ciclo económico de compras desfasado
Flujo de fondos + ciclo económico de compras (cruce caja-proveedores).
Múltiples
ACT-STK-001Generar reposición priorizadaACT-052 · Activar foco ejecutivo sobre capacidad de inventario desalineada
1:1 conceptual sobre reposición ante desalineación de capacidad.
Directo
ACT-STK-002Transferir stock entre sucursalesACT-052 · Activar foco ejecutivo sobre capacidad de inventario desalineada
ACT-058 · Activar foco ejecutivo sobre promesa de servicio deteriorada
Inventario desalineado + promesa de servicio (transferencias resuelven ambos).
Múltiples
ACT-STK-003Liquidar stock inmovilizado controladamenteACT-060 · Activar foco ejecutivo sobre ciclo económico de stock desfasado
ACT-053 · Activar foco ejecutivo sobre costos de stock crecen más rápido que resultado
Ciclo económico de stock + costos de stock (ambos disparan liquidación).
Múltiples
ACT-STK-004Registrar ventas perdidas por quiebreACT-058 · Activar foco ejecutivo sobre promesa de servicio de stock deteriorada
1:1 conceptual: medir el costo del quiebre vía registro de pérdida.
Directo
ACT-STK-005Revisar stock mínimo y coberturaACT-052 · Activar foco ejecutivo sobre capacidad de inventario desalineada
1:1 conceptual sobre política de cobertura y stock mínimo.
Directo
ACT-PUR-001Revisar proveedor/costo críticoACT-065 · Activar foco ejecutivo sobre costos de compras crecen más rápido
ACT-067 · Mitigar riesgo no controlado en base de proveedores
Sobrecosto + riesgo de proveedor (ambos componentes del análisis MVP).
Múltiples
ACT-PUR-002Renegociar proveedor críticoACT-067 · Mitigar riesgo no controlado en base de proveedores
1:1 conceptual sobre renegociación de proveedor de riesgo.
Directo
ACT-PUR-003Bloquear reposición sin rotación suficienteACT-066 · Activar foco ejecutivo sobre datos de compras insuficientes
1:1 conceptual sobre control de compra basada en rotación.
Directo
ACT-OPS-001Regularizar acciones vencidasACT-141 · Acelerar ejecución en acciones sobre decisiones vencidas sin corrección
1:1 conceptual sobre disciplina de cierre de vencidas.
Directo
ACT-OPS-002Exigir evidencia de cierreACT-134 · Recuperar resultado en decisiones que erosionan gobierno con seguimiento
Cubre gobierno con seguimiento; v2 no aísla "evidencia documentada" como vector.
Parcial
ACT-OPS-003Asignar responsable faltanteACT-296 · Activar foco ejecutivo sobre dependencia excesiva en control interno
1:1 conceptual sobre asignación de accountability.
Directo
ACT-DQ-001Corregir fuente de datosACT-279 · Activar foco ejecutivo sobre datos e integraciones fuera de plan
1:1 conceptual sobre corrección de fuente desactualizada.
Directo
ACT-DQ-002Validar KPI crítico con baja confianzaACT-278 · Recuperar resultado en datos e integraciones que erosionan confiabilidad
1:1 conceptual sobre confiabilidad de KPI / dato ejecutivo.
Directo
ACT-DQ-003Regularizar reporte semanal ejecutivoACT-138 · Activar foco ejecutivo sobre datos de decisiones insuficientes
1:1 conceptual sobre visibilidad ejecutiva semanal.
Directo
ACT-DIR-001Escalar tensión a direcciónACT-141 · Acelerar ejecución en acciones sobre decisiones vencidas
ACT-295 · Mitigar riesgo no controlado en marco de control interno
Vencidas + riesgo de control interno (ambos disparan escalamiento).
Múltiples
ACT-DIR-002Convocar comité ejecutivo por reincidenciaACT-295 · Mitigar riesgo no controlado en marco de control interno
Riesgo de control interno; v2 no aísla "reincidencia" como criterio de comité.
Parcial
ACT-DIR-003Aprobar cambio de política críticaACT-134 · Recuperar resultado en decisiones que erosionan gobierno con seguimiento
Cubre decisiones de gobierno; v2 no aísla "aprobación formal de política" como flujo.
Parcial

Resumen del mapeo. Sobre las 31 acciones MVP: 17 Directo · 6 Parcial · 8 Múltiples · 0 Solo MVP. Los códigos v2 referenciados apuntan a fichas reales de biblioteca-acciones.html; ninguna fila quedó sin equivalente conceptual porque la v2 cubre los 31 conceptos del MVP vía sus 25 áreas × 12 arquetipos (los parciales corresponden a vectores muy específicos como "política de descuento", "evidencia documentada", "reincidencia" o "comisiones" que la v2 maneja como caso adyacente, no aislado).

12 · Cross-references

Dónde se cruza este catálogo con el resto del pack

El catálogo de acciones no vive solo. Estos son los puntos donde se consume, se valida o se extiende dentro del pack FARO Connect.