# Kritische review van de 76 modeldocumenten (2026-07-09)

Elk van de 76 modellen (38 NL/FR-paren) is gegenereerd via `vulModelVoorbeeldIn`
(dezelfde functie als de "Voorbeeld"-weergave in de app) en vervolgens kritisch
nagelezen zoals de notaris dat zou doen: niet op de manifeste-foutenklassen die
`voorbeeld-audit.ts` al automatisch bewaakt (dubbele woorden, taalvermenging,
onopgeloste `{{placeholders}}`, FR-onderdeel met NL-omschrijving), maar op
juridische/logische consistentie, structuur, hypothese-logica en NL/FR-pariteit.

Dit document is het resultaat van die eenmalige, brede pas. De opvolging
(gevonden gaten dichten) is een **wederkerende werf** — zie de openstaande
punten onderaan.

## 1. Systemische bevindingen (raken meerdere/veel modellen)

### 1.1 "VERKOOP AKTE"/"VENTE ACTE" in de repertoriumkop — OPGELOST in deze sessie
De parameter `aktetype_naam` (onderdeel `hoofding-akte`/`hoofding-akte-fr`,
`data/modeldocumenten/onderdelen/vorm.ts` en `frans.ts`) had een vast
`voorbeeld: "VERKOOP"`/`"VENTE"` op de parameterdeclaratie zelf, ongeacht het
echte `model.akteType`. Daardoor toonde de "INFORMATIE POST AKTE"-kop van
**elk niet-verkoopmodel** (zorgvolmacht, oprichtingsakte, statutenwijziging,
kredietakte, erfpacht/opstal, ruil, ontbinding-vereffening, erfopvolging,
verkavelingsakte, handlichting, schenkingsakte, testament, huwelijkscontract,
basisakte, omzetting-vennootschap, verdeling-uit-onverdeeldheid, …) toch
"VERKOOP AKTE"/"VENTE ACTE" — bevestigd in minstens 20 van de 76 modellen.
**Fix**: `AKTETYPE_LABELS`-tabel toegevoegd in `voorbeeldwaarden.ts`,
per-model afgeleid label (bv. "ZORGVOLMACHT", "OPRICHTING", "STATUTENWIJZIGING",
"KREDIET", …); `vulModelVoorbeeldIn` overschrijft `aktetype_naam` daarmee.
Regressietest toegevoegd in `voorbeeld-audit.test.ts`.

### 1.2 Dubbele "IDENTITEIT VAN DE PARTIJEN" — NOG OPEN, hoogste prioriteit
In meerdere authentieke-akte-modellen komt het onderdeel `identiteit-partijen`
(en `-fr`) **tweemaal** voor in `structuur`: één keer voor de eigenlijke
identificatie van de comparanten vroeg in de akte, en een tweede keer verderop
— vermoedelijk bedoeld om enkel de "notaris-vaststelling"-hypothese
(identiteit/burgerlijke staat) te tonen, maar omdat `identiteit-partijen` één
monolithisch onderdeel is met ALLE hypotheses (natuurlijke persoon
ongehuwd/gehuwd/samenwonend/rechtspersoon **én** de drie
notaris-vaststellingshypotheses), verschijnt bij de tweede referentie de
**volledige catalogus nogmaals**, inclusief de persoonsgegevens-hypotheses.
Bevestigd in (minstens): `verkoopakte-woning(-fr)`, `verkoopakte-wet-breyne
(-fr)`, `verkoopakte-lijfrente(-fr)`, `zorgvolmacht(-fr)`,
`aanpassing-statuten-besloten-vennootschap-wvv(-fr)` — telkens `data/
modeldocumenten/modellen/vastgoed.ts` resp. `familie.ts`/`vennootschappen.ts`,
te herkennen aan twee `{ onderdeelId: "identiteit-partijen(-fr)", ... }`-regels
in dezelfde `structuur`.
**Aanbevolen fix** (niet uitgevoerd — vergt een bewuste keuze, geen
mechanische aanpassing): splits `identiteit-partijen` in twee aparte
onderdelen — (a) identificatie van de comparant (persoon/rechtspersoon-
hypotheses) en (b) de notariële vaststelling (identiteit/burgerlijke staat) —
en verwijs in `structuur` naar elk apart op de juiste plaats. Alternatief:
als de tweede referentie enkel de notaris-vaststelling bedoelt, een apart,
klein onderdeel `notaris-identificatievaststelling` maken (wordt in enkele
`conditie`-teksten al zo genoemd, bv. in `notariele-bijzondere-volmacht`) en
dat onderdeel daadwerkelijk aanmaken/koppelen in plaats van `identiteit-
partijen` te hergebruiken.

### 1.3 Vaste ("VERKOOP"/"VENTE"-stijl) parameteromschrijving lekt als tekst
Los van 1.1: verschillende parameters met een lange, beschrijvende
`omschrijving` maar zonder `voorbeeld` leveren via de fallback
(`kortUitOmschrijving`) een afgekapte, halve zin op die als letterlijke tekst
in de akte verschijnt — bv. in `aanpassing-statuten-besloten-vennootschap-wvv`:
"de zitting wordt geopend om **Aanvangsuur van de vergadering** uur", "**Sluitingsuur
van de vergadering** uur"; in meerdere modellen: "**Volledige zin over één of
meer latere wijzigingen van het huwelijksstelsel** (bv, …". Dit is dezelfde,
al bekende bugklasse als eerder deze sessie (`voorbeeldwaarden.ts`
PATRONEN/`voorbeeld`-hints) maar nog niet uitgeput — nieuwe instanties
gevonden in `zorgvolmacht`, `wijziging-huwelijksstelsel`,
`aanpassing-statuten-besloten-vennootschap-wvv` en hun FR-tegenhangers.

### 1.4 NL/FR-inhoudelijke divergenties (niet louter vertaalverschillen)
Een aantal FR-clausules zeggen **iets anders** dan hun NL-tegenhanger, niet
enkel anders geformuleerd:
- `keuzetestament-fr`: FR beperkt het ontnemen van het omzettingsrecht tot
  "biens non préférentiels", NL doet dat niet — reëel juridisch verschil.
- `verkoopovereenkomst-heldere-taal-fr`: een vaste (niet-KIES) zin stelt dat de
  huurder al werd genotificeerd (art. 242 CBL), terwijl een latere KIES-optie
  net het tegenovergestelde veronderstelt; NL heeft dit probleem niet.
- `verkoopovereenkomst-heldere-taal-fr`: KIES-lijst mist optie "A" (springt van
  intro naar B/C).
- `oprichting-besloten-vennootschap-fr`: de zetelclausule laat in FR de optie
  "Région flamande" volledig weg (NL heeft alle 3 gewesten).
- `schenkingsakte-onroerend-fr`/`schenkingsakte-roerend-goed-fr`: de
  "Frais"-clausule staat **tweemaal** (§ 23-24/24-25), terwijl de NL-versie
  "KOSTEN" maar één keer heeft.
- Verschillende modellen (`algemeen-kader-vastgoedakte`, `schenkingsakte-
  onroerend`): de "akte wordt integraal voorgelezen indien gevraagd"-mededeling
  staat in FR als vaste tekst, in NL enkel binnen de "gedeeltelijke
  voorlezing"-hypothese — structureel verschillend basisgedrag tussen de
  taalversies.

### 1.5 Verkeerde partijterm hergebruikt uit een ander aktetype
Sporen van clausules die uit een verkoopakte-sjabloon zijn overgenomen zonder
de partijaanduiding aan te passen:
- `schenkingsakte-onroerend(-fr)`, `schenkingsakte-roerend-goed(-fr)`: "ten
  laste van de koper"/"à charge de l'acquéreur" i.p.v. begiftigde; "de koper
  verbindt zich"/"de verkoper verklaart" in de postinterventiedossier-clausule.
- `verkoopovereenkomst-compromis-fr`, `verkoopovereenkomst-compromis-wet-
  breyne-fr`, `verkoopovereenkomst-compromis-lijfrente-fr`: "**le donateur**
  déclare qu'à sa connaissance …" i.p.v. "le vendeur" bij de
  erfdienstbaarheden-clausule — vier onafhankelijke FR-compromis-varianten
  delen deze fout, wijst op een gedeeld bronfragment.

### 1.6 Zelfreferentiële placeholder-namen (dezelfde demo-naam voor onverenigbare rollen)
Een gevolg van de generieke naamgenerator (`Jan Peeters`/`Jean Dupont` als
universele demo-naam), maar op specifieke plaatsen levert dat een logisch
onmogelijke zin op — de overledene is tegelijk zijn eigen erfgenaam/
langstlevende, of de levende volmachtgever heeft dezelfde naam als "wijlen":
`aangifte-nalatenschap`, `erfovereenkomst`, `akte-erfopvolging`,
`onderhandse-volmacht`, `hypothecair-mandaat` (lasthebber = lastgever, zonder
eigen identificatieclausule), `erfkeuze-volmacht-aangifte-nalatenschap`
(en alle FR-tegenhangers). Voorstel: een tweede demo-naam (bv. "Piet Willems"/
"Pierre Dubois") gebruiken voor een rol die expliciet "de overledene"/"de
andere partij" is t.o.v. de eerst genoemde partij — vergt uitbreiding van
`genereerVoorbeeldwaarde` met een besef van "tweede persoon in dezelfde
clausule", niet triviaal met de huidige per-parameter-onafhankelijke aanpak.

## 2. Model-specifieke bevindingen (één instantie)

- **verkoopakte-woning(-fr)**: twee overlappende slotformules ("WAARVAN AKTE"
  op twee plaatsen, § 47/48) — zie ook 1.2-achtig patroon maar dan voor de
  slotclausule i.p.v. identiteit; controleren of `recht-op-geschriften-
  slotformule` en de akte-specifieke slotbepaling elkaar niet dupliceren in
  de `structuur` van meerdere modellen.
- **verkoopakte-wet-breyne(-fr)**: idem dubbele "WAARVAN AKTE"/"DONT ACTE".
- **verkoopakte-lijfrente(-fr)**: idem dubbele "WAARVAN AKTE"/"DONT ACTE";
  bovendien in § 28 vult eenzelfde placeholder-waarde zowel het
  betalingsritme als de eerste-vervaldatum van de lijfrente (type-mismatch
  parameter↔waarde); in § 30 wordt de rekeninghouder-naam met het
  rekeningnummer ingevuld en de bank met een cijfer.
- **kredietakte(-fr)**: rentevoet/looptijd tonen "250.000" zonder eenheid
  ("de rentevoet bedraagt 250.000") — evident onlogisch, param-waarde-mismatch.
- **vestiging-erfpacht-opstal(-fr)**: afgebroken zin bij de vergoedingsregeling
  voor gebouwen/werken ("... bij het….").
- **minnelijke-ontbinding-verkoopovereenkomst(-fr)**: akte verleden "te
  Leuven"/"à Bruxelles" terwijl de notaris standplaats Tervuren heeft (en
  NL/FR wijken ook onderling af); dubbele, bijna-identieke titelregel.
