strata

Strata compone módulos backend verificados y personalizados de manera determinista en tu codebase

Documentación

Strata — verified backend modules, composed and proven

Tu agente escribe el backend. Strata demuestra que funciona.

Un servidor MCP que compone módulos backend verificados en tu código base — leyendo tu esquema, siguiendo tus convenciones, conectándolos en el orden que Express realmente requiere — y luego escribe un comando que arranca la aplicación y ejercita cada requisito contra un servidor en vivo.


npm node MCP license site x

runs quality assertions gates


$ # your agent calls one tool, once
  strata_use  dir=./shop-api  task="product list API"
              capabilities=[ "cursor pagination with sorting",
                             "per-IP rate limiting",
                             "structured request logging" ]

  FILES CREATED
    server.js
    strata/lib.js       — the implementation these import from
    strata/verify.js    — boots the app and exercises the feature end to end

$ npm install && node strata/verify.js

  PASS  unit selftests — 3 passed, 0 failed
  PASS  server boots and answers /health
  PASS  correlation id honours an inbound x-request-id
  PASS  an authorization header is NOT written to the log
  PASS  a password in a request BODY is NOT written to the log
  PASS  a malformed body is a 4xx and leaks no stack trace to the caller
  PASS  /items walks pages by cursor without repeating a row
  PASS  a sort field that is not allowlisted is REJECTED, not honoured
  PASS  a burst past capacity yields 429 + Retry-After

  12/12 checks passed — the delivered feature works end to end.
Salida real. Esos nombres de verificación son la idea central — cualquiera puede generar paginación,
la pregunta es si la página dos repite la página uno.

Capacidades clave

  • Composición consciente del esquema — lee Prisma, Mongoose, Drizzle, TypeORM, Sequelize o JS plano y conecta módulos contra tu entidad, campos y columna ID reales
  • Orden correcto del middleware — logging por encima del análisis del cuerpo, límites de tasa por encima de las rutas, manejadores de errores al final, impuesto por rango en lugar de dejarlo al modelo
  • Verificador integral generadostrata/verify.js arranca la aplicación en un puerto libre y ejercita cada requisito contra ella
  • Seis puertas de admisión verificadas por máquina — ningún módulo llega a tu proyecto sin pasar todas ellas
  • Rechazos honestos — rechaza aproximadamente un tercio de las tareas, donde componer cuesta más que escribir el código

$ # asked for something the library does not cover
  strata_use  task="slugify helper"  capabilities=["convert a string to a url slug"]

  No verified Strata recall covers "slugify helper". Build it from scratch the
  normal way — a clean hand-written implementation is the right outcome here,
  not a forced match.
Rechazar es una característica. Un módulo no vale el costo de leerlo y verificarlo,
y una herramienta que siempre dice sí es una herramienta en la que dejas de confiar.
  • Local por construcción — tu código fuente y esquema nunca salen de la máquina; solo se envía el texto de la tarea

Benchmark

Quality against cost across 60 benchmark runs

60 sesiones completas de agente: cuatro tareas de backend, cinco brazos, tres ejecuciones cada una. Las verificaciones se congelaron y publicaron antes de la primera ejecución, cada verificación lleva un control negativo que demuestra que puede fallar, y cada árbol de salida está archivado. El código fuente de los módulos entregados no se publica — los módulos viven en el hub y llegan a un proyecto en el momento de la llamada.

¿Funcionó a la primera?

BrazoFuncionó a la primeraTiempo totalCosto / ejecuciónCosto de una característica funcional
haiku0 / 11 — 0%5.1 min$0.22nunca produjo una
haiku + Strata6 / 12 — 50%3.6 min$0.27$0.53
sonnet2 / 11 — 18%4.4 min$1.07$5.88
sonnet + Strata10 / 12 — 83%6.1 min$1.62$1.94
opus3 / 12 — 25%5.2 min$1.33$5.33

"Funcionó a la primera" = todas las verificaciones pre-registradas para esa tarea pasaron, sin segundo intento. haiku simple es el más barato por ejecución y no produjo nada que funcionara completamente en once intentos.

Proporción de verificaciones superadas

BrazoCatálogoIdempotenciaPagosReintentoPromedio
haiku70.8%66.7%29.2%85.7%63.1%
haiku + Strata87.5%85.7%100%95.2%92.1%
sonnet62.5%85.7%95.8%64.3%77.1%
sonnet + Strata100%100%95.8%95.2%97.8%
opus75.0%90.5%75.0%95.2%83.9%

Dos verificaciones fueron falladas por cada ejecución de referencia en cada nivel y superadas por cada ejecución de Strata — un limitador de tasa cuya ventana nunca se recarga (referencia 0/9, Strata 6/6) y una solicitud malformada que devuelve un rastreo de pila al llamador (0/9, 6/6). haiku 0/3, sonnet 0/3, opus 0/3 en ambas. Un modelo más grande no arregló ninguna.

Qué te cuesta

Strata es un sobrecosto por sesión — +26% en haiku, +51% en sonnet. Ese sobrecosto se debe a la lectura, no a la escritura: de dos tercios a cuatro quintos de la factura de un agente es releer contexto acumulado, y una sesión de Strata lee ~12–14k tokens de implementación entregada donde una referencia lee ~1k. Se está trabajando para cerrarlo; hoy no está cerrado.

