fix: sync claude-code-config with renamed skills + clean stale symlinks#189
Merged
vredchenko merged 1 commit intomainfrom Apr 14, 2026
Merged
fix: sync claude-code-config with renamed skills + clean stale symlinks#189vredchenko merged 1 commit intomainfrom
vredchenko merged 1 commit intomainfrom
Conversation
…oken symlinks The skills config in core/claude-code-config.json was never updated after commit 151c4fe renamed and removed several skills. This caused `smartem-workspace check --fix` to report missing skills and fail to create symlinks for targets that no longer exist. - Rename database-admin -> database - Rename technical-writer -> tech-writer - Rename playwright-skill -> playwright - Remove github (merged into git) - Remove ascii-art (deleted) - Sync bundled copy in packages/smartem-workspace/ Also enhance check.py to detect and remove stale broken symlinks under .claude/skills/ during --fix. The cleanup is constrained to entries that are (1) symlinks, (2) whose target does not exist, and (3) whose name is not in the expected skills list -- so user-created skills and valid symlinks are never touched. Bump smartem-workspace version 0.6.0 -> 0.6.1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related fixes surfaced while running
uvx smartem-workspace check --fix:core/claude-code-config.json(nor the bundled copy shipped withsmartem-workspace).Config changes
database-admindatabase(renamed)technical-writertech-writer(renamed)playwright-skillplaywright(renamed)githubgit)ascii-artBoth
core/claude-code-config.json(served via GitHub raw, network-first) and the bundled fallback atpackages/smartem-workspace/smartem_workspace/config/claude-code-config.jsonare synced.check.py enhancement
Adds detection + fix for stale broken symlinks in
.claude/skills/. Three safety constraints ensure we never clobber user-created skills:is_symlink())not entry.exists()— follows symlinks, returns False when broken)Regular files, regular dirs, and valid symlinks (regardless of target) are left alone.
Version bump
smartem-workspace0.6.0 -> 0.6.1 so the check.py improvement reaches PyPI users.Test plan
uv run ruff check .cleanuv run ruff format --check .cleanuv run pytest -q— 16 tests pass.claude/skills/contains only valid symlinks (no regression)smartem-workspace-v0.6.1to trigger PyPI publishuvx smartem-workspace check --fixon a workspace with stale symlinks to verify cleanup behavior end-to-end