- **verkoopovereenkomst-compromis-fr**: bij de hypothese "bestaande
  hypothecaire inschrijving met mainlevée maar nog niet doorgehaald" is de
  tekst intern tegenstrijdig (schuldeiser akkoord "sans remboursement", maar
  notaris houdt toch bedrag in om de schuld aan te zuiveren) — wijkt af van
  de coherente NL-tekst.
- **oprichting-besloten-vennootschap(-fr)**: "Artikel 8" (NL) en "Article 6"
  (FR) staan als doorlopende tekst zonder eigen kopniveau (`###`), in
  tegenstelling tot alle andere statutaire artikelen — gebroken nummering,
  hetzelfde patroon bevestigd in `aanpassing-statuten-besloten-vennootschap-
  wvv`.
- **omzetting-vennootschap(-fr)**: geen "IDENTITEIT VAN DE PARTIJEN"-onderdeel
  — springt van de aanhef direct naar de vergadering, zonder voorzitter/
  secretaris/comparanten te identificeren; structureel gat t.o.v. de andere
  vennootschapsakten.
- **algemeen-kader-vastgoedakte-fr**: het "ondernemingsnummer" van de syndicus
  wordt ingevuld met de syndicus-náám i.p.v. een nummer; "à charge l'acquéreur"
  mist het voorzetsel "de".
- **verkoopakte-heldere-taal-fr**: twee afgebroken zinnen bij de
  stedenbouwkundige inlichtingen (Brussel/Wallonië) — "… complétées selon
  l'article D" zonder vervolg.

## 3. Buiten scope van deze pas (bewust niet als bevinding geteld)

- `[KIES: A/B]`- en `[NAKIJKEN OF SCHRAPPEN: …]`-notaties: bewust, bestaand
  redactioneel mechanisme, geen bug.
- Generieke demo-waarden ("Jan Peeters", "Leuven", "250.000"): verwacht gedrag
  van de voorbeeldgenerator.
- Reeds bekende/gedocumenteerde gaten: `GEKENDE_CAPTION_HERHALINGEN` en
  `GEKENDE_TAALGATEN` in `voorbeeld-audit.test.ts` (nu leeg).
- `zorgvolmacht` heeft `authentiekeAkte` niet ingesteld (dus `false`/
  onbepaald in de modeldata) maar de gegenereerde tekst bevat wél volledige
  authentieke-akte-formaliteiten (aanhef, "WAARVAN AKTE", recht op
  geschriften, NABAN/Izimi). Dat kan bewust zijn (een zorgvolmacht wordt in de
  praktijk vaak notarieel verleden ondanks de modelvlag), maar verdient een
  bewuste check door de notaris of de vlag `authentiekeAkte: true` zou moeten
  zijn — niet zelf aangepast, want de vlag stuurt ook de
  `akte-vormvereisten.test.ts`-guard (verplichte `aanhef-akte` binnen de
  eerste 2 structuur-items).

## 4. Openstaande punten voor de volgende ronde (wederkerende werf)

Prioriteit, hoogste eerst:

1. **1.2 Dubbele identiteit-partijen** oplossen — hoogste impact, raakt
   meerdere authentieke aktetypes, vergt een bewuste modelleerkeuze.
2. **Dubbele "WAARVAN AKTE"/"DONT ACTE"** (zie §2, verkoopakte-woning/-wet-
   breyne/-lijfrente) — controleer of de `structuur` van elk model met dit
   patroon twee slotclausule-onderdelen bevat die elkaar overlappen.
3. **1.4 NL/FR-inhoudelijke divergenties** — per geval nakijken welke
   taalversie de juiste is en de andere aligneren (geen automatische fix
   mogelijk, vergt juridische beoordeling per clausule).
4. **1.5 "donateur"/"koper" foutieve partijtermen** — vier FR-compromis-
   varianten + twee schenkingsaktes, telkens één woord/frase per instantie.
5. **1.3 Resterende omschrijving-fallback-lekken** — een volgende pas van de
   al bestaande "voeg `voorbeeld` toe aan de parameterdeclaratie"-aanpak.
6. **1.6 Zelfreferentiële demo-namen** — vergt een ontwerpkeuze
   (tweede demo-naam voor een expliciet-andere-rol-parameter) vóór het
   mechanisch aan te pakken is.

Reeds opgelost in deze sessie: **1.1** (aktetype-label) — zie
`voorbeeldwaarden.ts` (`AKTETYPE_LABELS`/`aktetypeLabel`) en de
regressietest in `voorbeeld-audit.test.ts`.

---

# Ronde 2 — diepere, programmatische pas (2026-07-09, zelfde dag)

Ronde 1 werkte met leessteekproeven; ronde 2 heeft de bevindingsklassen
**hard geverifieerd tegen de bron- én de gegenereerde data** (script over alle
76 modellen en 1.000+ parameters). Resultaten:

## 2.1 Geverifieerd en gepreciseerd t.o.v. ronde 1

- **Dubbele "IDENTITEIT VAN DE PARTIJEN" (§1.2)** — exact geënumereerd: het
  onderdeel `identiteit-partijen(-fr)` staat **tweemaal** in de `structuur`
  van **16 modellen (8 NL/FR-paren)**: zorgvolmacht,
  schenkingsakte-onroerend, schenkingsakte-roerend-goed, verkoopakte-woning,
  algemeen-kader-vastgoedakte, verkoopakte-wet-breyne, verkoopakte-lijfrente,
  aanpassing-statuten-besloten-vennootschap-wvv (+ FR-spiegels). Ronde 1 had
  er 5 paren van gezien; de schenkingsaktes en het algemeen kader kwamen er in
  ronde 2 bij. Blijft de nr. 1-vervolgwerf (onderdeel splitsen in
  comparant-identificatie vs. notaris-vaststelling).
- **Dubbele "WAARVAN AKTE"/"DONT ACTE"** — genuanceerd: 2 vermeldingen per
  model is NORMAAL (de slotformule-clausule heeft twee KIES-hypotheses met elk
  een eigen "WAARVAN AKTE"). Alleen **3 vermeldingen** wijzen op een echte
  dubbele afsluiting: **verkoopakte-woning, verkoopakte-wet-breyne,
  verkoopakte-lijfrente (+ FR-spiegels)** — telkens een extra, vaste
  "WAARVAN AKTE - Verleden te …"-zin in een akte-specifiek
  slotbepalingen-onderdeel, bovenop de gedeelde slotformule.
- **Structurele NL/FR-pariteit is verder gezond**: de structuurlijsten van
  alle 38 FR-modellen spiegelen positie-voor-positie hun NL-origineel (zelfde
  lengte, zelfde verplicht-vlaggen, elk onderdeel de juiste
  `vertalingVanId`-spiegel), en elk FR-onderdeel heeft exact dezelfde
  variant-ids als zijn NL-origineel. Geen enkel structuur-item verwijst naar
  een onbestaand onderdeel.

## 2.2 Nieuw gevonden én meteen opgelost (met blijvende bewaking)

1. **45 afgekapte omschrijving-fallbacks** ("…"-lek): parameters zonder
   `voorbeeld` en zonder PATROON vielen terug op hun omschrijving, die bij
   > 90 tekens werd afgekapt — de halve zin lekte letterlijk in de akte, o.m.
   in de VERPLICHTE beschrijvingsclausule ("waarin het goed zich… gelegen",
   14 modellen), in élke identiteit-hypothese "gehuwd" (de wartaal
   "…Volledige zin over… (bv, Afsluitende verklaringsformule…"), in de
   EOT-regelingen, het huwelijkscontract en de samenlevingsovereenkomst
   (ronde 1 noemde die laatste twee nog "schoon" — ten onrechte).
   → Alle 45 kregen een passende `voorbeeld`-zin; nieuwe, vijfde
   bewakingsklasse in `voorbeeld-audit.test.ts` (geen enkele fallback mag op
   "…" eindigen; ratchet start op 0).
