[BUG] Shared skill body not delivered to receiver — Skill tool reports "not available" even though skill appears in Customize UI
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
When a skill is packaged via skill-creator's scripts/package_skill.py,
uploaded via Customize → Skills → "+" with visibility Shared, and
another user in the same workspace tries to use it, the description /
metadata propagates correctly (the skill appears under "Shared skills" in
the Customize panel and shows up in the available-skills list during a
conversation), but the body of SKILL.md is not retrievable by theSkill tool on the receiver's side.
Claude itself diagnoses this in the transcript as:
Skill not available through Skill tool directly. Let me find its config to understand what it does, then run manually. No local definition found for pyroscope-onboard skill — it's a shared skill in Claude Code UI but not accessible via Skill tool.
This defeats the purpose of authoring a shared skill: receivers see the name
and trigger description, but Claude falls back to improvising from the
description alone instead of executing the skill's actual instructions.
Expected
The full SKILL.md body (and any bundled scripts/ / references/ /assets/) is delivered to the receiver and accessible to the Skill tool,
so the skill's instructions are actually followed.
Actual
Only metadata (name + description) reaches the receiver. The Skill tool
returns no body and Claude has to fall back to improvising from the
description.
Environment
- Author: macOS 14.6.0, Claude Code (Opus 4.6)
- Receiver: macOS, Claude Code (Opus 4.6)
- Skill packaged with the
skill-creatorplugin's
scripts/package_skill.py (validation passed, .skill file ~3.7KB)
- Skill content: single
SKILL.md, no bundled resources
Notes
Happy to share the exact .skill file privately if useful for repro.
What Should Happen?
Expected
The full SKILL.md body (and any bundled scripts/ / references/ /assets/) is delivered to the receiver and accessible to the Skill tool,
so the skill's instructions are actually followed.
Error Messages/Logs
Steps to Reproduce
Repro
- On machine A, author a skill (
SKILL.mdwith YAML frontmatter +
substantial body of instructions).
- Package with
python3 -m scripts.package_skill <skill-dir>from
skill-creator → produces a .skill file.
- Upload via Customize → Skills → "+", choose Shared visibility.
- On machine B (different user, same workspace), open Customize → Skills.
The skill appears under "Shared skills" with the correct
name + description.
- Start a Claude Code conversation on machine B. The skill is listed as
available. Ask Claude to use it (or it triggers automatically from the
description).
- Claude attempts to invoke it via the
Skilltool and reports the body
is not available; it then improvises instead.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.136 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