← Agentes

IA aplicada · Código abierto

Extiende la capacidad de tu PMO

Vera, Samuel y Alba se suman a tu oficina de proyectos: procesan la documentación de cada proyecto, calculan desviaciones y alertas, y preparan el informe, el acta y el material del comité, para que tu equipo dedique su tiempo a decidir y no a consolidar.

Lo que cuesta, medido por terceros

Cifras de terceros, cada una con su fuente, su año y su muestra. Las de los agentes están más abajo, en la evidencia de pruebas.

Criterio es código abierto. Si te genera valor, ayuda a financiar pruebas, documentación y las próximas capacidades.

Vera, Samuel y Alba son la familia de gobierno de proyectos de Criterio, un market abierto de agentes. Ver el market

Criterio · Familia PMO

Tres agentes y un servidor para la oficina de proyectos

Procesan lo que tu organización ya escribió, preparan el trabajo de la oficina de proyectos y dicen qué cambió, qué se contradice y qué ningún documento sostiene.

CRITERIO · PMOLISTO
VERA
El portafolio
SAMUEL
Un proyecto
ALBA
Un producto
ROSTRUM
El servidor
LA FICHA DEL PROYECTOEl único contrato. Los agentes no se hablan entre sí: se hablan por ella.
IMPRESORA · CRITERIOHOJA 1

CRITERIO · FAMILIA PMO

Estado de la familia: probada ronda a ronda sobre datos de prueba de entidades financieras (bancos y cooperativas), retail y minería de Suramérica, construidos para ser más exigentes que la documentación habitual de esas organizaciones. El siguiente paso es su primer uso sobre la documentación de una organización concreta.

Los cuatro, uno por uno

Qué hace cada uno, qué nunca hace y cómo se ve su trabajo

Cada pestaña se lee sola: alguien puede instalar un agente sin los otros. Las capturas son Rostrum, el servidor de la familia, publicando lo que los agentes encontraron en los datos de prueba de minería de la ronda 1.

criterio-portfolio

De verus, lo verdadero: dice lo que los documentos dicen, no lo que se reporta.

Procesa la documentación de todo el portafolio: construye una ficha por proyecto con la cita de cada dato, calcula desviaciones y alertas, y prepara el informe del portafolio y el material del comité.

Lo que solo ella hace

Contrasta lo que cada gerente declara contra lo que sustentan sus documentos, en todo el portafolio a la vez. Un proyecto en verde con cinco semanas sin un documento solo lo ve quien mira los cuarenta con la misma vara.

Lo que responde

  • Qué cambió desde la corrida anterior
  • Qué se contradice entre dos documentos del mismo proyecto
  • Qué lleva semanas en silencio
  • Cuántos verdes tienen evidencia que el verde no explica
  • Qué necesita una decisión del comité, y qué pasa si no se decide
  • Cuánto del presupuesto está comprometido, y qué facturó un proveedor sin entregar
  • A quién alcanza mover un proyecto

Nunca

Declara el estado de un proyecto ni prioriza la demanda.

Rostrum · Portafolio de proyectos mineros
Cómo va el portafolio: de 13 proyectos, 3 reportan verde y la evidencia no lo sostiene. Debajo, los que llevan más días sin un documento nuevo.
Cómo va el portafolio: de 13 proyectos, 3 reportan verde y la evidencia no lo sostiene. Debajo, los que llevan más días sin un documento nuevo.Captura de Rostrum sobre los datos de prueba de minería de la ronda 1, el 14 de octubre de 2026. Es material de prueba escrito por el repositorio; no pertenece a ninguna organización.
Extiende a
El gerente de la PMO y sus analistas
Instancias
Una por PMO
Configuración
15 min · 5 preguntas
Cadencia
Barrido diario; informe antes del comité
Necesita de ti
Alguien que persiga lo que el informe pide
Se configura con/criterio-portfolio:portfolio-setup

Sus comandos, por grupo

Arranque y ritmo3 comandos+
portfolio-setupportfolio-wakeportfolio-server
Lectura de documentos2 comandos+
document-indexportfolio-scan
Informes3 comandos+
portfolio-reportstatus-reportsteering-pack
Un proyecto a fondo6 comandos+
health-checkproject-historyraid-logchange-controlproject-charterproject-closure
Dinero y proveedores2 comandos+
budget-trackingvendor-tracking
Productos1 comando+
product-view

17 comandos · 10 skills

Lo que te cuesta hoy

El trabajo que preparan Vera, Samuel y Alba, costeado con tus números

Cada agente extiende a una persona: Vera a la oficina de proyectos, Samuel a cada gerente de proyecto, Alba a cada gerente de producto. Pon cuántas personas tienes, lo que cuestan y cuántas horas a la semana se les van en cada tarea. Nada de lo que escribas sale de tu navegador.

Trabajo en

Escribe los costos en la moneda que elijas. No hay conversión: al cambiar la moneda los costos se borran, porque una tasa de cambio escrita en una página está equivocada en dos semanas.

Las personas

Analistas de PMO
Costo mensual cargado por personaCargado completo: salario, prestaciones y overhead.
USD

Horas por semana en cada tarea

Leer la documentación de los proyectos para armar un estado/portfolio-scan · /document-index
h
Consolidar el informe de portafolio y el estado de cada proyecto/portfolio-report · /status-report
h
Preparar el material del comité/steering-pack
h
Mantener riesgos, supuestos, incidencias y dependencias/raid-log
h
Conciliar presupuesto y entregables de proveedores/budget-tracking · /vendor-tracking
h
Revisar cambios, actas, cierres y diagnósticos/change-control · /project-charter · /project-closure · /health-check
h

Las horas son por persona y por semana. Las personas y las horas iniciales son de ejemplo: reemplázalas por las tuyas. El costo lo escribes tú: no ponemos uno que no podamos sustentar.

Tus números · al año

Vera

Analistas de PMO · 15 h por semana cada uno (38% de la semana)

1.380 hal año

—al año

Samuel

Gerentes de proyecto · 7 h por semana cada uno (18% de la semana)

1.932 hal año

—al año

Alba

Gerentes de producto · 8,5 h por semana cada uno (21% de la semana)

1.173 hal año

—al año

Costo anual del trabajo que preparan los tres—
Horas al año4.485 h
Costo anual de las personas incluidas—
Proporción de ese costo—

Escribe el costo mensual de cada grupo para ver lo que cuesta.

Rostrum, el servidor, no suma horas aquí. Publica el informe donde el equipo lo lee y responde a quien no abre una carpeta. Su efecto es menos “¿cómo va el proyecto?” por correo, y eso no lo medimos todavía.

Lo que este número es y lo que no es

Es el costo de las horas que tu equipo dedica hoy a tareas que los agentes preparan: leer, consolidar, redactar el borrador. No es un ahorro. La persona sigue revisando, decidiendo y declarando el estado.

Cuántas de esas horas se recuperan lo vamos a publicar en la sección de evidencias, con las pruebas de cada semana. Hasta tener esa cifra medida, no la ponemos aquí.

Evidencia de pruebas · se actualiza con cada ronda

Esto es lo que ya está medido, con qué muestra y con qué margen.

Cada cifra sale de una corrida real del repositorio, con su conteo y su margen de confianza del 95%.

Cómo se prueba

4 industrias

Entidades financieras (bancos y cooperativas), retail y minería de Suramérica. Datos de prueba escritos por el repositorio para ser más exigentes que la documentación habitual: formatos mezclados, contradicciones, compromisos movidos, entregas sin acta y un proyecto sano de control en cada industria.

37 comandos por ronda

Los tres agentes en el orden de una PMO, en cada industria: Alba define el producto, Samuel ejecuta un proyecto, Vera consolida el portafolio y Rostrum lo publica.

532 documentos · 52 proyectos

Actas, cronogramas, minutas, informes y hojas de cálculo en texto, Word, PDF, Excel, CSV y JSON, procesados en la ronda.

116 millones de tokens

El trabajo del modelo de lenguaje (LLM) en la ronda: 2 h 51 min de proceso, unos 43 minutos por industria.

Una clave que no ven

Lo esperado se deriva de los hechos del material, y se audita cada sesión: ningún agente la leyó.

Margen del 95%

Cada cifra va con su margen de confianza: dice cuánto sostiene la muestra, que un porcentaje solo no dice.

Último corte: 2026-10-18 · commit 1bcb73f8

Vera, Samuel y Alba procesan la documentación de la PMO; Rostrum la muestra

Ronda 9 · 4 industrias

En cada ronda los tres agentes corren sus 37 comandos en el orden de una PMO, sobre la documentación de una organización por industria. Lo que encuentran se compara con una clave que no ven.

Vera

El portafolio

99,6%

confiabilidad de sus alertas

266 de 267 alertas que emitió eran correctas.

Medido

Cobertura: encontró 266 de 266 alertas de las que había. 4 de 4 proyectos sanos sin falsas alarmas.

Encontró las 266 alertas que había. La de más es un defecto de código que encontró esta ronda: si el gerente escribe «No aplica» como producto, el contraste entre las dos fichas lo leía como un producto (D056, corregido después de la 0.4.0).

Margen de confianza del 95%: 97,9–100%

Samuel

Un proyecto

100%

compromisos y cierre procesados correctamente

108 de 108: los compromisos de las minutas de comité y de notas de reunión sin estructura —con su fecha vigente, sus reprogramaciones y si están cumplidos— y la fecha de cierre vigente que publica a la PMO.

Medido

108 de 108 por tercera ronda seguida.

Margen de confianza del 95% (Wilson): 96,5–100%

Alba

Un producto

100%

alertas de su producto detectadas

128 de 128 alertas que el material tenía sobre su producto.

Medido

Confiabilidad: 128 de 128 alertas que emitió eran correctas.

128 de 128, sin una alerta de más.

Margen de confianza del 95% (Wilson): 97–100%

Rostrum

El servidor

100%

comprobaciones de lo que muestra

2170 de 2170: cada página responde, nada técnico llega al informe, cabe en un teléfono y en un escritorio, guarda las peticiones y no toca las fichas.

Medido

2170 de 2170: el informe de cada industria quedó en la carpeta que Rostrum sirve (D054 verificado).

Margen de confianza del 95% (Wilson): 99,8–100%

148 de 148 comandos terminaron y 148 cumplieron su contrato · 4 industrias · ninguna lectura de la clave · unos 43 minutos por industria

Cómo ha mejorado Vera de una versión a otra

Cada punto es una industria en su primera corrida con esa versión; la línea es su margen de confianza del 95%. El eje empieza en el valor más bajo publicado.

BancosCooperativas de ahorro y créditoRetailMinería

v0.3.41

v0.3.52

Ronda 1 · v0.3.63

Ronda 2 · v0.3.84

Ronda 3 · v0.3.95

Ronda 4 · v0.3.106

Ronda 5 · v0.3.117

Ronda 6 · v0.3.128

Ronda 7 · v0.3.139

Ronda 8 · v0.3.1310

Ronda 9 · v0.4.011

Ronda 10 · v0.5.012

  1. 1 · Primer contacto con documentos: solo la configuración y el barrido de Vera, sobre casos escritos a mano y solo de bancos.
  2. 2 · Corrige cómo se calculan el silencio y el avance contra el plan. Cuatro industrias; todavía solo la configuración y el barrido de Vera.
  3. 3 · Primera ronda completa: los 37 comandos de los tres agentes, en orden, con documentos en Word, Excel y PDF.
  4. 4 · Alba levanta la ficha de su producto desde lo escrito, cada agente guarda su estado en su propia carpeta y acepta los términos de su versión.
  5. 5 · Una regla por campo, citas que existen y Rostrum recorrido página por página; muestras de unos cien casos por agente.
  6. 6 · Samuel lee todas las minutas al configurarse; el informe tiene un solo lugar.
  7. 7 · Alba cita la entrevista, Rostrum abre los productos con nombre y el sello de Vera solo revisa sus citas.
  8. 8 · La clave modela el contraste entre las dos fichas; Samuel publica la fecha de cierre vigente y el acta cierra donde cierra el cronograma.
  9. 9 · El caché de texto tiene un solo lugar, la página de una corrida cabe en un teléfono y el cálculo le señala a Samuel qué corregir en su ficha.
  10. 10 · La misma versión sobre material nuevo, con los supuestos verificados acompañados de su documento.
  11. 11 · La primera versión pública: el informe va siempre a la carpeta que Rostrum sirve.
  12. 12 · La versión de lanzamiento: el contraste entre las dos fichas lee el producto con su regla.

Defectos encontrados por las pruebas · 60

Cada error se registra con su origen y el commit que lo corrige. Solo se da por cerrado cuando una corrida nueva lo verifica.

  • 57 Corregidos y verificados
  • 3 Corregidos, por verificar
  • 0 Abiertos

De dónde vinieron

  • el código22
  • las instrucciones del agente20
  • los datos de prueba10
  • la clave de respuestas4
  • el arnés de prueba3
  • la lectura del agente1

Para auditar

El detalle completo de cada corrida. Se abre cada bloque por separado.

Resultados por industriaronda 9 · 4 industrias
Datos de pruebaComandosterminadosDocumentosVera · confiabilidadalertas correctas de las emitidasVera · coberturaalertas encontradas de las que habíaSamuel · compromisoscorrectos de los evaluadosAlba · productoalertas detectadas de las que habíaMinutos
Bancos37 / 3737 cumplen su contrato12858 de 5858 de 5827 de 2736 de 3640
Cooperativas de ahorro y crédito37 / 3737 cumplen su contrato12652 de 5252 de 5227 de 2725 de 2541
Retail37 / 3737 cumplen su contrato14690 de 9090 de 9027 de 2736 de 3645
Minería37 / 3737 cumplen su contrato13266 de 6766 de 6627 de 2731 de 3145

Confiabilidad: de las alertas que Vera emitió, cuántas eran correctas según la clave. Cobertura: de las alertas que la clave tenía, cuántas encontró. Samuel: compromisos sacados de minutas y notas de reunión sin estructura, con la fecha vigente y el número de reprogramaciones correctos, y desde la ronda 6 la fecha de cierre vigente de su ficha. Alba: alertas sobre su producto que el material tenía y ella detectó.

La ronda sobre la 0.4.0, la primera versión pública: los 148 comandos cumplieron su contrato, Samuel, Alba y Rostrum al 100 % y Vera encontró todas las alertas que había. Su única alerta de más es un defecto de código que esta ronda encontró y ya está corregido (D056). D054 y D055 verificados.

Confiabilidad por tipo de alerta16 de 17 tipos sin errores

Primeras corridas de la ronda, todas las industrias juntas. Es lo que decide si alguien actúa directamente sobre una alerta.

AlertaConfiabilidad · correctas de las emitidasCobertura · encontradas de las que había
El gerente y la PMO leyeron distintoLa alerta es correcta sobre el material: el acta y el cronograma traen fechas de cierre distintas. La clave todavía no modela este cruce entre agentes y la cuenta como error (D012).0 de 10 de 0
Hito declarado cerrado, sin evidencia83 de 8383 de 83
Compromiso vencido39 de 3939 de 39
Verde que la evidencia no sostiene30 de 3030 de 30
Avance declarado que el cronograma no sostiene28 de 2828 de 28
Compromiso sin fecha16 de 1616 de 16
Entregable de proveedor vencido13 de 1313 de 13
Compromiso reprogramado11 de 1111 de 11
Desviación en costo11 de 1111 de 11
Desviación en tiempo9 de 99 de 9
Entregable aceptado sin acta7 de 77 de 7
Hito vencido sin evidencia6 de 66 de 6
Replanificación sin autorizar5 de 55 de 5
Proyecto en silencio3 de 33 de 3
Cambio aprobado sin línea base2 de 22 de 2
Facturado sobre lo aceptado2 de 22 de 2
Facturado sin entrega1 de 11 de 1
Los defectos, uno por uno60 registrados
  • D060El anexo de verificación decía «verificado con la entrevista con doce clientes», y esa entrevista no estaba en la carpeta; Alba no lo dio por verificado, con razón. El anexo contiene ahora toda su evidencia y no remite a otro documento.Origen: los datos de pruebaCorrección: 1bcb73f8
    Verificado: pendiente
  • D059El índice contaba como citas rotas las de la ficha del gerente (pm_record), que citan con las rutas de su propio estado: 18 en PRY-203. citas_rotas ya las excluía; el índice no.Origen: el códigoCorrección: 77c3e6ad
    Verificado: pendiente
  • D058En el setup Vera dejó sin compromisos el proyecto de Samuel porque estaban en la ficha que él publicó; la ficha quedó sellada, el barrido no la releyó y faltaron 7 alertas de compromisos en PRY-203. Las dos fichas nunca se fusionan: ahora lo dicen el setup y el barrido, y compute lo señala en record_issues.Origen: las instrucciones del agenteCorrección: 77c3e6ad
    Verificado: pendiente
  • D057La clave del contraste contó «no aplica» del gerente como un producto y esperaba ese pm_vs_pmo; la primera calificación de minería lo dio como acierto. Corregida antes de publicar: es una alerta de más (D056).Origen: la clave de respuestasCorrección: 94addcf8
    Verificado: ronda-10 · la clave del contraste no esperó ningún pm_vs_pmo por «No aplica»
  • D056pm_vs_pmo comparaba el producto con value() y no con producto(): Samuel escribió «no aplica» como producto, la ficha de Vera no tenía ninguno, y sonó un contraste contra nada en PRY-211. El esquema dice que «No aplica» es vacío.Origen: el códigoCorrección: 219a4469
    Verificado: ronda-10 · las cuatro industrias sobre 0.5.0
  • D055D022 quedó a medias: en minería el informe de avance todavía podía decir al azar «El proveedor entregó los equipos en el campamento, pendientes de aceptación». Vera lo registró y el motor dio vendor_accepted_without_evidence en PRY-201, correcto sobre el material; la clave no lo modela. La frase se reemplazó.Origen: los datos de pruebaCorrección: 43cd7c8f
    Verificado: ronda-9 · las cuatro industrias sobre 0.4.0
  • D054El informe salió en estado/reportes/ porque informe.py resolvía paths.reports contra la carpeta donde estaba el shell del agente, y Rostrum respondió 404 en las páginas del informe (394 de 409). Ahora se cuenta desde la raíz del espacio.Origen: el códigoCorrección: 2631bbcc
    Verificado: ronda-9 · las cuatro industrias sobre 0.4.0
  • D053D052 a medias: la definición ya decía con qué se verificó el supuesto, pero ese documento no estaba en la carpeta, y Alba no lo dio por verificado. El generador escribe ahora el anexo de verificación en la carpeta del producto.Origen: los datos de pruebaCorrección: 7597895d
    Verificado: ronda-8 · las cuatro industrias: ninguna alerta de más de Alba
  • D052La definición generada decía «verificado» sin decir con qué, y Alba, aplicando assumption-tracking (verificado solo contra algo que se pueda citar), levantó assumption_unverified. La clave lo daba por verificado. El material dice ahora con qué y cuándo se verificó.Origen: los datos de pruebaCorrección: 3aa2d272
    Verificado: ronda-8 · las cuatro industrias: ninguna alerta de más de Alba
  • D051D042 otra vez: Samuel dejó la primera fecha de un compromiso «por definir» como reprogramación en la ficha (1 de 104). El conteo de la alerta era correcto. compute devuelve ahora record_issues y los comandos de Samuel corrigen la ficha antes de terminar.Origen: la lectura del agenteCorrección: e2b36df0
    Verificado: ronda-7 · las cuatro industrias
  • D050La página de una corrida de product-setup medía 616 px en un teléfono de 390: la tabla ya se desplazaba por dentro, pero su bloque no. El bloque se desplaza ahora él mismo.Origen: el códigoCorrección: 82c35aa0
    Verificado: ronda-7 · las cuatro industrias
  • D049portfolio-scan y health-check dejaron el caché de texto en <estado>/texto, fuera de su contrato, aunque document-intake dice <estado>/cache/texto. La regla pasa al script: texto.py rechaza cualquier otra carpeta.Origen: las instrucciones del agenteCorrección: 82c35aa0
    Verificado: ronda-7 · las cuatro industrias
  • D048pm-setup y pm-publish no decían de dónde sale plan.end_date, y el ejemplo de project-record ponía en value el documento más viejo, contra su propia regla. Ahora es la fecha vigente, del cronograma más reciente, y el acta va en la línea base.Origen: las instrucciones del agenteCorrección: cb0d57b2
    Verificado: ronda-6 · las cuatro industrias
  • D047El generador escribía en el acta un cierre que el cronograma del mismo día no alcanzaba: dos documentos de la misma fecha con dos cierres. Samuel tomaba el del acta y Vera el último hito, y sonaba pm_vs_pmo en las cuatro industrias.Origen: los datos de pruebaCorrección: cb0d57b2
    Verificado: ronda-6 · las cuatro industrias
  • D046El motor hacía sonar commitment_rescheduled en un compromiso reprogramado tres veces y después cumplido con acta. La señal es para un bloqueo abierto; la clave del simulador ya lo excluía.Origen: el códigoCorrección: 88e4386
    Verificado: selftest de portafolio.py: un compromiso cumplido no suena como reprogramado · ronda-6 · las cuatro industrias
  • D045Samuel escribió la cita de un proveedor con dos rutas («contrato.md; factura: …»), el error de D026 que el sello de Vera atrapa y el de Samuel no tiene. project-record ahora dice que una cita es una sola ruta y que la factura va en invoiced.Origen: las instrucciones del agenteCorrección: 0bd6787
    Verificado: ronda-5 · cuatro industrias sobre 0.3.11: ninguna cita con dos rutas; 148 de 148 contratos
  • D044La ficha de Samuel traía una cita con dos rutas; como la de Vera incluye la de Samuel para el contraste, su sello se negó y la línea base del cronograma no se completó: rebaseline_unauthorized y variance_time no salieron. El sello de Vera ahora revisa solo sus propias citas.Origen: el códigoCorrección: 0bd6787
    Verificado: ronda-5 · cuatro industrias sobre 0.3.11: el sello de Vera no se frena por citas ajenas; cobertura 100 %
  • D043Las páginas de los productos con nombre («tarjeta débito», «despacho de flota») respondían 404: la guarda de rutas solo aceptaba letras sin tilde, números, punto y guion. Ahora acepta letras de cualquier alfabeto y espacios, nunca una barra ni «..»; los enlaces además van codificados (31496ee).Origen: el códigoCorrección: 0bd6787
    Verificado: ronda-5 · cuatro industrias sobre 0.3.11: Rostrum 2155 de 2155, los productos con nombre abren
  • D042Samuel contó como reprogramación la primera fecha de cuatro compromisos prometidos «por definir», el mismo error de Vera en D038. La regla estaba solo en el skill; ahora está en sus comandos y la aritmética no cuenta esa primera fecha.Origen: las instrucciones del agenteCorrección: 5ae06a6
    Verificado: ronda-7 · las cuatro industrias
  • D041D028 volvió: Alba citó el acta del comité como evidencia de demanda y 11 evidence_stale no salieron. La corrección de la 0.3.9 estaba en demand-evidence, pero quien extrae los requerimientos es product-setup, que solo decía «la evidencia con su source_date». Ahora lo dice ahí.Origen: las instrucciones del agenteCorrección: a46261d
    Verificado: ronda-5 · cuatro industrias sobre 0.3.11: Alba cita la entrevista; 150 de 150 alertas encontradas
  • D040Alba escribió el doliente como la cadena not_found y el motor la leyó como un nombre: requirement_without_owner no sonó. Es el mismo error de D018; ahora value() lo trata como vacío en los tres agentes.Origen: el códigoCorrección: df7598f
    Verificado: ronda-5 · cuatro industrias sobre 0.3.11: Alba 150 de 150, ningún doliente sin señal
  • D039El barrido de pm-wake escribe compromisos en la ficha, como dice su diseño, pero su contrato solo declaraba cadencia.json; además dejó una copia .bak junto a la ficha.Origen: las instrucciones del agenteCorrección: 7d48c2a
    Verificado: ronda-4 · cuatro industrias sobre 0.3.10: pm-wake cumple su contrato en las cuatro industrias
  • D038Vera contó como reprogramación la primera fecha de un compromiso prometido «por definir», y un compromiso movido dos veces sonó como commitment_rescheduled. commitment-tracking no decía que fechar no es reprogramar.Origen: las instrucciones del agenteCorrección: 7d48c2a
    Verificado: ronda-4 · cuatro industrias sobre 0.3.10: ningún commitment_rescheduled falso en Vera
  • D037portfolio-report decía --salida <carpeta> sin decir cuál; Vera escribió el informe en una subcarpeta con fecha y Rostrum, que sirve paths.reports, respondió 404 en cada página del informe (366 de 380). Ahora el informe va siempre a paths.reports y el script rechaza otra carpeta.Origen: las instrucciones del agenteCorrección: f1ac133
    Verificado: ronda-4 · cuatro industrias sobre 0.3.10: el informe queda en paths.reports y Rostrum lo sirve en las cuatro
  • D036Una ruta de archivo larga dentro de código no se partía y la página de una corrida medía 436 px en un teléfono de 390.Origen: el códigoCorrección: 14f78e6
    Verificado: la página regenerada con 14f78e6 mide 390 px en un teléfono de 390
  • D035pm-setup leía solo la última reunión y ofrecía leer las anteriores; en una sesión sin nadie que respondiera, Samuel nunca las leyó y su ficha tuvo 3 de los 26 compromisos del proyecto. En cooperativas, retail y minería los recuperó pm-commitments y acertó 77 de 78: dependía de la sesión. Ahora pm-setup lee todas las minutas en orden.Origen: las instrucciones del agenteCorrección: 4ba01bd
    Verificado: ronda-4 · cuatro industrias sobre 0.3.10: Samuel lee todas las minutas en las cuatro; 100 de 104 compromisos
  • D034La prueba de Rostrum de cada ronda pedía siete rutas y miraba solo que respondieran 200, y corría el servidor del repositorio en lugar del instalado. Por eso D030 a D033 pasaron la ronda 1 y la 2 sin que nada fallara. Ahora recorre cada enlace con la versión instalada, busca rutas, palabras del esquema y claves de señal, prueba una petición y revisa que no escriba fichas.Origen: el arnés de pruebaCorrección: fa65257
    Verificado: ronda.py rostrum sobre las cuatro industrias de la ronda 2
  • D033En un teléfono (390 px) las tablas empujaban la página más allá de la pantalla en 62 vistas: proyectos, productos, cada proyecto, cada producto y las páginas de corrida. D017 había resuelto los bloques, no las tablas sueltas. Ahora cada tabla se desplaza dentro de su caja.Origen: el códigoCorrección: fa65257
    Verificado: ronda-2 · bancos regenerado con fa65257, navegador en la nube: 0 de 147 rutas se salen de la pantalla a 390 y 1280 px
  • D032La historia de cada caso, lo que se arrastra y la vista de caso mostraban la clave de la señal (milestone_met_without_evidence) en lugar de su nombre. Ahora usan los nombres del informe, y un selftest comprueba que toda señal del motor tenga uno.Origen: el códigoCorrección: fa65257
    Verificado: ronda-2 · las cuatro industrias regeneradas con fa65257: 0 rutas rotas y 0 palabras crudas en el informe
  • D031El informe nombraba los campos sin dato por su ruta: identity.phase en los 52 proyectos, declared.*, pm_record.* y vendors[].invoiced. El léxico se había quedado atrás del esquema; ahora lo cubre entero y un selftest lee schema.yaml para que no vuelva a pasar. La vista de cortes también nombra los campos.Origen: el códigoCorrección: fa65257
    Verificado: ronda-2 · las cuatro industrias regeneradas con fa65257: 0 rutas rotas y 0 palabras crudas en el informe
  • D030El menú de Rostrum enlaza «Qué cambió entre dos cortes» y, con un solo corte —la primera corrida—, la página respondía 404 en las cuatro industrias. Ahora dice que la comparación llega con la próxima corrida.Origen: el códigoCorrección: fa65257
    Verificado: ronda-2 · las cuatro industrias regeneradas con fa65257: 0 rutas rotas y 0 palabras crudas en el informe
  • D029La clave de las notas contó las fechas del simulador (dos) y en la carpeta quedó una sola minuta con una fecha: esperaba dos reprogramaciones donde el material sostiene una. Samuel registró una; su lectura fue la correcta.Origen: la clave de respuestasCorrección: 7b5ab31
    Verificado: armar cooperativas --ronda 2 sobre 7b5ab31: la clave espera 1 reprogramación, la que muestra el material
  • D028Alba citó el acta del comité como evidencia de demanda en lugar de la entrevista: la evidencia quedó con la fecha de la reunión y cinco evidence_stale no salieron. demand-evidence no decía que el acta que acepta es la decisión, no la demanda.Origen: las instrucciones del agenteCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: evidence_stale encontrado en las cuatro industrias; Alba 142 de 143
  • D027Nueve requerimientos aceptados en un acta de comité salieron como decision_without_source: en bancos la cita quedó en un campo que el esquema no tiene; en minería Alba dejó decision vacía porque el acta era una revisión posterior. El skill no decía que la fuente del estado va en decision.Origen: las instrucciones del agenteCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: Alba 142 de 142 alertas correctas, cero decision_without_source falsos
  • D026Una ficha juntó dos rutas en un solo source («contrato.md; factura: …») y sellar la dio por leída: nadie que abra la carpeta puede seguir esa cita. sellar no revisaba que las citas fueran documentos que existen.Origen: el códigoCorrección: 7b5ab31
    Verificado: selftest de portafolio.py (una cita con dos rutas no se sella) y las fichas reales de la ronda 2: solo esa cita sale rota
  • D025D014 volvió en retail: Samuel escribió la promesa original como una reprogramación. El skill commitment-tracking ya decía que la original no es una entrada, pero pm-minutes y pm-commitments seguían diciendo que «la fecha anterior entra en su historial».Origen: las instrucciones del agenteCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: ningún compromiso con la promesa original contada como reprogramación
  • D024El barrido convirtió los documentos con texto.py y dejó el caché en estado/texto/, fuera de lo que declara su contrato: ningún comando ni skill decía dónde va el caché. Es la única falla de contrato de bancos.Origen: las instrucciones del agenteCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: el caché queda en <estado>/cache/texto/ y el barrido cumple su contrato en las cuatro
  • D023vendor-control decía que un entregable sin documento es unknown, no delivered; project-record y el motor dicen que state es lo declarado y evidence lo probado. Dos skills del mismo agente daban reglas opuestas para el mismo campo.Origen: las instrucciones del agenteCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: cero falsos positivos de proveedor en Vera (252 de 256)
  • D022El generador escribe al azar en el informe de avance «El proveedor entregó el componente de integración, pendiente de aceptación», sin acta y sin modelarlo en la clave. Vera lo registró como entregado sin evidencia en cuatro proyectos y el motor dio vendor_accepted_without_evidence: la señal es correcta sobre el material; la clave no la lista.Origen: los datos de pruebaCorrección: 7b5ab31
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: sin la frase al azar, cero vendor_accepted_without_evidence fuera de la clave
  • D021La guía de aceptación describía un bloque YAML en «un archivo local de la empresa»; lo real era JSON en .criterio/<agente>/config.json, sin huella ni comprobante. Ahora describe lo que el código hace: comprobante en Markdown y PDF, archivo .sha256, bitácora encadenada y registro de versiones.Origen: las instrucciones del agenteCorrección: 45d62ff
    Verificado: validate_plugins y coherencia en verde con la versión 1.1
  • D020El descargo remitía a TERMS.md, que estaba en la raíz del repositorio y no dentro de cada plugin: quien instalaba un agente no tenía garantizado el texto que aceptaba. Samuel y Alba además decían «muestra el descargo corto» sin el texto. Ahora los términos viajan byte a byte en cada plugin y los tres muestran la misma sección «En corto».Origen: las instrucciones del agenteCorrección: 45d62ff
    Verificado: puerta de sincronización: los términos y el registro viajan idénticos en los tres plugins
  • D019Los términos prometían volver a pedir aceptación cuando cambiaran, pero la verificación de la configuración solo revisaba que hubiera una versión y una fecha: nunca las comparaba con los términos vigentes ni con la versión instalada. Ahora la puerta es código, en config y en corrida-inicio: una aceptación por versión de la familia, amarrada al texto por su huella SHA-256 y a su comprobante.Origen: el códigoCorrección: 45d62ff
    Verificado: selftest de terminos.py: una aceptación vieja, otra versión o un comprobante tocado no abren la puerta
  • D018En minería Vera escribió «not_found» como valor de la autoridad del gerente y de la etapa, además de marcarlo como no encontrado, y la página de cada proyecto imprimió la palabra. El informe ahora lee el estado: un campo no encontrado dice «no está dicho en ninguna parte».Origen: el códigoCorrección: 5295fa0
    Verificado: ronda-1 · minería (informe regenerado, PRY-208)
  • D017En la historia de corridas de Rostrum la tabla de diez columnas se salía de su bloque por la derecha y cortaba las últimas columnas. Los bloques ahora se desplazan de lado dentro de su borde.Origen: el códigoCorrección: 4b15b73
    Verificado: ronda-1 · minería (página de corridas)
  • D016La vista por producto de Rostrum mostró «No aplica» como un producto construido por siete proyectos: el acta dice que el proyecto no sirve a un producto, y la ficha copió las palabras. El código ahora lee esas palabras como un campo vacío y esos proyectos pasan a «proyectos que no dicen qué producto construyen».Origen: el códigoCorrección: 4b15b73
    Verificado: ronda-1 · minería (informe regenerado: 6 productos, sin «No aplica»)
  • D015El calificador leía el estado de cada agente en una carpeta fija. En retail Vera guardó su portafolio en estado-portafolio, como le permite su configuración, y la calificación dio 0 de 36 sin que el agente hubiera fallado. Ahora el calificador sigue la configuración de cada agente, igual que ellos.Origen: el arnés de pruebaCorrección: eb76825
    Verificado: ronda-1 · retail (2026-10-14-retail-vera-9)
  • D014Samuel escribió la promesa original como una reprogramación más: un compromiso dicho dos veces quedó con dos reprogramaciones. En bancos lo había escrito sin la original. El esquema no decía cuál de las dos formas es la correcta, y el conteo que dispara la alerta de compromiso reprogramado depende de eso.Origen: las instrucciones del agenteCorrección: 5e81ef7
    Verificado: ronda-3 · cuatro industrias sobre 0.3.9: Samuel escribe la promesa original aparte; 77 de 78 compromisos con sus reprogramaciones bien contadas donde leyó las minutas
  • D013La clave de las notas quedó dentro de la carpeta del agente. La auditoría de las herramientas que llamó cada sesión no encontró ninguna lectura en la corrida válida; desde cooperativas va fuera, y la auditoría de fugas corre en cada industria.Origen: el arnés de pruebaCorrección: 286ac45
    Verificado: ronda-1 · cooperativas (auditoría de fugas: 0)
  • D012pm_vs_pmo en PRY-202: el acta y el cronograma traen fechas de cierre distintas y cada agente leyó una. La alerta es correcta; la clave no modela lo que cruzan dos agentes.Origen: la clave de respuestasCorrección: cb0d57b2
    Verificado: ronda-6 · las cuatro industrias
  • D011Las notas crudas se fecharon el mismo día que la minuta del simulador y con otra fecha para el mismo compromiso; la clave esperaba una reprogramación. Samuel señaló el conflicto entre las dos fuentes y no contó una reprogramación sin promesa anterior: su lectura fue la correcta.Origen: los datos de pruebaCorrección: 286ac45
    Verificado: ronda-1 · cooperativas
  • D010Alba guardó su estado en estado/, la misma carpeta que usa Vera: comparten corridas.json y cadencia.json. Una ficha, un escritor: cada agente necesita su propia carpeta de estado.Origen: las instrucciones del agenteCorrección: db80a49
    Verificado: ronda-2 · cuatro industrias: Alba guarda su estado en estado-producto/<código>, separado del de Vera
  • D009La cadena de Alba nunca construye la ficha del producto (producto.json) ni el registro de requerimientos desde los documentos: los requerimientos están en el acta del comité y ningún comando los registra. Los 11 comandos trabajaron sobre un estado vacío y Alba encontró 0 de las 10 alertas de su producto.Origen: las instrucciones del agenteCorrección: db80a49
    Verificado: ronda-2 · cuatro industrias: Alba construye producto y requerimientos y encuentra 38 de 43 (0 de 32 en la ronda 1)
  • D008Un hito con estado ambiguo se contaba como cerrado y disparó progress_vs_plan en el control negativo.Origen: el códigoCorrección: 8c84264
    Verificado: 2026-10-14-cooperativas-vera-8
  • D007El generador escribía avances al azar que daban por cerrado un hito que el cronograma tenía en curso.Origen: los datos de pruebaCorrección: 8c84264
    Verificado: 2026-10-14-bancos-vera-7
  • D006El generador escribía actas de recibo con fecha futura; el agente no las aceptó como evidencia y la clave sí.Origen: los datos de pruebaCorrección: 8c84264
    Verificado: 2026-10-14-bancos-vera-7
  • D005Los proyectos de control se llamaban «Control negativo»: el agente podía leer la respuesta en el nombre de la carpeta.Origen: los datos de pruebaCorrección: 39f574b
    Verificado: 2026-10-14-retail-vera-5
  • D004La clave escrita a mano estaba desactualizada: tres fechas son dos reprogramaciones, un compromiso que el material daba por cumplido, y alertas que el material plantaba y la clave no listaba.Origen: la clave de respuestasCorrección: 9fd41a8
    Verificado: 2026-10-14-bancos-vera-2
  • D003El hash de texto devolvía vacío justo para Word y Excel, y la línea base solo se reconstruía desde CSV: un cronograma en Excel no dejaba línea base.Origen: el códigoCorrección: 39f574b
    Verificado: puerta formatos.py
  • D002progress_vs_plan medía el avance contra los hitos cerrados (un punto) y no contra el tramo posible: disparó en 6 de 10 proyectos, incluido el control negativo.Origen: el códigoCorrección: 9fd41a8
    Verificado: 2026-10-14-bancos-vera-2
  • D001La alerta de silencio nunca se calculaba: ninguna ficha traía activity y el esquema dice que la calcula el script. El proyecto con 52 días sin documentos salió sin alerta.Origen: el códigoCorrección: 9fd41a8
    Verificado: 2026-10-14-bancos-vera-2
