Skip to content

chore(openspec): generate bezwaar-decision spec#370

Merged
rubenvdlinde merged 1 commit into
developmentfrom
chore/spec-bezwaar-decision
May 11, 2026
Merged

chore(openspec): generate bezwaar-decision spec#370
rubenvdlinde merged 1 commit into
developmentfrom
chore/spec-bezwaar-decision

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

Formalize the bezwaar-decision capability as a first-class OpenSpec change. The current canonical spec at openspec/specs/bezwaar-decision/spec.md was committed without a change record (alongside bezwaar-beroep-workflow, commit 6c45b8b) and covers only 3 requirements. This change expands it to 10 requirements covering the full Awb Art. 7:11 / 7:12 beslissing op bezwaar lifecycle — sister spec to bezwaar-lifecycle, complementary to bezwaar-hearing and bezwaar-advisory-committee.

GENERATE-style change. NO CODE.

What's in the spec

  • REQ-BD-1 Entity & schema registration (bezwaarBesluit, ZGW besluit)
  • REQ-BD-2 Canonical Awb 7:11 five-value disposition enum
  • REQ-BD-3 Mandatory fields per outcome (replacement besluit, proceskosten gating)
  • REQ-BD-4 Heroverweging, motiveringsplicht, reformatio in peius
  • REQ-BD-5 Advisory committee linkage + deviation rationale (Art. 7:13 lid 7)
  • REQ-BD-6 Structured appeals notice (appealNotice)
  • REQ-BD-7 Proceskostenvergoeding rules (Art. 7:15)
  • REQ-BD-8 Decision deadline (Art. 7:10: 6 + 6 + 4 weeks)
  • REQ-BD-9 Template-driven decision document generation
  • REQ-BD-10 Publication + notification flow incl. MijnOverheid Berichtenbox

10 requirements, 28 Given/When/Then scenarios, openspec validate --strict passes.

Key decisions

  • Replaces legacy 4-value enum with canonical Awb 7:11 five-value enum distinguishing gegrond_handhaven / gegrond_herroepen / gegrond_wijzigen — required for downstream replacement-besluit and proceskosten rules
  • Models appealNotice as a structured sub-object, not free-form prose, so the frontend renders consistently and audits verify completeness
  • Binds decisionDate validation to bezwaar-lifecycle's calculated afhandelDeadline rather than duplicating Art. 7:10 logic
  • Triggers PDF generation from a configurable template on draft → published transition

Test plan

  • openspec validate bezwaar-decision --type change --strict → exit 0 (verified locally)
  • openspec change show bezwaar-decision --json --deltas-only | jq '.deltaCount' → 10 (verified locally)
  • Each REQ-BD-* carries >= 1 Scenario block (28 scenarios across 10 requirements)
  • No code changes outside openspec/changes/bezwaar-decision/

On archive

The delta replaces the partial spec currently at openspec/specs/bezwaar-decision/spec.md with the canonical 10-requirement contract.

@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 11, 2026 10:04
@rubenvdlinde rubenvdlinde merged commit 60c6af2 into development May 11, 2026
12 of 15 checks passed
@rubenvdlinde rubenvdlinde deleted the chore/spec-bezwaar-decision branch May 11, 2026 10:05
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 455be69

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 407/407
PHPUnit ⏭️
Newman ⏭️
Playwright

Spec coverage: 3% (21 tests / 673 specs)


Quality workflow — 2026-05-11 10:18 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant