Project-level skills in .claude/skills/ not loaded when .claude/ is in a subdirectory

Resolved 💬 3 comments Opened Apr 2, 2026 by neatlittlemacapps Closed Apr 2, 2026

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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