Aproximadamente tres cuartos de la ventaja están en defectos que no habrías notado — casos límite, problemas de sincronización y errores de corrección que aparecen más tarde como incidentes. En defectos que notarías, un modelo simple ya acierta el 86.4% de las veces. Por eso existe strata/verify.js: convierte la corrección en una lista de verificaciones con nombre que puedes leer.

Metodología completa, puntuaciones por ejecución, la división visible/invisible y cada defecto de instrumento encontrado en el camino: docs/BENCHMARK.md.


Inicio rápido

Requisitos previos: Node.js ≥ 18 y cualquier cliente MCP — Claude Code, Cursor, Windsurf, VS Code o Claude Desktop.

// .mcp.json  (or claude_desktop_config.json for Claude Desktop)
{
  "mcpServers": {
    "strata": { "command": "npx", "args": ["-y", "stratalib"] }
  }
}

Reinicia el cliente y pide una característica de backend que necesite varias partes:

Add cursor pagination, per-IP rate limiting and request logging to the products API.

Strata lee el proyecto, compone los módulos, escribe los archivos e imprime lo que creó y lo que modificó. Luego:

npm install && node strata/verify.js

[!NOTE] Sin clave API y sin cuenta. Los módulos se sirven desde el hub; el texto de la tarea es lo único que se envía. Tu código fuente, esquema y archivos permanecen en tu máquina.


La herramienta

Strata registra exactamente una herramienta. Cada herramienta en un esquema MCP se factura en cada turno, por lo que la superficie se mantiene en una que hace todo el trabajo.

strata_use

ArgumentoPropósito
dirRuta absoluta a la raíz del proyecto — de donde se leen el esquema y las convenciones
taskUna etiqueta corta para el trabajo
capabilities3–6 frases que nombran las partes del trabajo. Tu modelo las escribe; ha leído toda la tarea

Devuelve los archivos creados y modificados, las exportaciones disponibles de cada módulo y el comando para verificar el resultado.


Cómo funciona

1 · Lee el proyecto — localiza el ORM y extrae la entidad real: campos, tipos, enums y la columna ID real. Determinista, en Node, antes de que el modelo vea un byte. Cuando la entidad no se puede identificar con confianza, Strata deja un espacio en lugar de adivinar.

2 · Selecciona módulos — cada frase de capacidad se puntúa contra la biblioteca, y cualquier coincidencia basada solo en vocabulario compartido se descarta. Menos de dos módulos supervivientes provoca un rechazo.

3 · Compone — los módulos contribuyen a la aplicación en lugar de poseerla, cada contribución lleva un rango que fija su posición en la cadena de middleware. Una solicitud malformada lanza una excepción durante el análisis del cuerpo, por lo que el logging se monta por encima; invierte eso y la solicitud que más vale la pena rastrear es la que pierde su id de correlación.

4 · Escribe el verificadorstrata/verify.js ejecuta la suite propia de cada módulo, arranca la aplicación en un puerto libre y ejercita cada requisito contra ella. Construido contra tu entidad, para que las verificaciones se ejecuten en tus campos y tus rutas.


Puertas de admisión

Cada módulo pasa seis puertas verificadas por máquina antes de poder servirse. Un módulo que falla se descarta, no se repara — parchear a mano módulos generados devuelve la cobertura al oficio manual y detiene su escalabilidad.

PuertaRequisito
ExportacionesCarga, y cada exportación que declara se resuelve en tiempo de ejecución
AutopruebaSu propia suite pasa, con un recuento de aserciones estable en cinco ejecuciones
Adversarial≥ 8 aserciones, entradas hostiles y aserciones de que algo no debe suceder
ComposiciónFragmentos válidos con rangos y fábricas declaradas que existen
ColisionesNingún nombre exportado choca con otro módulo
Arranque compuestoSe compone con otros dos en una aplicación que arranca y verifica

La puerta adversarial es la que importa. Cada módulo escrito a mano en esta biblioteca se publicó con un error real que sus propias pruebas no detectaron — un 404 que reiniciaba el contador de fallos de un interruptor de circuito, una restricción de enum eliminada, un id de solicitud controlado por el atacante reflejado en un encabezado de respuesta. Una suite confirmatoria admite exactamente esos.


Estructura del repositorio

RutaContenido
src/Servidor MCP: lectura del proyecto, selección, composición, generación del verificador
bin/Punto de entrada CLI
templates/Esqueleto Express utilizado durante la composición
benchmark/La batería de calidad de 60 ejecuciones, suites pre-registradas, controles negativos, árboles de salida archivados
scripts/Puertas de admisión, indexación de biblioteca, pruebas de selección

Los módulos se sirven desde el hub; el texto de la tarea es lo único que se envía. Tu código fuente, esquema y archivos permanecen en tu máquina.

Documentación

DocumentoTema
docs/BENCHMARK.mdEl benchmark de 60 ejecuciones: método, tablero y cada defecto de instrumento encontrado

Desarrollo

npm install
node --max-old-space-size=8192 node_modules/typescript/bin/tsc -p tsconfig.mcp.json   # build
node scripts/admit-recall.js recalls/<domain>/<name>/v1                                # run the gates
node benchmark/quality/negative-control.js                                             # prove the checks can fail
node benchmark/run-quality-battery.js --tasks catalog --max 3                           # collect runs

STRATA_MODE=local compone contra un checkout local de recalls/ en lugar del hub — necesario al probar un módulo que no se ha desplegado.


Agradecimientos

Construido sobre el Model Context Protocol, Express, Prisma, Mongoose, Drizzle, TypeORM y Sequelize.

Licencia

AGPL-3.0-or-later. Ver LICENSE.