2. **Datum na plaats-voorzetsel**: combi-parameters `plaats_datum_overlijden`
   / `plaats_datum_huwelijk` / `geboorteplaats_datum_erflater` matchten het
   datum-patroon → "overleden te 15 maart 2026" (akte-erfopvolging,
   aangifte-nalatenschap, wijziging-huwelijksstelsel, NL+FR). → Nieuwe
   combi-PATRONEN ("Leuven op 15 maart 2026").
3. **Type-mismatch parameter↔waarde**: `rentevoet` ("de rentevoet bedraagt
   250.000"), `frequence/frequentie_rente` en `eerste_vervaldag_rente`
   (lijfrente "betaalbaar 250.000, voor de eerste maal op 250.000"),
   `houder_rekening_*`/`naam_*_rekening`/`nom_compte_*` (rekeninghouder werd
   een IBAN), `bank_*` ("bij 250.000"), `uur_*`/`dag_jaarvergadering`
   (vergaderuur/-dag werden wartaal). → Zeven nieuwe, gericht geplaatste
   PATRONEN (rentevoet → "2,15 %", vervaldag → datum, frequentie →
   "maandelijks", rekeninghouder → persoonsnaam, bank → "KBC Bank", uur →
   "10", dag → "eerste dinsdag"); de kredietakte toont nu "rentevoet
   2,15 %" en de lijfrente "betaalbaar maandelijks, voor de eerste maal op
   1 april 2026".

## 2.3 Nieuw gevonden, nog open (vervolgwerf)

- **411 gebruikte maar niet-gedeclareerde parameters**: over de hele
  bibliotheek staan 411 `{{parameter}}`-namen in clausuleteksten die NIET in
  het `parameters[]`-blok van hun onderdeel gedeclareerd zijn (grootste
  clusters: oorsprong-eigendom 22, prijs-en-betaling 14,
  mede-eigendom-syndicus 14, wederbelegging-verklaring-partner 16, telkens
  NL+FR). Ze renderen wel (PATROON of naam-fallback), maar missen
  omschrijving/voorbeeld als documentatie voor de invullende (AI-)agent —
  zelfde geest als de agentwenken-ratchet. Voorstel volgende ronde: een
  dekking-ratchet "gedeclareerde parameters / gebruikte parameters" die enkel
  mag stijgen, en de grootste clusters eerst aanvullen.

## 2.4 Stand van de openstaande lijst (na ronde 2)

1. Dubbele identiteit-partijen — **open**, nu exact afgebakend (16 modellen).
2. Derde "WAARVAN AKTE" in de 3 verkoopakte-varianten — **open**, exact
   afgebakend (6 modellen); fix = de vaste slotzin uit het akte-specifieke
   slotbepalingen-onderdeel halen (clausuletekst → notaris laten valideren).
3. NL/FR-inhoudelijke divergenties (§1.4) — **open** (juridische keuze).
4. Foutieve partijtermen "donateur"/"koper" (§1.5) — **open** (kleine,
   gerichte tekstcorrecties in clausuleteksten).
5. Omschrijving-fallback-lekken (§1.3) — **GEDICHT + geborgd** (ronde 2).
6. Zelfreferentiële demo-namen (§1.6) — **open** (ontwerpkeuze).
7. NIEUW: 411 niet-gedeclareerde parameters (§2.3) — **open**.

---

# Ronde 3 — structurele fixes (2026-07-09, zelfde dag)

1. **Dubbele "IDENTITEIT VAN DE PARTIJEN" — GEDICHT.** De tweede verwijzing
   bleek een bewust ontwerp (de onderdeel-omschrijving zegt letterlijk dat de
   notaris-vaststelling "via een tweede, niet-herhaalde verwijzing" wordt
   toegevoegd; het vroegere aparte onderdeel werd bewust samengevoegd). De bug
   zat in de weergave: beide posities toonden de volledige hypothesecatalogus.
   Fix: `StructuurItem` kreeg `enkelVariantenMetPrefix`/
   `zonderVariantenMetPrefix`; de motor (`stelModelSamen`,
   `geselecteerdeTeksten`, `genereerDocument`) beperkt de zichtbare varianten
   per structuurpositie. De eerste (per partij herhaalde) verwijzing toont nu
   enkel de partij-hypotheses, de tweede enkel de drie
   "notaris-identificatie-*"-vaststellingen — in alle 16 dubbele modellen én
   in notariële-bijzondere-volmacht (enkelvoudige notaris-positie).
2. **Derde "WAARVAN AKTE"/"DONT ACTE" — GEDICHT.** `slotbepalingen-akte(-fr)`
   droeg een eigen vaste slotformule, terwijl élk gebruikend model (alle 10:
   schenkingsaktes, verkoopakte-woning/-wet-breyne/-lijfrente, NL+FR) ook
   `recht-op-geschriften-slotformule` opneemt — het onderdeel documenteerde
   die overlap zelf al als aandachtspunt. De eigen formule is geschrapt; de
   slotformule leeft nu uitsluitend in het gedeelde onderdeel. Guard-test:
   max. 2 × WAARVAN AKTE/DONT ACTE per model (de twee voorleeshypotheses).
3. **Partijtermen (§1.5, deels) — GEDICHT.** "Le donateur déclare…" →
   "Le vendeur déclare…" in de FR erfdienstbaarheden-clausule (pariteit met
   NL); het kosten-voorbeeld "de koper"/"l'acquéreur" in het gedeelde
   `slotbepalingen-akte(-fr)` is aktetype-neutraal gemaakt ("de verkrijger"/
   "la partie acquérante") zodat de schenkingsakte geen "koper" meer toont.
   Nog open uit §1.5: "de koper/verkoper" in de attesten-/PID-clausules die de
   schenkingsakte deelt met verkoopakten — vergt rol-neutralisering van die
   clausuleteksten ({{rol_overdrager}}/{{rol_verkrijger}}), zie punt 5.
4. **Dekking-ratchet §2.3 — GEZET.** `voorbeeld-audit.test.ts` bewaakt nu het
   aantal gebruikte-maar-niet-gedeclareerde parameters (plafond 411, mag enkel
   dalen).
5. **NIEUW GAT (genoteerd, open):** `vulRollenIn` (rollen.ts) kent enkel
   Nederlandse rolnamen — een FR-onderdeel met {{rol_overdrager}}/
   {{Rol_verkrijger}} (bv. voornemen-afbraak-gebouw-fr) krijgt "verkoper"/
   "koper" in de Franse tekst. Nodig: taalbewuste rollentabel (FR: vendeur/
   acquéreur, donateur/donataire, …) + taal-parameter in de invulketen. Dit
   blokkeert ook de nette rol-neutralisering van gedeelde clausules (punt 3).

---

# Ronde 4 — taalbewuste rollen, demo-namen, pariteit (2026-07-10)

1. **Taalbewuste rollentabel — GEDICHT.** `rollen.ts` heeft nu een
   Franstalige rollentabel (`aktetypeRollenFr`: le vendeur/l'acquéreur,
   le donateur/le donataire, le tréfoncier/l'emphytéote, …, mét lidwoord)
   en `vulRollenIn`/`vulParametersIn` kregen een taal-parameter die overal
   in de generatieketen wordt doorgegeven. Een FR-clausule met
   `{{Rol_verkrijger}}` rendert nu "Le donataire déclare …" in een
   schenkingsakte i.p.v. het Nederlandse "Koper". Dit deblokkeert ook de
   rol-neutralisering van gedeelde clausules (§1.5-rest).
2. **§1.6 zelfreferentiële demo-namen — GEDICHT.** Rolgebonden demo-namen
   vóór de generieke naam-match: de overledene heet "August Peeters"/
   "Auguste Dupont", de lasthebber(s) "Marie Janssens (en Piet Willems)"/
   "Marie Durand (et Pierre Martin)", de langstlevende "Marie Janssens".
   De ondertekenaar aanvaardt dus niet langer zijn eigen nalatenschap en de
   lastgever stelt niet langer zichzelf aan. Bovendien rendert
   "woonplaats" nu als adres ("laatst wonende te Kerkstraat 12, 3000
   Leuven" i.p.v. een omschrijving-fallback).
3. **§1.4 dubbele "Frais" — GEDICHT.** De Frais-paragraaf stond in FR zowel
   in `algemene-contractuele-slotbepalingen-fr` als in
   `slotbepalingen-akte-fr`, terwijl de NL-spiegel de kostenclausule enkel
   in `slotbepalingen-akte` heeft. De paragraaf (en de bijbehorende
   parameterdeclaratie) is uit de algemene slotbepalingen-fr verwijderd.
4. **§1.4 zetelclausule oprichting-fr — VALS POSITIEF, geschrapt als
   bevinding.** De FR-statuten laten "Région flamande" bewust weg: statuten
   volgen de taal van het taalgebied van de zetel (Franstalige statuten
   kunnen niet bij een Vlaamse zetel), precies zoals de NL-versie
   spiegelbeeldig enkel het Nederlandse taalgebied en Brussel toelaat voor
   zetelverplaatsing. De asymmetrie is juridisch correct.

**Nog open na ronde 4**: §1.4-rest (keuzetestament-fr "biens non
préférentiels", heldere-taal-fr CBL-notificatie + ontbrekende KIES-optie A,
FR-voorlezingsmededeling als vaste tekst — telkens een juridische keuze per
clausule, voor de notaris), §1.5-rest (koper/verkoper in attesten-/
PID-clausules die de schenkingsakte deelt — nu rol-neutraliseerbaar met de
taalbewuste rollen), §2.3 (declaraties aanvullen, ratchet 411 verlagen).

---

# Ronde 5 — rol-neutralisering en declaratiebatch (2026-07-10)

1. **§1.5-rest (schenkingsakte deelt verkoop-clausules) — grotendeels GEDICHT.**
   De gedeelde clausules `oorsprong-eigendom` (slotverklaring),
   `hypothecaire-toestand` en `erfdienstbaarheden-bijzondere-voorwaarden`
   (NL + FR-spiegels) en de fiscale-verklaringenregel in
   `slotbepalingen-akte-fr` zijn rol-geneutraliseerd
   ({{rol_overdrager}}/{{rol_verkrijger}}): de schenkingsakte toont nu
   "schenker"/"begiftigde" resp. "donateur"/"donataire", de verkoopakten
   renderen byte-identiek. De motor normaliseert daarbij de Franse
   samentrekking ("de le donateur" → "du donateur"); de rollentabellen
   kregen de ontbrekende types "verkoopakte - heldere taal" en
   "schenkingsakte-roerend-goed".
   **Bewust gedescoped**: `administratieve-attesten(-fr)` — de Vlanot-
   canonieke tekst gebruikt de "/…"-notatie voor rolflexibiliteit én de
   clausule zit in tientallen parallel-vingerafdrukken (elke tekstwijziging
   triggert knipperlichten in de ht-/hta-clausules); dat is een eigen,
   zorgvuldige werf met hash-hernieuwing.
2. **Twee valse positieven geschrapt** uit §1.5: "kandidaat-koper" in
   `vruchtgebruik-voorbehoud-schenking(-fr)` is correct (de latere verkoop
   door vruchtgebruiker en blote eigenaar aan een derde-koper), en
   "acquéreur de ***, décédé…" in `fiscale-erfenissprong-schenkbelasting-fr`
   is de erfrechtelijke verkrijger uit de canonieke bron, geen kooprol.
3. **§2.3 declaratiebatch — ratchet 411 → 269.** De vier grootste clusters
   kregen volwaardige parameterdeclaraties (naam + omschrijving, NL én FR):
   oorsprong-eigendom (22+22), prijs-en-betaling (14+14),
   mede-eigendom-syndicus (14+16), wederbelegging-verklaring-partner
   (16+16) — 134 declaraties.

---

# Ronde 6 — administratieve-attesten + declaratiebatch 2 (2026-07-10)

1. **§1.5 volledig GEDICHT.** Het laatste en grootste stuk —
   `administratieve-attesten(-fr)`, de Vlanot-attestencatalogus die de
   schenkingsakte met de verkoopakten deelt — is rol-geneutraliseerd (38
   vervangingen, NL+FR). Omdat de clausule in 22 parallel-vingerafdrukken
   zit, zijn beide vingerafdrukken herberekend
   (`berekenParallelVingerafdruk`) en alle 22 opgeslagen verwijzingen in
   dezelfde commit hernieuwd — er verschijnt dus géén knipperlicht: de
   wijziging is per definitie "nagekeken" (rol-placeholder-herschrijving,
   geen juridische inhoudswijziging; de vingerafdruk wijzigt omdat het woord
   "verkoper" uit de genormaliseerde vorm verdwijnt). Geverifieerd: de
   schenkingsakte bevat geen enkel koper/verkoper-fragment meer (NL), FR
   enkel nog de bewust behouden "acquéreur potentiel"; de verkoopakten
   renderen ongewijzigd.
2. **§2.3 declaratiebatch 2 — ratchet 269 → 156.** 113 declaraties (NL+FR)
   voor administratieve-attesten (22+13), vruchtgebruik-gesplitste-aankoop
   (9+9), vertegenwoordiging-volmacht (8+8), onbeslagbaarheid-zelfstandige
   (8+8), instemming-partner-gezinswoning (7+7) en
   oorsprong-gelden-antiwitwas (7+7). De bestaande herhaling-audit ving
   daarbij meteen een fout in een nieuwe declaratie ("kanton Kanton" —
   omschrijving-fallback achter het literale "kanton" in de tekst), gedicht
   met een voorbeeld — het bewakingssysteem bewaakt dus ook zijn eigen
   onderhoud.

**Nog open na ronde 6**: §1.4-rest (juridische keuzes voor de notaris),
§2.3-rest (156 declaraties, lange staart), en de eerder genoteerde
GEKENDE_CAPTION_HERHALINGEN (8 titel-zelfherhalingen in canonieke
clausuleteksten).

# Nazicht 3 van de notaris — identiteitsclausule + restgebreken (2026-07-11)

Opdracht notaris: "de identiteitsclausule is nog niet in orde. er bestaat er
al een met ook huwelijksstelsel en wijzigingen etc. hergebruik die in alle
akten en overeenkomsten (dat is de enige die de notariswet respecteert)."

1. **Identiteit hergebruikt uit de canonieke clausule.** De demo-identiteiten
   van verkoper/koper worden nu RECHTSTREEKS gegenereerd uit de varianttekst
   van `identiteit-partijen`(-fr) — hypothese "gehuwd" (mét huwelijksstelsel,
   huwelijksovereenkomst en stelselwijzigingszin) voor de verkoper, "ongehuwd"
   voor de koper (`data/modeldocumenten/identiteit-voorbeeld.ts`). Élk model
   met een vlakke identiteitsparameter (heldere-taal-compromis en -akte,
   NL+FR) toont dus dezelfde canonieke clausule; wijzigt de clausule, dan
   volgen alle voorbeelden vanzelf. De echte dossierflow gebruikte de
   clausule al (`lib/dossier/parameters.ts`). De tussenkomende partner
   (art. 215 BW) kreeg een eigen volledige inline-identiteit (niet langer
   enkel "Sofie De Smet", en nooit de verkoper zelf).
2. **Restgebreken uit het voorbeeld gedicht** (alle bewaakt in
   `voorbeeld-nazicht.test.ts`): dubbele verschijningskop ("ZIJN VERSCHENEN:"
   + "VERSCHIJNEN:"/"COMPARAISSENT :" — hta-verschijning nu koploos en
   zonder eigen nummer), aktedatum voluit zonder jaarherhaling ("Op vijftien
   maart."), tweede/tussenkomende notaris met eigen naam én standplaats
   (Peter Van Hove, Mechelen), "{{gbp_bestemming}}-gebied" → verdubbeling weg
   (clausule + hint "woongebied"), bestemming_goed-hint "kantoorruimte" →
   "eengezinswoning" (+ aantal_wooneenheden 1), kostenverdeling_tank als
   afspraak i.p.v. "1.500", "door notaris …, op Leuven" → "te", en de
   gewestvreemde voorkoop-hint "De Vlaamse Waterweg nv" → "het wettelijk
   voorkooprecht van de gemeente" (NL+FR). Parallel-vingerafdrukken van
   ht-stedenbouw-splitsing/hta-stedenbouw-brussel/hta-mede-eigendom bewust
   herbevestigd (partners hebben de gebreken niet).

**Nog open na nazicht 3** (bibliotheek-inhoud, voor de wederkerende werf):
gemengd-geschreven sectiekoppen worden niet als subkop gemarkeerd (bv.
"Statuten van mede-eigendom - Overdracht van documenten", "Gewone
gemeenschappelijke lasten", "Vrije notariskeuze" in de Afsluiting —
markeerSubkoppen eist HOOFDLETTERS; uitbreiden zonder valse positieven vergt
een eigen pas), en hta-tellers-taksen nestelt "BIJDRAGEN - TAKSEN" als
subkop onder "OPNAME VAN DE TELLERS" (twee gelijkwaardige onderwerpen in één
onderdeel — splitsen = nieuwe parallel-hashes, eigen pas).

# Voorbeeld volgt de echte workflow (opdracht notaris, 2026-07-11)

Het modelvoorbeeld (ModellenTab, ValiderenTab, kwaliteitsnazicht-tests) wordt
voortaan gevuld via de ÉCHTE dossierketen: een fictief demo-dossier (zelfde
cast als de demo-patronen) loopt door `maakDossierUitIntakeResultaat` →
`dossierNaarParameterwaarden` → `dossierNaarPartijHerhalingen` →
`genereerDocument` — exact de functies van een echt dossier
(`lib/modeldocumenten/voorbeeld-workflow.ts`). De PATRONEN in
voorbeeldwaarden.ts zijn enkel nog de terugval voor parameters zonder
dossierbron; de identiteit komt dus per definitie uit de canonieke clausule,
per partij hernomen met rol-koppen in de authentieke akten. Twee echte-
ketengebreken die dit blootlegde zijn in de keten zelf gedicht (komt elk echt
dossier ten goede): het huwelijksstelsel wordt in een FR-document vertaald
(STELSEL_FR-tabel, onbekende omschrijving blijft letterlijk staan) en de
Franse tweevormen ("né(e)", "inscrit(e)") worden opgelost naar het gekende
geslacht (bij onbekend geslacht blijven ze staan — nooit gokken). **Nog
open**: (1) de per-partij hernomen identiteitsclausule in FR-authentieke
akten lost de tweevormen nog niet op (de herhaling rendert de varianttekst in
genereerDocument, niet via componeerIdentiteit); (2) de voorbeeldsets
(finale, printklaar) draaien nog op de kenmerkenmotor + setwaarden — een
vervolgstap kan ook die per set door de dossierketen laten lopen.
