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

Demo A · 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-a.ficha-tecnica.jsonla ficha del agente A, para el frente Agentes
  • Ningún enlaceviajan a hoja-de-vida por copia, en un PR de contenido

1Ficha de reproducibilidad

real · corrida v1.5

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 A

real · corrida v1.5
Plan
plan-demo-a 1.5.2 · 2dc1affac8e97d19d991fe9a89fc2f2c26d1ee7cad72be13ecfdd1ea90e4051d
Plan con que corrió
plan-demo-a 1.5.0 · e1dc89c72a37bf780bd3ddd5225dff84284da6bedabe6aae9f8b3bc670c57ee1
Casos
planlang-a-002-200 · semilla planlang-a-002 · n = 200 · 5e76ef4cf562852c25aab2e041d55f17f809043450fe48e35c045cb419c8e62f
Generador
receta estandar · versión 1.1.0 · adversario 20 · borde 30 · faltante 30 · normal 120
Corrida
suscripcion-planlang-a-002-200-v1.5 · 2026-10-04 · suscripción / sonnet · multiagente · fdbffe765fc0e8309284bbc5c606dc67bc80b61b53cbf8a3772b3447eb8d71a0
Grafo compilado
056407bf4c1238ca0448c11575ea9228d050596d02162cd0613f8c5090cc9117
Línea base
suscripcion-planlang-a-002-200-v1.5-base · 1ab219ded7ae9d1ce14f4d7ff0e699b517926564afda1ac73c74301ea6cff5f7
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
10 sesiones · 200 casos · 0 errores del proveedor · 0 límites de uso
Umbrales aplicados
U1 0,75 · U2 1000 · U3 2 · U4 apagado — los del plan
Revisión humana
En lotes, el revisor simulado sigue la verdad conocida del caso (DA-04); la vitrina lo divulga.
Verificador
1.3.0 · planlang-informe/v1
Huella del informe
20c0b4ae85a8b635a979996db42fb58b21e1a1d7c390343ce975ca5ba30451e6

Experto

Cómo repetirla, en orden

  1. 1pnpm plan:validar --verificar plans/demo-a/v1.5.2.json valida el plan y comprueba su huella
  2. 2pnpm casos:generar --versionados regenera los casos desde la semilla; la huella debe coincidir
  3. 3pnpm lote:demo --plan plans/demo-a/v1.5.json --casos data/casos/demo-a/planlang-a-002-200.json corre el lote en la máquina del autor, fuera de CI, con su suscripción: el mismo comando 10 veces, de a 20 y espaciadas, hasta completar los 200 casos (retoma donde quedó)
  4. 4pnpm trazas:verificar comprueba huellas, umbrales aplicados y RF-09.2
  5. 5pnpm brecha:informe --corrida runs/demo-a/suscripcion-planlang-a-002-200-v1.5 --plan plans/demo-a/v1.5.2.json --salida data/vitrina/demo-a/suscripcion-planlang-a-002-200-v1.5 --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 A

para el frente Agentes de la vitrina

Agente A · autorizaciones médicas · así la pinta hoja-de-vida, con la piel de CV Vivaplanlang-demo-a.ficha-tecnica.json · contrato ficha técnica v1.3.1

La vitrina · Ficha técnica

  • Sin sellar
  • H1
  • 4 sprints
  • v1.5.2
  • Datos del 2026-10-05

Agente A · autorizaciones médicas

