Course Content
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 pushEvery 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
compatibilityrather 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 strongdescription, 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.
