ondernemingoprichten.be · project tijdlijn
Changelog
Alle wijzigingen aan ondernemingoprichten.be — per dag gegroepeerd met categorie- en mijlpaal-filters. Toont concrete progressie: wat is gewijzigd, wanneer, en hoeveel tijd het kostte.
- Dagen
- 4
- Entries
- 42
- Totale tijd
- 54.8u
- LIVE op productie
- 21
2 mijlpalen behaald in dit project (zichtbaar als gehighlighte cards met amber border + Sparkles icon).
Filter changelog
42 entries over 4 dagen · 54.5u totaal
- Dag 4
16 entries · 20.5u · 11 LIVE · 2 mijlpaal
- ~1.5uSpecMijlpaal
Sprint 1 COMPLETE — RBAC + filters + Clerk invitations runbook
Claude (Opus 4.7) + spec 05.4+05.14
Sprint 1b Sub-B Step 2 sluit Sprint 1 af. Granular RBAC permissions-matrix per spec 05.4 (5 rollen + 17 permissions) actief in admin. Status-update server-action vereist nu lead:status-update permission — admin + legal_intake kunnen wel, itaa_reviewer_fiscaal + fp_maker + viewer niet. 403-page met huidige rol-display + contact-Vincent CTA. Lead-list met URL-based status-filter + email-search (250ms debounce) + paginatie (25 per page). Clerk Organization invitations runbook geschreven voor Vincent (5 UI-acties, ~10 min).
- PERMISSIONS matrix: admin (*) + legal_intake (lead+dossier+hitl12+document) + itaa_reviewer_fiscaal (read+hitl2plus) + fp_maker (dossier-fp) + viewer (*:read)
- requireRole + requirePermission + hasPermission helpers (redirect of boolean voor conditional UI)
- /403 page met ShieldAlert + ROLE_LABELS display + back-link + contact-Vincent mailto
- StatusUpdateForm guard: disabled-message met Lock-icon voor users zonder permission
- Audit-trail actorRole nu uit echte Clerk role-claim (was: hardcoded admin)
- Lead-list URL-based filters (?status=new&q=jan&page=2) shareable + back-button-vriendelijk
- Server-side ilike voor email-search + parallel count + leads query + 25/page paginatie
- /09-intake-app-build/09.3 runbook: 5 Vincent UI-acties voor Clerk restrict + Sophie/Nathalie/Michiel invites
- Sprint 1 COMPLETE = intake-app MVP productie-rijp op staging (alleen blockers Q-14/Q-22/Q-29 voor Sprint 2)
- ~1.5uLIVE productieHigh impact
Fase 6 calculators: scaffold + VVPR-bis voordeel calculator LIVE
Claude (Opus 4.7) + spec 06.0+06.2+06.7
Fase 6 calculator-suite gestart op intake-staging onder /calculator/* routes. Nieuwe @intake/calc-engine package met versioned fiscale tarieven (2026, Programmawet) als single source of truth. Eerste calculator (06.2 VVPR-bis voordeel) volledig functioneel met real-time recalc, 3-scenario vergelijking (30%/18%/9,8% liquidatiereserve), voorwaarden-check, en Q-54 disclaimer met ITAA-stempel. 2 stubs voor 06.3 + 06.4 placeholders. Lead-capture policy gerespecteerd: geen email vóór resultaat, post-resultaat CTA naar intake of adviesgesprek.
- Nieuwe @intake/calc-engine package: tarieven.ts + vvpr-bis.ts pure-functions math
- Tarieven-config 2026: VVPR-bis 18% / VennB 25%-20% KMO / liquidatiereserve 9,8% / investeringsaftrek 10%-40%
- Calculator-index /calculator: 4 cards met brand-styled UI + lucide icons
- /calculator/vvpr-bis: full implementation 5-col grid + real-time recalc + best-scenario hero
- 3-scenario vergelijkings-tabel (zonder VVPR-bis / met VVPR-bis / via liquidatiereserve)
- Voorwaarden-check met CheckCircle2/X icons voor KMO + statuten + 4+ boekjaren
- Q-54 disclaimer-component met FISCAL_REVIEW_METADATA stempel (Vincent ITAA)
- 2 stubs voor 06.3 loon-dividend + 06.4 liquidatiereserve (komt-binnenkort)
- Public home: 3e CTA naar /calculator (naast intake + simulator)
- 6/6 typecheck PASS + 2/2 build PASS + 2 CI runs groen in 2m25s
- ~1uLIVE productieHigh impact
Sprint 1b Sub-B: UI/UX polish met ondernemingoprichten.be brand-identity
Claude (Opus 4.7)
Volledige brand-make-over van intake-app zodat het visueel onderdeel voelt van ondernemingoprichten.be. Brand-kleuren (primary #2f83dc + dark-blue #01061d + light bg #f7fbfe) als Tailwind-tokens, Inter font via next/font/google, logo + favicon van Webflow CDN, lucide-react iconen, brand-styled cards en buttons sitewide. Admin dashboard heeft nu live stats-cards met Postgres count-queries (totaal leads, new, in-review). Beide apps LIVE op staging.
- Tailwind brand-tokens: brand.{50..900} color scale + bg/danger varianten in beide apps
- Inter font via next/font/google (--font-inter CSS variable) vervangt Webflow Arial default
- Logo van ondernemingoprichten.be in beide app-headers (Webflow CDN URL)
- Favicon + apple-touch-icon naar Webflow CDN URLs
- lucide-react 0.469 toegevoegd: navigatie-icons + form-states (Check/AlertCircle/Loader2)
- IntakeForm: brand-500 progress-bar + brand-buttons + radio-cards met hover-states
- Bedankt page: brand-gradient hero + 3 step-cards met lucide icons (Mail/MessageCircle/FileCheck)
- Admin dashboard: live stats-cards (totaal/new/in-review) met drizzle count + highlight-state op nieuwe leads
- Admin leads-list + lead-detail: brand-100 borders + bg-bg-subtle table-header + ArrowLeft back-navigation
- ~2uStagingHigh impact
Sprint 1b Sub-A: Publieke BV-intake form + email + admin lead-detail LIVE
Claude (Opus 4.7) + Vincent
End-to-end intake-flow voltooid: publieke 6-stappen wizard met autosave, server-actions, zod-validatie en Resend email-trigger naar legal@. Admin krijgt lead-detail page met JSON-antwoorden, status-historiek en status-update server-action met automatische audit-trail. 21 nieuwe files, +1934 lijnen code, CI groen, alles LIVE op staging na Railway auto-redeploy.
- 6-stappen wizard /checklist: contact / bedrijf / oprichters / kapitaal / notaris / consent
- react-hook-form + zod per stap met conditional logic (co-oprichters, eigen notaris, type inbreng)
- Autosave server-action elke 1.5s naar IntakeSession + AnswerSnapshot
- submitIntake: validatie + Lead-update + StatusEvent audit-trail + niet-blokkerende email
- Email-template "Nieuwe BV-intake — {naam}" met HTML + text + deep-link naar admin
- Admin /leads/[id]: server-component met JSON-antwoorden + status-historiek (2-col layout)
- StatusUpdateForm met 5 statussen + optionele notitie + automatische audit-event
- Public home page herzien: primary CTA naar /checklist + 3 value-prop bullets
- GitHub Actions CI: eerste run groen in 2m3s, valideert nu elke PR + push naar main
- ~5uStagingMijlpaal
Fase 9 Sprint 1a VOLLEDIG: foundation + Clerk auth + lead-list + CI/CD LIVE
Claude (Opus 4.7) + Vincent
Volledige Sprint 1a (Dag 1-6) in 1 dag uitgevoerd door parallel werken: Vincent doet Railway UI + DNS + Clerk + Resend, Claude doet code + scripts + docs. Intake-app LIVE op Railway staging met SSL, Postgres 2-schema hybrid met 6 tabellen + 3 seed-leads, Clerk auth volledig functioneel met protected admin lead-list, GitHub Actions CI pipeline klaar voor automatische validatie van toekomstige PRs. 4 PRs gemerged (#10 scaffold, #11 Railway live + migrations, #12 Clerk auth, #13 CI/CD). 0 LIVE-productie-impact — alles staging.
- apps/intake-public-staging LIVE op https://intake-public-staging.ondernemingoprichten.be
- apps/admin-staging LIVE op https://admin-staging.ondernemingoprichten.be met Clerk-protected routes
- Railway Postgres add-on met 6 Drizzle tabellen (intake: lead/intake_session/answer_snapshot/status_event + analytics: attribution_touch/event_log) + 3 seed-leads
- Kinsta DNS CNAMEs naar Railway services met Let's Encrypt SSL auto-issued
- Clerk app "ondernemingoprichten.be" EU-region geconfigureerd met Vincent admin + RBAC-helper voor 5 rollen (admin/legal_intake/itaa_reviewer_fiscaal/fp_maker/viewer)
- Admin lead-list pagina met server-component Drizzle-query (sort created_at, status-badges, NL-BE datum format)
- GitHub Actions CI workflow: typecheck + build op elke PR (placeholder env vars + Turbo cache + pnpm-cache)
- Build-hardening: DB client lazy-init via Proxy + admin layout force-dynamic voor Clerk pk-validatie skip
- Sprint 1a "5-6 dagen" plan uitgevoerd in 1 dag dankzij parallel-werken patroon (plan-conservatisme bevestigd voor toekomstige sprints)
- ~1uStagingHigh impact
Fase 9 Sprint 1a foundation: intake-app monorepo scaffold gestart
Claude (Opus 4.7) + PAL GPT-5.2-Pro
Start van intake-app code-implementatie na 27 specs voltooid. Next.js 15 + Turbo + pnpm monorepo scaffold in nieuwe /intake-app subfolder met 5 workspaces (apps/intake-public + apps/admin + packages/db + packages/ui + packages/email). Drizzle ORM met 2-schema hybrid (intake + analytics) per D-A6, 6 tabellen geconfigureerd. PAL planner GPT-5.2-Pro scope-validatie + Vincent goedkeuring op 6 kritieke keuzes (Turbo, Railway Postgres, react-hook-form, React Email, synthetic seed-data). 395 packages installed, 5/5 typecheck PASS. Geen LIVE-impact — alles staging-only.
- Sprint 1 splitsing: 1a foundation (dag 1-6) + 1b features (dag 7-14) met Vincent-approval-gates ertussen
- Monorepo root: package.json + pnpm-workspace.yaml + turbo.json + tsconfig.base.json (strict + noUncheckedIndexedAccess)
- apps/intake-public: Next.js 15 landing-page + /api/health endpoint + standalone output voor Railway
- apps/admin: Next.js 15 skeleton + /api/health endpoint (Clerk auth komt dag 3-4)
- packages/db: Drizzle ORM + Postgres-js client + 6 tabellen (Lead + IntakeSession + AnswerSnapshot + StatusEvent + AttributionTouch + EventLog)
- packages/email: Resend client wrapper + EMAIL_DEFAULTS helper voor legal@ ondernemingoprichten.be
- Sprint 1 plan-doc /09-intake-app-build/09.1: volledige dag-indeling 1a + 1b + blockers + Vincent setup-acties
- pnpm install + Turbo typecheck volledig groen — solid foundation voor verdere build
- ~30 minLIVE productieHigh impact
Fase 8 cleanup: 4 broken Tarieven-buttons LIVE-fix + Template 1 verkenning
Claude (Opus 4.7)
Echte broken-links audit toonde slechts 2 broken CTAs (Tarieven-buttons op /vvpr-bis en /liquidatiereserve), niet de aanvankelijk vermoede 5+. Cookie-banner href="#" zijn Finsweet consent-buttons met fs-cc attribute logica (niet broken). 4 set_link fixes via Designer MCP + site-publish via Data API + LIVE-verify PASS. Template 1+2 zijn DRAFT (niet-LIVE) met grotendeels normale Webflow-naming — aanbevolen archiveren via Designer UI om accidentele Duplicate-spreiding te voorkomen.
- /vvpr-bis: 2 Tarieven-buttons (linkType=none) gefixed → /kostprijs-oprichting-vennootschap
- /liquidatiereserve: 2 Tarieven-buttons (zelfde element-IDs) gefixed → /kostprijs-oprichting-vennootschap
- Site-publish via Data API met customDomain IDs (niet hostname — API-vereiste ontdekt)
- LIVE-verify cURL: beide buttons nu correcte href, geen href="#" meer voor Tarieven
- Template 1+2 verkend: 111 -N classes in site.css zijn grotendeels Webflow-defaults (container-4, button-2), geen contaminatie-signaal
- 3e FAQ-toevoeging deferred: bezoldiging-vraag niet 1-op-1 koppelbaar via Designer MCP, vereist andere approach
- Patroon bevestigd: Webflow Duplicate-pages delen identieke element-IDs (5e instantie)
- ~30 minLIVE productieHigh impact
Persona-pages workflow bewezen + changelog naar publieke subdomain
Claude (Opus 4.7)
Na 3 succesvolle persona-pages (IT-consultant, MC, Holding) is het PAL deep-audit + Designer MCP batch pattern gedocumenteerd als herhaalbaar runbook in 08-webflow-implementation. Daarnaast wordt deze changelog publiek-toegankelijk gemaakt via changelog.ondernemingoprichten.be (Next.js middleware + DNS CNAME + Railway custom-domain). Transparante log naar buiten toe als trust-asset.
- Pattern-document 08.3-persona-pages-pal-workflow: 9 secties, 8 workflow-stappen, 6 anti-mistakes, fallback-protocol per fout-type
- Next.js middleware: subdomain-routing voor changelog.* → /changelog als root (deep-links blijven werken)
- SEO meta op /changelog: Open Graph + canonical URL + robots index/follow voor publieke toegankelijkheid
- Dashboard README uitgebreid: tabel met custom-domains + DNS CNAME + Railway custom-domain setup-stappen
- 5 kandidaat-persona-pages benoemd voor schaling (managementconsultant, horeca, ecommerce, buitenlandse oprichter, eenmanszaak-naar-bv)
- Templates voor branch-naam + commit-message + PR-body voor herhaalbaarheid
- ~1uLIVE productieHigh impact
3e persona-page LIVE: /beroep/holdingvennootschap met asset-protection nuances
Claude (Opus 4.7) + PAL GPT-5.2-Pro
Holding-page in productie genomen voor BV-eigenaars met €200k+ jaarwinst die asset-protection + DBI-aftrek + opvolging-planning overwegen. Designer Duplicate van /bv-oprichten + PAL GPT-5.2-Pro thinkdeep + 20 batch set_text. GPT-5.2 vond 4 kritische fiscaal-juridische nuances: asset-protection wel-doorbraak-scenarios (persoonlijke borg + art. 2:56 WVV bestuurdersaansprakelijkheid + art. 5:16 WVV oprichtersaansprakelijkheid), DBI 3-cumulatieve voorwaarden (10% / €2,5M + 1 jaar bezit + niet-passieve dochter), en anti-misbruik art. 344 §1 WIB 92 onderbouwingsplicht.
- H1: "Holding oprichten voor BV-eigenaars: asset-protection + opvolging-planning"
- Asset-protection nuance: persoonlijke borg + bestuurdersaansprakelijkheid art. 2:56 WVV + oprichtersaansprakelijkheid art. 5:16 WVV blijven gelden (geen absolute claim)
- DBI-aftrek 3 cumulatieve voorwaarden: 10% participatie OF €2,5M aanschafwaarde + 1 jaar bezit + niet-passieve dochter (art. 202-205 WIB 92)
- 4 fiscale instrumenten in 1 paragraaf: DBI-aftrek 100% + VVPR-bis 18% + liquidatiereserve 9,8% + IPT-groepsverzekering
- Concrete benchmarks: setup ~€8-15k holding + ~€1.500-3.500 revisor inbreng-natura + ~€3-5k jaarlijkse overhead + €15-40k extra netto/jaar bij €200k-€500k jaarwinst
- Proces: doorlooptijd 6-10 weken (greenfield) vs 8-12 weken (co-eigenaars) + anti-misbruik onderbouwing per art. 344 §1 WIB 92
- Intra-groep transfer-pricing: arm's-length voor holding-naar-dochter facturen + interimdividend art. 5:141 WVV
- SEO meta: "Holding oprichten in België — asset-protection + DBI-aftrek" (60 chars) + value-prop description (153 chars)
- PAL GPT-5.2-Pro pattern 3e succesvolle toepassing — DBI-precisie + asset-protection nuance + anti-misbruik onderbouwing geïntegreerd
- ~1.5uLIVE productieHigh impact
2e persona-page LIVE: /beroep/managementvennootschap via PAL GPT-5.2-Pro
Claude (Opus 4.7) + PAL GPT-5.2-Pro
MC-page in productie genomen voor bestaande BV-zaakvoerders met €100k+ omzet. Designer Duplicate van /bv-oprichten + PAL GPT-5.2-Pro thinkdeep (na Gemini-fallback) + 29 batch set_text. GPT-5.2 vond 3 kritische fiscale nuances die handmatige copywriting zou hebben gemist: bezoldigingsvoorwaarde voor 20% KMO (niet automatisch), transfer-pricing risico (te hoog/te laag), management-fee benchmarks per omzet-tier. Resultaat: page met ITAA-niveau fiscale precisie + IPT-pensioenopbouw + holdingstructuur-overweging.
- H1: "MC oprichten voor BV-zaakvoerders: meer flexibiliteit, meer netto"
- Bezoldigingsvoorwaarde-nuance: 20% KMO-tarief vereist minimumbezoldiging (~€45k) aan natuurlijke persoon, niet aan vennootschap — 5× sitewide
- Transfer-pricing risico (te hoog/te laag) + bewijsvoeringsplicht (markt + uurtarief + prestaties) geïntegreerd
- P18 Fiscaal: management-fee benchmarks per omzet-tier (€30-60k bij €120k / €48-96k bij €200k / €84-180k bij €300k+)
- IPT-pensioenopbouw als 4e fiscale instrument naast VVPR-bis + investeringsaftrek + KMO-tarief
- 3 nieuwe MC-FAQ: omzet-niveau drempel / management-fee marktconform / DBI-voorwaarden (10%/€2,5M/1jaar)
- SEO meta: "Managementvennootschap (MC) oprichten — fiscaal slimmer" (56 chars) + value-prop description (152 chars)
- PAL GPT-5.2-Pro pattern bewezen voor fiscale precisie waar Gemini empty_response gaf — fallback-strategie waardevol
- ~1uLIVE productieHigh impact
PAL Gemini deep-audit: 18 LIVE-rewrites /beroep/it-consultant
Claude (Opus 4.7) + PAL Gemini 2.5 Pro
Vincent feedback "weinig echt interessant op de pagina geschreven" → PAL MCP (Gemini 2.5 Pro) deep-audit ingezet. Strategisch advies: shift van "Here's how to set up a BV" naar "Here is the financial playbook for a successful IT consultant". 18 LIVE-rewrites op proces-stappen, voordelen-bullets, fiscale uitleg, Pro/Con en 3 nieuwe IT-FAQ-items. Page nu ~95% IT-targeted met concrete getalvoorbeelden en scenario's.
- Proces-stappen P5-P7: "Wij..."-taal weg + 30-min kennismaking + 3-4 weken doorlooptijd + intracomm. BTW
- Voordelen-bullets P12-P15: IT-targeted (data-breach, IE-claims, klantprojectrisico)
- Fiscale uitleg P18: 3 instrumenten (VVPR-bis + 40% investeringsaftrek + 20% KMO-tarief) + MC-doorgroei
- Aftrekbare kosten P20: concrete IT-voorbeelden (MacBook €4k, JetBrains, GitHub Copilot, AWS, FOSDEM)
- Inkomsten factureren P22: intracomm. + addendum bestaande contracten + SaaS-continuïteit
- Pro/Con P25-P26: data-breach/GPL scenarios + banken/verzekeraars perceptie
- 3 nieuwe IT-FAQ: bestaande contracten → BV / DE-klant intracomm. BTW / salaris vs dividend jaar 1
- PAL Gemini skill-pattern bewezen voor herhaalbaar persona-page strategisch advies
- ~30 minLIVE productieHigh impact
Copywriter-skill refinement /beroep/it-consultant LIVE
Claude (Opus 4.7)
Marketing:content-creation skill ingezet voor professionele copy + SEO. Vincent batch-approval per element met 1 aangepast voorstel (vermogensopbouw: focus op misverstand "BV maakt je werknemer" + zelfstandig statuut). Complete page-rewrite van H1 t/m FAQ: benefit-driven H1, klantgerichte concrete cijfers, IT-scenario aansprakelijkheid, statuut-uitleg met €15-25k extra netto.
- H1 benefit-driven: "BV oprichten als IT-consultant: meer netto overhouden" (54 chars)
- SEO title: "BV oprichten voor IT-consultants: fiscaal slimmer ondernemen" (60 chars)
- Meta-description: 3 benefits + CTA in 154 chars (klikbaar voor SERP)
- Hero lead: pain (50% marginaal) → 3 fiscale hefbomen → soft CTA, scannable
- Aansprakelijkheid: IT-scenario openers (software-fout, scope-geschil, IE-claim)
- Vermogensopbouw: misverstand-buster "BV ≠ werknemerschap" + zelfstandig statuut + €15-25k extra netto
- FAQ-answer: break-even €70-80k + concrete cijfers + soft CTA
- Marketing:content-creation skill toonde waarde voor herhaalbaar persona-page patroon
- ~20 minLIVE productie
Klantgericht refinement /beroep/it-consultant + FAQ cleanup
Claude (Opus 4.7)
Vincent feedback op eerste persona-content versie: meer wenden tot lezer situatie, verwijzingen naar ITAA/Vincent uit pagina-copy weg, BV/NV vergelijking in FAQ niet relevant. Resultaat: 3 paragrafen klantgericht herschreven + SEO meta zonder ITAA + FAQ-item vervangen door IT-relevante vraag/antwoord. Hele page nu focus op concrete IT-consultant situatie (€80k omzetdrempel, klant-projectrisico, IT-investeringen).
- Hero lead: "Werk je als IT-consultant met meer dan €80.000 omzet..." (jij-vorm, concrete situatie)
- Aansprakelijkheid: IT-risico-context (softwarefout, gemiste deadline, scope-geschil, intellectueel eigendom) + art. 5:16 WVV nuance
- Vermogensopbouw: VVPR-bis vs 30% RV + 40% investeringsaftrek + concrete €15-25k extra netto bij €120k omzet
- SEO title: "BV oprichten als IT-consultant: jouw fiscale structuur in 3-4 weken" (klantgericht "jouw")
- Meta-description zonder ITAA-vermelding, focus op value-prop voor lezer
- FAQ BV/NV-vergelijking → "Vanaf welke omzet is BV oprichten fiscaal interessant voor IT-consultants?" (IT-relevant)
- Typo-fix: "vermogen" zonder Duits omlaut (JSON-escape lesson learned)
- ~30 minLIVE productieHigh impact
Stap C voltooid: /beroep/it-consultant LIVE met persona-content
Claude (Opus 4.7)
Eerste persona-landingspagina LIVE op productie. Designer MCP content-rewrite met 9 high-impact text-updates: 4 H1/H2 headings + 5 paragraph-strings (Hero + aansprakelijkheid + vermogensopbouw) volledig persona-targeted naar IT-consultants. Q-46/Q-53 wording-compliant. SEO-meta perfect. Nested URL /beroep/it-consultant per D-IA-7 spec.
- H1 "Besloten vennootschap (BV) oprichten" → "BV oprichten voor IT-consultants"
- 3 H2-headings met "voor IT-consultants" persona-targeting
- Hero lead paragraph: ITAA-erkende begeleiding + VVPR-bis 18% + investeringsaftrek 40% + art. 5:16 WVV
- Aansprakelijkheid paragraph: Q-46/Q-53 compliant (geen absolute "garandeert"-claim) + IT klant-projecten context
- Vermogensopbouw paragraph: VVPR-bis 18% RV 4e boekjaar + investeringsaftrek 40% IT-investeringen (AI-tooling)
- LIVE-verify via cURL: persona-content detected na site-publish
- 22 paragraphs nog generic /bv-oprichten baseline (acceptable MVP, latere persona-refinement mogelijk)
- ~45 minLIVE productieHigh impact
Stap C start: persona-page /it-consultant + SEO-meta upgrade
Claude (Opus 4.7)
Vervolg Fase 8 cleanup met persona-page deploy + SEO-meta optimalisatie. Critical safety-stop voorkwam sitewide CTA-breakage (Vincent had per ongeluk /bv-oprichten slug gerenamed i.p.v. duplicate). Na rollback: echte Duplicate uitgevoerd + SEO-meta opgewaardeerd op /bv-oprichten (title van 12 → 55 chars, complete OG + Twitter). /it-consultant page gecreëerd met persona-specifieke meta uit spec 07.4.
- Critical: rollback /bv-oprichten slug-rename (voorkomt breakage van 14 sitewide simulator-CTAs + footer + buttons)
- Vincent ECHT Duplicate: nieuwe /it-consultant page met unieke id 6a097ac1aa0e51cfc4546f72
- /bv-oprichten meta-upgrade: title 12 → 55 chars + 140-char description + complete OG/Twitter tags LIVE
- /it-consultant meta gezet via Data API (persona-specifieke USP: VVPR-bis 18% + investeringsaftrek 40%)
- Workflow-leerpunt: ALTIJD API-list-pages na duplicate-actie om id-uniciteit te verifiëren
- /it-consultant content-rewrite via set_text uit spec 07.4 staat open (next step)
- ~2uStaging
Fase 8 cleanup: 3 wording-fixes + Q-54 bron-policy update sitewide
Claude (Opus 4.7)
Eerste sessie 17 mei: Vincent kiest Fase 8 cleanup money-pages voor baseline-polish voor Fase 9. Stap A 3 wording-fixes succesvol via Designer MCP (Q-46/Q-53 compliance). Stap B.1 sitewide Q-54 policy-update: wetsartikel-bron-vermelding verwijderd uit alle 64 blogs per Vincent's nieuwe beleid ("juridisch riskanter, niet gepast"). Stap B.2 HtmlEmbed-aanpak voor static pages mislukt (API-limitatie ontdekt).
- Wording-fix /vergelijking: "BV garandeert nooit aangesproken" → "scheidt privévermogen, behalve in specifieke uitzonderingen"
- Wording-fix /financieel-plan: paragraaf met 4 violations (zeker zijn/geen risico/zorgeloos/nadeloze) → ITAA-erkende partner + art. 5:4 WVV
- Wording-fix /splitlease: "zorgeloos" → "bewust" in droomwagen-statement
- Q-54 bron-policy update: 64 blogs Bron-regel removed (sitewide consistency, geen wetsartikel-vermelding)
- Nieuw Script-First fix-script: fix-q54-remove-bron-blogs.py (idempotent, bulk PATCH)
- Anti-mistake bevestigd: HtmlEmbed content via Designer MCP NIET ondersteund (4 paden getest)
- Cleanup: 10 lege HtmlEmbeds verwijderd via remove_element op alle static pages
- Dag 3
24 entries · 16u 15m · 8 LIVE
- ~30 minAudit
P3 audit-fix: 125× external links target_blank in blog-bodies
Claude (Opus 4.7)
Laatste audit-batch van de dag: deep-scan toonde 125 external anchor-tags in CMS blog-bodies zonder target=_blank (vs initial schatting 16). Mechanische bulk-fix via nieuw Script-First fix-script. Cumulatief external missing target_blank gedaald van 43 → 5 (-88%) over 2 fix-batches.
- 125 anchor-fixes LIVE over 32 blogs (meesters.be cross-refs + Vlaamse overheid + tools)
- Nieuw script: scripts/audit/fixes/fix-external-target-blank-blogs.py (regex-based, idempotent)
- Bulk PATCH (32 blogs in 1 call) + bulk publish in 1 call
- Re-audit: external missing target_blank 16 → 5 (-69% deze ronde)
- LIVE cURL-verify: pmv.eu + clearfacts.be + 30+ anderen nu met correct attrs
- ~20 minAudit
Documentatie-upgrade: dagsamenvatting + decisions-log
Claude (Opus 4.7)
Vincent verzoek: "alles goed documenteren zodat we per-dag bijhouden". Nieuwe reports/ folder voor management-summaries + decisions-log uitgebreid met 6 nieuwe decision-entries voor deze sessie. GitHub PR bevat nu volledig audit-trail per dag voor Vincent's management bij Meesters Accountants.
- NIEUW: reports/2026-05-16-dagsamenvatting.md (1-page exec-summary)
- decisions-log.md: 6 nieuwe entries (Q-54 herstel + Fase 7.5 + HTTPS resolution + P1 + P2 + simulator)
- PROJECT-STATUS.md bijgewerkt met audit-progress sectie
- WORK-LOG.md detail-log per sub-sessie (8 entries vandaag)
- ~50 minLIVE productie
Simulator-subdomain integratie: 14 CTAs sitewide + 301 redirect
Claude (Opus 4.7)
Vincent lanceerde simulator.ondernemingoprichten.be (vennootschapsvorm-keuzehulp, 14 vragen, 3 min). Volledige integratie conform Strategy v1.1 + D-S3 funnel-pattern. Eerste plan was Webflow-landing-page (Optie B) maar re-evaluatie: subdomain heeft al SEO-optimized landing — extra Webflow-page zou -20-30% conversie kosten.
- 14× "Doe de keuzehulp"-CTAs LIVE op 6 pages (homepage 3 + bv 3 + vof 1 + commv 1 + nv 3 + vergelijking 3)
- Ex-Calendly buttons (zonder link na 2026-05-15 removal) krijgen functionele bestemming via simulator
- 301 redirect /simulator → https://simulator.ondernemingoprichten.be (Vincent UI-actie)
- cURL-verificatie: 14/14 CTAs + 301 redirect (1 hop, alle edge-cases) PASS
- Funnel-architectuur compleet: trust → keuzehulp → simulator → conversie
- ~30 minAudit
P2 audit-fixes: footer target_blank + weak hier-anchors
Claude (Opus 4.7)
Designer MCP voor footer-component (cascadeert sitewide) + Data API voor CMS-blog body-rewrite. Pragmatische scope: "Lees meer" anchors (15×) bewust behouden in card-context, alleen "hier" anchors (echte SEO-issue) gefixt.
- 7 footer-externals (meesters.be + Google Maps × 4 + Twitter + YouTube): target_blank + rel cascade naar ~100 pages
- 7 weak "hier" anchors gerewriting in 2 blogs naar context-specifieke tekst
- Nieuw script: fix-weak-hier-anchors.py (per-target replacement-mapping)
- Re-audit: external missing target_blank 43 → 16 (-63%), weak anchors 23 → 16 (-30%)
- ~45 minAuditHigh impact
P1 audit-fixes batch via Designer MCP: 18 LIVE-fixes
Claude (Opus 4.7)
Designer-bridge geactiveerd door Vincent. H1 lengthening op 5 SEO-pages (te kort) + heading-hierarchy promotion op /splitlease (12× H6 anti-pattern → H3) + /vergelijking (1× H3 → H2 skipped-level). Re-audit toonde meetbare verbetering: OK 14 → 19 (+5), HIGH echt-fixable 2 → 0.
- /liquidatiereserve, /vvpr-bis, /nace-codes, /contact, /sitemap: H1 lengthend naar 30-53 chars
- /splitlease: 12× H6 → H3 (visual-styling anti-pattern fix, classes intact)
- /vergelijking-vennootschapsvormen: 1× H3 → H2 (natural intro-section)
- Vincent approval batch ("JA — alle 5 zoals voorgesteld") → execute via Designer MCP set_text + set_heading_level
- ~15 minLIVE productieHigh impact
HTTPS-finding resolved + meta-description fix LIVE
Claude (Opus 4.7)
Vincent bevestigde: Force-HTTPS is niet meer instelbaar in Webflow Site Settings (platform-default). cURL toonde HTTP 301 → HTTPS + HSTS max-age=31536000. Audit-script bug-fix toegepast. Plus: P2 fix voor /bedankt-inzending---splitlease (meta-description + OG-tags).
- site-settings-audit.py bug-fix: check final_url.startswith("https://") na auto-follow
- HIGH-finding 2.1 gemarkeerd als RESOLVED (false-positive)
- Nieuw script: fix-missing-meta-descriptions.py (config-driven, uitbreidbaar)
- /bedankt-inzending---splitlease: meta-desc + OG-title + OG-description LIVE
- ~15 minAudit
Blog met 6× H1 gefixt: HIGH SEO-violation opgelost
Claude (Opus 4.7)
Audit-finding 2.2: blog "/online-je-bedrijf-..." had 5 H1's in body + 1 in page-template = 6 totaal. Google verwart over page-topic. Fix: alle body-H1's demoted naar H2. Resultaat: 1 H1 + 16 H2 (correcte hiërarchie).
- Nieuw script: scripts/audit/fixes/fix-blog-multiple-h1.py (idempotent regex-replace)
- 5 body H1 → H2 demotions in 1 blog body PATCH
- LIVE-verify: 1 H1 + 16 H2 zoals expected
- Site-publish naar beide custom-domains
- ~90 minAudit
Fase 7.5 Pre-build Health Audit: specs + 4 audit-scripts uitgevoerd
Claude (Opus 4.7)
Vincent verzoek: "site technisch en structureel maximaal gezond voor Fase 8". Nieuwe folder 07.5-pre-build-health-audit/ met 4 audit-plan specs (header / layout / linking / site-settings) + 4 stdlib-only Python audit-scripts uitgevoerd. Findings: 3 echte HIGH + 21 MEDIUM + 12 LOW + 9 false-positives.
- 4 audit-plan specs (~922 regels) in nieuwe 07.5-pre-build-health-audit/ folder
- 4 audit-scripts in scripts/audit/ + shared lib_audit.py
- Audit-findings report met prioritized fix-strategieën (7.5.5)
- Audit-trail manifests in scripts/audit/manifests/
- ~90 minLIVE productie
Fase 6 detail-calculators: 5 specs voor fiscale tools
Claude (Opus 4.7)
5 calculator-specs (BV-kostprijs / VVPR-bis voordeel / Loon-vs-dividend / Liquidatiereserve multi-jaar / Investeringsaftrek 10-40%). Per spec: inputs + formules + outputs + AEO/LLMO + Q-54 disclaimer + tech-architectuur (embed vs subdomain) + tracking. 22 nieuwe D-T beslissingen.
- 06.1 BV-kostprijs calculator (Webflow embed, Fase 8 sprint 7)
- 06.2 VVPR-bis voordeel (Webflow embed, Fase 11 sprint 1)
- 06.3 Loon vs dividend (subdomain Next.js, Fase 11 sprint 2)
- 06.4 Liquidatiereserve multi-jaar projectie (subdomain)
- 06.5 Investeringsaftrek 10/20/30/40% (Webflow embed)
- Vereist Nathalie fiscaal-review pre-publish per calculator
- ~45 minDocsHigh impact
Q-54 compliance batch HERSTELD: 64/64 blogs LIVE gestempeld
Claude (Opus 4.7)
Kritische gap geconstateerd: WORK-LOG 2026-05-15 claimde "64/64 blogs Q-54 stempel" maar LIVE-verificatie toonde 0/64. Q-54 batch verloren bij backup-restore + niet hersteld. Anti-Script-First failure: oorspronkelijke batch was ad-hoc cURL zonder repo-commitment. Vandaag hersteld via nieuw Script-First batch-script.
- Nieuw script: scripts/recovery/q54-stempel-batch.py (9 topic-categorieën met keyword-detection)
- Universele HTML compliance-block met topic-specifieke bron-vermelding (WIB 92 / WVV / WBTW / RSZ / VCF / WER / KBO)
- Idempotent via class="oo-compliance" marker
- 64 blogs gepatched + gepublished in 2 bulk-API-calls
- Coverage van 0/64 → 64/64 (100% verified via re-audit)
- Anti-mistake permanently fixed: script in repo + reproduceerbaar
- ~30 minLIVE productieHigh impact
Priority 1 LIVE-verify (16/16 PASS) + Q-54 gap geconstateerd
Claude (Opus 4.7)
WEBFLOW_TOKEN actief in shell + Railway env → Python recovery-scripts direct uitvoerbaar. 2 read-only verification-scripts gebouwd: Priority 1 fiscale fixes (VVPR-bis 18% + liquidatiereserve 9,8% + Calendly weg) allemaal LIVE-intact. Q-54 coverage-scan toonde echter 0/64 gestempeld.
- verify-priority-1-fixes.py: 16/16 checks PASS (VVPR-bis + liquidatiereserve + Calendly + form-notifications)
- q54-coverage-scan.py: 0/64 blogs volledig gestempeld (GAP geïdentificeerd)
- 2 audit-trail manifests committed
- Anti-mistake confirmed: ad-hoc cURL verloren bij restore (vs Script-First in repo)
- ~30 minAudit
P3 audit-fix: 125× external links target_blank in blog-bodies
Claude (Opus 4.7)
Laatste audit-batch van de dag: deep-scan toonde 125 external anchor-tags in CMS blog-bodies zonder target=_blank (vs initial schatting 16). Mechanische bulk-fix via nieuw Script-First fix-script. Cumulatief external missing target_blank gedaald van 43 → 5 (-88%) over 2 fix-batches.
- 125 anchor-fixes LIVE over 32 blogs (meesters.be cross-refs + Vlaamse overheid + tools)
- Nieuw script: scripts/audit/fixes/fix-external-target-blank-blogs.py (regex-based, idempotent)
- Bulk PATCH (32 blogs in 1 call) + bulk publish in 1 call
- Re-audit: external missing target_blank 16 → 5 (-69% deze ronde)
- LIVE cURL-verify: pmv.eu + clearfacts.be + 30+ anderen nu met correct attrs
- ~20 minAudit
Documentatie-upgrade: dagsamenvatting + decisions-log
Claude (Opus 4.7)
Vincent verzoek: "alles goed documenteren zodat we per-dag bijhouden". Nieuwe reports/ folder voor management-summaries + decisions-log uitgebreid met 6 nieuwe decision-entries voor deze sessie. GitHub PR bevat nu volledig audit-trail per dag voor Vincent's management bij Meesters Accountants.
- NIEUW: reports/2026-05-16-dagsamenvatting.md (1-page exec-summary)
- decisions-log.md: 6 nieuwe entries (Q-54 herstel + Fase 7.5 + HTTPS resolution + P1 + P2 + simulator)
- PROJECT-STATUS.md bijgewerkt met audit-progress sectie
- WORK-LOG.md detail-log per sub-sessie (8 entries vandaag)
- ~50 minLIVE productie
Simulator-subdomain integratie: 14 CTAs sitewide + 301 redirect
Claude (Opus 4.7)
Vincent lanceerde simulator.ondernemingoprichten.be (vennootschapsvorm-keuzehulp, 14 vragen, 3 min). Volledige integratie conform Strategy v1.1 + D-S3 funnel-pattern. Eerste plan was Webflow-landing-page (Optie B) maar re-evaluatie: subdomain heeft al SEO-optimized landing — extra Webflow-page zou -20-30% conversie kosten.
- 14× "Doe de keuzehulp"-CTAs LIVE op 6 pages (homepage 3 + bv 3 + vof 1 + commv 1 + nv 3 + vergelijking 3)
- Ex-Calendly buttons (zonder link na 2026-05-15 removal) krijgen functionele bestemming via simulator
- 301 redirect /simulator → https://simulator.ondernemingoprichten.be (Vincent UI-actie)
- cURL-verificatie: 14/14 CTAs + 301 redirect (1 hop, alle edge-cases) PASS
- Funnel-architectuur compleet: trust → keuzehulp → simulator → conversie
- ~30 minAudit
P2 audit-fixes: footer target_blank + weak hier-anchors
Claude (Opus 4.7)
Designer MCP voor footer-component (cascadeert sitewide) + Data API voor CMS-blog body-rewrite. Pragmatische scope: "Lees meer" anchors (15×) bewust behouden in card-context, alleen "hier" anchors (echte SEO-issue) gefixt.
- 7 footer-externals (meesters.be + Google Maps × 4 + Twitter + YouTube): target_blank + rel cascade naar ~100 pages
- 7 weak "hier" anchors gerewriting in 2 blogs naar context-specifieke tekst
- Nieuw script: fix-weak-hier-anchors.py (per-target replacement-mapping)
- Re-audit: external missing target_blank 43 → 16 (-63%), weak anchors 23 → 16 (-30%)
- ~45 minAuditHigh impact
P1 audit-fixes batch via Designer MCP: 18 LIVE-fixes
Claude (Opus 4.7)
Designer-bridge geactiveerd door Vincent. H1 lengthening op 5 SEO-pages (te kort) + heading-hierarchy promotion op /splitlease (12× H6 anti-pattern → H3) + /vergelijking (1× H3 → H2 skipped-level). Re-audit toonde meetbare verbetering: OK 14 → 19 (+5), HIGH echt-fixable 2 → 0.
- /liquidatiereserve, /vvpr-bis, /nace-codes, /contact, /sitemap: H1 lengthend naar 30-53 chars
- /splitlease: 12× H6 → H3 (visual-styling anti-pattern fix, classes intact)
- /vergelijking-vennootschapsvormen: 1× H3 → H2 (natural intro-section)
- Vincent approval batch ("JA — alle 5 zoals voorgesteld") → execute via Designer MCP set_text + set_heading_level
- ~15 minLIVE productieHigh impact
HTTPS-finding resolved + meta-description fix LIVE
Claude (Opus 4.7)
Vincent bevestigde: Force-HTTPS is niet meer instelbaar in Webflow Site Settings (platform-default). cURL toonde HTTP 301 → HTTPS + HSTS max-age=31536000. Audit-script bug-fix toegepast. Plus: P2 fix voor /bedankt-inzending---splitlease (meta-description + OG-tags).
- site-settings-audit.py bug-fix: check final_url.startswith("https://") na auto-follow
- HIGH-finding 2.1 gemarkeerd als RESOLVED (false-positive)
- Nieuw script: fix-missing-meta-descriptions.py (config-driven, uitbreidbaar)
- /bedankt-inzending---splitlease: meta-desc + OG-title + OG-description LIVE
- ~15 minAudit
Blog met 6× H1 gefixt: HIGH SEO-violation opgelost
Claude (Opus 4.7)
Audit-finding 2.2: blog "/online-je-bedrijf-..." had 5 H1's in body + 1 in page-template = 6 totaal. Google verwart over page-topic. Fix: alle body-H1's demoted naar H2. Resultaat: 1 H1 + 16 H2 (correcte hiërarchie).
- Nieuw script: scripts/audit/fixes/fix-blog-multiple-h1.py (idempotent regex-replace)
- 5 body H1 → H2 demotions in 1 blog body PATCH
- LIVE-verify: 1 H1 + 16 H2 zoals expected
- Site-publish naar beide custom-domains
- ~90 minAudit
Fase 7.5 Pre-build Health Audit: specs + 4 audit-scripts uitgevoerd
Claude (Opus 4.7)
Vincent verzoek: "site technisch en structureel maximaal gezond voor Fase 8". Nieuwe folder 07.5-pre-build-health-audit/ met 4 audit-plan specs (header / layout / linking / site-settings) + 4 stdlib-only Python audit-scripts uitgevoerd. Findings: 3 echte HIGH + 21 MEDIUM + 12 LOW + 9 false-positives.
- 4 audit-plan specs (~922 regels) in nieuwe 07.5-pre-build-health-audit/ folder
- 4 audit-scripts in scripts/audit/ + shared lib_audit.py
- Audit-findings report met prioritized fix-strategieën (7.5.5)
- Audit-trail manifests in scripts/audit/manifests/
- ~90 minLIVE productie
Fase 6 detail-calculators: 5 specs voor fiscale tools
Claude (Opus 4.7)
5 calculator-specs (BV-kostprijs / VVPR-bis voordeel / Loon-vs-dividend / Liquidatiereserve multi-jaar / Investeringsaftrek 10-40%). Per spec: inputs + formules + outputs + AEO/LLMO + Q-54 disclaimer + tech-architectuur (embed vs subdomain) + tracking. 22 nieuwe D-T beslissingen.
- 06.1 BV-kostprijs calculator (Webflow embed, Fase 8 sprint 7)
- 06.2 VVPR-bis voordeel (Webflow embed, Fase 11 sprint 1)
- 06.3 Loon vs dividend (subdomain Next.js, Fase 11 sprint 2)
- 06.4 Liquidatiereserve multi-jaar projectie (subdomain)
- 06.5 Investeringsaftrek 10/20/30/40% (Webflow embed)
- Vereist Nathalie fiscaal-review pre-publish per calculator
- ~45 minDocsHigh impact
Q-54 compliance batch HERSTELD: 64/64 blogs LIVE gestempeld
Claude (Opus 4.7)
Kritische gap geconstateerd: WORK-LOG 2026-05-15 claimde "64/64 blogs Q-54 stempel" maar LIVE-verificatie toonde 0/64. Q-54 batch verloren bij backup-restore + niet hersteld. Anti-Script-First failure: oorspronkelijke batch was ad-hoc cURL zonder repo-commitment. Vandaag hersteld via nieuw Script-First batch-script.
- Nieuw script: scripts/recovery/q54-stempel-batch.py (9 topic-categorieën met keyword-detection)
- Universele HTML compliance-block met topic-specifieke bron-vermelding (WIB 92 / WVV / WBTW / RSZ / VCF / WER / KBO)
- Idempotent via class="oo-compliance" marker
- 64 blogs gepatched + gepublished in 2 bulk-API-calls
- Coverage van 0/64 → 64/64 (100% verified via re-audit)
- Anti-mistake permanently fixed: script in repo + reproduceerbaar
- ~30 minLIVE productieHigh impact
Priority 1 LIVE-verify (16/16 PASS) + Q-54 gap geconstateerd
Claude (Opus 4.7)
WEBFLOW_TOKEN actief in shell + Railway env → Python recovery-scripts direct uitvoerbaar. 2 read-only verification-scripts gebouwd: Priority 1 fiscale fixes (VVPR-bis 18% + liquidatiereserve 9,8% + Calendly weg) allemaal LIVE-intact. Q-54 coverage-scan toonde echter 0/64 gestempeld.
- verify-priority-1-fixes.py: 16/16 checks PASS (VVPR-bis + liquidatiereserve + Calendly + form-notifications)
- q54-coverage-scan.py: 0/64 blogs volledig gestempeld (GAP geïdentificeerd)
- 2 audit-trail manifests committed
- Anti-mistake confirmed: ad-hoc cURL verloren bij restore (vs Script-First in repo)
- ~45 minStaging
Railway dashboard deploy unblocked
Claude (Opus 4.7)
Service ondernemingoprichten-be op Railway stond op FAILED. Root cause: Railway probeerde de repo root te builden (alleen specs/docs), terwijl de Next.js dashboard in dashboard/ subfolder zit. Daarna kwamen er CVE-blocks en TS-fouten naar boven.
- Root Directory van Railway service via GraphQL API op "dashboard" gezet (CLI ondersteunt dit niet)
- Next.js gebumpt van 15.0.3 → ^15.0.7 wegens CVE-2025-66478 (CRITICAL) + 3 andere CVEs
- React/react-dom van RC-build naar stable ^19.0.0 wegens peer-dep conflict met next 15.5
- Phase.stream union type aangevuld met 'B+C' (gebruikt door Fase 12)
- streamColor map in PhaseCard.tsx aangevuld met 'B+C' entry
- Live op https://ondernemingoprichten-be-production.up.railway.app/ (HTTP 200)
- ~10 minDocs
Changelog pagina toegevoegd
Claude (Opus 4.7)
Eenvoudige changelog pagina op het dashboard waarop Claude alle wijzigingen + tijdsbesteding kan bijhouden. Aparte route /changelog met nav-link in header.
- dashboard/lib/changelog.ts — typed data file met ChangelogEntry interface
- dashboard/app/changelog/page.tsx — render-pagina met chronologische timeline
- dashboard/app/layout.tsx — nav-link naar /changelog in header
- Dag 2
1 entry · 12u · 1 LIVE
- ~12uLIVE productieHigh impact
Diepe uitvoeringsdag — 5 sub-sessies
Claude (Opus 4.7) + Vincent + PAL Gemini/GPT/Webflow AI
Mega-werkdag met access audit + Webflow inventory + content audit + persona-pages spec + Sprint 1 sitewide CTA-rollout + mini-scope deliveries. 12 uur verspreid over de dag. Q-03..Q-07 access audit afgerond, alle 16 tools geinventariseerd. Q-A1 + Q-A2 gestempeld op 64 blogs Q-54 compliance. Q-A4 + Q-A5 LIVE.
- Fase 0.3 Access audit — 16 tools volledig geaudit, 5 Google-platforms gecleaned, ex-collaborators verwijderd
- Fase 0.4 Webflow inventory — 7 findings, 2 LIVE-fixes (duplicate schema + draft blog)
- Fase 4 content audit — 64 blogs Q-54 compliance-coverage volledig
- Fase 7 persona-pages spec — eerste discovery + content drafts /adviesgesprek + /simulator
- Strategy v1.1 → v1.2 PAL deep-audit met Q-46/Q-53/Q-54 wording-policies
- Sprint 1 CTA-rollout sitewide — 5 wording-fixes LIVE
- Dag 1
1 entry · 6u · 1 LIVE
- ~6uLIVE productieHigh impact
Project setup + strategiebepaling + eerste urgente risk-fixes LIVE
Claude (Opus 4.7) + Vincent + PAL Gemini/GPT-5/Claude Opus
Opstartdag van het ondernemingoprichten.be project bij Meesters Marketing agency. Onafhankelijke strategiebepaling (positionering, ICP, aanbod-architectuur, content-pivot, distributie) + 16-fase projectplan opgezet + eerste LIVE risk-fixes op productie (VVPR-bis 15%→18% per Programmawet 2026, liquidatiereserve 6,5%→9,8%, Calendly-integratie verwijderd voor anti-no-show beleid).
- 16-fase projectplan gestructureerd in repo (00-foundation t/m 16-operations-handover)
- PAL deep-audit Sessie 2 architectuur (planner + thinkdeep + challenge + consensus met 3 expert-AIs) → 10 D-A beslissingen
- Fase 0.9 urgent risk-fixes LIVE: VVPR-bis tarief 15% → 18% op 3 pagina's (Programmawet 2026)
- Liquidatiereserve tarief 6,5% → 9,8% op /liquidatiereserve + meta-description
- Calendly-integratie verwijderd sitewide (anti-no-show beleid)
- Form-notificaties: ex-collaborator meyskensm@gmail.com verwijderd
- Q-38 Disavow campagne: 297 spam-refdomains ingediend bij Google Search Console
- Strategy v1.0 → v1.1 via PAL deep-audit (3 expert-AIs) → 10 D-S beslissingen waarvan 6 goedgekeurd
dashboard/lib/changelog.ts in te voegen. Velden: date (YYYY-MM-DD), title, summary, changes[], timeSpent (vrij formaat), author (optioneel). Optioneel: category + impact overrides (auto-gedetecteerd uit title/summary indien afwezig).