Skip to content

chore(retrofit): consolidate archive + retrofit-DATE-DESCRIPTOR naming + .opsx-ignore#1425

Merged
WilcoLouwerse merged 6 commits into
developmentfrom
feature/reverse-spec
May 7, 2026
Merged

chore(retrofit): consolidate archive + retrofit-DATE-DESCRIPTOR naming + .opsx-ignore#1425
WilcoLouwerse merged 6 commits into
developmentfrom
feature/reverse-spec

Conversation

@WilcoLouwerse
Copy link
Copy Markdown
Contributor

Summary

Cleanup pass over the OpenRegister retrofit cohort. Three logical pieces:

1. Archive consolidation (commit b0d56822e)

  • Move 12 retrofit ghost changes from openspec/archive/ to openspec/changes/archive/ (one canonical location)
  • Move 2 older non-retrofit changes too; delete the now-empty openspec/archive/
  • Drop the broken openspec/changes/retrofit-actions-2026-05-01 symlink
  • Backfill design.md on five 2026-04-28 retrofits (archival-destruction-workflow, calendar-integration, content-versioning, object-lifecycle, tenant-lifecycle) — these pre-date /opsx-reverse-spec step 11 (auto-call /opsx-ff)
  • Standardise retrofit_extensions: frontmatter to block YAML with bare REQ-IDs across master specs
  • Fix the archival-destruction-workflow ghost-change delta (was full requirement text in frontmatter + ### Requirement: heading; now REQ-009 ID + ### REQ-009: heading)

2. Naming convention retrofit-DATE-DESCRIPTOR (commits 454897548 + 97cf2bf4b)

  • Rename all 13 retrofit folders so date sits right after retrofit-, matching how non-retrofit OpenSpec changes already date-prefix
  • Update ~340 files: @spec annotations across lib/ + src/ + internal proposal/design/tasks/spec references
  • Companion changes:

3. .opsx-ignore for OpenRegister

New file at repo root suppresses two faceting-demo files (NewFacetingExample.php, ObjectServiceFacetExample.php) from coverage-scan buckets. Minimal and well-commented.

Tracking

Audit comment on parent retrofit issue: ConductionNL/.github#33 — covers the three remaining notificatie-engine / schema-hooks / tenant-isolation-audit cohort frontmatter back-fills as deferred follow-ups.

Test plan

  • CI passes
  • find openspec -type l returns empty (no retrofit symlinks remain)
  • grep -rE "retrofit-(actions|annotate-openregister|archival|b2b|calendar|chat|content|notificatie|object|schema|tenant|approval-workflow|oas-generation)-2026-" lib/ src/ openspec/ returns empty (no stale path references)
  • After merge, run python3 concurrentie-analyse/scripts/sync_spec_content.py openregister to refresh Specter cohort columns
  • After merge, run /opsx-verify openregister — should succeed without keyword fallback (Definition-of-Done item in .github#33)

🤖 Generated with Claude Code

WilcoLouwerse and others added 6 commits May 1, 2026 13:09
…er + backfill design.md

Cleans up the retrofit cohort that landed across PRs #1364#1394.

**Archive consolidation**
- Move 12 retrofit ghost changes from openspec/archive/ → openspec/changes/archive/
- Move 2 older non-retrofit changes (2026-03-25-contacts-actions, 2026-03-25-mail-sidebar) too
- Delete the now-empty openspec/archive/ root
- Drop the broken openspec/changes/retrofit-actions-2026-05-01 symlink
- Rename 2026-05-01-retrofit-actions-2026-05-01 → retrofit-actions-2026-05-01 (drop redundant date prefix)

**Frontmatter standardisation**
- archival-destruction-workflow ghost change delta: full requirement text → REQ-009 ID; ### Requirement → ### REQ-009
- archival-destruction-workflow master: remove redundant quotes around REQ-009
- content-versioning master: inline list → block YAML
- tenant-lifecycle master: inline list → block YAML

**Backfill design.md on 5 retrofits**
The 2026-04-28 retrofit batch ran before opsx-reverse-spec step 11 (auto-call /opsx-ff)
was wired in. Adds design.md (Context / Goals / Decisions / Risks / Migration Plan)
to: archival-destruction-workflow, calendar-integration, content-versioning,
object-lifecycle, tenant-lifecycle.

**Why the design.md was written directly rather than via /opsx-ff:** the skill is
built to scaffold a NEW change at openspec/changes/{name}/, not to backfill
artifacts on already-archived ghost changes. The opsx-reverse-spec skill itself
already calls /opsx-ff at step 11, so future runs will get the auto-fill for free.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…+ 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>
…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>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 4, 2026

Quality Report — ConductionNL/openregister @ 6df6f8f

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-04 22:53 UTC

Download the full PDF report from the workflow artifacts.

Copy link
Copy Markdown
Member

@MWest2020 MWest2020 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — mechanische opschoning, geen runtime-impact

Snel doorgelopen op pr-1425:

  • lib/ + src/: alle 304 wijzigingen zijn pure @spec-tag rewrites (retrofit-DESCRIPTOR-DATEretrofit-DATE-DESCRIPTOR). Niet-@spec regels in lib/src: 0. Geen code-logica geraakt.
  • 50× R100-renames: 1-op-1 verplaatst zonder content-wijziging.
  • 4× partial renames (R089/R097/R098): bewust gedocumenteerde frontmatter/heading-standaardisatie (REQ-009 als ID + ### REQ-009: heading).
  • 5 nieuwe design.md backfills voor de 2026-04-28 retrofits — additief.
  • .opsx-ignore: goed gedocumenteerd, beperkt zich tot 2 demo-files; expliciete waarschuwing om geen Bucket-4 bevindingen weg te ignoren. ✅

Niet lokaal gedraaid omdat er niets runtime-gevoeligs in zit.

⚠️ Aandachtspunt: 368 files raakt veel @spec-tags — als andere openstaande PR's op dezelfde files zitten geeft dat zekere merge-conflicts. Snel mergen of na overige PR's herbasen.

LGTM. ✅

@WilcoLouwerse WilcoLouwerse merged commit d1bd04c into development May 7, 2026
33 of 40 checks passed
@WilcoLouwerse WilcoLouwerse deleted the feature/reverse-spec branch May 7, 2026 08:23
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.

3 participants