«Eksisterende modeller kan allerede skrive nesten all koden din. Den begrensende faktoren er om du kan vite at de gjorde det du ville.» Slik oppsummerer Reuben Brooks problemet i et blogginnlegg om KI-kodeløkker. Tesen hans er at for store deler av produksjonsprogramvare slår «strukturell backpressure» smartere agenter: i stedet for å håpe at modellen husker en regel fra prompten, bygger du regelen inn i koden slik at brudd ikke kompilerer.
Konkret skriver du en spesifikasjon i Shen, en statisk typet Lisp med et sekventkalkyle-typesystem. Et verktøy kalt shengen oversetter spesifikasjonen til «guard-typer» i målspråket, enten det er Go, TypeScript, Python eller Rust. For å konstruere en verdi må alle premissene i regelen innfris først. I Go blir dette en forseglet struct med private felter og en konstruktør som håndhever betingelsene. Brooks kaller det at beviset følger verdien: tilgangskontroll konsentreres ved selve typekonstruksjonen, ikke spredt utover kodebasen.
«Disse feilene havner i produksjon fordi regelen er plassert i feil del av systemet.» — Reuben Brooks
Mekanismen som gjør dette relevant for agenter, er tilbakekoblingen. Brooks' oppsett (sb init) kjører fem porter i sekvens på hver iterasjon: kodegenererings-drift, tester, kompilering, Shen-typesjekk og en guard-revisjon. Når en port feiler, mates feilmeldingen tilbake som konkret kontekst til neste prompt. Agenten kan rett og slett ikke bygge en verdi som bryter beviskjeden, fordi kompilatoren stopper den. Standardoppsettet bruker Claude Code, men støtter også Cursor og Codex via en miljøvariabel.
For deg som lar en agent skrive 16 000 linjer kode, er poenget at deterministiske gates fanger det modellen glemmer. Broken access control står øverst på OWASPs Top 10, og nettopp den typen invariant egner seg for typetvang.
Hva bør du gjøre?
- Identifiser én kritisk invariant i prosjektet ditt, for eksempel at en bruker bare ser sin egen tenant, og kod den som en konstruktør som ikke kan omgås.
- Legg en kompilerings- eller test-gate inn i agent-løkken din, slik at feil mates tilbake i neste prompt i stedet for å dukke opp i produksjon.
- Se demoen i examples/multi-tenant-api i Brooks' repo før du vurderer hele Shen-stacken for ekte bruk.