Summary
.claude/rules/ follows symlinks for file discovery, but .claude/commands/ does not. Symlinked .md files in the commands directory are silently ignored during skill registration.
Reproduction
- create a command file at
.claude/commands/utils/my-command.md
- symlink it:
ln -s utils/my-command.md .claude/commands/my-command.md
- only
utils:my-command registers as a skill; /my-command does not appear
Use case
I share a single .claude/ directory (via symlink) across multiple repos and machines. Commands live in subdirectories for organisation, with top-level symlinks for convenient access. This pattern works everywhere except command discovery.
Expected behavior
Symlinked .md files in .claude/commands/ should be resolved and registered as skills, consistent with .claude/rules/ behavior.
Summary
.claude/rules/follows symlinks for file discovery, but.claude/commands/does not. Symlinked.mdfiles in the commands directory are silently ignored during skill registration.Reproduction
.claude/commands/utils/my-command.mdln -s utils/my-command.md .claude/commands/my-command.mdutils:my-commandregisters as a skill;/my-commanddoes not appearUse case
I share a single
.claude/directory (via symlink) across multiple repos and machines. Commands live in subdirectories for organisation, with top-level symlinks for convenient access. This pattern works everywhere except command discovery.Expected behavior
Symlinked
.mdfiles in.claude/commands/should be resolved and registered as skills, consistent with.claude/rules/behavior.