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
[ 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
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ñana | Después |
|---|---|---|
| Saldo | entero | texto "1.00" |
| Tope de transferencia | 100.000 | 50.000 |
| Fallos seguidos | no bloquea | 3 fallos → E510 |
| Comando nuevo | no existía | HALT;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