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

retrofit: reverse-spec oas-generation (2 REQs / 2 methods)#1397

Merged
WilcoLouwerse merged 5 commits into
developmentfrom
retrofit/reverse-spec-openregister-oas-generation-2026-05-01
May 4, 2026
Merged

retrofit: reverse-spec oas-generation (2 REQs / 2 methods)#1397
WilcoLouwerse merged 5 commits into
developmentfrom
retrofit/reverse-spec-openregister-oas-generation-2026-05-01

Conversation

@WilcoLouwerse

Copy link
Copy Markdown
Contributor

Retrofit — Reverse-Spec

Describes observed behavior of 2 methods in OasController as 2 new REQs under a new oas-generation capability.

Ghost change: retrofit-oas-generation-2026-05-01 (archived at openspec/changes/archive/2026-05-01-retrofit-oas-generation-2026-05-01/).

What this PR does

  • Drafts 2 REQs in a new oas-generation capability spec (retrofit: true)
  • Creates tasks.md with one task per REQ
  • Annotates 2 methods in OasController with @spec tags
  • Archives the ghost change; merges spec delta into openspec/specs/oas-generation/spec.md (new capability)
  • Symlink at original path preserves @spec tag resolution
  • Updates .git-blame-ignore-revs with the annotation commit SHA

REQs drafted

REQ Title Method
REQ-001 Generate OpenAPI Specification for all registers OasController::generateAll
REQ-002 Generate OpenAPI Specification for a specific register OasController::generate

Notes flagged

  • Both endpoints are @PublicPage — no authentication required (deliberate: OAS is API documentation)
  • OasService bypasses RBAC internally (_rbac: false) so all schemas appear regardless of caller permissions — this means all schema definitions are visible to unauthenticated callers
  • INCLUDED_EXTENDED_ENDPOINTS is empty by design — only CRUD paths generated; audit-trails/files/lock/unlock are implemented in the switch but not whitelisted
  • No 404 path for unknown register IDs — all exceptions return 500, callers cannot distinguish "server error" from "register not found"

What this PR does NOT do

  • No code behavior changes — annotations only
  • Does not fix the 500-for-all-failures error contract

Review focus

  • REQ language matches observed behavior (not aspirational)
  • Scenarios are testable
  • One REQ per distinct observable behavior

⚠️ Specter sync skippedconcurrentie-analyse repo not available on this machine.

Source: openspec/coverage-report.md generated 2026-04-30 | Cluster: oas-generation

WilcoLouwerse and others added 4 commits May 1, 2026 14:40
… completed chat-ai cluster

Post-merge update after PR #1364: branch updated from feature/reverse-spec to development.
Removed chat-ai from Bucket 2a (done via PR #1368). Cleared Bucket 1 (all 138 methods
annotated via PRs #1365 + #1364). Noted Tier 1 capabilities are already annotated.
Drafts 2 REQs for the oas-generation capability (generate OAS for all
registers, generate OAS for a specific register) and annotates both
controller methods in OasController with @SPEC tags pointing at the
ghost change retrofit-oas-generation-2026-05-01.

Code already exists — this change retroactively specifies it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Moves ghost change retrofit-oas-generation-2026-05-01 to archive and
merges the delta spec into openspec/specs/oas-generation/spec.md (new
capability). Symlink at original path preserves @SPEC tag resolution.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ 9dc5c85

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

Quality workflow — 2026-05-01 19:14 UTC

Download the full PDF report from the workflow artifacts.

remko48
remko48 previously approved these changes May 4, 2026
bbrands02
bbrands02 previously approved these changes May 4, 2026
…se-spec-openregister-oas-generation-2026-05-01

# Conflicts:
#	.git-blame-ignore-revs
@WilcoLouwerse WilcoLouwerse merged commit a3b53be into development May 4, 2026
@WilcoLouwerse WilcoLouwerse deleted the retrofit/reverse-spec-openregister-oas-generation-2026-05-01 branch May 4, 2026 13:42
WilcoLouwerse added a commit that referenced this pull request May 4, 2026
…+ add .opsx-ignore

Aligns the retrofit naming convention with the standard OpenSpec date-prefix
convention used by non-retrofit changes (e.g. 2026-03-25-contacts-actions/).
Date now appears right after `retrofit-`, so retrofit and non-retrofit
changes sort chronologically together when the archive is listed.

**Folder renames (13 folders):**
- retrofit-actions-2026-05-01                          -> retrofit-2026-05-01-actions
- retrofit-annotate-openregister-2026-04-23            -> retrofit-2026-04-23-annotate-openregister
- retrofit-annotate-openregister-2026-04-30            -> retrofit-2026-04-30-annotate-openregister
- retrofit-archival-destruction-workflow-2026-04-24    -> retrofit-2026-04-24-archival-destruction-workflow
- retrofit-b2b-crossrefs-2026-04-28                    -> retrofit-2026-04-28-b2b-crossrefs
- retrofit-calendar-integration-2026-04-28             -> retrofit-2026-04-28-calendar-integration
- retrofit-chat-ai-2026-04-30                          -> retrofit-2026-04-30-chat-ai
- retrofit-content-versioning-2026-04-28               -> retrofit-2026-04-28-content-versioning
- retrofit-notificatie-engine-2026-04-28               -> retrofit-2026-04-28-notificatie-engine
- retrofit-object-lifecycle-2026-04-28                 -> retrofit-2026-04-28-object-lifecycle
- retrofit-schema-hooks-2026-04-28                     -> retrofit-2026-04-28-schema-hooks
- retrofit-tenant-isolation-audit-2026-04-28           -> retrofit-2026-04-28-tenant-isolation-audit
- retrofit-tenant-lifecycle-2026-04-28                 -> retrofit-2026-04-28-tenant-lifecycle

**Path-string updates:**
~298 PHP/JS/MD/YAML files updated. The `@spec openspec/changes/retrofit-...`
annotations and internal proposal/design/tasks references all now point at
the new folder names. Note `@spec` is a textual reference per the playbook
(not a live lookup), so this update keeps the textual paths consistent
with where the change actually lives on disk.

**New: openregister/.opsx-ignore**
Suppresses the two faceting-demo files (NewFacetingExample, ObjectServiceFacetExample)
from coverage-scan buckets. These are documentation aids, not canonical
implementations.

PRs #1397 (oas-generation) and #1400 (approval-workflow) still use the OLD
naming on their branches — when those merge, follow-up cleanup is needed
(rename the date-prefix to date-after-retrofit, drop their symlinks).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
WilcoLouwerse added a commit that referenced this pull request May 4, 2026
…Tier-2 PRs

Cleanup pass for the two retrofit ghost changes that came in via PR #1397
(oas-generation) and PR #1400 (approval-workflow). Both used the
2026-05-01-retrofit-X-2026-05-01 naming with a parallel symlink from
openspec/changes/.

- Rename 2026-05-01-retrofit-approval-workflow-2026-05-01 -> retrofit-2026-05-01-approval-workflow
- Rename 2026-05-01-retrofit-oas-generation-2026-05-01 -> retrofit-2026-05-01-oas-generation
- Drop openspec/changes/retrofit-approval-workflow-2026-05-01 symlink
- Drop openspec/changes/retrofit-oas-generation-2026-05-01 symlink
- Update @SPEC annotations + internal refs to point at the renamed folders

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants