chore(retrofit): consolidate archive + retrofit-DATE-DESCRIPTOR naming + .opsx-ignore#1425
Merged
Merged
Conversation
…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>
11 tasks
Contributor
Quality Report — ConductionNL/openregister @
|
| 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.
rjzondervan
approved these changes
May 6, 2026
MWest2020
reviewed
May 6, 2026
Member
MWest2020
left a comment
There was a problem hiding this comment.
Review — mechanische opschoning, geen runtime-impact
Snel doorgelopen op pr-1425:
- lib/ + src/: alle 304 wijzigingen zijn pure
@spec-tag rewrites (retrofit-DESCRIPTOR-DATE→retrofit-DATE-DESCRIPTOR). Niet-@specregels 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.mdbackfills 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.
@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. ✅
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
Cleanup pass over the OpenRegister retrofit cohort. Three logical pieces:
1. Archive consolidation (commit
b0d56822e)openspec/archive/toopenspec/changes/archive/(one canonical location)openspec/archive/openspec/changes/retrofit-actions-2026-05-01symlinkdesign.mdon five 2026-04-28 retrofits (archival-destruction-workflow, calendar-integration, content-versioning, object-lifecycle, tenant-lifecycle) — these pre-date/opsx-reverse-specstep 11 (auto-call/opsx-ff)retrofit_extensions:frontmatter to block YAML with bare REQ-IDs across master specs### Requirement:heading; nowREQ-009ID +### REQ-009:heading)2. Naming convention
retrofit-DATE-DESCRIPTOR(commits454897548+97cf2bf4b)retrofit-, matching how non-retrofit OpenSpec changes already date-prefix@specannotations acrosslib/+src/+ internal proposal/design/tasks/spec references/opsx-annotate,/opsx-reverse-spec,/opsx-coverage-scanSKILL.md updates3.
.opsx-ignorefor OpenRegisterNew 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-auditcohort frontmatter back-fills as deferred follow-ups.Test plan
find openspec -type lreturns 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)python3 concurrentie-analyse/scripts/sync_spec_content.py openregisterto refresh Specter cohort columns/opsx-verify openregister— should succeed without keyword fallback (Definition-of-Done item in.github#33)🤖 Generated with Claude Code