Saltar al contenido
Simulación · no operativoDatos 100 % sintéticos · las decisiones humanas de los demos se simularon en lote
planlang

Demo B · lo que viaja a la vitrina personal

Las fichas: repetirla, y contarla en dos minutos

Una ficha para quien quiera repetir la corrida y comprobar el informe; dos para quien visite la vitrina de hoja-de-vida y quiera saber en dos minutos qué es planlang y qué hace su agente.

Las fichas en una mirada

Leer como

Lees como líder. Ves las tres fichas como las verá cada lector.

Lees como experto. Se suman los pasos para repetir la corrida y, bajo cada ficha de la vitrina, de dónde sale cada cifra y la comprobación de cada campo contra el contrato v1.3.1.

Recibe

  • hecho
    El plan, la corrida y el informecon sus huellas
  • hecho
    La visión del productopara los grupos de la ficha de la app
  • hecho
    El contrato ficha técnica v1.3.1de hoja-de-vida: bloques, límites y reglas

Hace

  1. 1
    Reúne versiones, huellas, semilla, modelo y fecha
    hecho
  2. 2
    Escribe cada ficha para su lector, en español y en inglés
    hecho
  3. 3
    Pone a cada cifra su fuente: medida, calculada o declarada
    hecho
  4. 4
    Comprueba cada campo contra los límites del contrato
    hecho

Entrega

  • La ficha de reproducibilidadvive en planlang: aquí y en la sección 9 de Brecha
  • brochure-export.jsonlos hechos de la app, de los que hoja-de-vida arma su ficha
  • planlang-demo-b.ficha-tecnica.jsonla ficha del agente B, para el frente Agentes
  • Ningún enlaceviajan a hoja-de-vida por copia, en un PR de contenido

1Ficha de reproducibilidad

real · corrida v1.0

Todo lo que hace falta para obtener otra vez este mismo informe, byte a byte: versiones, huellas, semilla, modelo y fecha. Sin enlaces: las huellas bastan para comprobar que un archivo es el que dice ser.

Ficha de reproducibilidad · demo B

real · corrida v1.0
Plan
plan-demo-b 1.1.0 · 30728d949db2731d6a84d5e7f6191c03fcc49fdc702823e20dd3149648bc5910
Plan con que corrió
plan-demo-b 1.0.0 · 0cd6590ccbbb611091bf7acbd369874aa33fc7df95474c8c16f0f0beb9bb86dd
Casos
planlang-b-001-20 · semilla planlang-b-001 · n = 20 · e021e2abc585fa2fd120a124545872ce7ee7e43667a96349c9aec30c2b0feed8
Generador
receta estandar · versión 1.0.0 · adversario 2 · borde 3 · faltante 3 · normal 12
Corrida
suscripcion-planlang-b-001-20 · 2026-10-04 · suscripción / sonnet · multiagente · 112ccac9cf602829267257782355a8c2023f965781545d1b23a558825ff5fa99
Grafo compilado
7b986ef8f5016f4cc87c9c592cb4994b2b4b984dd79e8e2872651a1885783214
Línea base
suscripcion-planlang-b-001-20-base-v2 · b4c91ee3933db445a763e6fd4ead18c91b9a54a565393247612661cbe43d7be7
Entorno
Python 3.12.14 · langchain 1.4.2 · langgraph 1.2.12 · langchain-core 1.6.5 · langsmith 0.14.1 · pydantic 2.13.5 · Claude Code 2.1.282 · Darwin
Ejecución
1 sesión · 20 casos · 0 errores del proveedor · 0 límites de uso
Umbrales aplicados
U1 0,85 · U2 60 · U3 0 · U4 0,70 — los del plan
Revisión humana
En lotes, el oficial simulado sigue la verdad conocida del caso (DA-04); la vitrina lo divulga.
Verificador
1.3.0 · planlang-informe/v1
Huella del informe
4705b3f3d49c8c4c53590a6845620ad25c76bcff26a595125bc1050c2fee1411

Experto

Cómo repetirla, en orden

  1. 1pnpm plan:validar --verificar plans/demo-b/v1.1.json valida el plan y comprueba su huella
  2. 2pnpm casos:generar --versionados --demo b regenera los casos desde la semilla; la huella debe coincidir
  3. 3pnpm lote:demo-b --plan plans/demo-b/v1.json --casos data/casos/demo-b/planlang-b-001-20.json corre el lote en la máquina del autor, fuera de CI, con su suscripción
  4. 4pnpm trazas:verificar comprueba huellas, umbrales aplicados y RF-09.2
  5. 5pnpm brecha:informe --corrida runs/demo-b/suscripcion-planlang-b-001-20 --plan plans/demo-b/v1.1.json --base runs/demo-b/suscripcion-planlang-b-001-20-base-v2 --salida data/vitrina/demo-b/suscripcion-planlang-b-001-20 --verificar rehace el informe y lo compara con el publicado: sale idéntico byte a byte

Scripts del repositorio. Solo el lote necesita el modelo; todo lo demás es determinista y corre igual en cualquier máquina.

2La ficha de la app

para el frente Apps de la vitrina

planlang · así la pinta hoja-de-vida, con la piel de CV Vivaplanlang.ficha-tecnica.json · contrato ficha técnica v1.3.1

La vitrina · Ficha técnica

  • Sin sellar
  • H1
  • 4 sprints
  • v0.1.0
  • Datos del 2026-10-11

planlang

Planeé, construí y medí la brecha.

  • Next.js exportado estático: la vitrina: siete pantallas en español e inglés, sin servidor
  • TypeScript estricto: el núcleo determinista: plan, verificador, playground y visor, iguales en Node y en el navegador
  • Python 3.12 · LangGraph 1.2: los agentes de los dos demos, con la pausa humana como interrupt
  • Claude Code por suscripción: el modelo de los agentes, en lotes fuera de CI; nunca en el núcleo ni en la vitrina
  • JSON canónico + SHA-256: planes, casos, trazas e informes con huella, comprobables byte a byte
  • Vitest · Playwright · axe: las pruebas, incluida la cruzada de las aristas entre Python y TypeScript

Qué no hace nadie más

El plan de un agente se escribe como contrato, y un verificador sin IA publica, caso por caso, la brecha entre lo planeado y lo que el agente hizo, con sus fallas a la vista.

  • 16

    criterios cumplidos en los planes de 2 demos, de 16

    medido (Demo A: 10 de 10, en el informe del verificador 1.3.0 sobre la corrida suscripcion-planlang-a-002-200-v1.5. Demo B: 6 de 6, en el informe del verificador 1.3.0 sobre la corrida suscripcion-planlang-b-001-20.)
  • 1.204

    decisiones rehechas en otro lenguaje, con 0 diferencias

    medido (Prueba cruzada RF-09.2 sobre 4 corridas de 2 demos: el intérprete de aristas de TypeScript rehace cada decisión que registró Python.)
  • 220

    casos sintéticos con respuesta conocida, en 2 demos

    medido (Demo A: 200 casos en la corrida suscripcion-planlang-a-002-200-v1.5 y la línea base de agente único. Demo B: 20 casos en la corrida suscripcion-planlang-b-001-20 y la línea base de agente único.)
  • 0

    llamadas a modelos al visitar la vitrina

    declarado (Lo fija la arquitectura: la vitrina es un export estático con los datos precalculados; el paquete se prueba sin una sola solicitud fuera de su origen.)
  • 5,214US$

    costo nominal de correr una vez cada demo (220 casos)

    calculada (Demo A: US$ 4,9206 por 200 casos. Demo B: US$ 0,293 por 20 casos. Suma del costo nominal que el CLI declara por llamada, en las trazas de cada corrida; por la suscripción no se pagó aparte.)
01

Para quién, y qué resuelve

La persona antes que la tecnología.

Para quién

Para quien planea, construye o aprueba un proyecto de agentes de IA y hoy mide lo que el agente hace sin haber escrito antes qué debía hacer: mira trazas, corre evaluaciones sueltas y decide a ojo cuándo un resultado basta.

La promesa

Escribes el plan como un contrato —decisiones, riesgos, supuestos, criterios y umbrales, cada uno medible— y planlang lo usa para construir el agente, correrlo sobre casos con respuesta conocida y publicar la brecha. Luego mueves un umbral y ves qué habría costado.

02

Qué tiene

