movingparticle@caja-negra ~/reto-2/PITCH open demo --:--:--

movingparticle@caja-negra:~$ cat ./PITCH.txt

Frontier Bogotá 2026 · Reto 2

La Caja Negra

Un servicio bancario de 10 años, sin código ni documentación. Construimos el reemplazo que responde exactamente igual, errores incluidos.

20/20 ejemplos 11/11 tests ISO 7064 0 dependencias
[ ok ] demo · caja-negra-demo.pages.dev
[ ok ] contrato de la mañana replicado · npm test en verde

movingparticle@caja-negra:~$ ./probe --problem

01 · problema

Solo vemos entrada y salida.

  • Hay una URL en producción. No hay código ni especificación.
  • Nos dieron 20 ejemplos. Nada más.
  • Hay que acertar también en los errores, no solo en el caso feliz.
Memorizar esos 20 no alcanza. La batería oculta trae casos que nunca vimos.

movingparticle@caja-negra:~$ ls ./reemplazo

02 · solución

Réplica del contrato. Cero framework.

  • GET /health · POST /__reset · POST /msg
  • Seis comandos: PING, ALTA, CONSULTA, DEPOSITO, TRANSFER, ANULA.
  • Errores literales, incluido el typo original recieved.
[ run ] Node.js ESM nativo · arranque < 20 ms · Cloudflare Workers

movingparticle@caja-negra:~$ ./checksum --explain

03 · por qué generaliza

No es un hash. Es ISO 7064.

CD = (98 − N × 100) mod 97
  • A=1 … Z=26. Los dígitos se quedan. Guion y espacio se ignoran.
  • Mover 1 unidad cambia el control en −3 ≡ 94 (mod 97).
  • Es una fórmula. No una tabla de los 20 ejemplos.

movingparticle@caja-negra:~$ ./demo --after-reset

04 · evidencia en vivo

Tres pruebas. Mismo resultado.

POST /msg   PING;64
200 {"pong":true}
POST /msg   ALTA;Lucia;82
201 AC-0001
POST /msg   ALTA;Mateo;03
400 E202 control inválido
03 no es 3. El oráculo y el reemplazo lo rechazan igual.
demo · https://caja-negra-demo.pages.dev/

movingparticle@caja-negra:~$ npm test

05 · lo medido

Verde en lo que corre hoy.

20/20
ejemplos oficiales
11/11
npm test
16/16
controles ISO 7064
[ ok ] pruebas/ejemplos.jsonl · engine · server · worker · 0 fallos

movingparticle@caja-negra:~$ diff mañana tarde

06 · incidente 15:30

El oráculo cambió. Lo vimos.

QuéMañanaDespués
Saldoenterotexto "1.00"
Tope de transferencia100.00050.000
Fallos seguidosno bloquea3 fallos → E510
Comando nuevono existíaHALT;1 → E599
Detectado comparando la misma batería. Escrito en INCIDENT.md. Esta demo pasa el contrato de la mañana: 20/20.

movingparticle@caja-negra:~$ echo $TAKEAWAY

07 · cierre

Invertimos la regla.

  • Funciona en los 20 ejemplos y en los bordes que medimos.
  • Lo frágil a 10x: estado en un solo proceso. Haría falta una base con transacciones.
  • Copiamos hasta los typos. No “mejoramos” el banco.
[ ok ] funciona · se mide · se explica · se sabe qué cambió a las 15:30

movingparticle@caja-negra:~$ open ./demo

08 · demo

Abriendo el demo.

‹ 1 / 8 ›