Press ESC to exit fullscreen
📖 Lesson ⏱️ 60 minutes

Publishing Skills

Share a skill with your team via project skills and plugins, and keep it portable across agent clients

From “Works for Me” to “Works for Everyone”

You’ve built a skill, you understand where agents find it, and you’ve tested that it triggers correctly. The last step is getting it in front of the people who’d actually benefit from it — teammates, or users of a different agent client entirely. Publishing a skill isn’t complicated, but it does mean paying attention to a few things that don’t matter when a skill only ever runs on your machine.

The Simplest Path: Commit It

If a skill lives in .claude/skills/ at your project root — the location from the discovery lesson — publishing it to your team is just committing it:

git add .claude/skills/deploy-checklist
git commit -m "Add deploy-checklist skill"
git push

Every teammate who pulls the branch gets the skill automatically, with no separate install step. This is the right distribution model for anything specific to one codebase — a migration procedure, a review checklist, a project’s API conventions — and it’s almost always the first form of “publishing” a skill actually takes.

Packaging as a Plugin

When a skill (or a set of related skills) needs to travel across multiple repositories rather than living in just one, a Claude Code plugin is the better fit. A plugin can bundle several skills together along with other capabilities, and installing the plugin is what makes its skills available — recipients don’t manage the individual skill files themselves the way they would with a project skill.

This is the right choice once you’re distributing something more like a product than a single project’s internal convention — a vendor’s API integration, a company-wide toolkit meant to apply everywhere, not just one repo.

Claude.ai: Skills for Non-Technical Teammates

Everything so far assumes people using Claude Code — a terminal or IDE. Claude.ai supports skills too, and on Team and Enterprise plans, an organization can upload custom skills for use across the whole workspace. This matters because it extends a skill’s reach to teammates who’d never touch a terminal or a .claude/skills/ folder directly — the same institutional knowledge a project skill gives a codebase’s contributors, available to everyone through the product they already use.

One practical difference worth knowing before you rely on it: a skill running in Claude.ai executes in Claude’s own hosted sandbox, not your local machine. A script that assumes a specific local toolchain — a particular interpreter version, a CLI you installed by hand — may not behave the same way there. This is exactly what the compatibility frontmatter field, from SKILL.md Fundamentals, exists to communicate.

Keeping a Skill Portable

Because Agent Skills is an open format, a skill you publish might end up running in a client you never tested it against — a teammate’s different tool, or a future client that doesn’t exist yet. A few habits, all of which you’ve already practiced in this course, are what make that work out rather than break:

  • State real environment requirements in compatibility rather than assuming every client’s execution environment matches yours.
  • Keep scripts non-interactive, as covered in Files & Resources — different clients run commands differently, but none of them can answer a prompt on your behalf.
  • Write a description that stands on its own, per SKILL.md Fundamentals — different clients and models vary in exactly how aggressively they trigger a skill, and a clear, specific description is the one thing entirely within your control regardless of which one ends up evaluating it.
  • Test before you publish, using the query set from Testing Skills — a skill that hasn’t been checked for over-triggering is a worse thing to hand to a team than no skill at all.

None of this is exotic engineering — it’s the same discipline from earlier lessons, applied with an audience in mind instead of just yourself.

Summary

  • Publishing a project skill to a team is usually just committing it to .claude/skills/ — no separate distribution step needed
  • A Claude Code plugin is the right vehicle once a skill needs to travel across multiple projects rather than living in one
  • Claude.ai supports organization-wide custom skills on Team/Enterprise plans, extending a skill’s reach beyond anyone using a terminal — but its hosted sandbox means local-environment assumptions don’t always carry over
  • Portability comes from habits you already have: stated compatibility, non-interactive scripts, a strong description, and testing before you ship

You’ve now gone from an idea to a published skill. The capstone puts everything from this course together — five small, real skills, built end to end.