Surfaced while fixing the same rot for this session's changes (PR #12).
openspec archive moves openspec/changes/<slug>/specs/… into openspec/changes/archive/<date>-<slug>/…, so any @spec tag pointing at a change directory breaks. gate-46 currently reports 427 unresolved anchors, essentially all of it from changes archived in earlier waves.
Mechanically fixable — a canonical target clearly exists
Slug in @spec |
Retarget to |
Occurrences / files |
dashboard-public-share |
openspec/specs/dashboard-public-share/spec.md |
57 / 16 |
dashboard-acknowledgements |
openspec/specs/dashboard-acknowledgements/spec.md |
40 / 13 |
dashboard-kiosk-mode |
openspec/specs/dashboard-kiosk-mode/spec.md |
34 / 7 |
role-based-content |
openspec/specs/role-feature-permissions/spec.md |
24 / 7 |
dashboard-quota-limits |
openspec/specs/dashboard-quota-limits/spec.md |
13 / 7 |
nc-dashboard-widget-proxy |
openspec/specs/legacy-widget-bridge/spec.md + openspec/specs/widgets/spec.md |
6 / 2 |
adopt-apphost |
openspec/specs/prometheus-metrics/spec.md |
4 / 2 |
Needs a judgement call — only tasks.md referenced, no single canonical file
retrofit-2026-05-24-annotate-launchpad (61/21), groupfolder-storage-backend (53/16), resource-serving (13/2), runtime-shell (8/3), launchpad-legacy-quality-cleanup (7/6), admin-group-management (6/5), launchpad-adopt-or-abstractions (4/3).
Prevention
Annotate @spec openspec/specs/<capability>/spec.md — the canonical path — never a change dir. A change dir is temporary by construction. Worth adding to the annotation guidance so each wave stops re-creating this.
Surfaced while fixing the same rot for this session's changes (PR #12).
openspec archivemovesopenspec/changes/<slug>/specs/…intoopenspec/changes/archive/<date>-<slug>/…, so any@spectag pointing at a change directory breaks. gate-46 currently reports 427 unresolved anchors, essentially all of it from changes archived in earlier waves.Mechanically fixable — a canonical target clearly exists
@specdashboard-public-shareopenspec/specs/dashboard-public-share/spec.mddashboard-acknowledgementsopenspec/specs/dashboard-acknowledgements/spec.mddashboard-kiosk-modeopenspec/specs/dashboard-kiosk-mode/spec.mdrole-based-contentopenspec/specs/role-feature-permissions/spec.mddashboard-quota-limitsopenspec/specs/dashboard-quota-limits/spec.mdnc-dashboard-widget-proxyopenspec/specs/legacy-widget-bridge/spec.md+openspec/specs/widgets/spec.mdadopt-apphostopenspec/specs/prometheus-metrics/spec.mdNeeds a judgement call — only
tasks.mdreferenced, no single canonical fileretrofit-2026-05-24-annotate-launchpad(61/21),groupfolder-storage-backend(53/16),resource-serving(13/2),runtime-shell(8/3),launchpad-legacy-quality-cleanup(7/6),admin-group-management(6/5),launchpad-adopt-or-abstractions(4/3).Prevention
Annotate
@spec openspec/specs/<capability>/spec.md— the canonical path — never a change dir. A change dir is temporary by construction. Worth adding to the annotation guidance so each wave stops re-creating this.