Custom skill in .claude/skills/ recognized but fails with 'Unknown skill' when invoked

Resolved 💬 5 comments Opened Mar 15, 2026 by Michal-Miky-Jankovsky Closed Apr 15, 2026

Claude Code version

2.1.74

Environment

  • macOS 15.3 (Darwin 25.3.0, arm64)
  • Node v24.14.0
  • Model: claude-opus-4-6

Description

A custom skill defined in .claude/skills/timesheet/SKILL.md is listed in the system reminder as an available skill, but invoking it via /timesheet or the Skill tool returns Unknown skill: timesheet.

Steps to reproduce

  1. Create a skill file at .claude/skills/timesheet/SKILL.md with valid frontmatter:

```markdown
---
name: timesheet
description: Analyze git history to estimate time spent on the project.
allowed-tools: Bash, Read
---

(skill instructions here)
```

  1. Start a new Claude Code conversation in the project directory.
  1. Observe that the skill appears in the system reminder:

```
The following skills are available for use with the Skill tool:

  • timesheet: Analyze git history to estimate time spent on the project...

```

  1. Type /timesheet or have the model invoke Skill(skill: "timesheet").
  1. Result: Unknown skill: timesheet

Expected behavior

The skill should be invoked successfully since it's recognized and listed as available.

Actual behavior

The skill is listed in the available skills but the Skill tool returns Unknown skill: timesheet. This happened consistently across multiple attempts in the same conversation.

File structure

.claude/
├── settings.json
├── settings.local.json
└── skills/
    └── timesheet/
        └── SKILL.md    (1961 bytes, -rw-r--r--)

SKILL.md frontmatter (hex-verified, no BOM or hidden characters)

---
name: timesheet
description: Analyze git history to estimate time spent on the project. Use when the user asks about time tracking, hours worked, or timesheet.
allowed-tools: Bash, Read
---

Workaround

Manually reading the SKILL.md and executing the instructions works fine — only the /timesheet invocation path is broken.

View original on GitHub ↗

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