6 grupos · 20 funcionalidades.

  • Planear

    4 funcionalidades

    El plan como contrato: la entrevista, las plantillas, el validador y el contrato para el constructor.

  • Correr

    6 funcionalidades

    Casos con verdad conocida, los dos demos y las corridas por lotes.

  • Medir

    5 funcionalidades

    El verificador de brecha y los supuestos medidos de verdad.

  • Jugar

    1 funcionalidad

    Mover los umbrales sobre las trazas reales.

  • Entender

    1 funcionalidad

    El grafo real, nodo por nodo, contra el plan.

  • Mostrar

    3 funcionalidades

    La vitrina bilingüe y sus fichas.

03

Límites, y lo que nunca hace

Lo que decidió no ser vale tanto como lo que es.

Límites, a propósito
  • Es una simulación: no opera casos reales ni decide sobre personas.
  • El entrevistador corre en la consola, no en la vitrina: aquí se ve el plan que propuso para el demo B, revisado y aprobado por una persona.
  • Mide lo que el plan declaró; lo que no previó aparece como brecha, no como veredicto.
Nunca
  • Usa datos reales: todo caso, afiliado, médico, solicitante y lista de control es sintético.
  • Deja que un modelo decida si el agente acertó.
  • Niega o rechaza un caso sin que lo revise una persona.
  • Esconde un resultado desfavorable.
04

Dónde está

La versión anclada, no el tiempo real.

  1. H1ciclo
  2. 4sprints cerrados
  3. —construcción cerrada
  4. v0.1.0versión del repo
  5. 16decisiones registradas

En hoja-de-vida, aquí va la lista de espera de la app, que no promete fecha. Aquí se muestra; no se entrega.

La ficha de la app la arma hoja-de-vida al compilar: los hechos salen de docs/brochure-export.json y la curación (titular, cifras destacadas, límites, nunca) de su complemento. Aquí se pinta con el complemento que planlang propone.

«Cómo funciona» no aparece: la ficha de la app no trae proceso (es opcional en v1.3.1) y la sección se renumera. Los bloques siguen los seis grupos de la visión del producto.

Experto

Lo que se entrega: docs/brochure-export.json

planlang entrega el export (contrato brochure-export 1.0.0); con él y con el complemento, hoja-de-vida arma esta ficha, que aquí se comprueba contra el contrato ficha técnica v1.3.1. Un archivo por idioma; se entrega el español.

De dónde sale cada cifra

  • 16 criterios criterios cumplidos en los planes de 2 demos, de 16 · medidoDemo A: 10 de 10, en el informe del verificador 1.3.0 sobre la corrida suscripcion-planlang-a-002-200-v1.5. Demo B: 6 de 6, en el informe del verificador 1.3.0 sobre la corrida suscripcion-planlang-b-001-20.
  • 1.204 decisiones decisiones rehechas en otro lenguaje, con 0 diferencias · medidoPrueba cruzada RF-09.2 sobre 4 corridas de 2 demos: el intérprete de aristas de TypeScript rehace cada decisión que registró Python.
  • 220 casos casos sintéticos con respuesta conocida, en 2 demos · medidoDemo A: 200 casos en la corrida suscripcion-planlang-a-002-200-v1.5 y la línea base de agente único. Demo B: 20 casos en la corrida suscripcion-planlang-b-001-20 y la línea base de agente único.
  • 0 llamadas llamadas a modelos al visitar la vitrina · declaradoLo fija la arquitectura: la vitrina es un export estático con los datos precalculados; el paquete se prueba sin una sola solicitud fuera de su origen.
  • 5,214 US$ costo nominal de correr una vez cada demo (220 casos) · calculadaDemo A: US$ 4,9206 por 200 casos. Demo B: US$ 0,293 por 20 casos. Suma del costo nominal que el CLI declara por llamada, en las trazas de cada corrida; por la suscripción no se pagó aparte.
tagline (es · en)Medida34 · 38Límite≤ 80EstadoCabe
titular (es · en)Medida174 · 176Límite≤ 240EstadoCabe
para_quien (es · en)Medida223 · 244Límite≤ 400EstadoCabe
intro (es · en)Medida265 · 267Límite≤ 400EstadoCabe
stack[]Medida6Límite1–8EstadoCabe
cifras[] · fuenteMedida5 · 5Límite3–5 · todasEstadoCabe
bloques[]Medida6Límite2–10EstadoCabe
limites[] · nunca[]Medida3 · 4Límite2–4 · 2–5EstadoCabe
hitos[]Medida5Límite3–5EstadoCabe
enlacesMedida0Límite0EstadoCabe

CabeLa ficha completa valida contra el esquema y las reglas del proceso.

3La ficha del agente B

