docs(backlog): add gaps discovered during S3a PR 2
- TECH-06 — ESLint config ontbreekt in apps/portal (pendant van TECH-05). - DOC-02 — VitePress docs:build faalt op missing image in /docs/volunteer/je-aanmelden-via-een-link.md. - DOC-03 — Formulieren sidebar story is incompleet; nog geen publicatieflow, inzendingen-overzicht, templates, webhooks, conditionele logica. - FORM-09 — TriggerPersonIdentityMatchOnFormSubmit ShouldQueue herzien: async queue-dispatch levert null bij submit-response; eager state + lazy resolution patroon invoeren nu de refactor nog klein is (voor FORM-05 landt). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -339,6 +339,32 @@ shifts claimen zonder toegang tot de Organizer app.
|
||||
|
||||
---
|
||||
|
||||
### DOC-02 — VitePress docs:build faalt op missing image
|
||||
|
||||
**Aanleiding:** `/docs/volunteer/je-aanmelden-via-een-link.md` verwijst
|
||||
naar `./images/placeholder.png` dat niet bestaat. Dev mode werkt,
|
||||
build faalt. Blokkeert CI als die `docs:build` gaat draaien.
|
||||
**Wat:** Placeholder afbeelding toevoegen OF de referentie weghalen /
|
||||
vervangen door een echte screenshot van het registratieflow.
|
||||
**Prioriteit:** Laag — cosmetisch, niet blokkerend voor dev.
|
||||
|
||||
---
|
||||
|
||||
### DOC-03 — Formulieren sidebar story is incompleet
|
||||
|
||||
**Aanleiding:** Tijdens S3a PR 2 is
|
||||
`docs/organizer/forms/concepts/wat-is-een-formulier.md` gewired in de
|
||||
sidebar, samen met de nieuwe veldtype-pagina's. Maar de bredere
|
||||
Formulieren-sidebar mist nog: publicatieflow, inzendingen-overzicht,
|
||||
templates, webhook-configuratie, conditionele logica.
|
||||
**Wat:** Dedicated docs-sprint voor de Formulieren-module in
|
||||
VitePress. Schat: 6-8 pagina's in Nederlands, aimed at organisatoren
|
||||
die formulieren configureren.
|
||||
**Prioriteit:** Middel — landt best vlak voor/na S3b (organizer
|
||||
form-builder UI), omdat screenshots pas zin hebben als de UI staat.
|
||||
|
||||
---
|
||||
|
||||
### FORM-05 — Smart identity-match on public submission values
|
||||
|
||||
**Stub-status (S3a PR 2, 2026-04-23):** Public event_registration
|
||||
@@ -366,6 +392,39 @@ Prioriteit: Medium. Kan gebundeld worden met de organizer
|
||||
|
||||
---
|
||||
|
||||
### FORM-09 — TriggerPersonIdentityMatchOnFormSubmit ShouldQueue herzien
|
||||
|
||||
**Aanleiding:** De bestaande listener `implements ShouldQueue`. Gevolg:
|
||||
bij een public event_registration submission is
|
||||
`identity_match_status` nog `null` op het moment dat de submit-HTTP-
|
||||
response terugkeert. De confirmation page rendert daardoor zonder
|
||||
banner bij first load — pas na een refresh (of queue-worker tick) is
|
||||
de `pending` staat zichtbaar. Tijdens S3a PR 2 is dit genoteerd als
|
||||
"dev ergonomics" (draai `queue:work` erbij), maar dat is een
|
||||
workaround, geen fix.
|
||||
**Wat:** Verwijder `implements ShouldQueue` uit
|
||||
`TriggerPersonIdentityMatchOnFormSubmit`. De listener wordt
|
||||
orchestrator: schrijft `identity_match_status` synchroon in de
|
||||
request-lifecycle zodat de submit-response direct klopt. Wanneer
|
||||
FORM-05 proper landt met zwaardere matching-logica
|
||||
(`PersonIdentityService::detectMatchesByValues` met fuzzy name
|
||||
matching over de hele org), wordt dat zware werk gedispatched als
|
||||
aparte `ResolveIdentityMatchJob` vanuit deze listener. Eager state
|
||||
transition blijft sync, heavy resolution blijft async.
|
||||
|
||||
Zie ook: architectuur-discussie in de S3a planning-sessie
|
||||
("eager state + lazy resolution" patroon).
|
||||
|
||||
**Prioriteit:** Middel — niet user-facing blocking vandaag (draait
|
||||
met `queue:work` gewoon), maar architecturaal is de refactor juist nu
|
||||
klein (1 regel weghalen + test-aanpassing). Wordt groter als FORM-05
|
||||
landt zonder deze refactor.
|
||||
|
||||
**Impact:** ~5 regels code, 1-2 test-aanpassingen. Eén commit, aparte
|
||||
PR.
|
||||
|
||||
---
|
||||
|
||||
### SUP-01 — Leveranciersportal + productieverzoeken
|
||||
|
||||
**Aanleiding:** Leveranciers moeten productie-informatie kunnen indienen.
|
||||
@@ -449,6 +508,20 @@ Vuexy 9.5 template. Moet in één keer groen draaien.
|
||||
|
||||
---
|
||||
|
||||
### TECH-06 — ESLint config ontbreekt in apps/portal
|
||||
|
||||
**Aanleiding:** `npm run lint` faalt in `apps/portal/` omdat
|
||||
`.eslintrc.cjs` niet bestaat. Geen flat-config equivalent aanwezig.
|
||||
Portal draait dus effectief zonder lint, wat botst met CLAUDE.md's
|
||||
zero-compromise regels. Apart van TECH-05 (dat over apps/app gaat).
|
||||
**Wat:** Flat-config ESLint installeren in `apps/portal/`, afgestemd
|
||||
op Vue 3 + TypeScript + Vuexy 10.11.1. In één keer groen laten
|
||||
draaien. Bij voorkeur gedeelde shared-config tussen apps/app en
|
||||
apps/portal om drift te voorkomen.
|
||||
**Prioriteit:** Middel — tooling-gap, niet user-facing.
|
||||
|
||||
---
|
||||
|
||||
### ~~TECH-02 — scopeForFestival helper op Event model~~ ✅ OPGELOST
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user