refactor: translate agenticReadiness module from Spanish to English

Complete English translation of the Agentic Readiness scoring module across
frontend and backend codebases to improve code maintainability and international
collaboration.

Frontend changes:
- agenticReadinessV2.ts: Translated all algorithm functions, subfactor names,
  and descriptions to English (repeatability, predictability, structuring,
  inverseComplexity, stability, ROI)
- AgenticReadinessTab.tsx: Translated RED_FLAG_CONFIGS labels and descriptions
- locales/en.json & es.json: Added new translation keys for subfactors with
  both English and Spanish versions

Backend changes:
- agentic_score.py: Translated all docstrings, comments, and reason codes
  from Spanish to English while maintaining API compatibility

All changes tested with successful frontend build compilation (no errors).

https://claude.ai/code/session_check-agent-readiness-status-Exnpc
This commit is contained in:
Claude
2026-02-07 09:49:15 +00:00
parent 283a188e57
commit b991824c04
5 changed files with 334 additions and 272 deletions

View File

@@ -25,7 +25,7 @@ import {
// RED FLAGS CONFIGURATION AND DETECTION
// ============================================
// v3.5: Configuración de Red Flags
// v3.5: Red Flags Configuration
interface RedFlagConfig {
id: string;
label: string;
@@ -41,51 +41,51 @@ interface RedFlagConfig {
const RED_FLAG_CONFIGS: RedFlagConfig[] = [
{
id: 'cv_high',
label: 'CV AHT Crítico',
label: 'Critical AHT CV',
shortLabel: 'CV',
threshold: 120,
operator: '>',
getValue: (q) => q.cv_aht,
format: (v) => `${v.toFixed(0)}%`,
color: 'red',
description: 'Variabilidad extrema - procesos impredecibles'
description: 'Extreme variability - unpredictable processes'
},
{
id: 'transfer_high',
label: 'Transfer Excesivo',
label: 'Excessive Transfer',
shortLabel: 'Transfer',
threshold: 50,
operator: '>',
getValue: (q) => q.transfer_rate,
format: (v) => `${v.toFixed(0)}%`,
color: 'orange',
description: 'Alta complejidad - requiere escalado frecuente'
description: 'High complexity - requires frequent escalation'
},
{
id: 'volume_low',
label: 'Volumen Insuficiente',
label: 'Insufficient Volume',
shortLabel: 'Vol',
threshold: 50,
operator: '<',
getValue: (q) => q.volume,
format: (v) => v.toLocaleString(),
color: 'slate',
description: 'ROI negativo - volumen no justifica inversión'
description: 'Negative ROI - volume doesn\'t justify investment'
},
{
id: 'valid_low',
label: 'Calidad Datos Baja',
label: 'Low Data Quality',
shortLabel: 'Valid',
threshold: 30,
operator: '<',
getValue: (q) => q.volume > 0 ? (q.volumeValid / q.volume) * 100 : 0,
format: (v) => `${v.toFixed(0)}%`,
color: 'amber',
description: 'Datos poco fiables - métricas distorsionadas'
description: 'Unreliable data - distorted metrics'
}
];
// v3.5: Detectar red flags de una cola
// v3.5: Detect red flags for a queue
interface DetectedRedFlag {
config: RedFlagConfig;
value: number;
@@ -108,7 +108,7 @@ function detectRedFlags(queue: OriginalQueueMetrics): DetectedRedFlag[] {
return flags;
}
// v3.5: Componente de badge de Red Flag individual
// v3.5: Individual Red Flag badge component
function RedFlagBadge({ flag, size = 'sm' }: { flag: DetectedRedFlag; size?: 'sm' | 'md' }) {
const sizeClasses = size === 'md' ? 'px-2 py-1 text-xs' : 'px-1.5 py-0.5 text-[10px]';