fix: sync HARNESS_DIRS / PROVIDER_DIRS with providers.js#137
fix: sync HARNESS_DIRS / PROVIDER_DIRS with providers.js#137voidborne-d wants to merge 1 commit into
Conversation
…, .qoder, .rovodev) cleanup-deprecated.mjs HARNESS_DIRS was missing .github and .qoder, so users who installed via GitHub Copilot or Qoder kept stale deprecated skill directories forever (the cleanup script silently skipped those harness roots). bin/commands/skills.mjs PROVIDER_DIRS was missing .rovodev, so the isAlreadyInstalled / findInstalledProviders / check / update flow did not detect or update Rovo Dev installs. scripts/lib/transformers/providers.js declares 13 configDirs as build targets; the two runtime arrays now mirror that list (modulo .codex, which the build deliberately skips because Codex CLI consumes .agents/skills/). Comments added so the next addition catches both arrays. Tests: new regression in tests/cleanup-deprecated.test.mjs covers .github and .qoder cleanup paths.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6bc2f26. Configure here.
| '.claude', '.cursor', '.gemini', '.codex', '.agents', | ||
| '.trae', '.trae-cn', '.pi', '.opencode', '.kiro', '.rovodev', | ||
| '.github', '.trae', '.trae-cn', '.pi', '.opencode', | ||
| '.kiro', '.qoder', '.rovodev', |
There was a problem hiding this comment.
pin.mjs HARNESS_DIRS still missing .github and .qoder
Medium Severity
source/skills/impeccable/scripts/pin.mjs (and its mirrored copies in plugin/, .claude/, .cursor/, etc.) contains its own HARNESS_DIRS array that was not updated by this PR. It still lists only 11 entries, missing .github and .qoder. The findHarnessDirs() function in pin.mjs iterates this array to discover harness installs, so pin/unpin commands silently skip GitHub Copilot and Qoder users — the exact same class of drift this PR fixes for cleanup-deprecated.mjs.
Reviewed by Cursor Bugbot for commit 6bc2f26. Configure here.


Problem
Two runtime arrays that should mirror the 13 configDirs declared in
scripts/lib/transformers/providers.jshad drifted:source/skills/impeccable/scripts/cleanup-deprecated.mjsHARNESS_DIRSwas missing.githuband.qoder. Users who installed via GitHub Copilot or Qoder kept stale deprecated skill directories forever -- the cleanup script silently skipped those harness roots.bin/commands/skills.mjsPROVIDER_DIRSwas missing.rovodev. TheisAlreadyInstalled/findInstalledProviders/check/updateflow did not see Rovo Dev installs, so update never ran for those users.providers.jsis the source of truth (the build emits to all 13 configDirs and thensynced skills to: .cursor, .claude, .gemini, .agents, .github, .kiro, .opencode, .pi, .qoder, .trae-cn, .trae, .rovodevpopulates them in the repo root). Both runtime lists need to track that.Fix
.githuband.qodertoHARNESS_DIRSinsource/skills/impeccable/scripts/cleanup-deprecated.mjs. Sorted alongside the existing entries..rovodevtoPROVIDER_DIRSinbin/commands/skills.mjs.providers.jsas source of truth so the next provider addition catches both..codexis intentionally still excluded fromPROVIDER_DIRS-- perscripts/build.jsit is not synced to the repo root because Codex CLI consumes.agents/skills/instead.npm run build-- the harness mirrors ofcleanup-deprecated.mjs(12 dirs under.cursor/.claude/etc. plusplugin/) regenerate identically from the new source. Build is idempotent.Tests
Added one regression case in
tests/cleanup-deprecated.test.mjsthat writes deprecated skills to.github/skills/and.qoder/skills/and asserts both get removed:Without the source change the new case fails (1 fail / 0 pass on
--test-name-pattern); with it 32/32 pass for the cleanup-deprecated suite.Verified locally with
node --test:tests/cleanup-deprecated.test.mjs-- 32 passtests/detect-antipatterns-fixtures.test.mjs+detect-antipatterns-browser.test.mjs+impeccable-paths.test.mjs+ 4 live-* files -- 124 passtests/live-poll/server/browser-regression/session-store/browser-session/browser-source/completion/recovery-commands+framework-fixtures-- 250 passThe Bun-only test files (
tests/build.test.js,tests/detect-antipatterns.test.js,tests/windows-path-fix.test.js) needbun test; CI runs them on every push.Note on AI assistance
Authored with AI assistance. No co-author trailer added.
Note
Low Risk
Low risk: changes only extend directory discovery/cleanup lists and add a regression test; behavior is limited to detecting installs and deleting already-deprecated Impeccable skills.
Overview
Fixes drift between runtime directory lists and
scripts/lib/transformers/providers.js.The deprecated-skill cleanup script now scans additional harness roots (notably
.githuband.qoder) so stale deprecated skill folders installed via those harnesses are removed, and theimpeccable skillsCLI now includes.rovodevin its provider detection so check/update flows see Rovo Dev installs. Adds a regression test ensuring cleanup removes deprecated skills from.githuband.qoder.Reviewed by Cursor Bugbot for commit 6bc2f26. Bugbot is set up for automated code reviews on this repo. Configure here.