Cada corrida calificada46 corridas
Datos de pruebaCorridaConfiabilidad · alertas correctas de las emitidasCobertura · alertas encontradas de las que habíaControl negativo limpioErrores por origenagente · código · clave
Retail13 proyectos · 2026-10-18Primera corridav0.5.0 · ronda 1063 de 63 · 100%IC 95% 94,3–100%63 de 63 · 100%IC 95% 94,3–100%1 de 1—
Minería13 proyectos · 2026-10-18Primera corridav0.5.0 · ronda 1047 de 47 · 100%IC 95% 92,4–100%47 de 54 · 87%IC 95% 62,8–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-18Primera corridav0.5.0 · ronda 1065 de 65 · 100%IC 95% 94,4–100%65 de 65 · 100%IC 95% 94,4–100%1 de 1—
Bancos13 proyectos · 2026-10-18Primera corridav0.5.0 · ronda 1067 de 67 · 100%IC 95% 94,6–100%67 de 67 · 100%IC 95% 94,6–100%1 de 1—
Minería13 proyectos · 2026-10-17Primera corridav0.4.0 · ronda 966 de 67 · 98,5%IC 95% 92–100%66 de 66 · 100%IC 95% 94,5–100%1 de 1—
Retail13 proyectos · 2026-10-17Primera corridav0.4.0 · ronda 990 de 90 · 100%IC 95% 95,9–100%90 de 90 · 100%IC 95% 95,9–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-17Primera corridav0.4.0 · ronda 952 de 52 · 100%IC 95% 93,1–100%52 de 52 · 100%IC 95% 93,1–100%1 de 1—
Bancos13 proyectos · 2026-10-17Primera corridav0.4.0 · ronda 958 de 58 · 100%IC 95% 93,8–100%58 de 58 · 100%IC 95% 93,8–100%1 de 1—
Minería13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 851 de 52 · 98,1%IC 95% 89,9–100%51 de 51 · 100%IC 95% 93–100%1 de 1—
Retail13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 873 de 73 · 100%IC 95% 95–100%73 de 73 · 100%IC 95% 95–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 869 de 69 · 100%IC 95% 94,7–100%69 de 69 · 100%IC 95% 94,7–100%1 de 1—
Bancos13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 860 de 60 · 100%IC 95% 94–100%60 de 60 · 100%IC 95% 94–100%1 de 1—
Minería13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 786 de 86 · 100%IC 95% 95,7–100%86 de 86 · 100%IC 95% 95,7–100%1 de 1—
Retail13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 761 de 61 · 100%IC 95% 94,1–100%61 de 61 · 100%IC 95% 94,1–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 766 de 66 · 100%IC 95% 94,5–100%66 de 66 · 100%IC 95% 94,5–100%1 de 1—
Bancos13 proyectos · 2026-10-17Primera corridav0.3.13 · ronda 767 de 67 · 100%IC 95% 94,6–100%67 de 67 · 100%IC 95% 94,6–100%1 de 1—
Retail13 proyectos · 2026-10-16Primera corridav0.3.12 · ronda 676 de 76 · 100%IC 95% 95,2–100%76 de 76 · 100%IC 95% 95,2–100%1 de 1—
Minería13 proyectos · 2026-10-16Primera corridav0.3.12 · ronda 660 de 60 · 100%IC 95% 94–100%60 de 60 · 100%IC 95% 94–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-16Primera corridav0.3.12 · ronda 652 de 52 · 100%IC 95% 93,1–100%52 de 52 · 100%IC 95% 93,1–100%1 de 1—
Bancos13 proyectos · 2026-10-16Primera corridav0.3.12 · ronda 678 de 78 · 100%IC 95% 95,3–100%78 de 78 · 100%IC 95% 95,3–100%1 de 1—
Minería13 proyectos · 2026-10-16Primera corridav0.3.11 · ronda 556 de 58 · 96,6%IC 95% 88,3–100%56 de 56 · 100%IC 95% 93,6–100%1 de 10 · 1 · 1
Retail13 proyectos · 2026-10-16Primera corridav0.3.11 · ronda 553 de 54 · 98,1%IC 95% 90,2–100%53 de 53 · 100%IC 95% 93,2–100%1 de 10 · 0 · 1
Cooperativas de ahorro y crédito13 proyectos · 2026-10-16Primera corridav0.3.11 · ronda 565 de 66 · 98,5%IC 95% 91,9–100%65 de 65 · 100%IC 95% 94,4–100%1 de 10 · 0 · 1
Bancos13 proyectos · 2026-10-16Primera corridav0.3.11 · ronda 549 de 50 · 98%IC 95% 89,5–100%49 de 49 · 100%IC 95% 92,7–100%1 de 10 · 0 · 1
Minería13 proyectos · 2026-10-16Primera corridav0.3.10 · ronda 451 de 51 · 100%IC 95% 93–100%51 de 53 · 96,2%IC 95% 87,2–100%1 de 10 · 2 · 0
Retail13 proyectos · 2026-10-16Primera corridav0.3.10 · ronda 455 de 56 · 98,2%IC 95% 90,6–100%55 de 55 · 100%IC 95% 93,5–100%1 de 10 · 0 · 1
Cooperativas de ahorro y crédito13 proyectos · 2026-10-16Primera corridav0.3.10 · ronda 463 de 64 · 98,4%IC 95% 91,7–100%63 de 63 · 100%IC 95% 94,3–100%1 de 10 · 0 · 1
Bancos13 proyectos · 2026-10-16Primera corridav0.3.10 · ronda 459 de 60 · 98,3%IC 95% 91,1–100%59 de 59 · 100%IC 95% 93,9–100%1 de 10 · 0 · 1
Minería13 proyectos · 2026-10-15Primera corridav0.3.9 · ronda 361 de 63 · 96,8%IC 95% 89,1–100%61 de 61 · 100%IC 95% 94,1–100%1 de 11 · 0 · 1
Retail13 proyectos · 2026-10-15Primera corridav0.3.9 · ronda 360 de 61 · 98,4%IC 95% 91,3–100%60 de 60 · 100%IC 95% 94–100%1 de 10 · 0 · 1
Cooperativas de ahorro y crédito13 proyectos · 2026-10-15Primera corridav0.3.9 · ronda 364 de 64 · 100%IC 95% 94,3–100%64 de 64 · 100%IC 95% 94,3–100%1 de 1—
Bancos13 proyectos · 2026-10-15Primera corridav0.3.9 · ronda 367 de 68 · 98,5%IC 95% 92,1–100%67 de 67 · 100%IC 95% 94,6–100%1 de 10 · 0 · 1
Minería13 proyectos · 2026-10-15Primera corridav0.3.8 · ronda 243 de 44 · 97,7%IC 95% 88,2–100%43 de 43 · 100%IC 95% 91,8–100%1 de 10 · 0 · 1
Retail13 proyectos · 2026-10-15Primera corridav0.3.8 · ronda 260 de 60 · 100%IC 95% 94–100%60 de 60 · 100%IC 95% 94–100%1 de 1—
Cooperativas de ahorro y crédito13 proyectos · 2026-10-15Primera corridav0.3.8 · ronda 258 de 59 · 98,3%IC 95% 91–100%58 de 58 · 100%IC 95% 93,8–100%1 de 10 · 0 · 1
Bancos13 proyectos · 2026-10-15Primera corridav0.3.8 · ronda 262 de 67 · 92,5%IC 95% 83,7–97,1%62 de 62 · 100%IC 95% 94,2–100%1 de 10 · 0 · 5
Minería13 proyectos · 2026-10-14Primera corridav0.3.6 · ronda 137 de 39 · 94,9%IC 95% 83,1–100%37 de 37 · 100%IC 95% 90,6–100%1 de 10 · 0 · 2
Retail13 proyectos · 2026-10-14Primera corridav0.3.6 · ronda 136 de 37 · 97,3%IC 95% 86,2–100%36 de 36 · 100%IC 95% 90,4–100%1 de 10 · 0 · 1
Cooperativas de ahorro y crédito13 proyectos · 2026-10-14Primera corridav0.3.6 · ronda 160 de 60 · 100%IC 95% 94–100%60 de 60 · 100%IC 95% 94–100%1 de 1—
Bancos13 proyectos · 2026-10-14Primera corridav0.3.6 · ronda 153 de 54 · 98,1%IC 95% 90,2–100%53 de 53 · 100%IC 95% 93,2–100%1 de 10 · 0 · 1
Minería13 proyectos · 2026-10-14Primera corridav0.3.553 de 54 · 98,1%IC 95% 90,2–100%53 de 53 · 100%IC 95% 93,2–100%1 de 10 · 0 · 1
Retail13 proyectos · 2026-10-14Primera corridav0.3.549 de 49 · 100%IC 95% 92,7–100%49 de 49 · 100%IC 95% 92,7–100%1 de 10 · 0 · 0
Cooperativas de ahorro y crédito13 proyectos · 2026-10-14Primera corridav0.3.534 de 39 · 87,2%IC 95% 66,7–100%34 de 34 · 100%IC 95% 89,8–100%0 de 10 · 3 · 2
Bancos13 proyectos · 2026-10-14Primera corridav0.3.551 de 53 · 96,2%IC 95% 86–100%51 de 51 · 100%IC 95% 93–100%1 de 10 · 0 · 2
Bancos10 proyectos · casos escritos a mano · 2026-10-14Corregida tras verlav0.3.529 de 31 · 93,5%IC 95% 79,3–100%29 de 29 · 100%IC 95% 88,3–100%1 de 10 · 0 · 2
Bancos10 proyectos · casos escritos a mano · 2026-10-14Primera corridav0.3.421 de 33 · 63,6%IC 95% 40–84,8%21 de 25 · 84%IC 95% 65,3–100%0 de 10 · 10 · 6

