feat: Enrich all OpenSpec specifications#942
Merged
rubenvdlinde merged 19 commits intodevelopmentfrom Mar 22, 2026
Merged
Conversation
Enriched all active specs to 10-15+ requirements with 3-5 GIVEN/WHEN/THEN scenarios each. Research includes codebase analysis, competitor analysis, Dutch government standards, and ADR compliance. Moved 8 specs to their correct app homes (redirect stubs remain). Reframed 6 specs as extensions of existing functionality. All specs pass openspec validate --strict.
Contributor
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (586 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. Generated automatically by the Quality workflow.
|
remko48
requested changes
Mar 20, 2026
Member
remko48
left a comment
There was a problem hiding this comment.
PhpCs needs to be fixed before merging
Audited all 49 specs in openspec/specs/ and restructured:
Implemented (14 specs stay in specs/ with status: implemented):
- audit-trail-immutable, content-versioning, deep-link-registry,
deletion-audit-trail, event-driven-architecture, faceting-configuration,
graphql-api, mariadb-ci-matrix, schema-hooks, webhook-payload-mapping,
workflow-engine-abstraction, workflow-in-import, workflow-integration,
zoeken-filteren
Partial (6 specs split — implemented in specs/, unimplemented in changes/):
- data-import-export, mcp-discovery, mock-registers, notificatie-engine,
object-interactions, rbac-scopes
Moved to changes/ (21 unimplemented specs with full artifact chain):
- api-test-coverage, archivering-vernietiging, auth-system,
avg-verwerkingsregister, besluiten-management, computed-fields,
data-sync-harvesting, deprecate-published-metadata, geo-metadata-kaart,
oas-validation, openapi-generation, production-observability,
rapportage-bi-export, rbac-zaaktype, realtime-updates,
reference-existence-validation, referential-integrity, register-i18n,
row-field-level-security, unit-test-coverage, urn-resource-addressing
Redirect stubs (8) kept as navigation pointers.
Each change directory contains:
- .openspec.yaml (schema + status + created date)
- proposal.md (problem + proposed solution)
- design.md (approach + files affected)
- tasks.md (checklist derived from requirements)
- specs/{name}/spec.md (delta spec with ADDED requirements)
…changes - Add YAML frontmatter with status to all 49 spec files - Fix 12 specs with misplaced frontmatter (after title instead of before) - Add status frontmatter to 17 specs that had none - Move 9 unimplemented specs (draft/ready/proposed) to changes/: api-test-coverage, archivering-vernietiging, avg-verwerkingsregister, besluiten-management, data-sync-harvesting, geo-metadata-kaart, rapportage-bi-export, referential-integrity, urn-resource-addressing - Each moved spec gets .openspec.yaml, proposal.md, tasks.md, and delta spec - Original spec locations replaced with stubs pointing to changes/ - Delta specs in changes/ use ## ADDED Requirements header - Add status field to existing deprecate-published-metadata and unit-test-coverage-phase2 .openspec.yaml files - Status breakdown: 24 implemented, 3 partial, 1 active, 9 proposed, 7 redirect stubs, 5 cross-app redirects
All specs moved from openspec/specs/ to openspec/changes/ with proper proposal.md as the entry point. Follows the spec-driven workflow: proposal -> design -> specs -> tasks
Processed all changes with status: implemented. For each:
- Generated design.md and tasks.md where missing
- Synced spec.md to openspec/specs/ with status: implemented
- Archived to openspec/changes/archive/2026-03-21-{name}
Changes archived: audit-trail-immutable, auth-system, computed-fields,
content-versioning, data-import-export, deep-link-registry,
deletion-audit-trail, event-driven-architecture, faceting-configuration,
graphql-api, mariadb-ci-matrix, mcp-discovery, mock-registers,
oas-validation, object-interactions, openapi-generation,
production-observability, rbac-scopes, realtime-updates,
reference-existence-validation, row-field-level-security, schema-hooks,
webhook-payload-mapping, workflow-engine-abstraction, workflow-in-import,
workflow-integration, zoeken-filteren
Object-level published/depublished metadata fully removed from codebase. RBAC $now dynamic variable provides replacement via authorization rules. Migration Version1Date20260313130000 drops columns from magic tables.
Processed 4 changes: notificatie-engine (partial), rbac-zaaktype (partial), register-i18n (partial), referential-integrity (implemented). Core infrastructure exists for all. Synced specs and archived.
…hase2 Added 3 missing unit tests: - HookRetryJobTest (5 tests): retry logic, max retries, re-queuing - GraphQLSubscriptionListenerTest (5 tests): event routing, error handling - FileChangeListenerTest (7 tests): scope filtering, extraction modes All 31 new tests pass. Marked batches 1-3 as complete (already covered by existing SimpleCrudEventsTest, ExceptionsTest, BsnFormatTest). Total: 317+ test files covering the entire lib/ directory.
Generated design.md for all. Synced specs to openspec/specs/. These are roadmap features awaiting prioritization: api-test-coverage, archivering-vernietiging, avg-verwerkingsregister, besluiten-management, data-sync-harvesting, geo-metadata-kaart, rapportage-bi-export, urn-resource-addressing
- Dashboard, Registers, Schemas, Search/Views screenshots - Feature overview doc with all 42 specs categorized by status
Make ADR-011 more specific: list concrete directories to search (lib/Formats/, lib/Service/, lib/Handler/) and common duplications (BSN validation, date formatting, slug generation, UUID handling).
1. archival-destruction-workflow (227 tenders) — NEN 15489 2. retention-management (154 tenders) — bewaartermijnen 3. edepot-transfer (273 tenders) — MDTO/TMLO 4. enhanced-audit-trail (262 tenders) — verwerkingenlogging 5. authorization-rbac-enhancement (405 tenders) — fine-grained RBAC 6. saas-multi-tenant (378 tenders) — SaaS readiness
…changes chore: Restructure specs to proper OpenSpec format
chore(openregister): Convert all specs to change proposals
Contributor
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (586 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. Generated automatically by the Quality workflow.
|
…ionNL/openregister into feature/enrich-openspec-specs # Conflicts: # openspec/changes/archive/2026-03-21-deprecate-published-metadata/.openspec.yaml # openspec/changes/auth-system/specs/auth-system/spec.md # openspec/changes/computed-fields/specs/computed-fields/spec.md # openspec/changes/data-sync-harvesting/specs/data-sync-harvesting/spec.md # openspec/changes/deprecate-published-metadata/specs/deprecate-published-metadata/spec.md # openspec/changes/oas-validation/specs/oas-validation/spec.md # openspec/changes/openapi-generation/specs/openapi-generation/spec.md # openspec/changes/production-observability/specs/production-observability/spec.md # openspec/changes/rbac-zaaktype/specs/rbac-zaaktype/spec.md # openspec/changes/realtime-updates/specs/realtime-updates/spec.md # openspec/changes/reference-existence-validation/specs/reference-existence-validation/spec.md # openspec/changes/referential-integrity/specs/referential-integrity/spec.md # openspec/changes/register-i18n/specs/register-i18n/spec.md # openspec/changes/row-field-level-security/specs/row-field-level-security/spec.md # openspec/changes/unit-test-coverage/specs/unit-test-coverage/spec.md # openspec/specs/data-import-export/spec.md # openspec/specs/deprecate-published-metadata/spec.md # openspec/specs/event-driven-architecture/spec.md # openspec/specs/mcp-discovery/spec.md # openspec/specs/mock-registers/spec.md # openspec/specs/notificatie-engine/spec.md # openspec/specs/object-interactions/spec.md # openspec/specs/rbac-scopes/spec.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
openspec validate --strictChanges
openspec/specs/directoryTest plan
🤖 Generated with Claude Code