feat(claudecode): discover nested .claude/skills directories on import - #2555
Merged
dyoshikawa merged 2 commits intoAug 1, 2026
Merged
Conversation
Claude Code v2.1.178 loads skills from nested .claude/skills/ directories below the working directory, but rulesync import scanned only the fixed project root (plus .claude/scheduled-tasks), so an existing apps/web/.claude/skills/deploy/SKILL.md was silently invisible - lossy import against a documented upstream location, the stronger half of #2497. - ClaudecodeSkill.getConfiguredImportRoots globs for nested .claude/skills directories (project scope only, symlinks not followed, hidden dirs and the shared nested-scan exclusions applied) and feeds them into the existing configured-import-roots pipeline, which is import-only and lenient by construction. On a name clash the root skill wins (rulesync's flat namespace cannot express Claude Code's directory-qualified variant); a dependency-tree skill is never scanned. - Generation deliberately stays targeted at the project-root .claude/skills/: the paths frontmatter covers subtree-scoped activation and --output-roots covers physical co-location, both documented in the new nested-skills docs note. Closes #2497 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nistically Review follow-ups on PR #2555: the nested-skill scan now passes discovered roots through filterOutPathsInGitIgnoredDirectories (a gitignored scratch checkout's skills are somebody else's project and must not enter the shared .rulesync/skills namespace - true parity with the nested AGENTS.md scan), and sorts them so a nested-vs-nested name clash resolves deterministically. Test fixtures gain the depth-1 and root-build-dir cases the glob semantics hinge on. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
@dyoshikawa Thank you! |
dyoshikawa
deleted the
resolve-scrap-issue-2497-claudecode-nested-skills
branch
August 1, 2026 04:06
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
Resolves #2497 (its import half, which the issue itself calls the stronger one): Claude Code v2.1.178+ loads skills from nested
.claude/skills/directories below the working directory, butrulesync import --targets claudecode --features skillsscanned only the fixed root — an existingapps/web/.claude/skills/deploy/SKILL.mdwas silently invisible.ClaudecodeSkill.getConfiguredImportRootsnow globs for nested.claude/skillsdirectories (project scope only; symlinks not followed; hidden-dir, dependency-tree and root build/vendor exclusions shared with the nestedAGENTS.mdscan) and feeds them into the existing configured-import-roots pipeline — which is import-only and lenient by construction (never managed for generation or orphan deletion, skip-and-warn on broken skills).apps/web:deployvariant. Documented.pathsfrontmatter already covers subtree-scoped activation, and--output-roots <subdir>covers physical co-location; the new docs note spells out both.Testing
node_modulesskill never scanned; ClaudecodeSkill unit tests unaffected.pnpm cicheckgreen.Closes #2497
🤖 Generated with Claude Code