fix: Global skill installs work without manual folder moves#1112
Conversation
Install uloop skills directly under each target's skills directory by default so Claude Code can discover global installs. Keep the --flat path accepted, update help text, and make default uninstall clean up old grouped installs.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThis PR changes the default skills installation layout from grouped (with ChangesSkills Layout Default
Sequence DiagramsequenceDiagram
participant User as CLI User
participant ListCmd as skills list
participant InstallCmd as skills install
participant UninstallCmd as skills uninstall
participant SkillsMgr as skills-manager
User->>ListCmd: --claude flag
ListCmd->>SkillsMgr: listSkills(..., DEFAULT_GROUP_MANAGED_SKILLS=false)
User->>InstallCmd: --claude --global flag
InstallCmd->>SkillsMgr: installAllSkills(..., DEFAULT_GROUP_MANAGED_SKILLS=false)
User->>UninstallCmd: --claude flag
UninstallCmd->>SkillsMgr: uninstallAllSkills(..., DEFAULT_GROUP_MANAGED_SKILLS=false)
SkillsMgr->>SkillsMgr: Uses flat layout when groupManagedSkills=false
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
User Impact
unity-cli-loop/folder, so tools that only scan top-level skill folders did not show the bundleduloop-*skills.uloop skills install --claude --globalmakes the skills available without moving folders by hand.Changes
--flatflag accepted and update help text to describe the default.Verification
npm run test:cli -- --runTestsByPath src/__tests__/skills-command.test.ts src/__tests__/skills-manager.test.tsnpm run lint(passes with existing security warnings)npm run buildcodex-review-loopagainstorigin/main: 0 valid findingsCloses #1103
Overview
This PR fixes global skill installation discovery by changing the default installation layout from grouped (with a
unity-cli-loop/wrapper directory) to flat. This allows Claude Code to discover globally installed uloop skills without requiring manual folder reorganization.Problem
When users ran
uloop skills install --claude --global, skills were installed under~/.claude/skills/unity-cli-loop/uloop-*/SKILL.md. However, Claude Code expects skills to be located directly at~/.claude/skills/<name>/SKILL.md, causing bundled uloop-* skills to not be discovered.Solution
The fix implements flat-layout installation as the new default by:
DEFAULT_GROUP_MANAGED_SKILLSconstant (set tofalse) inskills-manager.tstruedefault for:getAllSkillStatuses()installAllSkills()uninstallAllSkills()getInstallDir()--flatflag descriptions in the CLI to clarify that flat layout is now the default behaviorgroupManagedSkillsis disabledChanges
Core Changes
DEFAULT_GROUP_MANAGED_SKILLS = falseand updates four function signatures to defaultgroupManagedSkillsto this new value instead oftrue. The uninstall strategy now branches: when grouping is enabled, it uses the single-layout path; when disabled, it removes skills from all layouts.DEFAULT_GROUP_MANAGED_SKILLSinstead of deriving the grouping behavior from the--flatflag. Flag descriptions updated to state "Use skills/ directly" to reflect the new default.Test Coverage
uninstallAllSkills()verifying removal from both legacy flat and grouped layouts. Updated test forgetInstallDir()to verify flat layout is used by default.skills install --claude --globalinvokesinstallAllSkillswith correct target and layout arguments.Impact
Users running
uloop skills install --claude --globalwill now have skills installed directly under~/.claude/skills/and immediately discoverable by Claude Code without manual folder moves. The--flatflag remains available and accepted for explicit user control.