This lesson is being recorded

Every video of this course is being uploaded to my YouTube channel. Subscribe so you do not miss it.

Bruno AshfordBruno Ashford @brunoashfordSubscribe

Module 13 · Lesson 13.2 · 14 min

Plugins: Packaging Company Know-How

Package your company skills, agents and hooks into an internal plugin the team installs with one command.

Module 13
Rolling Out to Your Team

From one owner's laptop to a company system

Bruno Ashford
Bruno Ashford · Module 1301 / 12
Why rollouts fail
Sending your team a link is not a rollout. It is a lottery.
Bruno Ashford
Bruno Ashford · Module 1302 / 12
The rollout

Three waves in 30 days

  1. 1Pilot groupTwo or three credible people
  2. 2First departmentProven skills only
  3. 3Whole teamWhen no safety issue is open
Bruno Ashford · Module 1303 / 12
Lesson 13.1

From owner to team

Share what is proven, not everything you built.

  • Company knowledge in shared CLAUDE.md
  • Personal preferences stay personal
  • Policy before tools
  • Credibility beats technical skill
Bruno Ashford · Module 1304 / 12
Lesson 13.2

What a plugin bundles

One folder, one install, one version for everyone.

  • Skills in skills/
  • Subagents in agents/
  • Hooks in hooks/hooks.json
  • Connectors in .mcp.json
Bruno Ashford · Module 1305 / 12
Lesson 13.2

The plugin commands

StepCommand
Check itclaude plugin validate ./acme-ops
Test itclaude --plugin-dir ./acme-ops
Add marketplaceclaude plugin marketplace add org/repo
Installclaude plugin install acme-ops@acme-tools
Manage/plugin
Bruno Ashford · Module 1306 / 12
Lesson 13.3

Four roles

  1. BBuilderCreates and edits skills
  2. AApproverSigns off changes and sensitive output
  3. UUserRuns skills daily
  4. MMaintainerKeeps versions and CLAUDE.md current
Bruno Ashford · Module 1307 / 12
The RACI rule
Two people accountable means nobody is accountable.
Bruno Ashford
Bruno Ashford · Module 1308 / 12
Lesson 13.4

30 days, 15 minutes a day

WeekFocus
1Install and first real win
2Two tasks from their own week
3Verification habits and pairing
4Contribute one improvement back
Bruno Ashford · Module 1309 / 12
Lesson 13.5: starting targets, adjust to your business

Adoption by day 30

80%use a skill 3+ times a week
3.5 / 5average confidence
< 15%rework rate
Bruno Ashford · Module 1310 / 12
Lesson 13.6

Change management

Fear goes underground if you ignore it.

  • Say clearly what AI is for
  • Link tools to real frustrations
  • Make champions visible
  • Ask resisters what worries them
Bruno Ashford · Module 1311 / 12
Recap
Package what works, name who owns it, train on real work and measure every week.
Bruno Ashford
Bruno Ashford · Module 1312 / 12
01 / 12

Use ← → to move. The marker highlights text and the pencil draws on the slide; navigation locks while you annotate. Undo removes the last mark, Esc exits.

1Understand the plugin layout

A plugin is a folder with a manifest at .claude-plugin/plugin.json that gives it a name, description and version. Next to that folder sit the components: skills/ with one folder per skill containing SKILL.md, agents/ with one file per subagent, hooks/hooks.json for hooks, and .mcp.json for tool connections. Only plugin.json goes inside .claude-plugin/.

Terminal
acme-ops/
  .claude-plugin/
    plugin.json
  skills/
    weekly-report/SKILL.md
    quote-builder/SKILL.md
  agents/
    finance-analyst.md
  hooks/
    hooks.json
2Let Claude convert your setup

You do not need to move files by hand. Ask Claude to build the plugin from your existing .claude folder. Plugin skills and agents get the plugin name as a prefix, so the weekly report skill becomes /acme-ops:weekly-report, which avoids clashes with personal skills.

Prompt for Claude
Create an internal Claude Code plugin called acme-ops from the proven skills and subagents in this project's .claude folder: weekly-report, quote-builder and the finance-analyst agent. Put the manifest at acme-ops/.claude-plugin/plugin.json with name, description, version 1.0.0 and author. Copy skills into acme-ops/skills and agents into acme-ops/agents. Remove anything personal to me (my email, file paths, accounts). Do not delete the originals. Show me the final folder tree.
3Validate and test it locally

Run the validator, then start a session with the plugin loaded for that session only. Try each skill under its new prefixed name before anyone else sees it.

Terminal
claude plugin validate ./acme-ops
claude --plugin-dir ./acme-ops
4Create your private marketplace

A marketplace is a folder or repository with a .claude-plugin/marketplace.json file that lists your plugins and where each one lives. It needs a name, an owner and a plugins list. Keep the entry name identical to the plugin's own name. Push it to a private repository your team can access (ask whoever manages your company GitHub or Git host).

Terminal
{
  "name": "acme-tools",
  "owner": { "name": "Acme Operations" },
  "plugins": [
    {
      "name": "acme-ops",
      "source": "./plugins/acme-ops",
      "description": "Acme company skills: reports, quotes, finance"
    }
  ]
}
5Install it on each teammate's machine

Each person adds the marketplace once and installs the plugin by name, in the format plugin@marketplace. Inside a session they can also type /plugin to browse, install, disable or update. When you release a new version, they get your update instead of keeping stale copies.

Terminal
claude plugin marketplace add your-company/acme-tools
claude plugin install acme-ops@acme-tools

Copying files between laptops works for one person. At five people it breaks: someone has last month's version of the quote skill, someone else edited it, and nobody knows which is right.

Claude Code plugins solve this. A plugin is one folder that bundles skills, subagents, hooks and connector settings. You list it in your own private marketplace, your team adds that marketplace once, and everyone installs the same version and receives your updates.

Key points

  • A plugin bundles skills, subagents, hooks and connectors into one installable unit.
  • Plugin skills are prefixed with the plugin name, for example /acme-ops:weekly-report.
  • Validate with claude plugin validate and test with --plugin-dir before sharing.
  • A private marketplace gives the team one source of truth and updates.

Avoid

  • Putting skills inside the .claude-plugin folder, where they will not load.
  • Shipping personal file paths, emails or credentials inside the plugin.
  • Using a different name in marketplace.json and plugin.json, which breaks installs.
  • Installing third-party plugins without reviewing them: a plugin runs with the user's permissions.
Real-world example: a marketing agency

A 10 person agency had three account managers each running their own copy of the client report skill, with different tone and different sections. The operations lead packaged the best version, plus a brand voice skill and a pre-send checking hook, into one plugin in a private marketplace. Every report now follows the same structure, and when the agency changed its reporting template, one plugin update reached everyone the same day.

Bruno Ashford Subscribe