Una primera corrida es la de una versión que no había visto ese material: es la medición que cuenta. Una corregida es la misma familia de material después de corregir el código viéndolo; no es independiente, se publica para mostrar el efecto de la corrección y no se suma con las primeras.

El margen es el más ancho entre el intervalo de Wilson y un bootstrap por proyecto: las alertas de un mismo proyecto fallan juntas, así que no se cuentan como independientes.

El origen de cada error lo clasifica una persona al revisarlo: la lectura del modelo, el código que calcula o la clave de respuestas. Es el único dato que no sale de un script.

El motor que calculaCorre en cada cambio · última 2026-10-15: 5 de 5 cortes

La aritmética, las fechas, los umbrales y las alertas, sobre fichas bien construidas y sin el modelo. Un cálculo determinista no tiene error aleatorio que estimar: la regla coincide con la clave o no. Por eso se reporta como regresión —cuántas veces coincidió— y no como una tasa de error.

Corre en cada verificación del código. Última corrida: 2026-10-15, sobre el commit c97cd8e: 5 de 5 cortes coinciden con la clave. La primera se hizo a mano, sobre el commit 56a1478.

5 / 5

Cortes que coinciden con la clave

Cinco semanas de la misma organización, escrita cada vez de una forma distinta.

117

Casos

