◆ AI CODE-EVALUATION PIPELINE

Evaluación de código con IA — Demo en vivo

En vez de contratar devs de Python, este pipeline multi-agente juzga el código: veredicto, bugs, código corregido y evidencia de tests — con score de confianza por consenso.
El pipeline
Tarea + código IA3 revisores independientesQA (modelo distinto) EJECUTA testsVeredicto por consenso
Entrada — Tarea #A-142

Merge de intervalos que se solapan o se tocan; sin mutar el input. Ej: [[1,4],[4,5]] → [[1,5]]

Código candidato (generado por IA)
def merge_intervals(intervals):
    if not intervals: return []
    intervals.sort(key=lambda x: x[0])
    merged = [intervals[0]]
    for cur in intervals[1:]:
        last = merged[-1]
        if cur[0] < last[1]:          # <-- revisar
            last[1] = max(last[1], cur[1])
        else:
            merged.append(cur)
    return merged
Revisores independientes (consenso)
Revisor 1 INCORRECT
Bug de tocado (< vs <=) + mutación del input.
Score 2/5
Revisor 2 INCORRECT
Mismo bug de tocado + sort muta la lista del cliente.
Score 2/5
Revisor 3 INCORRECT
Tocado + doble mutación (sort + refs compartidas).
Score 1/5
QA — ejecución autoritativa de tests (modelo distinto)
CasoResultado
[[1,3],[2,6],[8,10],[15,18]]PASS
[[1,4],[4,5]] (se tocan)FAIL — devuelve [[1,4],[4,5]], esperado [[1,5]]
[] vacíoPASS
[[1,4],[2,3]] anidadoPASS
[[1,2],[3,4]] disjuntoPASS

4/5 tests. 🔎 Además, los revisores cazaron un bug de mutación del input que un test naive NO exponía — valor real del panel multi-agente.

Veredicto consolidado

INCORRECT · Confianza: ALTA (3/3 unánime) · Score consenso: 1.7 / 5

2 bugs críticos: (1) intervalos que se tocan no se fusionan; (2) muta la lista del cliente.

Código corregido entregado
def merge_intervals(intervals):
    if not intervals: return []
    ordered = sorted(intervals, key=lambda x: x[0])   # no muta
    merged = [list(ordered[0])]                        # copia
    for cur in ordered[1:]:
        last = merged[-1]
        if cur[0] <= last[1]:                          # fusiona tocados
            last[1] = max(last[1], cur[1])
        else:
            merged.append(list(cur))
    return merged
Demo generado por el pipeline multi-agente · 3 revisores + QA en modelo distinto · consenso auditable. Escala a datasets de entrenamiento de IA con score de confianza por ítem.