Seis pasos, sin permiso
Escribe un kit en tu lenguaje.
Un kit es Quo escrito en algún lenguaje por alguien, y cualquiera puede escribir uno solo con los documentos publicados. Seis pasos, cada uno dice qué leer y cómo se ve terminado. Nadie lo registra, nadie lo aprueba, y el comprobador es el único juez.
Lee la spec, entera.
SPEC.md es todo Quo. No presupone nada de ningún otro documento y no se apoya en nada salvo los estándares que nombra. Cada término se define donde se introduce.
Terminado cuando has leído cada capítulo, y para cada regla puedes decir qué bytes fija.
Responde las preguntas antes del código.
KIT-SPEC.md plantea 28 preguntas, cada elección que SPEC.md deja a un kit. Pregunta y nunca responde, y se acepta cualquier respuesta.
Terminado cuando las 28 están respondidas, cada una con su razón, en un documento propio junto a donde estará el código.
Escribe solo desde la spec.
Ningún kit es la referencia, y ninguno está pensado para importarse. Cada uno de los 5 ejemplos se escribió en frío, por un agente que solo tenía los documentos publicados y el verificador, y nunca otro kit.
Terminado cuando tu kit está escrito desde los documentos, sin ningún otro kit abierto.
Monta el harness.
HARNESS.md es herramienta de pruebas junto al protocolo, en 2 partes: qué responde un kit para ser juzgado sin portador, y qué responde para ser juzgado con sus bytes transportados. Un kit bajo él es un ejecutable, llamado stand, que lee peticiones por stdin y escribe respuestas por stdout.
Terminado cuando tu programa stand responde a cada petición de ambas partes, o responde bad request donde no tiene ese lado.
Pasa el verificador.
El verificador juzga tu kit como puerta, como quien pide, como listener y como quien marca en cada portador que sostiene, y como lector del at en una invitación y en una respuesta. Solo rechaza donde SPEC.md fija los bytes. Desde la carpeta de ejemplos, con la carpeta de tu kit y su programa stand:
node ../verifier/cli.js --cwd go -- ./standTerminado cuando el verificador sale con 0: ninguna comprobación falló. Eso es necesario, y no dice nada sobre si tu kit es bueno.
Encuentra otro kit.
Dos kits cualesquiera se juzgan juntos a través del proxy del verificador: un ward está en uno, el otro le pide por cada portador que ambos comparten, y sobre TCP las tramas llegan tarde, dos veces, desordenadas, alteradas y nunca.
node ../verifier/cli.js --two -- "$PWD/go/stand" -- "$PWD/rust/target/debug/stand"Terminado cuando tu kit pasa con cada otro kit, en ambas direcciones.