Skip to content

feat(sync): add symlink mode for shared skills#97

Merged
christso merged 2 commits intomainfrom
feat/96-symlinks-for-shared-skills
Feb 6, 2026
Merged

feat(sync): add symlink mode for shared skills#97
christso merged 2 commits intomainfrom
feat/96-symlinks-for-shared-skills

Conversation

@christso
Copy link
Copy Markdown
Contributor

@christso christso commented Feb 6, 2026

Summary

  • Copy skills to canonical .agents/skills/ location, then create symlinks from non-universal client paths (claude, cursor, factory)
  • Universal clients (copilot, codex, opencode, gemini, ampcode) use canonical directly
  • Add syncMode config option (symlink default, copy for legacy behavior)
  • Add cross-platform symlink utilities with Windows junction support
  • Fix purge to handle symlinks correctly

Test plan

  • All 579 tests pass
  • New symlink utility tests added
  • New sync-symlink integration tests added
  • Existing tests updated to use syncMode: copy for predictable counts

🤖 Generated with Claude Code

Copy skills to canonical .agents/skills/ location, then create symlinks
from non-universal client paths (claude, cursor, factory). Universal
clients (copilot, codex, opencode, gemini, ampcode) use canonical directly.

- Add syncMode config option ('symlink' default, 'copy' for legacy)
- Add cross-platform symlink utilities with Windows junction support
- Fix purge to handle symlinks (avoid ENOTDIR with trailing slash)
- Track canonical paths correctly for multi-client scenarios
@christso christso merged commit bb97f9a into main Feb 6, 2026
1 check passed
@christso christso deleted the feat/96-symlinks-for-shared-skills branch February 6, 2026 10:33
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.

1 participant