Project-level skills in .claude/skills/ not loaded when .claude/ is in a subdirectory
Bug: Project-level skills not registered from nested .claude/skills/
Environment
- Claude Code 2.1.81
- macOS Darwin 25.3.0
Setup
A monorepo-like structure where teams have isolated .claude/ directories in subdirectories:
project-root/
├── .claude/ ← root orchestrator config
└── spokes/pharma/
└── .claude/ ← team-level config (this is where we start Claude Code)
├── CLAUDE.md ← ✅ loads correctly
├── settings.json ← ✅ loads correctly
├── agents/pharma.md ← ✅ loads correctly
├── rules/*.md ← ✅ loads correctly (6 rules)
└── skills/
├── jtbd-coach/SKILL.md ← ❌ NOT detected by Skill tool
├── pm-coach/SKILL.md ← ❌ NOT detected
├── ooux-coach/SKILL.md ← ❌ NOT detected
└── ... (10 skills total, all with correct frontmatter)
How we start
cd spokes/pharma
claude
Observed behavior
Claude Code correctly finds spokes/pharma/.claude/ and loads:
- ✅ CLAUDE.md (2.3k tokens in context)
- ✅ All 6 rules from
.claude/rules/(loaded as Memory Files) - ✅ Agents from
.claude/agents/ - ✅ settings.json
But .claude/skills/ are not loaded at all. The /context command shows zero project-level skills — only User-level and Plugin skills appear in the Skills section.
Evidence from /context output
Memory Files section (loads from same .claude/):
Project .claude/CLAUDE.md 2.3k
Project .claude/rules/proactive-coaching.md 2k
Project .claude/rules/artifact-versioning.md 2.6k
Project .claude/rules/context-isolation.md 321
Project .claude/rules/signal-governance.md 430
Project .claude/rules/design-readiness-gate.md 1.4k
Project .claude/rules/artifact-integrity.md 1.4k
Project .claude/rules/user-facing-language.md 831
Skills section (does NOT load from same .claude/):
system-builder User 174
schedule User 23
xlsx User 237
...only User and Plugin skills, zero project-level skills
SKILL.md frontmatter format
All skills have correct YAML frontmatter:
---
name: jtbd-coach
description: JTBD Coach — maps user jobs, creates archetypes and personas using Jobs To Be Done methodology
---
# JTBD Coach
...
Expected behavior
Skills in .claude/skills/ should be loaded and registered with the Skill tool when Claude Code starts from a directory containing that .claude/. The documentation states:
"When you work with files in subdirectories, Claude Code automatically discovers skills from nested .claude/skills/ directories."
Since CLAUDE.md, rules, agents, and settings all load correctly from this .claude/, skills should too.
Additional context
This may be specific to .claude/ directories in subdirectories of a git repository. The .claude/ is not at the git root — it's at spokes/pharma/.claude/. Other configuration (CLAUDE.md, rules, agents, settings) is discovered correctly by walking up from the cwd. Skills appear to use a different discovery mechanism that doesn't find them in the same location.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