Skip to content

besluit_soort — waarom de enum-pilot is gepauzeerd

Op 2026-05-11 werd de pilot voor catalogus.besluit_soorten gestart per ADR-0033. De eerste corpus-query voor besluit_kind = 'vaststelling' (14.156 rijen, 61% van het corpus) onthulde dat de enum structureel muddled is — geen enkele Awb-artikel ankert "vaststelling" als een kind van besluit. De pilot is gepauzeerd tot de axis is uitgedacht.

Wat de gebruikers-correctie zei

Verbatim 2026-05-11:

"vaststelling is not a type of decision indeed. It is letting you know a decision was made. vaststellen is the act of in writing confirming the decision has been made and letting you know what it is."

Dus vaststelling is een event / aankondiging, geen taxonomie-entry. Het is de handeling van het formeel-op-schrift-stellen + publiceren dat een besluit is genomen. Dat is metadata óp een besluit (wanneer vastgesteld, door wie, waar bekendgemaakt) — geen kind dat het besluit is.

De diepere bevinding — enum husselt drie axes

De huidige 20-waarden-enum mengt minstens vier verschillende dingen:

AxisVoorbeeldenWat het werkelijk isWaar het thuishoort
Lifecycle-event (actie genoteerd tegen een besluit)vaststelling, wijziging, intrekking, heroverwegingsbesluitEvent-log entries — "dit besluit is vastgesteld / gewijzigd / ingetrokken op datum X"Mogelijk in publicatie.* of in een event-log naast besluit.besluiten
Beschikkings-content-type (Awb 1:3 lid 2 familie)weigering, fictieve_weigering, gedoogbesluitEchte kinds van beschikkingEen echte besluit_soort (klein, ankerable)
Specifiek genoemd besluit (eigen statutaire basis)voorbereidingsbesluit (Ow 4.14), aanwijzingsbesluit (Pw 121), instructiebesluit, reactieve_aanwijzing (Wro 3.8)Distinctieve besluit-types elk anker aan één artikelbesluit_soort-rijen OF aparte side-table — open
Rechterlijke uitspraak (al verplaatst via ADR-0035)rechterlijke_uitspraak, tussenuitspraak, einduitspraak, conclusie_pg, rechterlijke_zelfvoorzieningWet RO + Awb afd. 8uitspraak.uitspraken (apart schema)
Politieke handeling (deferred in ADR-0033)motie, amendement, raadsvoorstel, procedurele-mededelingVolksvertegenwoordiging-handelingenOpen — politiek.* schema of out of scope

ADR-0032 v3 had al gewezen naar deze richting: "besluit_kind confirmed lifecycle-only with content-type routing through entity_terms" — maar de conclusie was nog niet volledig op de enum toegepast.

De keuze — pause vóór anchoring

Per ADR-0033's anker-protocol: een gesloten-vocab-rij moet ankeren op een corpus-geverifieerd wet-artikel. Anchoring van een muddled enum schendt het "no errors at this level" mandaat — je legt verkeerde claims vast met een correcte-uitziend anker.

Path 1 (gekozen): pause catalogus.besluit_soorten pilot. Pak in een aparte sessie de axis-vraag op. Anchor pas wanneer de enum een coherente axis vertegenwoordigt.

Alternatieve paden (afgewezen):

  • Doorgaan met anchoring — riskant, leidt tot anchored-foute-rijen die later moeten worden vernietigd.
  • Sneltest-axis-keuze + door — onvoldoende onderzoek, herhaalt vorige axis-fouten.

Open vragen voor de hervatting

  1. Wat is de juiste axis voor besluit_soort? Meest verdedigbare lezing: content-type onlybesluit_soort enumereert de beschikkings-kinds (Awb 1:3 lid 2 familie) + genoemde besluit-types met eigen wettelijke basis. Lifecycle gaat elders.
  2. Waar wonen lifecycle-events? Drie opties:
    • (a) Side-tabel besluit.lifecycle_events (één rij per (besluit, event, datum) — vaststelling / wijziging / intrekking / heroverweging)
    • (b) Kolommen op besluit.besluiten (vaststellingsdatum bestaat al; toevoegen intrekking_op, wijziging_op — maar dat vermengt one-shot updates met multi-event history)
    • (c) In publicatie.* (elke lifecycle-event is een publicatie-event)
    • Lean: (a) — proper event-log laat sequence + provenance noteren zonder kolom-bloat.
  3. Waar wonen genoemde besluit-types? Rijen in besluit.besluiten met besluit_soort op die waarde (optie A), of sidecars zoals besluit.voorbereidingsbesluiten omdat statutaire shape echt verschilt (optie B)?
  4. Wat ziet de overgebleven enum eruit na de split? Vermoedelijk ~5-7 waarden: weigering, fictieve_weigering, gedoogbesluit (Awb 1:3 lid 2 content-types), plus eventueel voorbereidingsbesluit / aanwijzingsbesluit / instructiebesluit / reactieve_aanwijzing (als hun shape overeenkomt — anders side-table).

Wat dit raakt aan vandaag's werk (2026-05-12)

De expression_aard-enum die we vandaag hebben ontworpen (zie Expression-aarden) heeft dezelfde discipline gevolgd: lifecycle-positie zit in een aparte as (primaire vs afgeleide Expression), niet in dezelfde enum als content-vorm. De besluit_soort-pauze valideert deze aanpak — wanneer je merkt dat een enum drie axes husselt, splits ze.

Onderliggende ADRs en docs

  • ADR-0032 v3 — besluit_kind confirmed lifecycle-only with content-type routing through entity_terms
  • ADR-0033 — Schema noun-families + legal-anchor protocol (waarom muddled-enums niet ankerable zijn)
  • ADR-0035 — uitspraak-stack (al excised uit besluit-stack)
  • docs/handoffs/2026-05-11-besluit-soort-enum-restructure.md — de pause-beslissing

Intern handboek — niet voor externe publicatie