Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneesstack72

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.yaml

Afterwards 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.ts checkForSupersededSkills runs detectSupersededSkills(join(repoDir, SKILL_DIRS[tool])), which is the repo-local skills dir (.claude/skills for claude).

  • src/domain/repo/repo_service.ts upgrade() calls removeSupersededSkills only 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).

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 7 MOREREVIEW+ 14 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/5/2026, 3:26:49 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/5/2026, 2:36:05 PM
Editable. Press Enter to edit.

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.