51 proyectos y 66 productos. Las semanas repiten casos, así que no se suman.

2 / 2

Controles negativos limpios

Casos sanos que no deben producir ni una alerta, en todos los cortes.

3,1

ms por documento

El script solo, sin el modelo.

Cortes semanales de la prueba longitudinal

Una organización sintética de 51 proyectos y 66 productos. El mismo material se escribe cada semana de una forma distinta y lo esperado no cambia.

Corte 1

ordenada

✓ 100%

461 docs

Corte 2

plana

✓ 100%

526 docs

Corte 3

revuelta

✓ 100%

569 docs

Corte 4

sin carpetas

✓ 100%

616 docs

Corte 5

ordenada

✓ 100%

641 docs

La salida no cambió con la forma de la carpeta. Mediana: 3,1 ms por documento. ✓ controles negativos en cero.

Verificación del código

Corrida completa del 2026-10-18

puertas en verde
33/33
puertas en verde
comprobaciones
738
comprobaciones
corpus con control negativo
14
corpus con control negativo
segundos la corrida entera
31,9
segundos la corrida entera

Comprobaciones por dueño

Vera227
Samuel147
Alba107
Rostrum67
La familia172

Dice dónde está puesta la verificación; los tamaños no son comparables entre sí.

Lo que sigue

  • El primer uso sobre la documentación de una organización concreta: es el paso que decide la versión 1.0.
  • Cada industria tiene trece proyectos por ronda, y cada cifra se publica con su margen de confianza.
  • Contra una clave se califican las alertas de Vera, los compromisos que Samuel saca de las minutas y de notas crudas, con la fecha de cierre que publica, y las alertas del producto de Alba. Los demás comandos se revisan contra su contrato —qué deben escribir y qué no—, no contra una clave.
  • La redacción del modelo (actas, informes, síntesis de entrevistas) no la mide un calificador determinista; se verifica la aritmética de la que salen sus cifras.

Una página de resultados que solo dice lo que pasó es publicidad. Lo que la vuelve auditable es lo que dice que todavía no se sabe.

Cómo trabajan

Cinco pasos y una frontera. El modelo de lenguaje (LLM) lee y extrae; el código calcula. Es IA generativa más motor determinista, aplicado a la oficina de proyectos.

  1. 01

    Tus documentos

    Actas, cronogramas, minutas, informes de avance, hojas de cálculo, correos. Como estén, donde estén.

    No necesita que la carpeta esté ordenada.

    El modelo extrae
  2. 02

    Texto

    Cada documento se convierte a texto: Word, Excel, PowerPoint, PDF y correo. Lo que no puede leer lo declara, con la razón.

    Dos huellas por documento: solo se vuelve a leer lo que cambió.

    El modelo extrae
  3. 03

    La ficha

    Una por proyecto. Cada dato con la cita del documento de donde salió y su fecha. Lo declarado y lo evidenciado van en campos distintos.

    «No se encontró» es una respuesta válida.

    El modelo extrae
  4. 04

    Aritmética

    Desviación contra la línea base original y la vigente, días de silencio, comprometido contra ejecutado, compromisos vencidos, a quién alcanza mover un proyecto.

    Determinística y probada.

    El código calcula
  5. 05

    Señales

    Solo lo que cruzó un umbral: qué cambió, qué se contradice, qué no sustenta ningún documento. Si nada lo cruzó, no dice nada.

    El silencio es la característica.

    El código calcula

Ningún número de un informe sale de una estimación. Y lo que no está dicho en ninguna parte se declara, no se rellena.

Por qué importa esta frontera →

Siete invariantes que los sostienen

01

Los agentes no se hablan entre sí

Se hablan por la ficha del proyecto. Dos agentes que se hablan directo son dos agentes que hay que desplegar juntos.

02

Rostrum no escribe

El servidor publica el informe y recibe preguntas. No toca la ficha.

03

La fuente puede cambiar; la ficha no

Si mañana los documentos vienen de otro sistema, un adaptador nuevo llena los mismos campos.

04

Declarado y evidenciado nunca se fusionan

Lo que afirma el gerente y lo que sustentan los documentos van en campos distintos. La diferencia entre los dos suele ser el hallazgo de más valor.

05

El modelo extrae, el código calcula

Leer una fecha es lectura. Restar, proyectar y sumar es aritmética, y la aritmética vive en código, donde se puede probar.

06

Ningún agente escribe el estado declarado

Lo escribe una persona. Si lo escribiera el agente, la comparación entre lo declarado y la evidencia compararía al sistema consigo mismo. Es una restricción del camino de escritura, y falla si se intenta.

07

Una ficha, un escritor

Si Samuel y Vera leen el mismo proyecto, escriben dos fichas y no se fusionan nunca. Lo que era un conflicto de escritura se vuelve la señal.

Instalación, configuración y términos

Se instala en minutos. Antes del primer análisis, aceptas los términos.

Tres pasos y ninguno exige editar un archivo. Se instala solo el agente del rol que tienes; si instalas más de uno, se encuentran solos por la ficha del proyecto: no hay nada que conectar.

Paso 1

Instalar

  1. 01Personalizar → Explorar plugins → Personal.
  2. 02Pulsa + → Agregar marketplace desde GitHub.
  3. 03Escribe josenanez/criterio.
  4. 04Instala el agente de tu rol: Vera si gestionas el portafolio, Samuel si gestionas un proyecto, Alba si defines un producto.

Qué necesita de ti

  • Una carpeta con la documentación, como esté. Una carpeta desordenada es el caso normal.
  • Un plan pago de Claude, y la aplicación de escritorio si los documentos viven en tu equipo.
  • Quince minutos para Vera; diez para Samuel o Alba.
Paso 2

Configurar

Cada agente trae su comando de configuración. Mira tus carpetas, hace pocas preguntas y te muestra un primer resultado sobre tus propios documentos.

/criterio-portfolio:portfolio-setup

  1. 1Dónde están los documentos
  2. 2Quién eres
  3. 3Cuándo es tu comité
  4. 4Quién recibe el informe y en qué forma
  5. 5Los términos

Cómo pregunta

  • Una pregunta a la vez. Nunca un formulario.
  • Cada pregunta trae una respuesta sugerida, y «no sé» es una respuesta válida.
  • No pregunta lo que puede averiguar mirando la carpeta.
  • Nadie edita la configuración a mano: si quieres cambiar algo, lo dices en la conversación.

Ninguno se programa solo. Cada uno trae el comando que un reloj invoca (portfolio-wake, pm-wake, product-wake), y alguien lo pone una vez en una tarea programada. Si tu organización no quiere corridas desatendidas, se corren a mano.

/criterio-portfolio:portfolio-setupAsí se ve la configuración de Vera
VeraSoy Vera, el agente PMO de Criterio. Proceso la documentación que ya tienes y digo qué no se sostiene. ¿Dónde están los documentos de tus proyectos?
Recorrido ilustrativo sobre la carpeta de prueba del repositorio: 6 proyectos, 28 documentos. No sale nada de tu navegador.
Paso 3

Los términos

