Hoi Jamal, welkom bij deze update over het "Appel"-project. We duiken in het basisdossier van de Appel-audit, een belangrijke stap voor Kimi om te controleren hoe de content voor Dani’s persoonlijke studie-Jarvis, die we "Appel" noemen, tot stand komt en waar we eventueel aandachtspunten hebben. Het doel is om precies te zien welke Appel-content waar vandaan komt, en of het voldoet aan de allerbelangrijkste regel: dat alles 100% uit Dani’s eigen boeken en studiemateriaal komt. De enige uitzondering zijn de afleiders bij flashcards, die mogen verzonnen zijn, zolang ze maar plausibel klinken.
Appel is dus Dani’s persoonlijke studie-Jarvis, draaiend op appel.haartips.nl, en de huidige versie is 9.51. Het is een uitgebreid systeem dat we de afgelopen tijd flink hebben ontwikkeld. Er is de "oude" content, voornamelijk toetsweek-materiaal van juni, direct in de hoofdapp met flashcards, open vragen en podcasts. De stembot leest hier live de lesstof voor.
Maar het zwaartepunt van deze audit ligt op de "nieuwe" content, die vanaf 18 juli is toegevoegd: de Cirkel en de Nulmeting. Dit zijn aparte pagina's en zij vormen de kern van wat we nu gebruiken. De Cirkel omvat vijf vakken – Nederlands, aardrijkskunde, biologie, geschiedenis en Frans – en per vak doorloopt Dani vier stappen: Lezen, Luisteren, Flashcards en Toetsen. Hier hoort ook specifieke audiocontent bij, ingesproken door Achird. De Nulmeting is de plek waar de echte toetsvragen vandaan komen voor deze vakken, geleverd via een speciale API, waarbij modelantwoorden natuurlijk strikt gescheiden blijven van wat Dani ziet. Daarnaast hebben we nog oefentoetsen, rechtstreeks afkomstig uit Dani’s eigen PDF-toetsen, een Franse oefenpagina, en een hele module "Succesvol Leren" met lessen en werkbladen.
En dan nu de bronnen, dit is cruciaal voor de audit. We zien dat er wel degelijk eigen boekscans van Dani op de server staan voor geschiedenis (hoofdstuk 6) en wiskunde (hoofdstuk 8 en 9). Deze worden ook gebruikt om de bespreek-bot te 'voeden'. Echter, en hier komt het belangrijke punt: voor Nederlands, aardrijkskunde, biologie en Frans zijn er géén directe scans van Dani’s boeken op de server. Deze vakken leunen volledig op toets-mij.nl. Het goede nieuws is dat toets-mij.nl via Dani's account gekoppeld is aan háár specifieke schoolboeken en methodes, zoals Talent MAX, buiteNLand en Nectar. Dit is dus wel een indirecte link naar haar eigen materiaal. Maar Kimi's audit zal vooral hierop focussen: is deze link met toets-mij.nl voldoende om te voldoen aan die harde regel van "100% uit Dani's EIGEN boeken/materiaal"?
Kortom, Jamal, Appel is een krachtig leersysteem met veel functionaliteit. Het is duidelijk dat we diverse bronnen gebruiken, met toets-mij.nl als de de facto hoofdbron voor een groot deel van de nieuwe content in de Cirkel en Nulmeting. Dit dossier biedt Kimi een solide startpunt om de bronnen in detail te valideren en te zorgen dat alles precies klopt met onze strikte regels.
Tot zover deze update, Jamal!
titel: Appel-audit — basisdossier (proces-verhaal + bronnen + risico's)
datum: 2026-07-23
doel: basis voor Kimi's audit — welke Appel-content komt uit welke bron, en waar kan het fout zijn gegaan
Appel = Dani's studie-/school-Jarvis op appel.haartips.nl (pin 2026, noindex).
Gebouwd 23-06-2026, gekloond van de Jarvis-stack op de VPS (149.210.171.174).
Huidige index-versie: Appel v9.51.
Belangrijkste harde regel (importance 10): alle studiestof 1000% uit Dani's EIGEN
boeken/materiaal, niks zelf verzinnen. Enige uitzondering: foute flashcard-afleiders
mogen verzonnen zijn (maar plausibel). Bron: feedback_appel_stof_alleen_uit_boeken.md.
Appel heeft twee generaties content naast elkaar:
A. De "oude" toetsweek-content in index.html (juni, per vak in de app zelf):
- Geschiedenis H6 (Geschiedeniswerkplaats ed4), aardrijkskunde H3 Klimaat (buiteNLand),
Frans U5/U6 (276 StudyGo-woorden), biologie H6 (Nectar), levensbeschouwing
(christendom+jodendom), muziek, plus IQ-test, typcursus.
- Vorm: FLASHCARDS.<vak> (inline JS), TOETS_<VAK> open vragen, podcasts in /va/les-*.mp3,
lesstof in het #lespanel. De stembot leest het hele lespanel live uit index.html
(_les_instructie(), ~77.838 tekens sinds succesvol-leren erbij kwam).
B. De "nieuwe" cirkel + nulmeting (18-7, losse pagina's) — dit is de kern van de audit.
cirkel.html + cirkel/data.json/var/www/appel-haartips/cirkel/data.json (bijgewerkt-veld 2026-07-18T12:52,.bak-werkbladflashcards-20260723).{voor, achter, mode} waarbij mode = semantisch of exact./var/www/appel-haartips/cirkel/<vak>.mp3 (stem Achird), 5 stuks.nulmeting.html + /opt/jarvis/nulmeting-lessons.json (API poort 8757)nulmeting-lessons.json (bron: "toets-mij.nl — recente hoofdstukken"):{n, vraag, model}.nulmeting-lessons-h1.json = alle H1/Unité-1 (begin jaar).appel-nulmeting-api.py (8757) generaliseerd met set-param: SET_PATHS =model). Nakijken via Gemini (RUBRIC_SEM / RUBRIC_EXACT).oefentoetsen.html + /opt/jarvis/eigen-toetsen.json~/Downloads/dani-eigen-toetsen/pdf/):frans.html + /opt/jarvis/frans-oefeningen.jsonfrans-stringa-lessons.json.succesvol-leren.html + /opt/jarvis/succesvol-lessons.json{nummer, slug, titel, doel,
tekst, werkbladen, antwoorden}./var/www/appel-haartips/succesvol/ (module-1 + nl-leesvaardigheid),dagstart.html + appel-dagstart.py): dagelijkse cron-podcast + agenda-PNG/dagstart/dagstart-YYYYMMDD-*.mp3+.png, dagelijks 04:45). Verrassingsvraag di+vr uit nulmeting.krant.html + appel-krant.py), bijspijker (bijspijker.html + NL-leesvaardigheid),/ai/), slaap (slaap/dani-slaap.mp4), bespreek-bot (chat-api 8754).Alleen twee vakken hebben echte boek-scans op de VPS:
- Geschiedenis — /var/www/appel-haartips/gesch/:
presentatie-6-1.pdf, -6-2.pdf, -6-3.pdf, antwoorden-h6.pdf, kennen-en-kunnen.pdf,
hoe-leer-ik.pdf, hoe-vat-je-samen.pdf. → alleen hoofdstuk 6. H5 ontbreekt als boekbron.
- Wiskunde — /var/www/appel-haartips/wiskunde/: leerboek-deel2.pdf, antwoorden-deel2.pdf,
h8-1..3.png, h9-1..5.png (+ uitwerkingen in ~/Downloads/dani-uitwerkingen/).
Let op: wiskunde zit NIET in de cirkel/nulmeting-5-vakken.
- Dezelfde bronnen als seeds voor de bespreek-bot: /opt/jarvis/appel-bespreek/ als
gesch-*.bin/.meta en wisk-*.bin/.meta (pypdf-tekst, seed=true).
- Er zijn GEEN eigen boek-scans voor nederlands, aardrijkskunde, biologie, frans op de VPS.
Die vakken leunen volledig op toets-mij (zie hieronder).
reference_toetsmij_dani_plan.md.~/Downloads/dani-nulmeting/nulmeting-<vak>-h1.txtnulmeting-lessons-h1.json./opt/jarvis/nulmeting-raw-recent.json,nederlands_h3, nederlands_h4, aardrijkskunde_h2, aardrijkskunde_h3,
biologie_h5, biologie_h6, geschiedenis_h5, geschiedenis_h6, frans_u5, frans_u6.nulmeting-lessons.json als de cirkel-lesstof/flashcards.FRANS_LISTS (index.html)frans-stringa-lessons.json.~/Downloads/succesvol-leren-hoofdprogramma/:transcripts/ — faster-whisper (model base, nl) op de Vimeo-audio (yt-dlp met00-Welkom-..., 05-M1-1.2_Het_Weekschema_14_min.txt,talen__Slim_woorden_leren_35_min.txt, nl-leesvaardigheid__Signaalwoorden_22_min.txt.pdf/, pdf-tekst/ — werkbladen (deels PNG's die .pdf heten).METHODE-succesvol-leren-module1.md, KERN-talen.md, KERN-nl-leesvaardigheid.md.haal_videos.py, haal_alles.py, batch2.sh, transcribe.py.~/Downloads/succesvol-leren-bijspijker-leesvaardigheid/bijspijker-lessons.json → bijspijker.html.reference_succesvolleren_video_transcriptie.md (importance 8).project_appel_dani_bot.md, project_appel_dagstart_dani.md,
feedback_appel_stof_alleen_uit_boeken.md, feedback_appel_volle_cirkel_stof.md,
reference_toetsmij_dani_plan.md, reference_succesvolleren_video_transcriptie.md,
project_appel_podcasts_ak_gs.md, feedback_nakijken_semantisch_niet_letterlijk.md,
session_2026-07-18_appel_autonoom.md, gotcha_appel_html_nesting.md.
fetch met X-Inertia-headers +/mijn-toetsen/<slug> → per vraagnulmeting-raw-recent.json.{n, vraag, model} per vak → nulmeting-lessons.json.appel-cirkel.pynulmeting-lessons.json (dus toets-mij-vraag→modelantwoord).maak_lesstof() geeft alle vraag→antwoord-feiten aan Gemini met opdracht: herformuleerappel-cirkel.pymaak_flashcards() = 1-op-1 vraag→modelantwoord uit nulmeting-lessons.jsonappel-cirkel.py --audio-only: dezelfde gescreende lesstof → Gemini-TTS (stem Achird),cirkel/<vak>.mp3.FLASHCARDS.<vak> + va/les-<vak>.mp3 (stem Sulafat).va/<vak>-transcript.json.transcripts/*.txt → synthese (KERN/METHODE md) → herschreven lesteksten insuccesvol-lessons.json + 71 werkblad-PDF's als download. De tekst per les is dus een/tmp/appel-deploy/ → 1 SSH-sessie met backups + sudo cp + service-restart1. Twee-laags bron i.p.v. het boek zelf (grootste risico).
Voor nederlands, aardrijkskunde, biologie en frans is er GEEN boek-scan op de VPS. De
cirkel-lesstof + flashcards + nulmeting komen allemaal uit toets-mij.nl, en de lesstof
is bovendien een Gemini-parafrase van toets-mij-antwoordsleutels. Dat is twee stappen
van Dani's echte boek af. De harde regel "1000% uit Dani's eigen boeken" wordt hier
feitelijk ingevuld als "uit toets-mij (dat op zijn boek gebaseerd is) + AI-herschrijving".
Elke afwijking van toets-mij t.o.v. Dani's exacte boekeditie, of elke parafrase-fout van
Gemini, wordt zo doorgegeven als "boekstof".
2. Chapter-keuze mogelijk aangenomen, niet bevestigd.
De "recente hoofdstukken" (nederlands H3+H4, ak H2+H3, bio H5+H6, gesch H5+H6, frans U5+U6)
zijn gekozen als "de laatste van jaar 1". Maar reference_toetsmij_dani_plan.md zegt
expliciet "Wacht op welk hfst Dani's laatste was per vak". Of dit exact Dani's laatst-geleerde
stof is, is niet hard bevestigd door Jamal. Verkeerd hoofdstuk = Dani oefent de verkeerde stof.
3. Alleen versie A geëxtraheerd.
Toets-mij heeft per hoofdstuk versie A én B; alleen A is opgehaald (quota 20/maand). De
nulmeting dekt dus maar één versie van de stof.
4. Geschiedenis H5 heeft geen boekbron.
Op de VPS staat alleen H6-materiaal (gesch/presentatie-6-*.pdf, antwoorden-h6.pdf).
project_appel_podcasts_ak_gs.md markeert H5 expliciet als ONTBREKEND. De cirkel/nulmeting
tonen tóch geschiedenis "H5+H6" — H5 leunt daar puur op toets-mij, zonder controleerbare boekbron.
5. Video-transcriptie-fouten (Succesvol Leren).
- faster-whisper base-model (nl) op Larissa's video's = geen perfecte transcriptie
(eigennamen, schema's, getallen kunnen misgaan).
- 7 lessen gaven een leeg Vimeo-ID (Welkom + Module 1 deels) → mogelijk incompleet.
- 27 werkbladen zijn afbeeldingen die .pdf heten (PNG-header) en zijn NIET ge-OCR'd →
hun tekstinhoud zit niet in de lessen.
- De les-tekst is een AI-synthese van die transcripties = extra parafrase-laag.
6. Periode "slecht draaiende bots" (~11-22 juli).
- Veel Appel-werk (cirkel, nulmeting, dagstart, succesvol-leren) is juist in dit venster
gebouwd (18-7 autonome marathon, 21-7 succesvol-leren live). Sessie-hygiëne-regel
(kwaliteitsdaling >20MB/sessie) en de "geen goedkope routers"-problematiek speelden
precies toen. Kans op onopgemerkte fouten in deze content is dus verhoogd.
- Op 23-7 nog een late edit aan cirkel-flashcards (data.json.bak-werkbladflashcards-20260723)
— controleer of die de flashcards niet stuk/inconsistent maakte.
7. HTML-nesting / JS-komma-fouten in index.html.
gotcha_appel_html_nesting.md: eerdere patches sloopten de div-nesting (panelen lekten,
knoppen dood) en meng-komma's in FLASHCARDS/TOETS_-arrays braken alle knoppen. index.html
is nu ~548KB met veel handmatige patches → structurele fragiliteit.
8. Verzonnen flashcard-afleiders.
Toegestaan én bewust "plausibel/moeilijk" gemaakt. Risico: een afleider die eigenlijk óók
correct is, of te dicht bij het juiste antwoord → Dani leert het fout. Vooral bij de
oude index-flashcards met d:[...]-afleiders.
9. Machine-/versie-verwarring.
Content leeft deels lokaal (~/Downloads/..., sub-agent scratchpad) en deels op de VPS
(/opt/jarvis, /var/www/appel-haartips). Twee generaties (juni index vs 18-7 cirkel)
bestaan naast elkaar met deels overlappende, deels afwijkende hoofdstukken (bv. index
biologie = H6, cirkel/nulmeting = H5+H6; index ak = H3 Klimaat, cirkel = H2+H3). Dani kan
via verschillende ingangen verschillende stof-versies zien.
10. Copyright/verspreiding.
Toets-mij-materiaal draagt "mag niet worden gedeeld"; Succesvol Leren is persoonlijke licentie
voor Dani. Appel is bedoeld om later aan andere Stanislas-leerlingen te verkopen/verhuren —
de huidige content is deels niet herdistribueerbaar zonder juridisch probleem.
De diepste controle-vraag is niet "staat er stof in", maar: klopt elke laag met Dani's
echte boek? De keten is meestal Dani's boek → toets-mij (versie A) → Gemini-parafrase →
Appel, met voor 4 van de 5 kernvakken géén boek-scan op de VPS om tegen te ijken. Begin de
audit bij het steekproefsgewijs vergelijken van een handvol cirkel-lesstof-zinnen en
nulmeting-modelantwoorden met de daadwerkelijke boekinhoud, en bij het bevestigen van de
gekozen hoofdstukken per vak.