Relationships
#3008 repo upgrade does not remove superseded skills from the repo-local skills dir, so its own warning never clears
Opened by dmc · 10/4/2026· Shipped 10/5/2026
Summary
Every CLI command warns that old swamp-managed skills "can be safely deleted" and says Run 'swamp repo upgrade' to remove them. Running swamp repo upgrade does not remove them, so the warning never goes away.
Reproduction (swamp 20261003.192630.0, macOS, tools: claude)
Repo has the pre-bundle skill directories in the repo-local .claude/skills/ (swamp-data, swamp-extension, swamp-extension-publish, swamp-issue, swamp-model, swamp-repo, swamp-report, swamp-troubleshooting, swamp-vault, swamp-workflow).
$ swamp repo upgrade
warning swamp·cli "10 old swamp-managed skill(s) can be safely deleted: swamp-data, swamp-extension, swamp-extension-publish, swamp-issue, swamp-model, swamp-repo, swamp-report, swamp-troubleshooting, swamp-vault, swamp-workflow. These have been replaced by the bundled swamp skill. Run 'swamp repo upgrade' to remove them."
info extension·install Reading lockfile...
info extension·install All extensions up to date.
Upgraded swamp repository: 20261003.192630.0 → 20261003.192630.0 (tools: claude)
Skills updated: swamp, swamp-getting-started
Instructions: unchanged
Settings: unchanged
.gitignore: unchanged
Changed files:
.swamp.yamlAfterwards all 10 directories are still in .claude/skills/, and the next command prints the same warning.
Cause (from the 20261003 source)
The warning and the cleanup look at different directories:
src/cli/mod.tscheckForSupersededSkillsrunsdetectSupersededSkills(join(repoDir, SKILL_DIRS[tool])), which is the repo-local skills dir (.claude/skillsfor claude).src/domain/repo/repo_service.tsupgrade()callsremoveSupersededSkillsonly from:installGlobalSkills→ the global dirs (~/.claude/skills, etc.)installCustomToolGlobalSkills/installCustomToolLocalSkills→ custom tools only
Nothing removes superseded skills from the repo-local dir of a built-in tool.
swamp update(src/cli/commands/update.ts) also only cleans global dirs.
Expected
Either swamp repo upgrade also runs removeSupersededSkills on resolveSkillsDir(repoPath, tool) for each built-in tool (and reports what it removed), or the warning names the real command or manual step that removes them.
Note: because the stale repo-local skills sit next to the bundled global swamp skill, agents in the repo see two overlapping sets of swamp skills until they are removed by hand.
Related: #326 (added this detection and the "run swamp repo upgrade" prompt).
Shipped
Click a lifecycle step above to view its details.
stack72 commented 10/5/2026, 3:26:52 PM
Thanks @dmc for reporting this! We shipped: Make swamp repo upgrade remove superseded swamp skill dirs from each built-in tool's repo-local skills dir, using one shared dir list with the startup warning (including its empty-tools fallback) so the warning that points at repo upgrade always clears. Overturns the #1653 decision to never touch repo-local skills dirs, for superseded skill dirs only. Dirs that resolve outside the repo are skipped.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.
Sign in to post a ripple.