Skip to content

fix: support symlinked skill directories in workspace#31

Merged
ErlichLiu merged 1 commit intoErlichLiu:mainfrom
HamsteRider-m:fix/skills-symlink-support
Feb 19, 2026
Merged

fix: support symlinked skill directories in workspace#31
ErlichLiu merged 1 commit intoErlichLiu:mainfrom
HamsteRider-m:fix/skills-symlink-support

Conversation

@HamsteRider-m
Copy link

Problem

getWorkspaceSkills() uses readdirSync() with { withFileTypes: true } and checks entry.isDirectory() to filter skill directories. However, Node.js Dirent.isDirectory() returns false for symbolic links, causing symlinked skill folders to be silently skipped.

This prevents users from sharing skills across tools (e.g., Claude Code ↔ Proma) via symlinks.

Fix

Add an isSymbolicLink() check with statSync() to follow symlinks and correctly identify the directories they point to:

const isDir = entry.isDirectory() || (entry.isSymbolicLink() && statSync(join(skillsDir, entry.name)).isDirectory())

Verification

Tested locally — symlinked skill directories are now correctly discovered and loaded.

`readdirSync` with `withFileTypes: true` returns `Dirent` objects where
`isDirectory()` returns false for symlinks. This causes symlinked skill
folders to be silently skipped during workspace skill scanning.

Add `isSymbolicLink()` check with `statSync` to follow symlinks and
correctly identify directories they point to.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ErlichLiu ErlichLiu merged commit 23c700c into ErlichLiu:main Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants