Aida
De AI Development Street van Headliners. Webapplicaties die door AI worden onderhouden, dag en nacht. Mensen keuren goed en dragen het risico.
Het veiligheidsfundament (Wave 1) is af en live bewezen. De canary-ladder die de brug vormt naar echte apps is voor 4 van de 5 treden live bewezen. De laatste trede — de mens-in-de-loop voor de zware goedkeuringen — is volledig gebouwd, adversarieel gereviewd en gemerged, en wacht nog op één uitrol met live-proef. Daarna gaat de eerste echte app (Preppa) de straat in.
- Wave 1: alle 22 tickets gemerged, live gerold én bewezen — met het dubbele slotbewijs (een goede update volledig autonoom live, een gesaboteerde update aantoonbaar geblokkeerd).
- Ladder I1-I4 bewezen: de kluis scant de exácte PR-code, de AI-judges keuren verborgen sabotage af, groen-maar-kapot wordt gevangen, onomkeerbare migraties escaleren i.p.v. stil door te gaan.
- Mens-loop (I5) stap 1-8 gebouwd, gereviewd en gemerged: duurzame wachtrij, test-MFA, goedkeur-service, escalatie-sweep, Windmill-hervat-brug en notificatie (ntfy + e-mail).
- Nu aan de beurt: I5 stap 9 — de goedkeur-dienst uitrollen + de zeven-slags live-proef die de mens-loop sluit.
- Daarna: de hardening-track (sleutelbeheer, TLS, off-host back-ups) als harde poort vóór echte apps.
- Dan: Wave 2 — Preppa de straat in, elke merge menselijk goedgekeurd; vervolgens klantwerk (Wave 3).
Elke webapp is een abonnement op werk
Een applicatie opleveren is het begin, niet het einde. Daarna begint het onderhoud, en dat stopt nooit.
Updates
Dependencies verouderen wekelijks. Elke update kan iets breken, dus iemand moet testen en beslissen.
Bewaking
Storingen komen 's nachts en in het weekend. Iemand moet kijken, herstarten, herstellen.
Security
Kwetsbaarheden wachten niet. Patches moeten snel, maar wel gecontroleerd.
Kleine fixes
Bugs, performance, vergeten documentatie. Klein werk dat optelt tot dagen per maand.
Aida is onze fabriek
Een straat waarin AI-agents het operationele werk doen: bouwen, testen, deployen, bewaken en herstellen. Mensen doen wat mensen moeten doen: prioriteren, goedkeuren, risico accepteren.
Agents doen
Updates draaien en testen, storingen onderzoeken, fixes schrijven, deployen met vangnet, rapporteren.
Mensen doen
Strategie en klantrelatie. Goedkeuring van alles wat ertoe doet. Eén klik in een wachtrij in plaats van een middag werk.
Autonomie is een draaiknop
Geen schakelaar. Elke soort actie verdient meer zelfstandigheid pas na bewezen schone runs. Bij twijfel gaat de knop direct terug.
Onderhoud als dienst, met softwaremarges
De klant betaalt een vast bedrag per maand voor een app die gezond blijft. De straat doet het werk, één mens overziet velen.
Klassiek bureau
Uren in, uren uit. Elke app vraagt menselijke aandacht. Groeien betekent aannemen. Nachtdiensten of trage respons. Marge daalt met elke klant erbij.
Headliners met Aida
Werk door agents, oordeel door mensen. Eén operator overziet tientallen apps via een goedkeuringswachtrij. De marge zit in het verschil tussen abonnement en tokenkosten.
De straat bewaakt en herstelt ook om 03:00, zonder wachtdienst.
Eén mens, veel apps. De wachtrij bundelt alleen beslissingen die ertoe doen.
Elke actie aantoonbaar in een verzegeld logboek. Dat is wat de klant koopt: rust met bewijs.
"Wat als jullie AI mijn app sloopt?"
Dat is de eerste vraag van elke klant. Het antwoord is niet "vertrouw ons", maar een aantoonbare veiligheidsarchitectuur. Die architectuur is het product.
De kluis
Vreemde en nieuwe code draait altijd eerst in een verzegelde ruimte: geen sleutels, geen toegang tot systemen, geen weg naar buiten. Kwaadaardige code kan daar schreeuwen, maar niets aanraken.
De poortwachter
Elke wijziging passeert één beleidspoort. Onbekend of onvolledig telt als gevaarlijk. Er bestaat geen tweede route naar productie.
De menselijke hand
Alles wat impact heeft wacht op een mens, totdat die actie het vertrouwen verdiend heeft met bewezen schone runs.
Het grootboek
Elke beslissing cryptografisch ondertekend en onwisbaar vastgelegd. Wie, wat, waarom, op basis van welke feiten. Achteraf altijd te bewijzen.
Falen mag maar één kant op
Het systeem is zo gebouwd dat elke storing, twijfel of fout automatisch leidt tot mínder autonomie, nooit tot meer.
- Bij twijfel: stoppen en escaleren naar een mens. Nooit doorduwen.
- Als een veiligheidscheck onbereikbaar is, geldt het antwoord "nee".
- Noodrem aanwezig: één druk bevriest de hele straat. Alleen een mens zet hem weer aan.
- Terugdraaien en herstarten mogen altijd, ook autonoom. Vooruit duwen nooit zonder groen licht.
- De straat kan zichzelf niet aanpassen. Elke wijziging aan Aida zelf gaat langs een mens.
Het complete proces
Elke wijziging, of hij nu van een update-bot komt of van een agent die een storing herstelt, doorloopt exact dezelfde route.
Nieuwe dependency-versie, storing, kwetsbaarheid of geplande taak.
Bouwen en testen in de verzegelde sandbox. Zonder sleutels, zonder netwerk.
Een vertrouwde laag stelt de feiten vast: tests groen? Scans schoon? Hoe groot is de wijziging?
Beleid beslist op feiten: klein en bewezen veilig mag door, de rest wacht op een mens.
Uitrol met healthcheck. Wordt de app ziek, dan draait hij automatisch terug.
Beslissing en bewijs ondertekend vastgelegd. De straat leert van elke run.
Laag risico
Automatisch Patch-update, tests groen, geen kwetsbaarheid, kleine impact: mag zelfstandig door, mens leest het achteraf in het rapport.
Hoger risico
Wachtrij Grotere wijziging of onvolledig bewijs: komt met dossier in de goedkeuringswachtrij. Eén klik: akkoord of afwijzen.
Vijf loops, altijd aan
Na de bouwfase is Aida geen pijplijn die je start, maar een organisme dat draait. Vijf familieloops, elk volgens hetzelfde ritme: waarnemen, beslissen, handelen, controleren, leren.
Watch
Bewaakt gezondheid, kosten en security van elke app, continu.
React
Herstelt bij storing: terugdraaien, herstarten, onderzoeken, fix voorstellen.
Maintain
Doet het geplande werk: updates, performance, technische schuld.
Improve
Verbetert de straat zelf: betere prompts, betere keuzes. Altijd via een mens.
Capture
Legt kennis vast: elke run maakt de volgende beslissing beter onderbouwd.
Vier standen van vertrouwen
Elke actie heeft een stand. Omhoog naar meer menselijke controle gaat direct, omlaag naar meer zelfstandigheid wordt verdiend met bewezen schone runs.
| Tier | Betekenis | Voorbeeld |
|---|---|---|
| T0 · Autonoom | Doet het zelf, rapporteert achteraf | Patch-update met groene tests en schone scans. Noodherstel: rollback, herstart. |
| T1 · Gemeld | Doet het zelf, meldt direct | Routinewijziging in een testomgeving. |
| T2 · Goedkeuring | Wacht op één menselijke klik | Minor-update, productie-deploy, fix na een incident. |
| T3 · Zwaar | Expliciet eigenaarsbesluit | Architectuurwijziging, nieuw project de straat in, wijziging aan Aida zelf. |
Bij incidenten, kostenpieken of security-signalen schuift de knop automatisch en onmiddellijk richting T3. Terug naar T0 duurt uren tot dagen van bewezen rust.
Eerst een kanarie, dan pas echte apps
Voordat ook maar één echte app de straat in gaat, moet de straat zich bewijzen op een app die stuk mag. Die app noemen we de canary.
Wat is de canary?
Een kleine wegwerp-app die we speciaal hiervoor gebouwd hebben. Genoemd naar de kanarie in de kolenmijn: hij gaat voorop en vangt het gevaar als eerste op. Gaat hij stuk, dan is er niets verloren.
Waarom niet meteen Preppa?
Een veiligheidsbelofte test je niet op een app waar mensen op werken. Preppa en Matchy blijven daarom buiten de straat tot de hele loop zich op de canary bewezen heeft.
De dubbele proef — geleverd ✓
Op de canary mag wat op een echte app nooit mag: bewust saboteren. Het slotbewijs is dubbel geleverd: goede updates gingen automatisch live (één zelfs volledig zonder mensenhand), en gesaboteerde updates werden aantoonbaar geblokkeerd.
De canary-ladder: elke trede een zwaardere aanval
Wave 1 bewees de basisloop. Vóór Preppa de straat in mag (Wave 2), maken we de canary trede voor trede complexer en sluiten we elk resterend gat — met per trede een aantoonbare aanvalsproef.
| Trede | Wat er dichtgaat | Status |
|---|---|---|
| I1 · De smokkel-val | De kluis scant voortaan de exácte PR-code, niet een oude kopie. Proef: een update-PR met méégesmokkelde nepcredentials werd in 42 seconden autonoom geblokkeerd — vóór elke goedkeuring, geen merge. | Bewezen · 9 juli |
| I2 · Judges zien de code | Het AI-oordeel krijgt de code-wijziging zelf te zien, niet alleen de metadata. Proef: een kwaadaardige-maar-scanner-onzichtbare wijziging wordt door de judges afgekeurd. | In aanbouw |
| I3 · Groen-maar-kapot | Functionele proef na deploy, niet alleen "leeft hij nog": een app die opstart maar stuk is wordt teruggedraaid. | Gepland |
| I4 · App-realisme | Canary met database, migraties en meerdere services ("Preppa-lite"): echte migratie-risico's en koude rollback. | Gepland |
| I5 · De mens-loop live | Goedkeuringsscherm, MFA en de zware tiers (T2/T3) end-to-end in bedrijf. | Gepland |
Dinsdagnacht, 03:12
Zo ziet een incident eruit als Preppa in de straat draait. Niemand is wakker, en dat hoeft ook niet.
Preppa reageert niet meer Incident
De healthcheck faalt drie keer op rij. Geheugengebruik liep in twee uur op naar de limiet.
Automatische herstart Hersteld in 40 sec
Herstellen mag altijd. De app is direct weer bereikbaar. De actie wordt ondertekend vastgelegd, ook al was de mens niet wakker.
Onderzoek start
Een agent analyseert logs en het geheugenprofiel: een sessie-cache groeit onbegrensd bij lange proefgesprekken. Oorzaak gevonden, fix geschreven, getest in de kluis: geheugen stabiel, alle tests groen.
Fix wacht op mens T2 · Wachtrij
Een codewijziging na een incident deployt nooit zichzelf. Het dossier ligt klaar: oorzaak, fix, testbewijs, risico-inschatting.
Eén klik: akkoord Live om 08:31
Karrar leest het dossier bij de koffie en keurt goed. Gated deploy, healthcheck groen. Totale menselijke tijd: twee minuten.
Woensdag: drie updates, drie uitkomsten
De update-bot vindt drie nieuwe versies. Elke update doorloopt dezelfde route en eindigt precies waar hij hoort.
express 4.19.2 → 4.19.3
Patch, geen kwetsbaarheid, tests groen in de kluis, kleine impact. De poortwachter geeft groen: merge, deploy, healthcheck OK. Mens leest het vrijdag in het rapport.
AI-SDK minor-update
Grotere wijziging aan een kernfunctie van Preppa. Tests groen, maar het beleid zegt: minor-updates wachten op een mens. Dossier klaar, één klik gevraagd.
Verdachte package
Een update probeert bij de installatie naar buiten te bellen. De kluis heeft geen netwerk, de scans slaan aan, de poort blijft dicht. De straat maakt een security-melding. Er is niets geraakt.
Vrijdag: het weekrapport
Dit is wat onderhoud kost als de straat draait: leestijd en twee klikken.
wijzigingen verwerkt deze week
volledig automatisch, met bewijs in het grootboek
menselijke beslissingen: incident-fix en minor-update
aanval geblokkeerd, zonder schade
Gezondheid
Uptime 99,97%. Eén incident, hersteld in 40 seconden. Structurele oorzaak dezelfde nacht opgelost.
Kosten
Tokens en infra per app inzichtelijk. Elke run heeft een plafond: een agent die doordraait wordt automatisch gestopt.
Twee werelden, één poort
Het hart van het ontwerp is een harde scheiding: de vertrouwde besturing (Tier 1) en de onvertrouwde uitvoering (Tier 2) raken elkaar nooit direct — ↑ alleen feiten en events omhoog · ↓ alleen opdrachten zonder sleutels omlaag. De plaat toont één dependency-update-run, chronologisch van links naar rechts: de oranje pijlen zijn de flow, de banen zijn de vertrouwenszones.
- Signaal: Renovate ziet een nieuwe dependency-versie en opent een pull request op GitHub.
- Flow start: de flow-engine (Windmill, W1-11) pakt de PR op; agents draaien hun stappen als flow-taken.
- Bouw + test: de kluis bouwt, test én scant de exácte code van de PR (per commit-vingerafdruk opgehaald, I1) — zonder sleutels, geen netwerk behalve de npm-proxy en één uitgaand event-kanaal. Meesmokkelen langs de scan kan niet meer.
- Bewijs: de resultaten verlaten de kluis als events over de eventbus (NATS JetStream + Postgres-outbox); de feiten-laag (W1-13) maakt er vertrouwd bewijs van: semver, CVE, tests.
- Beslissing: de poortwachter beslist op die feiten, fail-closed: RBAC → guardrail → OPA → ondertekende audit in het grootboek.
- Goedkeuring: laag risico (T0/T1) gaat rechtstreeks door naar deploy — de auto-grant staat live op de canary; hoger risico wacht op een mens: één klik (T2), twee personen (T3).
- Deploy: de deployer rolt uit via Dokploy met healthcheck; wordt de app ziek, dan draait hij automatisch terug (W1-17/18).
- Rapport: de mens krijgt het weekoverzicht; elke stap is terug te vinden in het grootboek en de observability, inclusief kosten per run.
De donkere strip "altijd actief" staat om elke stap heen: de seam, het grootboek, de sleutelkluis, de noodrem met throttle en de observability.
Zeven poorten, één beslispunt
Alle infrastructuur zit achter een dunne, getypeerde laag. Alles is vervangbaar zonder de straat te herbouwen, en er is precies één plek waar beslissingen vallen.
De seam: @headliners/street-sdk
Orchestrator · MemoryService · AgentRegistry
Deployer · PolicyGate · EventBus · Ledger
Zeven getypeerde poorten. PaaS, eventbus of geheugen wisselen is een adapter schrijven, geen verbouwing. Een lint-regel blokkeert elke import om de seam heen.
Het beslispunt (PDP)
RBAC → I/O-guardrail → OPA-policy → signed audit
Deny-by-default en fail-closed: een onbereikbare check of een ontbrekend feit telt als "nee". Elke toestemming is een eenmalig token, gebonden aan actor, actie en doel.
Events
street.<project>.<domein>.<event>
CloudEvents over NATS JetStream, met transactionele outbox, idempotency, dead-letter-queue en replay. Elke stap traceerbaar via één trace-id, van sandbox tot deploy.
Het grootboek
Elke beslissing als ed25519-ondertekende rij in een hash-keten met verankerd beginpunt. Knippen of herschrijven is detecteerbaar. Veiligheidsacties loggen altijd, desnoods met uitgestelde aflevering.
Status: Wave 1 bewezen, de ladder loopt
Eerlijk beeld, geen marketing. Gebouwd en gemerged is niet hetzelfde als live bewezen, en dat onderscheid houden we scherp.
De kluis, de poortwachter, het grootboek, de wachtrij en het leren op de canary — alle 22 tickets gemerged, live gerold én bewezen. Het dubbele slotbewijs is geleverd: goede updates gingen door de poort live (waarvan één volledig autonoom, zonder mensenhand van signaal tot deploy, op de Mistral-judges), en gesaboteerde updates werden aantoonbaar geblokkeerd. Klap een ticket uit voor het detail.
W1-01FundamentSeam-SDK: zeven getypeerde poortenAf
Gedaan: Seam-SDK: 7 getypeerde poorten, event-envelope, control-plane-skelet, lint-guard tegen omzeiling.
W1-02FundamentEvent-backbone: outbox + JetStreamAf
Gedaan: Postgres-outbox (idempotency, DLQ, replay) + NATS JetStream, bewezen in CI tegen echte services.
W1-03FundamentTier-1-basis live op DokployAf · live
Gedaan: Postgres, NATS en OPA live; backup/restore, fail-closed en supervised restart bewezen.
Nog: off-host backup (S3), staat op de hardening-lijst.
W1-04FundamentCanary gehardAf
Gedaan: bad-bump-CI-gate, Docker-healthcheck, /healthz.
W1-05Poort & auditAgentRegistry, deny-by-defaultAf
Gedaan: AgentRegistry met 9-persona-cast; rechten deny-by-default per agent.
W1-06aKluis & isolatieSandbox-schil live bewezenAf · live
Gedaan: sandbox-schil live bewezen onder gehard runc: egress dicht, geen route terug, scoped publish-cred, teardown altijd.
Nog: gVisor-laag = apart infra-item (vergt eigen Tier-2-host).
W1-06bKluis & isolatieOnvertrouwde build in de kluisAf · live
Gedaan: eerste onvertrouwde build live in de kluis: goede bump slaagt (7/7 tests), kapotte faalt netjes, geen secrets aanwezig, egress-proxy als vaste service. Sinds 9 juli (I1) bouwt en scant de kluis de exácte PR-head in plaats van een gebakken kopie.
Nog: gVisor = apart infra-item.
W1-07Kluis & isolatieSecrets-broker + Vault liveAf · live
Gedaan: init, unseal, opslag, uitgifte, rotatie en intrekking bewezen; sleutels verlaten Tier 1 nooit. Productie-Vault-adapter gemerged (PR #22).
Nog: adapter in de W1-08/09-compositie wiren + least-privilege broker-policy/token; eigenaar verplaatst herstel-sleutels naar de password-manager.
W1-08Poort & auditChokepoint: RBAC → OPA → auditAf
Gedaan: RBAC → guardrail → OPA → ondertekende audit; beleid draait live op Dokploy en overleeft herstarts.
Nog: control-plane als echte service deployen; beslisfeiten aan hun bron binden (getrackt, harde poort vóór echte autonomie).
W1-09Poort & auditGrootboek: ed25519-hash-ketenAf
Gedaan: hash-keten met verankerd beginpunt en safety-carve-out (noodacties loggen altijd).
Nog: feiten-attestatie-koppeling (getrackt, samen met de W1-08-binding).
W1-10Kluis & isolatieBoundary-gate, fail-closedAf
Gedaan: twee onafhankelijke lagen, één fail-closed oordeel; bypass-poging → page, freeze en autonomie omlaag.
W1-11Beslissing & gateFlow-engine + durable approvalAf · live
Gedaan: flow-state-machine met durable approval-wait, één executor-pad voor CI én Windmill. Windmill CE live op Dokploy; SDK-runtime als workspace-script /f/aida/sdk met livePorts()-compositieroot (Tier-1 echt, Tier-2 fail-closed). Live bewezen: de volledige dep-update-flow pauzeert durable op goedkeuring, hervat alleen met twee ondertekenaars en overleeft herstarts.
Nog: flow-token 1 jaar geremint (interim); productie vereist AppRole of een renewal-cron.
W1-12ObservabilityEén trace + LLM-call-captureAf
Gedaan: één trace van kluis tot control-plane, bus-tap, LLM-call-capture als bron voor kostenmeting.
Nog: live dashboards (OTel/LGTM/Langfuse) op de server.
W1-13Beslissing & gateScan-gate + AI-judges (Mistral)Af · live
Gedaan: fail-closed classifiers, judge-panel met geheugen-prior, drempels voor auto-pass/review/afwijzen. Live bewezen: echte Semgrep, Trivy en Gitleaks in de kluis en een echt AI-judge-panel (sinds 8 juli op Mistral; provider-switch met luide degradatie-log), end-to-end door alle poorten.
Nog: beslisfeiten cryptografisch aan hun bron binden (met W1-09); leak naar incident-loop koppelen.
W1-14Beslissing & gateKosten-grootboek + plafondsAf
Gedaan: hard/soft-plafonds als fail-closed beleid-input; sluitende meting (elk gat telt als overschrijding); noodacties raadplegen de kostenbron nooit.
Nog: budget-signaal-koppeling in de SLO-gate (W1-17-live).
W1-15Beslissing & gateGoedkeuringsrouting T0-T3 + auto-grantAf · live
Gedaan: routing T0-T3 (beleid in code én OPA, drift-bewaakt) + afdwingende wachtrij: audit vóór besluit, T3 = twee rollen met MFA, tijdgebonden risico-acceptaties, escalatie-sweep; deploy naar prod kan nóóit automatisch. De T0/T1 auto-grant staat sinds 8 juli live (canary-only, als code-invariant) en is e2e bewezen: één echte update liep volledig zonder mensenhand tot en met deploy en monitoring.
Nog: goedkeurings-scherm (ruvocal) + echte MFA-provider; cron op de sweep.
W1-16DeployKill-switch + merge-executorAf
Gedaan: containment-first: project bevriezen → autonomie omlaag → tokens intrekken → runs stoppen → altijd loggen → page; bevroren project weigert élke vooruit-actie. Echte GitHub-merge-executor (sha-gepind, groen-check) + branch-protection-as-code met drift-bewaking.
Nog: live: cancel-cadence, drift-check als CI-stap, echte deploy-token.
W1-17ObservabilitySLO-gate + reactor liveAf · live
Gedaan: fast-burn-detectie binnen 5 minuten na deploy, error-budget-signaal dat de goedkeuringstier automatisch verhoogt, overleeft herstarts. Reactor-service live op Dokploy; productie-react-drill geslaagd: fout gedetecteerd in 2m44s, automatische terugrol-flip in 195ms, herstart-overleving bewezen.
Nog: reactor-token 1 jaar geremint (interim); productie vereist AppRole of een renewal-cron.
W1-18DeployBlue-green + auto-rollback liveAf · live
Gedaan: live bewezen op Dokploy: pointer-flip in 2,5s, warme rollback-flip in 1,7s; auto-rollback op SLO-alarm als noodpad dat óók slaagt als andere systemen uitvallen. Reactor + canary-image live achter de slots; nooddrill uitgevoerd (geforceerd ongezond → automatisch teruggedraaid, MTTR gemeten).
Nog: hardening (image-digest-pins, TLS vóór het paneel).
W1-19aGeheugen & lerenGeheugen-service + degradatie-alarmAf
Gedaan: geheugen-service (agentdb) + dag-één-alarm op stille degradatie van het geheugen.
W1-19bGeheugen & lerenLeer-prior + Knowledge-CuratorAf · live
Gedaan: leer-prior op acceptatie-oordelen + curator die alleen uit betrouwbaar bewijs leert (een mislukte of onduidelijke run kan het vertrouwen nooit omhoog duwen); kennis-promotie strikt achter de poort. Live bewezen: de straat leert van geslaagde én mislukte runs, inclusief rollback-attributie op de juiste run.
W1-20SlotbewijsRenovate-loop + dubbel slotbewijsAf · live
Gedaan: de kwartier-poll pakt echte updates op en draait ze autonoom door bouw, scan, AI-oordeel, kosten en beleid. HeadSha-binding live: automatisch mergen kan alleen exact de gereviewde code. Het dubbele slotbewijs is geleverd: goede updates na goedkeuring gemerged en live (blue-green, monitor groen), een update met een echte kwetsbaarheid autonoom geblokkeerd op de scan, en op 8 juli liep één echte update volledig autonoom — signaal → bouw → scan → AI-oordeel → auto-grant → merge → deploy → monitoring — zonder mensenhand.
Wave 1 bewees de basisloop; vóór er een echte app in gaat, wordt de canary trede voor trede zwaarder en sluiten we elk resterend gat — met per trede een aanvalsproef die de straat zélf moet vangen. Treden I1 t/m I4 zijn met een uitgevoerde aanvalsproef bewezen; de mens-loop (I5) is gebouwd en gemerged en wacht nog op de uitrol met live-proef. Klap een trede uit voor het detail.
I1Kluis & scanDe smokkel-val: de kluis scant de exácte PR-codeBewezen · 9 juli
Gedaan: de kluis bouwt en scant voortaan de exácte code van de PR (per commit-vingerafdruk opgehaald in Tier 1, zonder sleutels de kluis in) in plaats van een gebakken kopie van main. Fail-closed op elke rand: geen gereviewde commit = geen run, ontbrekende bron = weigeren, misconfiguratie = luid stoppen. Dubbele proef geleverd: een benigne update liep de hele keten door tot completed, en een update met méégesmokkelde nepcredentials werd in 42 seconden autonoom geblokkeerd (secrets- én sast-detectie), vóór elke goedkeuring — geen merge.
I2AI-oordeelJudges zien de code, niet alleen de metadataBewezen · 9 juli
Gedaan: het AI-judge-panel ziet nu de volledige code-wijziging (per commit-vingerafdruk vastgepind), niet alleen de metadata. Gehard tegen prompt-injectie via de code en met een fail-closed limiet op de diff-grootte. Dubbele proef geleverd: twee gesaboteerde updates — een subtiele logica-achterdeur én een prompt-injectie verstopt in de code — werden allebei autonoom afgekeurd (score 0), terwijl de scanners niets zagen. Precies het gat dat scanners alleen niet dekken.
I3Deploy & bewakingGroen-maar-kapot: functionele proef na deployBewezen · 10 juli
Gedaan: de bewaking kijkt niet meer alleen of de app "leeft" (healthcheck) maar of hij functioneel klopt (echte endpoint-proef na deploy). Bewezen met een chaos-image: een app die opstart maar de verkeerde versie serveert, zakt voor de functionele proef en de update wordt niet afgerond. Neg-controle: een gezonde update haalde de proef groen door.
I4App-realismePreppa-lite: database, migraties, meerdere servicesBewezen · 10 juli
Gedaan: de canary heeft de vorm van een echte app gekregen (database + migraties + een schema-endpoint). Echte migratie-risico's zitten nu in de beslissing: een onomkeerbare wijziging (bijv. een kolom droppen) wordt herkend. Bewezen: een omkeerbare migratie liep netjes door tot afgerond, en een escalatie-proef toonde dat een onomkeerbare migratie op de draaiende versie de warme terugrol blokkeert en in plaats daarvan een incident escaleert — nooit een stille terugval naar een kapotte versie.
I5Mens-in-de-loopDe mens-loop live: T2/T3 end-to-endIn aanbouw · stap 1-8 gemerged
Gedaan: de volledige mens-loop is gebouwd, adversarieel gereviewd en gemerged (8 van 9 bouwstappen). Dat omvat: duurzame wachtrij-opslag in Postgres (overleeft herstarts), test-MFA (eenmalige code, aan de specifieke goedkeuring gebonden), de goedkeur-dienst met een beveiligde beslis-API (rol en identiteit komen uit het token, niet uit het verzoek), de escalatie-sweep, de Windmill-hervat-brug (tegentekening → durable hervatten — de kern en het grootste risico, met een adversariële review op vijf faalvormen) en het notificatiekanaal dat een mens paget bij park, escalatie of incident (ntfy + e-mail).
Nog: stap 9 = de dienst uitrollen als losse service + de zeven-slags live-proef die de trede sluit: een mens-co-sign hervat een geparkeerde run tot afgerond via het échte pad, een herstart verliest nul goedkeuringen, en de sweep escaleert én paget een mens met bewijs. Later nog: een goedkeuringsscherm (ruvocal) en een echte MFA-provider in plaats van de test-variant.
Echte Headliners-apps de straat in, te beginnen met Preppa, elke merge menselijk goedgekeurd. Plus zwaardere isolatie op een eigen server, kwaliteitsmetingen voor het AI-oordeel en dashboards.
Apps van klanten in de straat en de volledige levenscyclus: van idee tot deploy, van incident tot fix. Autonomie wordt per actietype omlaag verdiend; opschalen naar meerdere servers.
Harde poorten vóór echte autonomie: de headSha-binding vóór automatisch mergen staat live, en sinds 9 juli scant de kluis de exácte PR-code (I1, bewezen met de smokkel-val); wat blijft staan is beslisfeiten cryptografisch binden aan hun bron (W1-09-koppeling, getrackt). Werkwijze per ticket: bouwen, adversariële AI-review met drie lenzen, fixes, CI groen, pull request, menselijke merge; live-bewijzen worden apart afgevinkt en nooit geclaimd zonder uitgevoerde run.
Bewijzen, dan pas opschalen
De straat verdient elke volgende stap met bewijs. Voorgestelde mijlpalen, ter bekrachtiging door de eigenaar:
Goede updates automatisch live (één volledig autonoom), gesaboteerde aantoonbaar geblokkeerd.
Vijf steeds zwaardere aanvalsproeven, trede voor trede (I1-I4 ✓ bewezen · I5 mens-loop gebouwd, wacht op uitrol). Parallel: goedkope hardening.
Eerste echte app, elke merge menselijk goedgekeurd. Vier weken zonder platform-incident.
Demo met bewijs en grootboek. Eerste betaalde onderhoudsklant, mens keurt alles.
Per actietype meer zelfstandigheid na bewezen schone runs. De marge groeit met het vertrouwen.
Meetlat
De straat moet aantoonbaar beter zijn dan de gratis basisoplossing (update-bot plus CI). Haalt hij dat niet vóór 1 oktober, dan bevriezen we de uitbouw en heroverwegen we.
Gevraagd besluit
Akkoord op de mijlpaal-data en de meetlat. Daarnaast twee eigenaarskeuzes: sleutelbeheer van de kluis (waar liggen de reservesleutels) en wie de tweede goedkeurder wordt bij zware besluiten.
De straat bouwt.
Jij beslist.
Aida maakt van Headliners wat het wil zijn: een AI development agency die webapplicaties onderhoudt met agents die het werk doen, poorten die de risico's bewaken en mensen die de beslissingen nemen.