How Do I Package a Team SOP as a Claude Skill Anyone Can Run?

Every team has SOPs nobody follows. They live in a Notion doc someone wrote six months ago, and three people on the team do the task three different ways. A Claude Skill fixes this structurally: the SOP becomes something your team invokes instead of reads, and it produces consistent output every time. Here's how to package one of your team's SOPs as a Skill anyone can run.
Why this matters
SOPs fail because they're passive. The doc exists, people skim it once in onboarding, and then everyone improvises. Meanwhile, the business depends on the SOP being followed — that's why you wrote it.
A Claude Skill is active. When a team member types /onboard-new-client, the Skill runs — not a reminder to follow the SOP, but the SOP actually executing: gathering inputs, applying the template, producing the deliverable. The team doesn't have to remember the steps because Claude does them.
Best first candidates: anything you've trained someone on more than twice. Client onboarding docs, QBR deck generation, bug triage templates, weekly status reports, invoice prep, meeting recaps formatted for your specific Slack conventions.
Before you start
You need:
- Claude Code installed. Skills live inside Claude Code (the CLI), not Claude.ai. See How Do I Set Up Claude Code on macOS?.
- One SOP to codify. Pick something small and well-defined. "Turn a client kickoff call transcript into a structured scope doc" is a great first one.
- A shared Git repo or shared folder where the team's Skills will live (we'll make it discoverable to everyone).
Step 1: Pick the SOP and write out the "perfect run"
Before you write any Skill code, write the SOP the way you wish it were always done. One Google Doc, top to bottom:
- Input: what does the person running it provide? (A transcript? A client name?)
- Steps: what happens, in order?
- Output: what does the final deliverable look like? Ideally attach an example.
- Gotchas: what does every new hire get wrong?
Tight example — scope doc from kickoff transcript:
- Input: call transcript (.txt or pasted).
- Steps: extract goals, extract constraints, extract deliverables, map deliverables to phases, flag anything ambiguous as "needs confirmation."
- Output: a markdown scope doc in our template.
- Gotchas: don't invent deliverables the client didn't mention; always quote the client's own words for each goal.
Do not skip this step. Skills built without a crisp spec are Skills that produce inconsistent output, which is the problem you're trying to solve.
Step 2: Create the Skill file
Skills live in .claude/skills/ in your project (or globally in ~/.claude/skills/). Create a folder per Skill:
mkdir -p .claude/skills/scope-from-transcript
cd .claude/skills/scope-from-transcript
touch SKILL.mdSKILL.md is the Skill's definition. The format:
---
name: scope-from-transcript
description: Turn a kickoff call transcript into a structured scope doc. Runs on pasted transcript or file path.
---
# Scope-from-transcript
You are generating a scope doc from a client kickoff call transcript.
## Inputs
The user provides a transcript (pasted inline or as a file path).
## Process
1. Read the transcript fully before writing anything.
2. Identify and extract:
- **Goals:** what the client wants to achieve (business outcome, not feature list).
- **Deliverables:** concrete things to produce.
- **Constraints:** budget, timeline, technology requirements, people/stakeholder constraints.
- **Ambiguities:** anything the client said that could mean two things. Flag these explicitly.
3. For each goal, quote the client's own words in italics beneath the goal.
4. Group deliverables into phases: Phase 1 (weeks 1–2), Phase 2 (weeks 3–6), Phase 3 (weeks 7+).
5. Output in the template below.
## Output template
See `./template.md` in this Skill's folder.
## Rules
- Never invent deliverables the client didn't mention.
- Never drop ambiguous items — flag them as "needs confirmation" in a final section.
- Quote the client's language verbatim when stating goals.Step 3: Add supporting files
Claude Skills can include helper files. Drop the scope doc template into the Skill folder:
# .claude/skills/scope-from-transcript/template.md
# Scope: [Client Name]
## Goals
- [Goal 1]
> *"client's own words here"*
## Deliverables
### Phase 1 (weeks 1–2)
- [Deliverable]
### Phase 2 (weeks 3–6)
- [Deliverable]
### Phase 3 (weeks 7+)
- [Deliverable]
## Constraints
- [Constraint]
## Needs confirmation
- [Ambiguity]Any file in the Skill folder is available to Claude when the Skill runs. Use this for templates, reference docs, example outputs, or lightweight scripts.
Step 4: Test the Skill end-to-end
In Claude Code, inside the project, type /scope-from-transcript and paste a real transcript (or provide a path).
Claude invokes the Skill. You should see:
- Claude reads
SKILL.mdandtemplate.md. - Claude processes the transcript against the steps.
- Claude outputs a scope doc in your template.
Compare the output to one a senior team member would have produced. Close? Ship it. Missing something? Edit SKILL.md (tighten a rule, add a step, clarify a gotcha) and re-run.
Iteration is fast because the Skill is just a markdown file — no code, no redeploy.
Step 5: Share it with the team
Commit the .claude/skills/scope-from-transcript/ folder to your repo. Any teammate who pulls the repo now has the Skill available in their Claude Code session.
For Skills that aren't tied to a single repo (general-purpose company SOPs), put them in a shared company-skills repo and have teammates symlink it into ~/.claude/skills/ globally:
git clone [email protected]:your-org/company-skills.git ~/work/company-skills
ln -s ~/work/company-skills/* ~/.claude/skills/Now every teammate, on every project, can run any company Skill.
Step 6: Add a short runbook for the team
One paragraph in your internal wiki:
Our company Skills — we package common SOPs as Claude Skills. Run one by typing
/skill-namein Claude Code. Current Skills:scope-from-transcript,qbr-deck-from-report,bug-triage-template. To add a new one, seecompany-skills/README.md.
The friction you're removing: nobody has to remember the SOP exists. They invoke the Skill, get the output, ship it. That's it.
Verify it worked
1. Skill is discoverable. In Claude Code, type / and scroll — your Skill should appear in the list.
2. Output is consistent across runs. Run the Skill three times on three different transcripts. The structure should be identical; only the content varies.
3. Teammate can run it. Have a teammate pull the repo and run the Skill on their own input. If their output matches yours in structure, you've successfully codified the SOP.
Where this breaks
- SOPs that are genuinely judgment-heavy. "Decide whether to fire a client" isn't Skill-shaped — the decision requires context no Skill can encode. Reserve Skills for repeatable transformations, not judgment calls.
- The "kitchen sink" Skill. If your SKILL.md is 400 lines, you're trying to do three Skills in one. Split it:
scope-from-transcript+scope-to-proposal+proposal-to-contract. - Client data in versioned Skills. If a Skill references a real client transcript as an example, redact it before committing. The repo is your team's forever.
- Skills that depend on MCP tools the user might not have. If your Skill requires an Ahrefs MCP connection and a new hire doesn't have it, the Skill will fail cryptically. Document required MCPs at the top of SKILL.md.
- Letting Skills rot. SOPs change. When the QBR deck template gets a new section, update the Skill the same day. Otherwise the Skill produces obsolete output and the team loses trust in Skills generally.
What to try next
- How Do I Build a Claude Code Skill Army That Replaces My Checklist of Prompts? — the advanced version: multiple Skills chained into workflows and delegated to subagents.
- How Do I Write a CLAUDE.md That Actually Works? — the complementary piece: encode conventions Skills should follow.
- How Do I Build My First Claude Project That Actually Knows My Business? — if your team uses Claude.ai more than Claude Code, Projects are the closest analog for shared SOPs.
Let's talk about your AI + SEO stack
If you'd rather skip the how-to and have it shipped for you, that's what I do. Start a conversation and we'll figure out the fastest path to results.
Let's Talk