Un descargo en un repositorio no lo lee nadie. Por eso la advertencia llega a quien corre el agente y a quien recibe después el documento, en cuatro capas que implementan los tres agentes.

  1. 1

    Una aceptación por versión

    Cada versión de la familia se acepta de nuevo y deja en tu equipo un comprobante en Markdown y PDF, con la huella SHA-256 de los términos y la del propio comprobante. Hasta que la de la versión instalada quede registrada, el agente responde preguntas pero no produce análisis. Nunca la asume ni la infiere de que sigas hablando.

  2. 2

    En cada informe

    Todo informe lleva al pie que es un borrador, según qué documentos, cuántos campos quedaron sin dato y cuántas contradicciones siguen abiertas. El documento circula por correo y llega a un comité: la advertencia viaja con él.

  3. 3

    Al inicio de cada corrida

    Antes del primer hallazgo dice qué fichas cargó, cuándo se actualizaron y si alguna está vieja o falta.

  4. 4

    En la nota legal

    Los términos completos, la nota legal y el registro de versiones —qué cambió en cada una, qué términos la rigen y su huella— se publican en este portal, y cada comprobante remite a ellos.

Lo que acuerdas, en llano

  • Recibes borradores de trabajo listos para revisar, y cada versión llega certificada: su evidencia es pública.
  • Cada dato trae su cita: quien decide lo comprueba en el documento original en segundos.
  • Trabaja con lo que está escrito; lo que se acordó fuera de los documentos lo aporta tu equipo.
  • Tus documentos se procesan en la plataforma de IA donde lo ejecutas; tu organización decide qué carpetas entran.
  • Garantía y responsabilidad: las de la licencia Apache 2.0.
  • Cada versión se acepta de nuevo y deja un comprobante en Markdown y PDF. Si alguien lo modifica, su huella SHA-256 deja de coincidir y pierde validez.

Términos versión 1.1, del 2026-10-15, para la versión 0.5.0 de la familia. Cada versión nueva pide aceptar de nuevo.

Nota legal y registro de versiones →

Apache 2.0

El método, el esquema de la ficha, el código que calcula y los criterios de aceptación, completos y sin condiciones. Úsalo dentro de tu organización sin pedir permiso, adáptalo, y construye la capacidad que te falta: el agente de una función lo debe escribir quien conoce el trabajo.

Qué no hace

  • Produce borradores de trabajo, no decisiones.
  • Sabe lo que se escribió, no lo que se habló fuera de los documentos.
  • Los tres se probaron ronda a ronda sobre datos de prueba de cuatro industrias, más exigentes que la documentación habitual; su primer uso sobre la documentación de una organización concreta es el siguiente paso.
Ver el repositorio ↗

Preguntas frecuentes

Lo que suele preguntar quien llega a la familia

Qué es

¿Qué hacen Vera, Samuel, Alba y Rostrum?

Procesan lo que la oficina de proyectos ya escribió. Vera arma una ficha por proyecto con la cita de cada dato y consolida el portafolio; Samuel lleva los compromisos de cada reunión de un proyecto; Alba contrasta la definición de un producto contra la evidencia de demanda; Rostrum publica el informe para quien no abre una carpeta.

¿Reemplazan a la PMO?

No. Preparan borradores de trabajo y dicen qué cambió, qué se contradice y qué ningún documento sostiene. Ningún agente declara el estado de un proyecto: lo declara una persona.

¿Qué necesito para usarlos?

Un plan pago de Claude, la aplicación de escritorio si los documentos viven en tu equipo, y una carpeta con la documentación como esté. Una carpeta desordenada es el caso normal.

Cómo se prueba

¿Con qué datos se probó?

Con datos de prueba de cuatro industrias —entidades financieras (bancos y cooperativas), retail y minería de Suramérica—, construidos para ser más exigentes que la documentación habitual de esas organizaciones: más de 500 documentos por ronda en Markdown, Word, PDF, Excel y CSV; contradicciones entre documentos; compromisos movidos hasta seis veces; hitos declarados cumplidos sin acta; proyectos en silencio; entregas de proveedor sin evidencia; y en cada industria un proyecto sano que no debe levantar ninguna alerta.

¿Cómo se sabe si un agente acertó?

Cada ronda trae una clave con lo que el material contiene, derivada de los hechos que el generador escribió. Ningún agente la ve: cada sesión se audita y se publica cuántas veces se leyó (cero en todas). Cada cifra se publica con su conteo y su margen de confianza del 95 %.

¿Dónde está la evidencia?

En el repositorio, en tests/evidencias/: lo que mostró cada comando en cada ronda, la clave, la calificación, y cada defecto con su origen, el commit que lo corrige y la ronda que lo verificó. La página de la familia la resume.

¿Se ha usado ya en una organización?

Todavía no sobre la documentación de una organización concreta: es el siguiente paso, y lo que decidirá la versión 1.0. Si tu PMO quiere ser de las primeras, abre un issue en el repositorio.

Datos y privacidad

¿Mis documentos salen de mi organización?

Se procesan en la plataforma de IA donde corre el agente, como cualquier conversación con ella. Los plugins no se conectan a internet ni nos envían nada.

¿Qué queda guardado y dónde?

En tu equipo: las fichas, los informes, el registro de cada corrida y el comprobante de aceptación de los términos. Nada de eso viaja a ninguna parte.

¿Recogen estadísticas de uso?

No. Hoy el único canal de vuelta es el que tú eliges: un issue en GitHub. Compartir hallazgos para mejorar la familia será siempre una pregunta, y nunca se envía nada sin un sí.

Versiones y licencia

¿Por qué la versión todavía no es 1.0?

Porque el esquema de la ficha puede cambiar con el primer uso sobre documentación real, y un 1.0 promete que no cambia. El 1.0 llega cuando el esquema sobreviva a ese uso.

¿Cuánto cuesta?

Nada. Es código abierto bajo Apache 2.0: úsalo en tu organización sin pedir permiso y adáptalo. La contribución en la página es voluntaria y no desbloquea nada.

¿Qué acepto antes de usarlo?

Los términos de cada versión. El agente los muestra, pide un sí explícito y deja un comprobante en Markdown y PDF con la huella SHA-256 de los términos. Cada versión nueva se acepta de nuevo.

Ayuda

¿Cómo reporto un error?

Con un issue en el repositorio y el documento que lo demuestra, sin datos reales de nadie. Las fallas de seguridad van por el reporte privado de GitHub, nunca en un issue público.

¿Puedo construir un agente para otra función?

Sí. El repositorio explica el método y los criterios de aceptación, y las familias de finanzas y legal están declaradas y sin construir: el agente de una función lo debe escribir quien conoce el trabajo.

Las mismas respuestas viven en el repositorio, en families/criterio-pmo/PREGUNTAS.es.md.

Apoya el trabajo

Si Criterio te generó valor, ayúdanos a seguir construyéndolo.

Criterio seguirá siendo código abierto. Una contribución voluntaria ayuda a financiar pruebas, documentación y nuevas capacidades sin cambiar el acceso al software.

Es una contribución voluntaria. No desbloquea funciones, no compra consultoría y no crea una relación de asesoría.

Apoyar Criterio

Elige el monto y cómo quieres realizar tu contribución.

Elige un monto

Selecciona tu país para ver los métodos de pago disponibles.

dLocal Go cubre actualmente Latinoamérica, Indonesia, Malasia, Kenia y Nigeria. La cobertura global se incorporará por separado.

El punto

La evidencia siempre estuvo ahí. Nadie la había leído junta.

Un agente que procesa tu portafolio no te va a entregar un gobierno que nunca construiste. Te va a mostrar, en una tarde, exactamente dónde falta — y ese es el único punto de partida honesto.

Principios

Enfoque
Estrategia y ejecución.
Compromiso
Generar, difundir y conservar el conocimiento es una obligación profesional.
Qué no es
No reemplaza a tu PMO ni decide por ella: procesa lo que tu equipo ya escribió, prepara el trabajo y dice qué no se sostiene.
Licencia
Apache 2.0.
Qué viene
Más capacidades para mejorar los entornos laborales.

Criterio es código abierto bajo Apache 2.0. La familia de gobierno de proyectos (Vera, Samuel, Alba y Rostrum) está construida y probada sobre datos de prueba de entidades financieras (bancos y cooperativas), retail y minería de Suramérica; las capacidades CFO y CLO están declaradas y sin construir. Si ejerces una de ellas y quieres construir su agente, el repositorio explica cómo.

Nota legal y registro de versiones →

José Ñáñez