Aprueba del todo o en parte, niega o escala; nunca niega del todo solo.

  • LangGraph 1.2: el grafo del agente: estado tipado, aristas condicionales y la pausa humana con interrupt
  • LangChain 1.4: el adaptador del modelo y la salida estructurada por esquema
  • Python 3.12: los nodos, la guardia y el exportador de trazas
  • Claude Code · sonnet: extrae y redacta; el binario oficial, por la suscripción del autor, sin clave de API
  • Reglas deterministas: cobertura, guardia de salida y documento adverso, 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 autorizaciones médicas construido según un plan verificable: cada camino que toma está escrito en el plan, y una persona revisa toda negación completa con el caso completo delante.

  • 96,2%

    exactitud de extracción, en una corrida

    medido (Criterio C5 del plan: los campos extraídos son los de la verdad conocida en esta proporción de los 159 casos que la tienen, en una corrida. El plan pide 3 corridas seguidas solo en los lotes de 20 casos; este es más grande.)
  • 8,1segundos

    mediana por caso, de punta a punta

    medido (Criterio C7 del plan sobre 200 casos: la mediana de la latencia total registrada en cada traza.)
  • 70

    de 200 casos pasaron por una persona

    medido (Pausas humanas registradas en las trazas: el auditor vio el caso completo antes de decidir.)
  • 0

    negaciones completas sin una persona

    medido (Criterio C1 del plan sobre 200 casos: toda negación completa pasó por la pausa humana.)
  • 0,025US$

    costo nominal por caso

    calculada (US$ 4,9206 de la corrida entre 200 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 aseguradora —sintética— que recibe solicitudes de autorización con el texto libre del médico y hoy las revisa a mano, una por una, sin saber cuáles podían decidirse solas y cuáles necesitaban a un auditor.

La promesa

El agente lee la solicitud, pide lo que falta, aplica las reglas del plan de beneficios y aprueba lo que el plan permite, hasta el tope de cada servicio; toda negación completa y todo caso dudoso los pasa a un auditor con la evidencia y la contraevidencia, y responde al afiliado con un aviso de IA.

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 autorizació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.

Médico
  1. paso 1inicio: Una solicitud
  2. paso 2Envía la solicitud
  3. paso 8Responde la aclaración
El agente
  1. paso 3Clasifica la atención
  2. paso 4decisión: ¿Urgente o exento?
  3. paso 5Extrae los campos
  4. paso 6decisión: ¿Falta algo?
  5. paso 7Pide la aclaración
  6. paso 9Aplica las reglas de cobertura
  7. paso 10decisión: ¿Escala?
  8. paso 12Redacta con aviso de IA
  9. paso 13La guardia filtra la salida
Auditor
  1. paso 11Revisa el caso completo y decide
Afiliado
  1. paso 14Recibe la respuesta
  2. paso 15fin
  1. paso 11Ninguna negación completa sale sin el auditor; en esta demo, el auditor se simuló en lote.
  2. paso 7Si tras el máximo de aclaraciones sigue faltando algo, el caso va al auditor.
  3. paso 13El texto del caso nunca decide qué acción se ejecuta.

Proceso declarado por la propia app en su export.

03

Qué tiene

8 grupos.

  • Enrutador

    Separa urgencias y exentos, que se autorizan sin revisar cobertura.

  • Extractor

    Convierte el texto del médico en campos, con su confianza.

  • Aclaración

    Pide lo que falta, hasta el máximo que fija el plan.

  • Verificador de cobertura

    Aplica las reglas del plan de beneficios, sin modelo.

  • Decisión

    Las reglas escritas en el plan deciden si el caso escala.

  • Pausa humana

    Un auditor ve el caso completo antes de negarlo del todo.

  • Redactor

    Escribe la respuesta y el documento de decisión adversa.

  • Guardia de salida

    Reglas fijas: ningún dato sensible, ninguna orden inyectada.

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 auditor humano se simuló en lote siguiendo la verdad conocida.
  • Corre en lotes de 20 casos, fuera de CI y con pausas entre lotes.
Nunca
  • Niega del todo sin que una persona lo revise.
  • Obedece instrucciones escondidas en el texto de un caso.
  • Deja salir un dato del afiliado en la respuesta.
  • Pide autorización para una urgencia.
05

Dónde está

La versión anclada, no el tiempo real.

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

Aquí se muestra; no se entrega.

Experto

Lo que se entrega: content/agentes/planlang-demo-a.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

  • 96,2 % exactitud de extracción, en una corrida · medidoCriterio C5 del plan: los campos extraídos son los de la verdad conocida en esta proporción de los 159 casos que la tienen, en una corrida. El plan pide 3 corridas seguidas solo en los lotes de 20 casos; este es más grande.
  • 8,1 segundos mediana por caso, de punta a punta · medidoCriterio C7 del plan sobre 200 casos: la mediana de la latencia total registrada en cada traza.
  • 70 de 200 casos pasaron por una persona · medidoPausas humanas registradas en las trazas: el auditor vio el caso completo antes de decidir.
  • 0 negaciones completas sin una persona · medidoCriterio C1 del plan sobre 200 casos: toda negación completa pasó por la pausa humana.
  • 0,025 US$ costo nominal por caso · calculadaUS$ 4,9206 de la corrida entre 200 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)Medida71 · 75Límite≤ 80EstadoCabe
titular (es · en)Medida193 · 183Límite≤ 240EstadoCabe
para_quien (es · en)Medida214 · 224Límite≤ 400EstadoCabe
intro (es · en)Medida299 · 298Límite≤ 400EstadoCabe
stack[]Medida6Límite1–8EstadoCabe
cifras[] · fuenteMedida5 · 5Límite3–5 · todasEstadoCabe
bloques[]Medida8Límite2–10EstadoCabe
limites[] · nunca[]Medida3 · 4Límite2–4 · 2–5EstadoCabe
hitos[]Medida4Límite3–5EstadoCabe
proceso.pasos[].textoMedida33Límite≤ 60EstadoCabe
proceso.carriles[]Medida4Límite1–5EstadoCabe
enlacesMedida0Límite0EstadoCabe

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