CLAUDE.md 4.2 KB

Uitgaanskrant — werkinstructies voor Claude

Werkdirectory

Werk uitsluitend binnen deze projectdirectory (/home/bob/Projects/ff-app/uitgaanskrant-1qhvtd). Niet daarbuiten zoeken of scannen (bijvoorbeeld geen find / over het hele bestandssysteem) — scope alle bestandsoperaties tot dit project.

FlutterFlow-workflow — belangrijk

Dit project wordt gebouwd via FlutterFlow (app.flutterflow.io). De FlutterFlow-cloudomgeving is de bron van waarheid, niet deze lokale code-export.

  • De gebruiker kan geen code rechtstreeks genereren of bewerken in dit repo. Alle wijzigingen aan pagina's, componenten en modellen moeten via de FlutterFlow-website gebeuren.
  • De enige uitzondering is custom functions/widgets (lib/custom_code/) — en ook die voert de gebruiker in via de Custom Code-editor op de FlutterFlow-website, niet door hier rechtstreeks bestanden te bewerken.
  • Gevolg: directe Edit/Write-wijzigingen aan gegenereerde bestanden (pagina's, blocks, components, models, lib/flutter_flow/* e.d.) worden bij de volgende export/sync vanuit FlutterFlow overschreven. Zulke bestanden hier aanpassen is dus niet duurzaam.
  • Werkwijze: gebruik deze lokale repo om code te lezen, logica te ontwerpen en te verifiëren (bijv. met flutter analyze) — maar vertaal het eindresultaat naar concrete, stapsgewijze instructies voor wat de gebruiker in de FlutterFlow-builder (of de Custom Code-editor) moet doen. Ga er niet van uit dat een lokale bestandswijziging behouden blijft.
  • Als er via de Chrome-browser (Claude in Chrome) rechtstreeks in de FlutterFlow-builder wordt gewerkt: maak na elke afgeronde taak (niet na elke losse klik/handeling) een commit binnen FlutterFlow zelf (het eigen versiebeheer, te zien bovenin de builder als "main"/"Synced"), met een duidelijke omschrijving van wat er is veranderd. Dit is geen lokale git commit.

Lokale git-repo + pull/push-workflow (sinds 2026-08-01)

De projectdirectory zelf is een schone git-repo met origin op ssh://gogs.digitalforce.tv:2222/Uitgaanskrant.com/flutterflow.git, branch master. Dit is een eigen repo van de gebruiker, los van de grotere/rommelige repo die hoger in de mappenstructuur staat (die met AndroidStudioProjects, Flutter-SDK-installaties e.d.) — commits en pushes horen hier, in de projectdirectory zelf.

Vaste workflow na elke afgeronde taak (op expliciet verzoek van de gebruiker, 2026-08-01): niet los flutterflow export-code draaien, maar het bestaande script gebruiken:

/home/bob/Projects/ff-run-fvm.sh emulator-5554 uitgaanskrant-1qhvtd -s

Dit script (interactief van aard: device-run + hot-restart-loop) moet via Bash met run_in_background: true gestart worden — anders blokkeert het op de keypress-loop. Volg de output (Monitor of Read op het outputbestand) tot minimaal "All done!" (export gelukt) en idealiter ook een succesvolle app-launch op de emulator ("Flutter run key commands" / geen build-errors), voordat je verder gaat.

Daarna automatisch (geen aparte bevestiging per keer nodig, staand akkoord van de gebruiker):

  1. git addniet blind -A: controleer git status --short eerst. Voeg alleen daadwerkelijke FlutterFlow/app-wijzigingen toe (lib/, android/, ios/, pubspec, .gitignore e.d.). Sluit .claude/ uit (staat in .gitignore) — dat is sessiestate van Claude Code, geen app-code.
  2. git commit met een duidelijke boodschap.
  3. git push -u origin master (of gewoon git push zodra tracking staat).

Let op — belangrijke valkuil: flutterflow export-code overschrijft .gitignore telkens terug naar FlutterFlow's eigen standaardversie (bevestigd 2026-08-01) — een eigen toevoeging zoals de .claude/-regel hieronder verdwijnt dus bij elke pull en moet opnieuw toegevoegd worden vóór je commit. (CLAUDE.md zelf wordt door de export NIET verwijderd — dat gebeurde één keer doordat de gebruiker zelf de hele projectmap had verwijderd en opnieuw had gepulled, niet door de export-tool zelf. Maar check voor de zekerheid na elke pull toch even of dit bestand nog bestaat; zo niet, opnieuw aanmaken met deze inhoud.)

Voeg dus na elke pull, vóór je staged, deze regel weer toe aan .gitignore als hij ontbreekt:

# Claude Code session state (not app code)
.claude/