para el frente Agentes de la vitrina

Agente B · vinculación con debida diligencia · así la pinta hoja-de-vida, con la piel de CV Vivaplanlang-demo-b.ficha-tecnica.json · contrato ficha técnica v1.3.1

La vitrina · Ficha técnica

  • Sin sellar
  • H1
  • 4 sprints
  • v1.1.0
  • Datos del 2026-10-04

Agente B · vinculación con debida diligencia

Aprueba lo limpio; toda coincidencia, puntaje alto o rechazo va a una persona.

  • LangGraph 1.2: el grafo del agente: estado tipado, aristas condicionales y la pausa del oficial con interrupt
  • LangChain 1.4: el adaptador del modelo y la salida estructurada por esquema
  • Python 3.12: los nodos, las guardias, la similitud de nombres y el exportador de trazas
  • Claude Code · sonnet: extrae los documentos e investiga la zona gris; el binario oficial, por la suscripción del autor
  • Reglas deterministas: listas, puntaje, expediente y guardias, sin modelo
  • planlang-trace/v1: el formato propio de las trazas, con huella; lo único que lee el verificador

Qué no hace nadie más

Un agente de vinculación cuyo plan salió de una entrevista y se verifica caso por caso: ninguna coincidencia en listas ni ningún rechazo sale sin una persona, y cada conclusión del expediente cita su regla.

  • 100%

    exactitud de extracción, una corrida

    medido (Criterio C5 del plan B, medido por el verificador: los campos extraídos de los tres documentos son los de la verdad conocida en los 20 casos, en una sola corrida.)
  • 11

    de 20 casos pasaron por el oficial

    medido (Pausas humanas registradas en las trazas: el oficial vio los documentos, las coincidencias, la investigación y el puntaje antes de decidir.)
  • 0

    coincidencias en listas sin una persona

    medido (Criterio C1 del plan B sobre los 5 casos que están en una lista: todos pasaron por el oficial.)
  • 0

    rechazos sin una persona

    medido (Criterio C2 del plan B sobre 20 casos: todo rechazo, y toda aprobación con riesgo alto, pasó por el oficial.)
  • 0,015US$

    costo nominal por caso

    calculada (US$ 0,293 de la corrida entre 20 casos: el costo nominal que el CLI declara por llamada, sumado en las trazas. Por la suscripción no se pagó aparte.)
01

Para quién, y qué resuelve

La persona antes que la tecnología.

Para quién

Para una entidad financiera —sintética— que vincula clientes con debida diligencia: hoy un analista cruza a mano cada nombre con las listas de control y no sabe cuáles alarmas eran homónimos ni deja escrito por qué decidió.

La promesa

El agente lee los tres documentos de la solicitud, cruza el nombre con las listas, investiga el contexto desde el inicio de la zona gris y puntúa el riesgo con reglas que no miran el nombre; aprueba solo lo limpio, lleva lo demás al oficial con la evidencia y deja un expediente que cita la regla o la coincidencia de cada conclusión.

02

Cómo funciona

El proceso en BPMN: un carril por actor, la decisión donde se decide, y el bucle a la vista.

Una solicitud de vinculación

Aquí CV Viva dibuja el diagrama con su motor BPMN, a partir de estos pasos y flujos. Esta vista previa no lo dibuja: muestra lo que la ficha le entrega, carril por carril y en su orden de lectura.

Solicitante
  1. paso 1inicio: Una solicitud
  2. paso 2Entrega sus tres documentos
  3. paso 13Recibe la respuesta
  4. paso 14fin
El agente
  1. paso 3Busca instrucciones escondidas
  2. paso 4Extrae los campos
  3. paso 5Cruza el nombre con las listas
  4. paso 6decisión: ¿Parecido desde la zona gris?
  5. paso 7Compara el contexto
  6. paso 8Puntúa el riesgo sin el nombre
  7. paso 9decisión: ¿Al oficial?
  8. paso 11Arma el expediente con sus citas
  9. paso 12La guardia filtra la salida
Oficial de cumplimiento
  1. paso 10Revisa el caso completo y decide
  1. paso 10Ningún rechazo ni coincidencia en listas sale sin el oficial; en esta demo, el oficial se simuló en lote.
  2. paso 7El investigador concluye, no decide: si dice «misma persona», el caso va al oficial.
  3. paso 12Un documento nunca decide qué acción se ejecuta.

