diff --git a/docs/reports/verification-report-20251123.md b/docs/reports/verification-report-20251123.md
new file mode 100644
index 0000000..d95ab9f
--- /dev/null
+++ b/docs/reports/verification-report-20251123.md
@@ -0,0 +1,355 @@
+# Verificatie Rapport: Build Fix Validatie
+
+**Datum:** 2025-11-23
+**Reviewer:** Lead Developer
+**Project:** Mini EPD Prototype
+**Branch:** intake
+
+---
+
+## Executive Summary
+
+✅ **Archive Exclusion Fix: SUCCESVOL**
+- `tsconfig.json` correct bijgewerkt
+- `.eslintignore` correct aangemaakt
+- Originele fout (createClient import) is opgelost
+
+❌ **Build Status: FAILED**
+- 2 nieuwe TypeScript fouten ontdekt
+- Beide zijn eenvoudig te fixen
+- Geschatte fix tijd: 10-15 minuten
+
+---
+
+## 1. Verificatie Resultaten
+
+### ✅ Fix #1: tsconfig.json
+**Status:** GESLAAGD
+
+```json
+// tsconfig.json:39-42
+"exclude": [
+ "node_modules",
+ "app/epd/_archive/**/*" // ✅ Toegevoegd
+]
+```
+
+**Resultaat:** Archive directory wordt nu correct genegeerd door TypeScript compiler.
+
+### ✅ Fix #2: .eslintignore
+**Status:** GESLAAGD
+
+```
+app/epd/_archive/
+```
+
+**Resultaat:** ESLint zal archive directory negeren.
+
+### ✅ Originele Fout
+**Status:** OPGELOST
+
+```
+❌ VOOR: Module '"@/lib/supabase/server"' declares 'createClient' locally,
+ but it is not exported.
+
+✅ NA: Deze fout verschijnt niet meer in build output
+```
+
+---
+
+## 2. Nieuwe TypeScript Fouten
+
+### ❌ Error #1: Icon Type in client-sidebar.tsx
+
+**Locatie:** `app/epd/patients/[id]/components/client-sidebar.tsx:108:21`
+
+**Foutmelding:**
+```
+Type 'string' is not assignable to type 'never'.
+```
+
+**Code:**
+```typescript
+// Regel 25-29: Interface definitie
+interface NavItem {
+ label: string;
+ href: string;
+ icon: React.ElementType; // ⚠️ Te generiek
+}
+
+// Regel 88-108: Gebruik
+{navItems.map((item) => {
+ const Icon = item.icon;
+ return (
+
+ // ❌ Error hier
+ {item.label}
+
+ );
+})}
+```
+
+**Root Cause:**
+`React.ElementType` is te generiek en TypeScript kan niet infereren dat de Icon component className accepteert.
+
+**Fix Opties:**
+
+**Optie A (Simpel):** Expliciete type assertion
+```typescript
+
+// wijzig naar:
+{React.createElement(Icon, { className: "h-4 w-4" })}
+```
+
+**Optie B (Proper):** Specificeer icon type met ComponentType
+```typescript
+// Wijzig interface (regel 25-29):
+interface NavItem {
+ label: string;
+ href: string;
+ icon: React.ComponentType<{ className?: string }>;
+}
+```
+
+**Optie C (Best):** Gebruik lucide-react type (als beschikbaar)
+```typescript
+import type { LucideIcon } from 'lucide-react';
+
+interface NavItem {
+ label: string;
+ href: string;
+ icon: LucideIcon;
+}
+```
+
+**Aanbeveling:** Optie B (ComponentType) - balans tussen specificiteit en flexibiliteit.
+
+---
+
+### ❌ Error #2: Incorrect Status Value in actions.ts
+
+**Locatie:** `app/epd/patients/[id]/intakes/[intakeId]/actions.ts:70`
+
+**Foutmelding:**
+```
+Type '"finished"' is not assignable to type
+'"on-hold" | "completed" | "entered-in-error" | "unknown" |
+ "planned" | "in-progress" | "cancelled" | undefined'.
+```
+
+**Code:**
+```typescript
+// Regel 65-75: createContactMoment functie
+const { error } = await supabase.from('encounters').insert({
+ patient_id: input.patientId,
+ intake_id: input.intakeId,
+ class_code: input.location || 'AMB',
+ class_display: input.location || 'Onbekend',
+ status: 'finished', // ❌ Incorrect - database verwacht 'completed'
+ type_code: input.type,
+ type_display: input.type,
+ period_start: startIso,
+ period_end: endIso,
+ // ...
+});
+```
+
+**Root Cause:**
+De database schema (FHIR Encounter) gebruikt standaard FHIR status values. `'finished'` is geen geldige FHIR Encounter status.
+
+**FHIR Encounter Status Values:**
+- `'planned'` - Encounter is gepland maar nog niet begonnen
+- `'in-progress'` - Encounter is actief gaande
+- `'on-hold'` - Encounter is tijdelijk opgeschort
+- `'completed'` - Encounter is afgerond (✅ GEBRUIK DEZE)
+- `'cancelled'` - Encounter is geannuleerd
+- `'entered-in-error'` - Encounter is foutief ingevoerd
+- `'unknown'` - Status is onbekend
+
+**Fix:**
+```typescript
+// Regel 70: Wijzig van
+status: 'finished',
+
+// naar:
+status: 'completed',
+```
+
+**Rationale:**
+Voor een contact moment dat in het verleden ligt (historische data entry), is `'completed'` de juiste FHIR-compliant status.
+
+---
+
+## 3. Implementatie Fixes
+
+### Fix Script
+
+```typescript
+// File 1: app/epd/patients/[id]/components/client-sidebar.tsx
+// Wijzig regel 25-29:
+
+interface NavItem {
+ label: string;
+ href: string;
+ icon: React.ComponentType<{ className?: string }>; // ✅ Gewijzigd
+}
+```
+
+```typescript
+// File 2: app/epd/patients/[id]/intakes/[intakeId]/actions.ts
+// Wijzig regel 70:
+
+status: 'completed', // ✅ Gewijzigd van 'finished'
+```
+
+### Verificatie Stappen
+
+Na deze wijzigingen:
+
+```bash
+# 1. Run build
+pnpm build
+
+# 2. Verwachte output
+✓ Compiled successfully
+✓ Linting and checking validity of types
+✓ Creating an optimized production build
+
+# 3. Verify no errors
+echo $? # Should output: 0
+```
+
+---
+
+## 4. Build Output Analysis
+
+### Warnings (Acceptabel)
+
+De volgende warnings zijn **normaal** en **niet blokkeerend**:
+
+```
+⚠️ A Node.js API is used (process.versions) which is not supported
+ in the Edge Runtime.
+
+ Import trace: @supabase/realtime-js/websocket-factory.js
+```
+
+**Rationale:**
+- Supabase Realtime gebruikt Node.js APIs
+- Deze code draait alleen server-side (niet in Edge Runtime)
+- Geen impact op productie functionaliteit
+- Kan genegeerd worden voor dit project
+
+**Alternatief (optioneel):**
+Als je Edge Runtime wilt gebruiken in de toekomst, overweeg:
+- Gebruik `@supabase/ssr` specifiek voor Edge
+- Of disable Realtime in edge routes
+
+---
+
+## 5. Conclusies
+
+### Samenvatting Status
+
+| Item | Status | Actie Vereist |
+|------|--------|---------------|
+| Archive Exclusion | ✅ Opgelost | Geen |
+| Original createClient Error | ✅ Opgelost | Geen |
+| client-sidebar.tsx Icon Type | ❌ Te fixen | Ja - 5 min |
+| actions.ts Status Value | ❌ Te fixen | Ja - 2 min |
+| Build Success | ❌ Pending | Na fixes |
+
+### Next Steps
+
+**Onmiddellijk (15 minuten):**
+1. ✅ Fix Icon type in `client-sidebar.tsx` (ComponentType)
+2. ✅ Fix status value in `actions.ts` ('completed')
+3. ✅ Run `pnpm build` ter verificatie
+4. ✅ Commit changes
+
+**Daarna:**
+1. Review git status (8 uncommitted files)
+2. Commit zinvolle changesets
+3. Tag release candidate
+4. Run testing fase (Fase 5 uit migratieplan)
+
+### Overall Assessment
+
+**Progress:** 🟡 Goed maar niet compleet
+- Archive fix werkt perfect (origineel doel bereikt)
+- 2 kleine type errors blokkeren build
+- Beide errors zijn triviaal te fixen
+- Na fixes: build zou moeten slagen
+
+**Kwaliteit Indicatoren:**
+- ✅ TypeScript strict mode vangt fouten
+- ✅ FHIR schema types werken correct
+- ✅ Type safety voorkomt runtime errors
+- ✅ Build process is robuust
+
+---
+
+## 6. Recommended Fixes (Code)
+
+### File 1: client-sidebar.tsx
+
+```typescript
+// app/epd/patients/[id]/components/client-sidebar.tsx
+
+// Wijzig regels 25-29 van:
+interface NavItem {
+ label: string;
+ href: string;
+ icon: React.ElementType;
+}
+
+// naar:
+interface NavItem {
+ label: string;
+ href: string;
+ icon: React.ComponentType<{ className?: string }>;
+}
+
+// Geen andere wijzigingen nodig
+```
+
+### File 2: actions.ts
+
+```typescript
+// app/epd/patients/[id]/intakes/[intakeId]/actions.ts
+
+// Wijzig regel 70 van:
+status: 'finished',
+
+// naar:
+status: 'completed',
+
+// Geen andere wijzigingen nodig
+```
+
+---
+
+## Appendix: FHIR Reference
+
+### Encounter.status
+
+Zie: https://www.hl7.org/fhir/valueset-encounter-status.html
+
+**Valueset:** `http://hl7.org/fhir/ValueSet/encounter-status`
+
+**Binding:** Required (moet een van deze waarden zijn)
+
+**Values:**
+- `planned` - The Encounter has not yet started
+- `in-progress` - The Encounter has begun
+- `on-hold` - The Encounter has been placed on hold
+- `completed` - The Encounter has ended ✅
+- `cancelled` - The Encounter was cancelled before it started
+- `entered-in-error` - This instance should not have been part of this patient's record
+- `unknown` - The encounter status is unknown
+
+---
+
+**Rapport Versie:** 1.0
+**Status:** ✅ Compleet
+**Actie Vereist:** Ja - Implementeer 2 fixes (15 min)