Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

chore(openspec): normalize spec format + archive newly-clean changes#403

Merged
rubenvdlinde merged 1 commit into
developmentfrom
chore/openspec-format-normalize
May 11, 2026
Merged

chore(openspec): normalize spec format + archive newly-clean changes#403
rubenvdlinde merged 1 commit into
developmentfrom
chore/openspec-format-normalize

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Normalize every openspec/changes/<name>/specs/<capability>/spec.md to the canonical Hydra strict format (per ADR-024 + ADR-032), then archive everything that validates cleanly and has a builds/build.json.

Format normalization (47 specs touched, semantic content preserved):

  • ### Requirement: <title> canonical header (existing ### REQ-XXX-N:, ### Requirement N:, ### Schema Registration (ENHANCED) patterns all folded in).
  • REQ-XXX-N IDs preserved in the title text (### Requirement: REQ-... — <title>).
  • Each requirement body's first content line contains SHALL or MUST (validator only inspects line 1).
  • Each requirement has at least one #### Scenario: with - **GIVEN** / **WHEN** / **THEN** bullets.
  • Requirements wrapped under ## ADDED Requirements where the section header was ## Requirements or ## Changes from base spec.
  • Sub-requirement headers (#### REQ-XXX-N-N:, #### Scenario X.Y:) collapsed into #### Scenario:.

Outcome (cumulative archive total now 114, +37 dated 2026-05-11):

  • 37 newly archived (validate cleanly + have builds/build.json): add-server-side-kpi-aggregation, admin-settings, advice-management, ai-assisted-processing, appointment-scheduling, base-register-seed-data, bw-parafering, case-dashboard-view, case-definition-portability, case-management, case-sharing-collaboration, case-types, dashboard, legesberekening, mijn-overheid-integration, mobiel-inspectie, multi-tenant-saas, my-work, openregister-integration, parafeerroute-engine, parafering-actions, parafering-dashboard, process-step-configuration, procest-adopt-or-abstractions, procest-manifest-v1, procest-store-migration, prometheus-metrics, register-i18n, roles-decisions, status-transition-engine, stuf-support, task-management, werkvoorraad, workflow-definition-model, zaak-intake-flow, zaaktype-configuratie, zgw-api-mapping.
  • 11 specs validate cleanly but have no builds/build.json yet (left open for apply): case-email-integration, complaint-management, consultation-management, document-zaakdossier, dso-omgevingsloket, method-decomposition, milestone-tracking, open-raadsinformatie, unit-test-coverage-75, vth-module, woo-case-type.
  • 9 still fail strict (all proposal-only, no specs/ directory): besluitvorming-workflow, bezwaar-beroep-workflow, deelzaak-support, doorlooptijd-dashboard, gis-integration, procest-legacy-quality-cleanup, signalering-widgets, vth-workflow-configuration, workflow-engine-enhancement — need spec authoring before they can validate.

Scope discipline:

  • Markdown-only changes (no code, no test files, no i18n, no composer).
  • Spec-only restructuring — every requirement's original prose is preserved verbatim.

Test plan

  • CI markdown / openspec hooks pass on the branch.
  • openspec list shows 20 open changes (down from 57).
  • openspec validate --strict returns valid for all 11 still-active changes that have specs/ directories.

Normalize all openspec/changes/*/specs/*/spec.md files to the canonical
Hydra strict format (ADR-024/ADR-032):

- ### Requirement: <title> (canonical header).
- Each requirement body's first content line contains SHALL or MUST.
- Each requirement has at least one #### Scenario: with GIVEN/WHEN/THEN.
- Requirements are wrapped under ## ADDED Requirements (or MODIFIED).
- REQ-XXX-N IDs preserved in the title text (### Requirement: REQ-... — title).

Result:
- 47 specs normalized (semantic content preserved, only structure changed).
- 37 changes newly validate cleanly under openspec validate --strict and
  have builds/build.json — archived under openspec/changes/archive/2026-05-11-*.
- 11 specs validate cleanly but have no builds/build.json yet — left
  open for the apply step (case-email-integration, complaint-management,
  consultation-management, document-zaakdossier, dso-omgevingsloket,
  method-decomposition, milestone-tracking, open-raadsinformatie,
  unit-test-coverage-75, vth-module, woo-case-type).
- 9 changes still fail strict validation (one line each):
    * besluitvorming-workflow: no specs/ directory (proposal only).
    * bezwaar-beroep-workflow: no specs/ directory (proposal only).
    * deelzaak-support: no specs/ directory (proposal only).
    * doorlooptijd-dashboard: no specs/ directory (proposal only).
    * gis-integration: no specs/ directory (proposal only).
    * procest-legacy-quality-cleanup: no specs/ directory (cleanup tasks).
    * signalering-widgets: no specs/ directory (proposal only).
    * vth-workflow-configuration: no specs/ directory (proposal only).
    * workflow-engine-enhancement: no specs/ directory (proposal only).
@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 11, 2026 17:20
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ fc5ddcf

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

Spec coverage: 5% (21 tests / 456 specs)


Quality workflow — 2026-05-11 17:25 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde merged commit 3262392 into development May 11, 2026
18 of 22 checks passed
@rubenvdlinde rubenvdlinde deleted the chore/openspec-format-normalize branch May 11, 2026 17:46
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant