- What's the difference between a Claude Skill and a tool / function call?
- Tools (function calls) are runtime callables the model invokes mid-conversation. Skills are static folders the model loads on demand based on the trigger description. A skill can include tools/scripts inside it, but the skill itself is the package: SKILL.md + resources + scripts. Think 'tool' = one function, 'skill' = a domain-expert mode the model enters.
- Do I need the API to ship a skill, or can I use claude.ai?
- claude.ai (Pro or Team plan) supports skills directly: upload a zip from Settings -> Skills. Claude Code (the local terminal client) auto-loads skills from ~/.claude/skills/. The API supports skills as part of agent loops if you build the loader yourself. For most ship-a-skill cases, claude.ai or Claude Code is enough.
- Why doesn't my skill load when I expect it to?
- 9 times out of 10, the trigger description is too narrow or too vague. Run the eval pass: send 20 queries that should trigger the skill, count how many actually do. If hit rate is below 90%, expand the description with the phrasing your users actually use. The trigger description is the single most-tuned part of a skill.
- Can my skill call my internal API?
- Yes, via a script. Scripts run in a sandbox with optional network access (you have to explicitly grant it). For an internal API, your script needs an auth token, which you'd inject via env vars on the host that runs Claude Code. claude.ai sandboxes don't have access to your internal network, only public APIs.
- How do I version a skill?
- Add `version: <semver>` to the SKILL.md front-matter. Bump on every release, tag the git repo with the same version. Loaders use the version to decide whether to upgrade an installed skill. Without a version, the loader treats every install as 0.0.0 and upgrades silently fail.
- Can my AI agents help build the skill?
- Yes, this playbook ships agent prompts for the slow parts: drafting SKILL.md from a 1-line spec, generating scripts from your existing tooling, running the eval pass against the trigger description, and analyzing eval results to suggest description tweaks. The Eval log surface is the canonical history of every trigger version.