I built a Claude skill that flags scope creep before you reply to a client
If you freelance, you know the message: one friendly paragraph that quietly contains four new requests. The easy reply is "sure, no problem". The expensive part is that you answered before checking the message against what you actually agreed.
I wrote a Claude skill that does the checking first. It splits the message into separate asks, compares each one to your scope, and drafts a reply with prices before you say anything.
What a Claude skill is
A skill is a folder with a SKILL.md file. The top of the file tells Claude when to use it, and the body tells Claude how to do the job. You upload the folder in Claude's settings and it kicks in when your message matches the description. No code is needed for the skill itself.
The skill
This is the core of mine, trimmed a bit. The full version also has a rubric file, reply templates and a small pricing script.
---
name: scope-creep-guard
description: Checks a client message against the agreed project scope, flags out-of-scope or ambiguous requests, and drafts a friendly change-order reply with pricing and schedule impact. Use when a freelancer pastes a client email or Slack message and asks "is this in scope?" or "how do I say no / charge for this?"
---
# Scope-Creep Guard
You protect the freelancer's time and the client relationship at the same time.
You never accuse the client; you make the scope visible and give them easy options.
## Inputs
1. The agreed scope (proposal, contract excerpt or bullet list: deliverables,
revision rounds, exclusions). If missing, ask once. If the user can't provide
it, mark the verdict "provisional".
2. The client's new message, pasted as-is.
3. The rate and the current deadline.
## Workflow
1. Split the client message into individual asks, one line each. Clients often
bury 2-3 asks in one message.
2. Classify every ask:
- IN SCOPE: explicitly covered (cite the scope line).
- REVISION: a change to an existing deliverable inside the remaining rounds.
- OUT OF SCOPE: new deliverable, extra round past the limit, or listed under exclusions.
- AMBIGUOUS: scope is silent. Recommend a clarifying question, never assume.
3. Estimate hours for each out-of-scope item and price them.
4. Draft the reply: say yes to what is in scope, then offer options for the rest:
(a) add it as a change order at $X and +N days,
(b) swap it for something of similar size,
(c) park it for phase 2.
## Rules
- Quote the scope. Never invent contract terms. If the contract is silent, say so.
- Never start out-of-scope work before written approval.
- Put the revision math in the client reply itself, not only in the table.
- This is business communication help, not legal advice.
Two details in there matter more than they look:
- "Split into individual asks." Without this step Claude tends to judge the whole message as one thing. Splitting is what catches the third and fourth request hiding after "oh and".
- "Put the revision math in the client reply itself." In an earlier dry run of the same example, the scope table was right but the drafted reply never told the client that her revision rounds were used up, so the one-time courtesy had no context. Adding this rule fixed it. In the real Claude run below, the reply opens with the revision math.
A test run
I ran it on a free Claude.ai account with the skill uploaded. Nothing was edited except the chat formatting, which I turned back into plain text. This is one run, and yours will be worded differently.
The setup was a made-up web design project. Agreed scope: 6 pages, a booking embed, polish of existing copy, 2 revision rounds per deliverable, no new copywriting, $75 an hour. The home design was already approved with both rounds used.
The client message:
Hi Sam! Loving it so far. A few things: can you make the hero button orange instead of purple? Also I'd love our Instagram feed on the homepage. And we're launching Pilates in January, could you add a page for that too? Oh and the teachers page text, can you write bios for our 8 teachers? Thanks!!
The skill's scope check:
| Ask | Verdict | Why | Hours | Price |
|---|---|---|---|---|
| Hero button purple to orange | Out of scope (tiny, so a goodwill candidate) | Home design approved, 2 of 2 rounds used | ~0.25 | $0 if goodwill |
| Instagram feed on homepage | Out of scope | New integration, not in the 6 pages or the booking embed | 2 | $150 |
| New Pilates page | Out of scope | The scope fixes 6 pages, so this is a 7th | 8 | $600 |
| Write bios for 8 teachers | Out of scope | "Not included: new copywriting" | 4 to 6 | Quote separately |
The reply it drafted:
Hi [Client name],
So glad you're loving it! The home design was approved on Nov 14 with both revision rounds used, so changes to it now count as extra. I'm happy to switch the hero button to orange as a one-time courtesy.
The other three fall outside our original 6-page plan, so here are the options:
- Instagram feed on the homepage: $150
- Pilates page (same layout as Classes): $600
- Together that's $750 and adds about 2 days. We'd still launch Dec 15 if you confirm by Nov 25.
For the teacher bios, new copywriting isn't part of the project. If you send me a few lines per teacher, I'll polish them. Or I can quote writing all 8 from scratch. If you'd rather keep the budget fixed, we could also park the Pilates page for after launch.
Reply "approved" for the feed and/or Pilates page and I'll get started.
Sam
Compared with the default "sure, happy to!", this reply says yes to the small thing, puts a price and a date on the big things, and gives the client three ways forward. Nobody is accused of anything.
It also added a note for me that I would have missed: the Pilates page launches in January, so it does not have to ship before the December deadline, and parking it may suit the client better.
What it gets wrong
- The hour estimates are Claude's guesses. It said so itself and told me to adjust them, especially if the Instagram feed needs a paid widget or API setup. Check them against your own speed.
- It only knows the scope you give it. If your contract is vague, you get "provisional" verdicts, which is the honest answer.
- It does not read your contract for legal meaning. For large disputes, talk to someone qualified.
Try the idea without the skill
You do not need the full skill to get most of the value. Paste your scope and the client message into any chat and ask for three things: split the message into separate asks, mark each one as in scope, revision, out of scope or unclear with the scope line that proves it, and draft a reply that offers a change order, a swap or a later phase. The order matters: classify first, reply second.
I also put together a free set of 10 prompts for freelancers, in case it is useful.
Free: 10 AI prompts for freelancers
Copy-paste prompts for client emails, proposals, follow-ups, pricing and more, each with an example output.
What do you do when a client message has a "quick extra" hiding in it? I would like to hear how others handle the reply.