Machinekamer
De werkvoorraad en de levenstekens van het systeem zelf: draden, hartslag, lessen en wat er nog in de usagetank zit.
Peilmoment: 2026-10-17 09:45Bron: verversing.js
Open draden
4
Wacht op David
0
Hartslag vers
26 / 26
alle onderdelen binnen hun drempel
Usagetank (7 dagen)
76%
geblokkeerd · 42.7% per resterende dag
Actieve lessen
118
10 berichten in 4 draden
Draden
de werkvoorraad, met het terugkeercriterium erbij
| Draad | Soort | Status | Laatste bericht | Bijgewerkt | Af zodra |
|---|---|---|---|---|---|
| Is een threadsysteem de juiste vorm voor mijn eigen administratie? | bouwplan | open | besluit · 2 bericht(en) | 2026-09-13 07:10 | Af zodra er een keuze ligt die ik kan uitvoeren: vorm behouden, aanpassen of vervangen, met de reden erbij. |
| Een uitrol in dezelfde beurt doodt het eigen antwoordkanaal | les | open | les · 1 bericht(en) | 2026-09-12 21:56 | Vervalt zodra chat-jobs een herstart overleven, of zodra de debug-workflow bij found:false eerst /health leest. |
| Machinekamer-platform fase 1 gebouwd | bouwplan | open | meting · 5 bericht(en) | 2026-09-12 21:14 | Fase 2 (leespagina voor David, migratie 01_Ontwikkeling, embedder) is pas af als de vectorlaag gevuld kan worden. |
| Heartbeat zuiniger — bouw in stappen | bouwplan | open | besluit · 2 bericht(en) | 2026-09-12 21:01 | Stap 7 is het echte ijkpunt: een week dubbel draaien en vergelijken wat de wekker vond met wat de vaste tikken vonden. |
Hartslag
levenstekens per onderdeel; het ontbreken van een verse stempel is zelf de melding
| Component | Oordeel | Laatste ronde | Ronde | Gemeten | Drempel |
|---|---|---|---|---|---|
| ciso AI - CISO-ronde, maandag 06:00 (skill ciso) | vers | 2026-10-12 | 2 | 9 | 216 u |
| ciso_bezorger AI - CISO-bezorger, elke 15 min: bundel naar de debug-bot op een computermoment | vers | 2026-10-17 | 1091 | geen telling | 2 u |
| ciso_dag CISO-dagcheck (ciso-dag.mjs via AI - Keten-attest 06:25) | vers | 2026-10-17 | 7 | 6 | 48 u |
| droomronde AI - Machinekamer droomronde, dagelijks 05:30 | vers | 2026-10-17 | 33 | geen telling | 48 u |
| healthpod_offsite Versleutelde health-pod-dump naar Drive (healthpod-offsite.sh via vault-offsite.sh, eerste wekkertik na de dump van 02:40) | vers | 2026-10-17 | 6 | 1 | 48 u |
| locatie Locatie van Davids telefoon via Tasker (AI - Locatie (Tasker)), elke ~10 min | vers | 2026-10-17 | 2011 | 1 | 6 u |
| olares_login Olares-login van Socev (olares-login-check.py via AI - Keten-attest 06:25); bevindingen 1 = login werkt niet | vers | 2026-10-17 | 11 | 1 | 26 u |
| outlook Outlook meelezen op de praktijk-pc (Taakplanner elk uur): mails of levensteken via AI - Outlook meelezen | vers | 2026-10-16 | 182 | 0 | 72 u |
| parro Parro meelezen op de praktijk-pc (Taakplanner 07:15 en 16:15): levensteken of berichten via AI - Parro meelezen | vers | 2026-10-15 | 28 | 134 | 72 u |
| podstaat_offsite Podstaat-bundel versleuteld naar Drive (podstaat-offsite.sh via vault-offsite.sh, eerste wekkertik na middernacht) | vers | 2026-10-16 | 12 | 232 | 48 u |
| r230_nachtcheck uitwijkserver R230: nachtronde vanaf de pod (bouwplan uitwijk §13.7) | vers | 2026-10-17 | 10 | 1 | 48 u |
| sms_aanvoer Inkomende SMS in sms_inbox (gebeurtenisgestuurd, geen ritme) | vers | 2026-10-16 | 45 | 1 | 120 u |
| stiltewachter AI - Stiltewachter, elk uur op :35 | vers | 2026-10-17 | 804 | 10 | 3 u |
| teams Teams meelezen op de praktijk-pc (Taakplanner elke 15 min): berichten of levensteken via AI - Teams meelezen | vers | 2026-10-15 | 313 | 1 | 72 u |
| uitwijk_sync uitwijk-VPS: nachtelijke sync (bouwplan uitwijk §4.3) | vers | 2026-10-17 | 11 | 157 | 48 u |
| vault_sync_r2 Eenrichtingssync vault -> EU-R2-bucket socev/vault (sync-naar-r2.sh) | vers | 2026-10-17 | 37 | 3978 | 48 u |
| voor_jou Voor jou-beheerronde (n8n AI - Voor jou-beheer, 07:15 en 17:15) | vers | 2026-10-17 | 14 | 18 | 15 u |
| voorwerk AI - Voorwerk (vergaderbriefings), dagelijks 18:00 (vr/za alleen stempel) | vers | 2026-10-16 | 12 | geen telling | 30 u |
| voorwerk_acties AI - Voorwerk (acties in porties), 06:30 selectie (za/zo en stil: stempel) + 07:05 versturen ma-vr (stempel na verzending) | vers | 2026-10-17 | 13 | geen telling | 30 u |
| voorwerk_mail AI - Voorwerk (herinneringsconcepten), dagelijks 06:00 (za/zo, feestdag of zonder kandidaat: alleen stempel) | vers | 2026-10-17 | 12 | geen telling | 30 u |
| voorwerk_ochtend AI - Voorwerk (ochtendblok), dagelijks 06:30 (za/zo alleen stempel) | vers | 2026-10-17 | 13 | geen telling | 24 u |
| wachter-actie AI - Actie-Bewaker, elke nacht 04:45 | vers | 2026-10-17 | 33 | geen telling | 48 u |
| wachter-agenda AI - Agenda-Wachter, elke nacht 04:00 | vers | 2026-10-17 | 33 | geen telling | 48 u |
| wachter-correspondentie AI - Correspondentie-Wachter, elke nacht 03:40 | vers | 2026-10-17 | 33 | 3 | 48 u |
| wachter-personeel AI - Personeels-Wachter, elke nacht 04:15 | vers | 2026-10-17 | 33 | geen telling | 48 u |
| werkvoorraad AI - Werkvoorraad-tikker (CH35hNIhH4aKJA4H), elke 2 min (sinds 8-10; daarvoor 10 min): stempel bij elke tik | vers | 2026-10-17 | 6709 | geen telling | 0.5 u |
Lessen
vastgelegde valkuilen, met hoe vaak ze zijn teruggekomen
| Les | Hoe voorkom ik het | Gezien |
|---|---|---|
| Een achtergrondagent start je altijd met chat_id 40687; de route naar de machinekamer regelt het LABELPREFIX, niet het chat-id | chat_id altijd 40687 (of weglaten, dan is dat de default). Wil je dat het rapport in de machinekamer landt, zet dan het prefix machinekamer: voor het label. Controleer na een agentstart in /agents of rapport op verzonden staat en niet op mislukt. | 1316× |
| Geef een achtergrondagent de opdracht zijn subagents alleen met run_in_background false te starten en pas een eindrapport te geven als het werk af is; zijn laatste antwoord beëindigt de run. | In elke /agent-opdracht een werkwijze-eis: werk zelf of subagents synchroon; laatste antwoord = eindrapport; skelet vroeg wegschrijven. | 1148× |
| Kijk in de Ontwikkelagenda vóór je opschrijft dat je iets niet kúnt. Een skill die iets niet noemt is geen bewijs dat het niet bestaat. | — | 1082× |
| Bij elke bouwstap met akkoord van David zet je in dezelfde beurt ook het bijbehorende agendapunt in de Ontwikkelagenda en de rijen in de machinekamer-box dicht (of bij, met wat er nog openstaat). | Na publiceren/uitrollen en de eerste geslaagde productierun: zoek in 01_Ontwikkeling/Ontwikkelagenda.md en 00_Systeem/Meldingen/machinekamer.md op het onderwerp, zet status afgehandeld met één regel wat er gedaan is en waar het vastligt (wijzigingslog/bouwplan). Wacht de verificatie nog, zet dan 'bezig — gebouwd, verificatie op <moment>' en sluit bij de verificatie. | 1026× |
| Elke zin naar David moet zonder mijn context te begrijpen zijn: geen interne codes, geen voorbehouden over mijn eigen meetwerk | Noem het ding in gewone woorden of laat de zin weg. Interne codes (fase 0b, A1, G8, rubriek, sentinel, spot-check) alleen als ze in dezelfde zin worden uitgelegd. Een voorbehoud over de betrouwbaarheid van mijn eigen meetwerk hoort in de box, niet in een bericht aan David. | 832× |
| Niet alles wat David vraagt hoort in de vault: een hypothetische vraag, een grapje of een wat-als-scenario is geen feit om vast te leggen - leg de uitkomst pas vast als het over zijn echte situatie gaat, of vraag het. | Beantwoord een hypothetische of schertsende vraag gewoon in de chat en laat de vault met rust. Twijfel je of iets duurzaam is: leg het niet vast en vraag het bij de volgende gelegenheid. Verwijderen kan altijd, maar wat eenmaal in een dossier stond is in een export of bij een adviseur niet meer terug te halen. | 786× |
| Start een achtergrondagent pas als zijn invoer compleet is, en laat hem nooit wachten op iets dat nog binnenkomt: zijn run eindigt met zijn beurt. | Loopt de invoer nog (transcriptie, download), plan de agentstart op een tik-uur waarop hij klaar is, en schrijf in de opdracht dat hij niet mag wachten maar verwerkt wat er ligt en afsluit met zijn rapport. | 760× |
| Een bron die niet in mijn log staat, is niet hetzelfde als een bron die niet is geraadpleegd | Voordat je uit een ontbrekende logregel een gedragsconclusie trekt: kijk of er een tweede route naar dezelfde inhoud bestaat, en zoek in de sessie van die run naar wat er werkelijk is gelezen. Formuleer anders wat je meet: nul aanroepen van X, niet hij heeft X niet bekeken. | 640× |
| Voordat er iets op het forum gaat: bedenk wie er meeleest, niet wie er gisteren meelas. | — | 582× |
| Zoek eerst of er een bestaande standaard of tool is die het probleem al oplost, vóór je een eigen protocol of systeem laat uitwerken | — | 375× |
| Bij een stille Teams-intake is de eerste vraag of de Teams-app openstaat, niet of de taakplanner draait | Outlook en Parro stil = pc uit. Alleen Teams stil, terwijl de andere twee leveren = de app staat dicht; vraag David of hij Teams wil openen. Er gaat niets verloren: het script kijkt 30 dagen terug op bericht-id, dus de gemiste periode wordt alsnog opgehaald. | 371× |
| Een regel in het knoppen-actielijstje moet zonder context te herkennen zijn: tegenpartij plus wat er van David verwacht wordt, nooit een afgekapt onderwerp. | Labels opbouwen als "<naam> — <handeling>" (bv. "Lisanne Ludikhuize — waarneemovereenkomst december tekenen"); afkappen op woordgrens, naam altijd erin. | 348× |
| De Socev-app is het hoofdkanaal: stuur David voor bevestigingen, knoppen of briefings niet naar Telegram, en zet een route die nog op Telegram staat als klus bij de machinekamer. | In een app-antwoord geen "druk in Telegram" als standaard; ziet een luik nog Telegram als route (knop_in telegram), dan één regel uitleg en meteen een werkvoorraadrij om de route naar de app te zetten. | 321× |
| Vraag naar de gespreksgeschiedenis vóór je een gespreksleidraad maakt; ga er nooit van uit dat de vault compleet is. | — | 306× |
| Zet in de ochtendbriefing of een ander bericht in het hoofdkanaal nooit systeemstatus zoals n8n, backups of negeerlijsten; dat hoort alleen in de machinekamer. | Systeem- en workflowstatus naar de box; in het hoofdkanaal alleen wat zijn dag raakt, in gewone taal. | 301× |
| Verifieer de claim van een achtergrondagent vóór je hem doorgeeft, ook als het rapport netjes oogt. | — | 253× |
| Zet een geheim nooit in een commandoregel, ook niet via shell-substitutie: een syntaxfout print de hele regel | Lees een geheim binnen het script uit de omgeving (process.env of /proc/1/environ) in plaats van het via de shell in te vullen. Bij python3 - heredoc of node -e: nooit interpoleren. En bij twijfel eerst printen wat je gaat uitvoeren, zonder de waarde. | 227× |
| Na een bugfix in een bestaande n8n-workflow: altijd publiceren én de publicatie verifiëren — `activeVersionId` moet gelijk zijn aan de nieuwe conceptversie. | — | 222× |
| Zet je een geplande taak om naar een verse sessie per run, schrijf dan elk antwoordformaat waar een n8n-controle op leunt letterlijk in de prompt: een oud gesprek had dat formaat vaak zelf aangeleerd. | Vóór het omzetten: zoek in de knopen na de run naar test/match/includes op de uitvoer en controleer dat elk van die kenmerken in de prompt zelf staat. Na het omzetten één productierun draaien en de controle-uitkomst bekijken, niet alleen de status. Een vals alarm uit een proefrun meteen uit de ochtendbuffer halen. | 203× |
| Een antwoord op een opdracht uit de auto hoort hardop in de auto; landt het rapport toch in Telegram terwijl David rijdt, stuur het dan via /auto-intern/bericht na het kastje. | Bij een agentrapport met label auto: eerst /auto-intern/aanwezig met het job_id; staat het kastje op in_auto, dan een korte voorleestekst via /auto-intern/bericht en de uitkomst in auto.log controleren (voorgelezen); oorzaak in de box. | 187× |
| Toets een openstaande registerregel met de bron die er specifiek voor bestaat vóór je hem seint - de regeltekst is een momentopname, geen meting. | Voor een seinmoment uit Deadlines.md: haal eerst de bron op die de stand meet (werkrooster, agenda, databank, mailbox) en pas de registerregel aan met een gedateerde meting. Klopt de aanname niet meer, dan is het antwoord NIETS en niet een afgezwakte melding. | 184× |
| Een correctie van David op een aanname kan de conclusie kantelen; controleer wat er op die aanname rustte vóór je "dan vervalt dat" zegt. | — | 165× |
| Een bericht met meerdere punten voor de app zet elk punt op een eigen regel (markdown-lijst of lege regel ertussen); punten met • achter elkaar worden in de app één lap tekst. | Bij app-teksten lijstjes als - of met lege regels schrijven en de weergave in de app meten; reparatie van de briefing loopt via wv484. | 151× |
| Een WhatsApp-bijlage die de chat reader niet ophaalt (zip, groot bestand) haal je zonder n8n-geheugen op: een lijst-run met downloadMedia=false geeft url en mediaKey, en de pod ontsleutelt het bestand zelf. | Vraag via een ongepubliceerde lijst-run alleen de berichtmetadata op, download het .enc-bestand van de CDN, ontsleutel met HKDF-SHA256 (WhatsApp Document Keys) + AES-CBC en toets MAC en sha256; nooit via de reader of Drive. | 141× |
| revoke van anon is niet genoeg: Postgres geeft nieuwe functies EXECUTE aan PUBLIC | Bij elke nieuwe functie: revoke execute van public, anon en authenticated, en usage op het schema intrekken. Daarna toetsen met de anon-sleutel dat het 401 geeft. | 141× |
| Schrijf mijn naam in een tekst die een TTS-stem gaat uitspreken fonetisch: Engels "So Kev", Nederlands "Zo Kef" - nooit "Socev" of "Zowkef". | Bij elke voorleestekst waarin ik mezelf noem de fonetische spelling gebruiken en bij een nieuwe stem eerst een korte proef laten beluisteren. | 139× |
| Stel per agenda-afspraak een eigen voorstel; bundel je er meer, zeg dan vooraf dat David per afspraak een bevestigingsknop krijgt. | Eén afspraak per voorstel, of bij een bundel: noem de afspraken met datum en tijd en kondig aan dat er per stuk een knop Uitvoeren komt. | 133× |
| Zoek Davids appjes aan zichzelf in de WhatsApp-groep Zelf, niet in de chat met zijn eigen nummer. | chatId 31641534952-1463163046@g.us via whatsapp-chat-uitlezen; spraakherkenningsfouten verwachten (SOCF = Socev). | 118× |
| Geef niet te snel op bij een bijlage: haal het gesprek opnieuw op en wácht op de sync. | — | 110× |
| Zet een seinmoment niet in het dagplan als de ochtendbriefing van 07:00 hetzelfde punt al brengt; dan is het een dubbel bericht. | Bij het opstellen van het dagplan nagaan wat de ochtendbuffer/briefing al meeneemt (wachters, Deadlines-seinen); staat het daar, dan geen aparte tik. | 92× |
| Een vergadersamenvatting kan over meerdere organisaties gaan; de titel dekt niet alles wat erin staat, dus toets per blok of het onderwerp wel bij dat project hoort. | Toets bij een notulen- of transcriptblok eerst of het onderwerp binnen het project valt dat in de titel staat. Is dat niet vast te stellen, noem het dan niet of vraag het - een misplaatst blok kost David meer dan een weggelaten detail. | 92× |
| De mail-API geeft UTC, WhatsApp geeft lokale tijd. Reken +2 (zomertijd) vóór je iets over volgorde beweert. | — | 86× |
| Een doorgestuurde mail van de assistente zonder tekst met alleen een PDF over behandelingen is vrijwel altijd patiëntgebonden: archiveren, niet aan David voorleggen. | Bij een lege doorstuurmail van de assistente met een medisch klinkende bijlage: archiveren als patiëntgebonden en niet in de samenvatting noemen. | 84× |
| Meld nooit dat een overleg geen agenda heeft op grond van mail alleen: kijk eerst in de Notulen-map van het gremium of er al een (concept)agenda staat. | Bij elke agenda-check eerst ls/grep in <entiteit>/Notulen op de overlegdatum, dan pas mail. | 82× |
| Bij een praktijkgebonden afspraak is een leeg Google-agenda-item nooit een bevinding. | — | 81× |
| Lever bij een gespreksleidraad ongevraagd ook een versie die de medewerker zelf mag zien. | — | 81× |
| Een afronding hoeft geen restpunt op te leveren. | — | 79× |
| Gooi een bijlage pas weg als je kunt aanwijzen wáár de duiding ervan is opgeslagen. | Voor het verwijderen: grep de bestandsnaam over de vault. Kom je hem tegen in een dump of op een pagina, dan is de duiding bewaard en mag het beeld weg. Vind je niets, laat het staan en noteer waarom. | 77× |
| Vraagt David in het hoofdkanaal om iets technisch (een script, een koppeling), lever dan alleen het resultaat met één regel; uitleg over de werking, correcties op eerdere technische stukken en beveiligingsbevindingen gaan naar de machinekamer. | Bestand of antwoord in één regel in het hoofdkanaal; de techniek, de foutcorrectie en het secret-verhaal als rij in machinekamer.md. | 73× |
| Meld geen mislukte n8n-executies van de Facturenfabriek v2 (FV2-workflows) en de n8n-Backup zolang dat systeem in opbouw is: work-in-progress, faalruns mogen genegeerd worden. Meld alleen als een wél draaiend onderdeel opnieuw begint te falen. | — | 73× |
| Een externe afspraak die botst met een ingeroosterde praktijkdag is géén bevinding: de tijd staat vrijwel altijd al geblokkeerd in de HIS-agenda, en dáár kan ik niet bij. | — | 71× |
| git checkout op een bestand dat een ander proces ongecommit heeft laten staan is een verwijdering, geen terugzetting | Voor een toets die een bestand wijzigt: eerst cp naar /tmp, daarna terugzetten uit die kopie. En check git status vooraf: staat het bestand op M, dan heeft iemand anders daar werk in staan dat niet in de historie zit. | 65× |
| Schrijf elke tekst die David zelf gaat versturen - mail, app, reactie aan een collega - via de skill mijn-mailstem, ook als het geen mail is. | Bij elk concept dat David onder zijn naam verstuurt eerst de ontvangerscategorie uit mijn-mailstem bepalen en die toon, lengte en aanhef volgen; korter dan je geneigd bent. | 62× |
| Meld nooit dat David iets niet verstuurde op grond van het Outlook-register zonder eerst te kijken of dat register nog bijgeschreven wordt (jongste rij). | Bij een afwezigheidsmelding over Outlook eerst de jongste rij van outlook_zoeken bepalen; is die ouder dan een dag, dan geen melding maar een vraag aan David en een rij in de machinekamer-box. | 59× |
| In de Signal-groep van De Bevlogen Huisartsen leest David passief mee: uitnodigingen, oproepen en vragen daar zijn niet aan hem gericht en registreer je nooit. | Komt uit een Signal-dump of de sfeermeter een verzoek dat aan iedereen, de groep of collegas is gericht, registreer het dan niet - ook niet als er een datum aan hangt. Gericht verkeer buiten de groep om, zoals een mail van Christof rechtstreeks aan David over het rekenwerk, is wel gewoon een vraag aan hem. | 57× |
| Een POST is geen vraag: probeer nooit verplichte velden te ontdekken door een lege POST te sturen | Ontdek een API-contract met GET, met de documentatie, of met een weggooi-id dat je daarna verwijdert — nooit met een POST op de echte naam. Kan het niet anders: gebruik eerst een naam met prefix proef- en ruim die op. | 56× |
| Een opruimdrempel moet een verhouding tot de bestaande inhoud zijn, nooit een vast getal. | Bij elke stap die opruimt op basis van een verse vulling: eis dat de nieuwe vulling minstens een ruim aandeel van het oude totaal raakt (80 procent werkt hier), en laat de weigering luid zijn - een geweigerde opruiming is een bevinding, geen stille uitkomst. | 55× |
| Het gezin is niet gelovig; kerkelijke schoolvieringen zijn geen besluitmoment. | — | 54× |
| Zet in een concept voor David geen aanbod of toezegging die hij zelf niet deed - geen bel gerust, geen zullen we afspreken, geen ik kijk er nog naar. | Een concept eindigt met wat David zelf al heeft gezegd of wil; staat er een vervolgstap in die hij niet noemde, dan schrap ik hem of vraag ik het eerst. | 47× |
| Een Gmail-concept helpt alleen als de draad óók via Gmail loopt. Check eerst het postvak. | — | 44× |
| Ligt een openstaand punt bij iemand anders en is er geen harde grens, dan is geduld de default — ook als de meting klopt. | — | 42× |
| Een monitor die zelf stuk kan, toets je tegen de werkelijkheid vóór je alarm slaat. | — | 40× |
| Rust een onderwerp op vrijwilligheid, stel dan een open vraag in plaats van een oplossing. | — | 39× |
| Varieer de per-tik heartbeat-SMS-check licht (bv. het tik-uur in de tool-`description`) in plaats van exact hetzelfde commando te herhalen | — | 37× |
| Check bij een contractuele termijn eerst wie er aan weerszijden tekent. | — | 37× |
| Controleer 00_Systeem/Verwerkingen/ en de bronregisters vóór je meldt dat een werklijst of batch nog in de vault moet: een eerdere agent kan hem al verwerkt hebben. | Eerst grep op de werklijstnaam in Verwerkingen/ en de registers; pas daarna melden of een agent starten. | 35× |
| Notulen die de deur uitgaan, schrijf je meteen in deelbare stijl. | — | 35× |
| Bij Dominique Venne (physician assistant in opleiding) kan "PA" ook op mij slaan: "je andere PA" is Socev, Davids personal assistant. | Bij PA-woordspel in Dominiques berichten aan David: het tweede PA is Socev; het bericht is dan informatie voor mij om vast te leggen. | 30× |
| Een Olares-adres toets je 'van buitenaf' altijd met curl --resolve <host>:443:3.127.103.51 (of Chromium --host-resolver-rules); zonder dat lost de pod het domein op naar 192.168.20.28 en sla je de Olares-inlog over. | Bij elke toets of een pad publiek/zonder inlog bereikbaar is: --resolve naar het publieke IP, en in het rapport vermelden dat het zo gemeten is. Wijkt de uitkomst af van wat David ziet, eerst de route van mijn eigen meting controleren. | 30× |
| Schrijf een grens- of afscheidsbericht namens David als feedback, niet als afrekening: feiten kort, en benoem dat het besluit hem zwaar valt maar definitief is. | Bij een bericht dat een relatie beëindigt of een grens trekt: uitleggen waarom, patroon in een paar regels in plaats van een lijst, begrip tonen, het besluit als zwaar maar definitief brengen. | 29× |
| Mailtijden uit de intake staan in UTC, niet in Nederlandse tijd. Tel er twee uur bij op (zomertijd). | — | 29× |
| Na een push naar socev.dev de live pagina byte-vergelijken met het bestand; blijft hij na ruim 10 minuten oud, dan een lege herbouw-commit doen en opnieuw meten | curl de publieke URL (zonder .html, Pages redirect), cmp met publiek/<bestand>; pas bij identiek melden dat het live staat | 27× |
| Weet waar je schrijft: elke map heeft een eigenaar en een levensduur. | — | 27× |
| Een timeout per aanroep begrenst een node niet als de lus per item draait — meet altijd hoeveel items er binnenkomen. | — | 27× |
| Check bij een hercheck van een wachter-rij ook de themapagina en de gesprekspagina van de tegenpartij, niet alleen het mailkanaal. | — | 27× |
| Neem een openstaande "VRAAG AAN DAVID" nooit ongetoetst over in een nieuw dagplan; verifieer hem tegen het n8n-wijzigingslog en de voorlegkaart, niet tegen een grep op de meldingenbus. | — | 25× |
| Neem getallen en kaders uit een Plaud-samenvatting pas over na toetsing aan de vault; de samenvatting kan een totaal als per-praktijk-getal weergeven. | Afwijkingen van eerder vastgelegde kaders als vraag noemen en in de notulen het gecorrigeerde getal zetten. | 24× |
| Neem bij een toezegging van David niet de oplossing over die de ánder noemde. Stef vroeg om "een taxi", David antwoordde "tuurlijk" — dat betekent dat hij zelf rijdt, niet dat er een taxi geboekt moet worden. | — | 24× |
| Ontwerp een TTS-stem als personage (rol, leeftijd, accent, klank, desnoods de luidspreker) en houd de regie kort; probeer eerst zonder regie. | Voice design: wie spreekt er, met welk accent en welke klank; style: een paar woorden; nadruk via HOOFDLETTERS, pauzes via ... en tags als <laugh>; meerdere varianten laten beluisteren. | 22× |
| Een achtergrondagent draait hooguit 120 minuten, ook als je meer vraagt: knip een klus die langer duurt vooraf op in rondes met elk een eigen tussenresultaat. | Lees max_minuten terug in het antwoord van /agent; duurt het werk langer, plan dan ronde 2 en 3 met een weggeschreven pagina per ronde, en start de volgende ronde zodra het rapport binnenkomt. | 21× |
| De technische ontwikkeling van HuisBot/H&O loopt buiten mij om; ik bewaak daar alleen de randzaken. | — | 21× |
| "Stil verwerken" betekent GEEN bericht — ook geen bericht waarin je zegt dat je stil verwerkt. | — | 21× |
| Bij een tegenpartij die gewoonlijk binnen een dag antwoordt, dekt een inkomende-kant-check van dezelfde ochtend niets af. | — | 19× |
| Een tekstextractie uit een pdf kan er compleet uitzien en toch leeg zijn; controleer per bijlage of er inhoud is vóór je meldt dat een pakket is nagelezen. | — | 19× |
| In PL/pgSQL botsen RETURNS TABLE-kolommen met tabelkolommen van dezelfde naam | Kwalificeer in de body altijd met een tabelalias (l.id, l.keer_gezien), ook in een UPDATE-rechterkant en in een CTE. Of geef de OUT-parameters een eigen prefix. | 16× |
| Publieke pagina voor waarnemers en collega s: contact alleen via WhatsApp en Telegram, geen mail; opmaak compact en niet steriel wit, geen grote dikke regels. | Bij publieke Tolgaarde-pagina s kleuraccent, compacte regels, gewicht 500, en WhatsApp/Telegram-knoppen in plaats van mailto. | 15× |
| Een audio- of demobericht voor publiek gaat over mij als personage - wat ik zag, oppikte en deed - niet over het voorlezen van de cijfers; die horen op de pagina. | Bij een showcase eerst de verhaallijn over mezelf (concrete details die ik oppikte, hoe ik werk), de inhoud kort aankondigen en naar de pagina verwijzen. | 14× |
| Datums liegen: toets de datum van het feit, niet die van de drager. | — | 14× |
| Bij een publicatieverzoek gaat de brontekst er INTEGRAAL op; sanitiseer niet op eigen initiatief. | — | 14× |
| Bouw een presentatie voor een zaal vanuit het publiek: probleem en verhaal op de dia, geen techniek; details horen in de sprekersnotities. | Eerst de verhaallijn in mensentaal (probleem, oplossing, voorbeeld), weinig tekst per dia, techniek alleen in de notities of bij vragen. | 13× |
| Een controle via een nummer, adres of contact dat de vragende partij zelf aanlevert is geen onafhankelijke verificatie - noem het dan ook niet zo. | Bij een geldverzoek eerst vaststellen waar het controlekanaal vandaan komt; komt het van de vrager, dan geldt het als haar eigen verklaring en zoek je een route buiten haar om (ter plaatse, openbare vindplaats, rechtstreeks betalen). | 13× |
| Een oproep aan een hele beroepsgroep is geen openstaand punt van David. | — | 13× |
| Lever een plakklare tekst voor David (app-, WhatsApp- of chatreactie) in een codeblok met drie backticks, met alleen de te plakken tekst erin. | Toelichting buiten het blok; in het blok alleen de tekst die hij verstuurt. | 12× |
| Zoek een getrouwde vrouw ook op haar meisjesnaam als achtervoegsel (`-Schaap`) of op haar telefoonnummer; een zoekopdracht op de voornaam alleen verbergt haar tussen naamgenoten. | — | 12× |
| Een knoop die meerdere items binnenkrijgt en er iets mee samenvoegt, moet $input.all() gebruiken; $input.first() maakt van de rest een stille datalek. | Kijk bij elke n8n-Code-knoop met mode runOnceForAllItems of de vorige knoop meerdere items kan teruggeven. Zo ja: $input.all() en samenvoegen. Toets het aan een getal dat in de uitvoer staat (rijen_totaal versus aantal_gewijzigd), niet aan het feit dat de run groen is. | 11× |
| Laat een publieke samenvatting over een persoon door die persoon lezen vóór je hem definitief noemt. | — | 11× |
| Een app die een map van een andere app mount: waarschuw David vóór hij hem verwijdert, en laat geen data bestaan zonder geverifieerde kopie buiten die map. | Bouw nooit een hostPath naar de appData van een andere app (pak.sh weigert het nu); moet het toch, zet dan bij elke afbouw-stap voor David expliciet dat verwijderen met 'alles verwijderen' de andere app kan raken. Een nieuwe databron of dump is pas af als er een offsite kopie met sha256-toets en hartslag loopt (healthpod-offsite.sh is het voorbeeld). Vraag bij elke Voor jou-kaart 'app verwijderen': wat deelt deze app met andere apps? | 10× |
| Bepaal eerst het genre van wat je publiceert. Een pagina om iets samen leuk te maken is geen organisatiepagina. | — | 10× |
| Contracten van de POH-GGZ (POT: aanzegging, verlenging, einde) lopen via Karin van den Ekart en/of Martine van Meeteren: niet seinen, niet in de briefing als actie voor David. | Bij een POT-contractdatum alleen het dossier bijwerken; geen Deadlines-sein, geen personeels-wachter-melding, geen briefingregel. | 9× |
| Kijk wat je aantreft vóór je samenvoegt, ook als David "voeg samen" zegt. | — | 9× |
| Zet in de app agendavoorstellen één per bericht; een gebundeld Ja voert er hooguit één uit en de rest krijgt ✅-knoppen die na 30 minuten verlopen. | Bij meerdere afspraken uit de app: één voorstel per bericht met eigen vraagregel, na elke Ja de volgende; bundelen alleen als David daar zelf om vraagt. | 8× |
| Begroot parallelle modelprocessen (whisper e.d.) op geheugen per proces maal aantal voordat je ze start, met ruim 6 GB marge voor de sessies. | Eerst één proces starten en het RSS meten, dan het aantal kiezen zodat het totaal ruim onder de limiet blijft; bij twijfel drie. | 8× |
| Zoek bij een leverancier met een ticketsysteem óók op het ticketdomein, niet alleen op zijn eigen domein. | — | 8× |
| Vraagt David om iets met het cloudtegoed te bouwen, dan bedoelt hij het echte systeem bouwen in cloudsessies, niet een proefklus of skelet met nepdata. | Bij "met de credits voor de cloud" de bouw zelf in de cloudsessie plannen (eigen repo, branch/PR), met de gewone grenzen: geen sleutels of vault in de cloud, review vooraf, niets live zonder Davids knop. | 7× |
| Concludeer bij GHAWA/Gambia-administratie nooit dat iets niet kan sluiten op basis van wat ik zie: David heeft stukken in de Google Drive van david@ghawa.org waar ik niet bij kan; benoem het gat als vraag. | Bij een gat in bonnen of bewijs rond GHAWA, ECG of Wilde Ganzen eerst vragen of het in de GHAWA-Drive staat; het werkblad leveren als hulp, niet als oordeel. | 7× |
| Bij een terugkerende afspraak niet alleen het ritme beoordelen maar ook de uitnodiging ernaast leggen. | — | 7× |
| Een afgekapte zoekuitslag is geen uitslag: `max` is een kap, geen totaal. | — | 6× |
| Een bijlage die nog niet doorgesynct is, is een gat in de meting en geen "kijk ik later even na" — benoem wat je mist, en pak het dezelfde nacht alsnog op. | — | 6× |
| Stilte van een leverancier heeft vaker een menselijke reden dan een zakelijke; laat ruimte voor de verklaring die je niet kunt zien. | — | 6× |
| Persoonlijke mijlpalen meld je weken van tevoren én mét een concreet voorstel voor een cadeau of uitje — niet de avond ervoor, en niet kaal. | — | 5× |
| activeVersionId natellen bewijst niets over een gewijzigde cron | Bij een schedule-trigger altijd deactiveren en heractiveren, en pas geverifieerd zeggen na een waarneming op een uur dat alleen in de nieuwe cron bestaat. | 4× |
| Laad een prognose van de boekhouder in jaarrapportvorm nooit via de laadroute van de fin-datahub; die boekt hem als echte jaarrekening. | Bij een financieel stuk eerst de status toetsen (samenstellingsdatum, staat er prognose of schatting in de begeleidende tekst); een prognose alleen in de vault (Bronnen + prognosepagina) en nooit in reeks/jaarrekening_post. | 3× |
| Bij extern zoeken naar een privépersoon: stop bij afwezigheid van een publieke voetafdruk. | — | 3× |
| De score van een beoordelingsmodel is geen percentage: toets eerst op welke schaal hij staat voordat je er drempels op zet. | Stuur eerst één proefvraag en lees de legenda en de kansverdeling in het antwoord; reken de verwachtingswaarde na en leg dan pas de drempels. | 2× |
| Meld een n8n-wijziging pas als geslaagd na drie stappen: publiceren, verifiëren dat `activeVersionId == versionId`, en één geslaagde productierun afwachten. | — | 1× |
| Schrijf een plakklare tekst zo dat er geen handeling in staat die ík niet kan doen. In een concept voor David is "ik" altijd David; een zin als *"ik stuur hem nu door"* leest als een toezegging van mij, terwijl ik niets verstuur. | — | 1× |
| Een uitrol is de laatste handeling van een beurt, nooit een tussenstap | Plan een uitrol als laatste stap. Moet er daarna nog iets gemeld worden, doe de uitrol dan een beurt later. Kan het niet een beurt later, dan is de veilige vorm een GEDETACHEERDE uitrol met vertraging: setsid bash -c 'sleep 240; bash /opt/data/claudebot-src/uitrol.sh <SHA> > /opt/data/uitrol.log 2>&1' (of, bij lopende machinekamer-agents, setsid /opt/data/mk-scripts/uitrol-na-agents.sh <SHA> </dev/null >/dev/null 2>&1 &) als laatste handeling - met de SHA van de geteste commit, NIET main: main wordt pas na de sleep opgelost, dus een commit die in die vier minuten binnenkomt gaat ongetoetst mee (review 23-9-2026). Het antwoord wordt dan nog bezorgd en de uitrol volgt erna; verifieer /health in de volgende beurt (bewezen 19-9-2026). Sinds 28-9-2026 wacht uitrol.sh zelf tot er geen beurt, onopgehaald resultaat of agent meer loopt (/health lopend + agents.lopend, plafond 30 min). Gebruik bash /opt/data/claudebot-src/uitrol.sh <SHA> (met bash ervoor: in de repo is het script niet uitvoerbaar; 28-9 06:25 faalde de uitrol daardoor met Permission denied) en nooit /app/uitrol.sh zolang `grep -c MARKER /app/uitrol.sh` 0 is (dat image kent de uitrolmarker van wv91 niet: de tikker start tijdens het wachten nieuwe agents en na 30 min breekt de uitrol ze af, 8-10-2026 wv16 en wv52); de sleep 240 blijft nodig voor je eigen antwoord. Een eigen uitrolwachter die alleen naar agents kijkt is niet genoeg: 27-9 22:42 viel zo een uitrol midden in een machinekamer-beurt. | 1× |
| Maak een Hidha-contract naar het model van Ankes contract (Tolgaarde 22-12-2025): alleen trede, geen schaal, en het juiste bedrag uit de LHV-tabel. | Trede + voltijdbedrag én parttimebedrag uit de Hidha-tabel op de ingangsdatum, periodiek per 1 januari, vakantie 233 u × uren/40, opzegtermijn werknemer 2 maanden, proeftijd alleen als afgesproken. | 0× |
| Filter of verberg nooit tekst naar David toe wegens mogelijke patiëntgegevens; toon in alles wat alleen hij leest de volledige tekst. | In actielijstje, Voor jou, briefing, app-details en chat altijd de volledige regel; de patiëntgrens geldt alleen voor wat naar derden, forum of publieke pagina’s gaat en voor wat ik uit ruwe bronnen in de vault zet. | 0× |
| Vraagt David wat iets kost, geef dan de werkelijke kosten uit de jaarrekeningen, niet het tarief dat we doorberekenen (gemeente, verzekeraar). | Bij een kostenvraag eerst de kostprijs uit de jaarrekeningen (personeel, kosten, huisvesting) per eenheid berekenen; een tarief alleen als het erom gevraagd wordt of als vergelijking. | 0× |
| Vul een ontbrekende referent nooit zelf in — meld wat er staat, niet wat het betekent. | — | 0× |
| Werk dat een beurt niet kan uitzitten hoort in een `/agent`, ook als het al begonnen is. | — | 0× |
| Een knoop op `onError: continueRegularOutput` faalt zonder een spoor achter te laten: geen bericht, geen mislukte run, status `success`. | — | 0× |
| Hermeet een bevinding vóór je hem in een stuk zet dat de deur uitgaat. | — | 0× |
| Een plausibel getal is geen geverifieerd getal. | — | 0× |
| Iets toezeggen is iets meteen doen. Ik kan niet uit mezelf tussen twee beurten door starten, dus een belofte die ik op een later tik-uur parkeer is geen belofte maar een gok. | — | 0× |
| Een ontbrekend veld in een API-antwoord is geen meting. Toets de afwezigheid van iets altijd met de actie die er specifiek voor bestaat. | — | 0× |
| Werk *aan* Socev gaat naar de machinekamer, ook als het dagplan of een staande afspraak het als heartbeat-taak aanlevert. Ontwikkelsuggesties, wachter-ontwerpen, sleutels en scopes zijn techniek; het hoofdkanaal krijgt dan `NIETS`. | — | 0× |
Wekkers
wat er op een moment terug moet komen
- Gepland0
- Bezig0
- Eerstvolgende—
Usagetank
hoeveel er nog in het weekbudget zit
- Zeven dagen benut76%
- Te besteden per resterende dag42.7%
- Oordeelgeblokkeerd
- Gemeten op2026-10-17 07:30
Legenda
wat de labels bij de bevindingen betekenen; zweef over een code voor dezelfde uitleg
Toon de betekenis van de A- en G-codes
A-codes — de checks van de skill systeemrapport
- A1secrets buiten de Vault (G2): grep over vault en skills op sleutels in platte tekst; meldt aantallen en bestandsnamen, nooit de waarde
- A2state-locatie per wachter: n8n Data Table versus Supabase; afwijking van de afgesproken opslagkeuze is een bevinding
- A3elke skill heeft een echte beschrijving in zijn SKILL.md (G5), minimaal 30 tekens
- A4elke actieve n8n-workflow heeft een gevuld beschrijvingsveld (G5), minimaal 30 tekens
- A5deze week gewijzigd zonder review (G4): workflows of skills zonder regel in het wijzigingslog of de Fable-voorlegkaart
- A6omvang Werklessen.md, tegen het eigen maximum van ongeveer 25 actieve lessen
- A7NIET DOEN: conflictbestanden en dubbelen zijn van de Vault-Conciërge; nooit dubbel melden (G10)
- A8versiestempel grondwet-kern per uitvoeringsoppervlak (G8): draagt elk LLM-oppervlak met handelingsruimte het actuele blok
- A9backupdekking per component (G8): is er een backup, en hoe oud is de laatste geslaagde
- A10het secret-leesluik (G2): aanroepen van het leesluik versus het aantal podherstarts in dezelfde periode
- A11dodemansknop op de verversingsjob (G8): hoe oud is het peilmoment in data/stats.json
- A12capaciteitenregister vers houden (G5, G8): 00_Systeem/Capaciteiten.md staat in de leesroute en mag niet verouderen
- A13ongepubliceerd rapport in de werkboom (G5, G9): gewijzigd maar niet gecommit onder content/ of data/status.json, ouder dan 24 uur
- A14hapert de foutmelder zelf? (G8, G9): vergelijkt over zeven dagen de mislukte uitvoeringen met de daadwerkelijk verstuurde meldingen
G-codes — de tien regels van de grondwet-kern
- G1Niets naar buiten: nooit zelf mail, WhatsApp of SMS versturen of publiceren; alleen een concept leveren
- G2Geen secrets in de vault, en niet in prompts, logs of paginateksten; hooguit de naam of de vindplaats, nooit de waarde
- G3Geen patiëntgegevens: geen namen, casuïstiek of medische details van herkenbare personen
- G4Niet bouwen zonder review: nieuw mechanisme of wijziging in een draaiende pijplijn gaat eerst langs de Fable-voorlegkaart
- G5Wat je bouwt, leg je dezelfde dag vast in Systeemoverzicht.md en het n8n-wijzigingslog
- G6Nooit zelfstandig: workflows verwijderen of archiveren, credentials aanmaken of wijzigen, of iets waarmee geld naar buiten kan
- G7Lezend tenzij anders afgesproken: WhatsApp, agenda-schrijven en de mailbox zijn read-only
- G8Meten, niet aannemen: toets of iets bestaat voordat je er een conclusie op bouwt; afwezigheid in jouw venster is geen afwezigheid in de werkelijkheid
- G9Rapporteer eerlijk: zeg wat je hebt gemeten en wat je hebt afgeleid; "niet vast te stellen" is een goed antwoord
- G10Stilte is de default bij bewaking: liever eens per dag iets waardevols dan elk uur ruis, en nooit twee keer dezelfde melding