Headliners · intern voorstel

Aida

De AI Development Street van Headliners. Webapplicaties die door AI worden onderhouden, dag en nacht. Mensen keuren goed en dragen het risico.

Voor interne collega's
Status Wave 1 bewezen · ladder 4/5 bewezen · mens-loop gebouwd
Datum 15 juli 2026
Managementsamenvatting Stand 15 juli 2026

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.

Live bewezen Gebouwd · wacht op uitrol Gepland
Waar we staan
  • 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).
Wat er nog moet
  • 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).
Business · het probleem

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.

Menselijk onderhoud schaalt lineair: tien keer zoveel apps betekent tien keer zoveel mensen. Daar blijft geen marge over.
Business · het antwoord

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.

Dit is niet een tool die Headliners gebruikt. Dit is wat Headliners ís: een AI development agency met een straat als productiemiddel.
Business · verdienmodel

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.

24/7

De straat bewaakt en herstelt ook om 03:00, zonder wachtdienst.

1 → N

Eén mens, veel apps. De wachtrij bundelt alleen beslissingen die ertoe doen.

Bewijs

Elke actie aantoonbaar in een verzegeld logboek. Dat is wat de klant koopt: rust met bewijs.

Business · de belofte

"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.

Business · veiligheidsprincipes

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.
Autonomie wordt verdiend per soort actie en direct afgepakt bij incidenten. Het systeem kan zichzelf nooit meer macht geven.
Proces · van signaal tot deploy

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.

Stap 1Signaal

Nieuwe dependency-versie, storing, kwetsbaarheid of geplande taak.

Stap 2De kluis

Bouwen en testen in de verzegelde sandbox. Zonder sleutels, zonder netwerk.

Stap 3Bewijs

Een vertrouwde laag stelt de feiten vast: tests groen? Scans schoon? Hoe groot is de wijziging?

Stap 4Poortwachter

Beleid beslist op feiten: klein en bewezen veilig mag door, de rest wacht op een mens.

Stap 5Deploy met vangnet

Uitrol met healthcheck. Wordt de app ziek, dan draait hij automatisch terug.

Stap 6Grootboek

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.

Proces · continu bedrijf

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.

Zelfherstel gebruikt de héle pijplijn. Een fix die de straat 's nachts schrijft, gaat langs dezelfde tests, scans en poorten als elke andere wijziging.
Proces · de draaiknop

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.

TierBetekenisVoorbeeld
T0 · AutonoomDoet het zelf, rapporteert achterafPatch-update met groene tests en schone scans. Noodherstel: rollback, herstart.
T1 · GemeldDoet het zelf, meldt directRoutinewijziging in een testomgeving.
T2 · GoedkeuringWacht op één menselijke klikMinor-update, productie-deploy, fix na een incident.
T3 · ZwaarExpliciet eigenaarsbesluitArchitectuurwijziging, 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.

Proces · eerst bewijzen

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.

Zo wordt veiligheid aangetoond in plaats van beweerd. Het Wave-1-bewijs is binnen; nu verdient de straat zijn eerste echte app via de canary-ladder.
Proces · Wave 1.5 · de brug naar echte apps

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.

TredeWat er dichtgaatStatus
I1 · De smokkel-valDe 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 codeHet 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-kapotFunctionele proef na deploy, niet alleen "leeft hij nog": een app die opstart maar stuk is wordt teruggedraaid.Gepland
I4 · App-realismeCanary met database, migraties en meerdere services ("Preppa-lite"): echte migratie-risico's en koude rollback.Gepland
I5 · De mens-loop liveGoedkeuringsscherm, MFA en de zware tiers (T2/T3) end-to-end in bedrijf.Gepland
Elke trede eindigt met een aanval die de straat zélf moet vangen. Pas als de hele ladder staat, gaat Preppa erin — met bewijs, niet met beloftes.
Voorbeeld · een week Preppa-onderhoud

Dinsdagnacht, 03:12

Zo ziet een incident eruit als Preppa in de straat draait. Niemand is wakker, en dat hoeft ook niet.

03:12 · Watch-loop

Preppa reageert niet meer Incident

De healthcheck faalt drie keer op rij. Geheugengebruik liep in twee uur op naar de limiet.

03:12 · React-loop · T0 veiligheidsactie

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.

03:14 · React-loop

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.

03:41 · Poortwachter

Fix wacht op mens T2 · Wachtrij

Een codewijziging na een incident deployt nooit zichzelf. Het dossier ligt klaar: oorzaak, fix, testbewijs, risico-inschatting.

08:30 · Ochtend

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.

Voorbeeld · een week Preppa-onderhoud

Woensdag: drie updates, drie uitkomsten