Proceso declarado por la propia app en su export.

03

Qué tiene

9 grupos.

  • Guardia de entrada

    Marca las instrucciones escondidas en los documentos antes de que las lea un modelo.

  • Extractor

    Convierte los tres documentos en campos, con los códigos del catálogo.

  • Verificador de listas

    Cruza el nombre con las listas, exacto y aproximado, sin modelo.

  • Investigador de contexto

    Desde el inicio de la zona gris: ¿homónimo o la misma persona? Concluye, no decide.

  • Puntaje de riesgo

    Reglas declaradas sobre actividad, fondos e ingresos; el nombre no cuenta.

  • Decisión

    Las reglas escritas en el plan deciden si el caso va al oficial.

  • Pausa humana

    El oficial de cumplimiento ve el caso completo antes de decidir.

  • Expediente

    Cada conclusión con su cita, la respuesta y, si es rechazo, su documento.

  • Guardia de salida

    Reglas fijas: ningún dato del solicitante, ninguna acción fuera de la lista.

04

Límites, y lo que nunca hace

Lo que decidió no ser vale tanto como lo que es.

Límites, a propósito
  • Decide sobre casos sintéticos: es una demostración, no un servicio.
  • Su oficial de cumplimiento se simuló siguiendo la verdad conocida, en lotes de 20 casos fuera de CI y con pausas entre lotes.
  • Su plan no declara minutos de oficial por caso: se cuentan casos, no minutos.
  • En el lote de 200 (registro), B-180 salió aprobado sin el oficial: el extractor leyó mal la jurisdicción de los fondos y el puntaje no pudo verlo.
Nunca
  • Rechaza sin que una persona lo revise.
  • Aprueba solo a alguien que coincide con una lista.
  • Usa el nombre o la nacionalidad para puntuar el riesgo.
  • Deja que un documento cambie lo que hace.
  • Escribe una conclusión sin citar su regla o su coincidencia.
05

Dónde está

La versión anclada, no el tiempo real.

  1. v1.1versión del plan
  2. 2026-10-04corrida publicada
  3. 9 de 9piezas del contrato
  4. 80decisiones verificadas

Aquí se muestra; no se entrega.

Experto

Lo que se entrega: content/agentes/planlang-demo-b.ficha-tecnica.json

Comprobado contra el contrato ficha técnica v1.3.1 de hoja-de-vida. Un archivo por idioma: el contrato recibe la ficha en un idioma; se entrega el español.

De dónde sale cada cifra

  • 100 % exactitud de extracción, una corrida · medidoCriterio C5 del plan B, medido por el verificador: los campos extraídos de los tres documentos son los de la verdad conocida en los 20 casos, en una sola corrida.
  • 11 de 20 casos pasaron por el oficial · medidoPausas humanas registradas en las trazas: el oficial vio los documentos, las coincidencias, la investigación y el puntaje antes de decidir.
  • 0 coincidencias en listas sin una persona · medidoCriterio C1 del plan B sobre los 5 casos que están en una lista: todos pasaron por el oficial.
  • 0 rechazos sin una persona · medidoCriterio C2 del plan B sobre 20 casos: todo rechazo, y toda aprobación con riesgo alto, pasó por el oficial.
  • 0,015 US$ costo nominal por caso · calculadaUS$ 0,293 de la corrida entre 20 casos: el costo nominal que el CLI declara por llamada, sumado en las trazas. Por la suscripción no se pagó aparte.
tagline (es · en)Medida78 · 79Límite≤ 80EstadoCabe
titular (es · en)Medida206 · 192Límite≤ 240EstadoCabe
para_quien (es · en)Medida223 · 247Límite≤ 400EstadoCabe
intro (es · en)Medida334 · 348Límite≤ 400EstadoCabe
stack[]Medida6Límite1–8EstadoCabe
cifras[] · fuenteMedida5 · 5Límite3–5 · todasEstadoCabe
bloques[]Medida9Límite2–10EstadoCabe
limites[] · nunca[]Medida4 · 5Límite2–4 · 2–5EstadoCabe
hitos[]Medida4Límite3–5EstadoCabe
proceso.pasos[].textoMedida34Límite≤ 60EstadoCabe
proceso.carriles[]Medida3Límite1–5EstadoCabe
enlacesMedida0Límite0EstadoCabe

CabeLa ficha completa valida contra el esquema y las reglas del proceso.