LearnNewsExamplesServices
Frontmatter
id12177
titleRemove dead issue-archive/pr-archive refs from 4 source files
stateClosed
labels
enhancementairefactoringarchitecture
assigneesneo-opus-ada
createdAtMay 29, 2026, 8:43 PM
updatedAtMay 29, 2026, 10:24 PM
githubUrlhttps://github.com/neomjs/neo/issues/12177
authorneo-opus-ada
commentsCount0
parentIssue11372
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 29, 2026, 10:24 PM

Remove dead issue-archive/pr-archive refs from 4 source files

Closed v13.0.0/archive-v13-0-0-chunk-14 enhancementairefactoringarchitecture
neo-opus-ada
neo-opus-ada commented on May 29, 2026, 8:43 PM

Context

ADR 0004 §2.3 retired the asymmetric issue-archive/ + pr-archive/ primitives in favor of the universal archive/{type}/v<X>/chunk-N/ shape. The clean-slate migration (Epic #11372) removed those directories from disk, and #11363 removed the gh-workflow config fallbacks (archiveDir, defaultArchiveVersion). However, 4 source files still carry hardcoded issue-archive/pr-archive path strings/comments that survived both. Operator-flagged during the ADR-0004 Phase-2 consumer audit 2026-05-29.

The Problem

Dead references to retired primitives are substrate-decay debt: future sessions reading them may infer the old shape is still live — the exact substrate-bypass failure mode ADR 0004 §1.2/§5.1 anti-anchors against. Per ADR §1.3 (regeneratable cache) + §2.6 (clean-cut, no deprecation window), retired-primitive refs should be deleted, not preserved.

The 4 sites (verified on disk 2026-05-29):

  • ai/services/github-workflow/SyncService.mjs:22'resources/content/issue-archive/' path constant.
  • buildScripts/release/publish.mjs:246-247 — comment naming legacy issue-archive//pr-archive/ paths.
  • buildScripts/util/check-chore-sync.mjs:65-67 — path list including issue-archive/, pr-archive/.
  • ai/services/knowledge-base/source/TicketSource.mjs — JSDoc/comment referencing issue-archive (the runtime read at :67 is already correct archive/issues).

The Architectural Reality

Each ref must be V-B-A'd as non-load-bearing before removal (orphan-helper cross-test-audit discipline). Likely all dead because the issue-archive//pr-archive/ dirs no longer exist post clean-slate migration, but SyncService.mjs:22 and check-chore-sync.mjs:65 are path constants/lists that could still be consumed by a sweep loop — confirm the loop is a no-op against absent dirs before deletion, or whether removing the entry changes sweep behavior.

The Fix

  1. Verify each of the 4 refs is non-load-bearing (grep call-sites; confirm absent-dir behavior is a no-op).
  2. Remove the dead refs (clean-cut, no @deprecated shim per ADR §5.6).
  3. Confirm no consumer (KB sync, release publish, chore-sync check) regresses.

Decision Record impact

aligned-with ADR 0004 §2.3 (retired primitives), §2.6 (clean-cut), §5.1/§5.6 (anti-bypass). Note: the import-scanner check-retired-primitives.mjs RETIRED_PRIMITIVES array (§2.6.1) targets imports, not path-string refs — do not force-fit these into it.

Acceptance Criteria

  • Each of the 4 refs confirmed non-load-bearing (evidence in PR body).
  • Dead issue-archive/pr-archive refs removed from all 4 files.
  • grep -rn "issue-archive|pr-archive" ai/ buildScripts/ returns no live code refs (test/doc historical refs excluded).
  • No regression in KB sync / publish.mjs / check-chore-sync.mjs.

Out of Scope

  • The release-index fix (sibling ticket).
  • Doc/skill stale-reference cleanup (ADR §9 item 9 — separate surface; partially done in #11368).
  • Any change to the live archive/{type}/v*/chunk-N/ read paths (already correct).

Avoided Traps

  • Deprecation theater (ADR §5.6): no @deprecated shim — delete outright.
  • Blind deletion: each ref V-B-A'd non-load-bearing first (not assumed dead because the dir is gone).

Related

  • Parent epic: #11372 (ADR 0004)
  • Config-fallback removal (distinct surface): #11363
  • Authority: ADR 0004 §2.3, §2.6, §2.6.1, §5.1, §5.6

Retrieval Hint: query_raw_memories("issue-archive pr-archive retired primitive cleanup ADR 0004"); grep anchor: grep -rn "issue-archive|pr-archive" ai/ buildScripts/.

tobiu referenced in commit b26f8dc - "chore(content): remove retired issue-archive/pr-archive references (#12177) (#12181) on May 29, 2026, 10:24 PM
tobiu closed this issue on May 29, 2026, 10:24 PM