De update-bot vindt drie nieuwe versies. Elke update doorloopt dezelfde route en eindigt precies waar hij hoort.

Automatisch door

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.

Naar de wachtrij

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.

Geblokkeerd

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.

Die derde kolom is waarom de kluis en de poort bestaan. Precies dit scenario is als bewijstest ingebouwd: we tonen aan dat een kwaadaardige update wordt gestopt, vóór er ooit echt werk door de straat gaat.
Voorbeeld · een week Preppa-onderhoud

Vrijdag: het weekrapport

Dit is wat onderhoud kost als de straat draait: leestijd en twee klikken.

7

wijzigingen verwerkt deze week

5

volledig automatisch, met bewijs in het grootboek

2

menselijke beslissingen: incident-fix en minor-update

1

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.

Menselijke tijd deze week voor Preppa: minder dan tien minuten. Dat is het product dat we verkopen.
Technisch · architectuur

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.

BUITENWERELD · SIGNAAL EN MENS SIGNAAL Renovate ziet een update en opent een PR op GitHub GITHUB · PR-GATE + CI MISTRAL API · AI-JUDGES GOEDKEURING T2: één menselijke klik T3: twee personen · W1-15 RAPPORT weekoverzicht voor de mens alles staat in het grootboek TIER 1 · CONTROL-PLANE · VERTROUWD · DOKPLOY-VM FLOW START flow-engine pakt de PR op Windmill · W1-11 BEWIJS events uit de kluis → feiten semver · CVE · tests · W1-13 BESLISSING poortwachter · fail-closed RBAC → guardrail → OPA → audit DEPLOY Dokploy · healthcheck auto-rollback · W1-17/18 ALTIJD ACTIEF SEAM · 7 POORTEN GROOTBOEK · ED25519 VAULT · SLEUTELS NOODREM+THROTTLE · W1-16 OBSERVABILITY · W1-14 TIER 2 · SANDBOX · ONVERTROUWD · KORTLEVEND BOUW + TEST de exacte PR-head in de kluis (I1) runc-gehard · gVisor later, eigen host geen secrets, op 1 publish-cred na egress: alleen npm-proxy events: alleen publiceren altijd afgebroken NPM-REGISTRY via de egress-proxy T2/T3 T0 1 2 3 4 5 6 7 8
  1. Signaal: Renovate ziet een nieuwe dependency-versie en opent een pull request op GitHub.
  2. Flow start: de flow-engine (Windmill, W1-11) pakt de PR op; agents draaien hun stappen als flow-taken.
  3. 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.
  4. 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.
  5. Beslissing: de poortwachter beslist op die feiten, fail-closed: RBAC → guardrail → OPA → ondertekende audit in het grootboek.
  6. 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).
  7. Deploy: de deployer rolt uit via Dokploy met healthcheck; wordt de app ziek, dan draait hij automatisch terug (W1-17/18).
  8. 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.

Technisch · kernontwerp

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.

Technisch · waar we staan

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.

Wave 1 · Veiligheidsfundament + canary-bewijs · 22 tickets 100% · bewezen · stand 9 juli

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.5 · Canary-ladder · 5 treden · de brug naar echte apps 4 van 5 bewezen · I5 gebouwd, wacht op uitrol · stand 15 juli

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.

Wave 2 · Echte apps Ontworpen · start na de ladder

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.

Wave 3 · Klantwerk Gepland · start na bewezen onderhoud

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.

Bewezen met een uitgevoerde live-run (nooit geclaimd zonder run) In aanbouw / staat klaar Gepland

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.

Roadmap · van canary naar klant

Bewijzen, dan pas opschalen

De straat verdient elke volgende stap met bewijs. Voorgestelde mijlpalen, ter bekrachtiging door de eigenaar:

Wave 1 · af ✓ juliCanary-bewijs geleverd

Goede updates automatisch live (één volledig autonoom), gesaboteerde aantoonbaar geblokkeerd.

Wave 1.5 · nu, juliCanary-ladder

Vijf steeds zwaardere aanvalsproeven, trede voor trede (I1-I4 ✓ bewezen · I5 mens-loop gebouwd, wacht op uitrol). Parallel: goedkope hardening.

Wave 2 · augustusPreppa de straat in

Eerste echte app, elke merge menselijk goedgekeurd. Vier weken zonder platform-incident.

Wave 3 · Q4 2026Klaar voor klanten

Demo met bewijs en grootboek. Eerste betaalde onderhoudsklant, mens keurt alles.

Wave 3 · daarnaAutonomie verdient zich in

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.

Headliners

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.

Vragen karrar.xawi@headliners.tech
Bewijs live demo van de canary-straat op aanvraag
1 / 19