Five agent skills from a working studio, and the mistakes inside them

We run five agent skills for client work at our studio. Three of them are Ali's, written for single jobs: replies on a freelance marketplace, one client's monthly report, one client's landing pages. Two live in the team's library and work for any client. Reading them back for this article, most of the lines in each one turned out to be a mistake we made once and wrote down so the agent would not make it again. Here is what is in them, where we broke our own rules, and what the research published this year says about skills in general, which is less flattering than the launch posts.

By Ali Demirci, founder of Woofocus · October 31, 2026 · 10 min read

The short answer

A skill pays for itself when it holds what a model cannot know: which of two tools has the true sales figure, which page is the template, what we never do for free. Generic advice the model already has does little. The research agrees more than it seems to: in one benchmark, curated skills raised the pass rate by 16.6 points; in another, 92 of 98 public skills made no measurable difference.

Our own five are short where the work is judgement and long where it has to be exact. Every one of them ends the same way: the agent prepares, and a person sends, publishes or deletes. And because one large scan this year found a critical security issue in about one public skill in seven, and another found some vulnerability in one in four, we install other people's skills the way we install plugins: rarely, and after reading them.

If you are new to the format itself, start with our guide to Agent Skills for agencies, which covers what a SKILL.md is and how to write one. This article is what happened after.

The five skills we run

SkillWhat it doesWhere it livesLength
Marketplace repliesDrafts Ali's replies to clients on Codeable job threadsAli's own Claude skills40 lines
Monthly reportBuilds one client's monthly sales and traffic report, then drafts the cover emailAli's own Claude skills, run with Claude in Chrome177 lines
Lead magnet pageCopies one client's checklist landing page in WordPress, makes its cover image and sets up the download formAli's own Claude skills, run with Claude in Chrome79 lines
Page QA testChecks a built page before launch and reports what is wrongThe team's Library on Proofyardabout 35 lines
Client health checkRuns a client's own list of checks on a scheduleThe team's Library on Proofyardabout 15 lines

Codeable is the WordPress freelance marketplace where we take some of our work. The two Library skills read the client's details from the project's files at run time; the other three have them written in, which comes up again below.

Most of each skill is a mistake we made once

The monthly report: numbers first, words after

The report skill is the longest because the numbers go to a client. Nearly every rule in it has a story:

  • One source per number. The client's shop runs on WooCommerce, the traffic on Google Analytics. In one month Analytics recorded about a third of the orders the shop actually took, so the skill says sales come from WooCommerce only, conversion is WooCommerce orders over Analytics sessions, and the gap between the two is checked every month as a sign the tracking tag is broken.
  • A check list before any sentence. Orders fetched must equal the total; product revenue must add up to net revenue within a dollar; every percentage is worked out again in Python from the raw numbers. Even a superlative is checked: "best since March" means every month after March was lower.
  • Plain email. A table pasted from Analytics into the cover email once made it 1,708 pixels wide and cut the text off on the right. The rule now: no screenshots and no pasted HTML in the body.
  • Do not edit what someone has open. Changes made to a Gmail draft while Ali had it open were overwritten by his window. The skill edits a draft only when he has closed it.
  • Never sent by the agent. The email is drafted after Ali approves the PDF, and sent by him.

The landing page: never invent a heading

The landing page skill copies an existing page in the WordPress block editor and changes only the parts that differ. Its rules are mostly about the editor and about honesty:

  • Content comes from the client's document, nothing else. The skill says, in so many words, not to make up a heading, slogan, eyebrow or subtitle that is not in the document, because Ali kept catching them.
  • The editor does not behave like a text box. One click on a block selects the block, not the text; the canvas scrolls after a selection. So the agent takes a screenshot after every click and places the cursor with the arrow key before typing.
  • Look at what you uploaded. After the cover image goes to the media library, the agent opens its URL and checks it with its own eyes. If it is wrong it uploads a new one and tells Ali; it never deletes a file itself.
  • Draft, then ask. The page is left as a draft and Ali publishes it.

The marketplace reply: say less, give nothing away

The reply skill is the shortest of Ali's three, because writing to a prospect is judgement. Part of it, as written:

2. No self-praise. Never write lines like "I have 10 years of experience" ...
   Credibility comes from the specific observations about their site,
   not from claims about yourself.

3. No free work. Free is limited to a short look at the public site to ask
   informed questions. Anything that requires logging in, auditing the
   install, mapping URLs, writing a plan document, or fixing something
   "quickly" is paid.

4. Keep it short. Two or three questions, one or two sentences each.

It also tells the agent to read the whole thread first and not to repeat a question another expert already asked, and never to promise search rankings by a date: "SEO fixes are fast to apply, slow to show."

Page QA and the health check: report, never fix

The two Library skills are for any client, so they hold no client facts at all. The QA skill reads the project's client-context.md and says its rules win over the defaults. It checks the page at 390, 1440 and 1920 pixels, opens every link, runs PageSpeed, fills forms only with obviously fake details and never pays for anything. Then it reports. "Do not fix, publish, delete or change any setting" is a line of its own, and so is "Report only what you checked."

The health check reads the client's own health-checks.md and runs what is due. What it cannot run, because it needs an admin login, a payment or a person's judgement, it lists as "Needs a person" instead of guessing.

Long where it must be exact, short where it is judgement

Anthropic's authoring guide puts this better than we could: "Match the level of specificity to the task's fragility and variability." Its picture is a narrow bridge with cliffs on both sides, where you give exact steps, and an open field, where you give a direction.

Our report skill is the bridge: it has the exact API calls, the checks and the page layout, because a wrong number in front of a client costs more than a long file. The reply skill is the field: four rules and a way of reading a thread. The same guide also says "Default assumption: Claude is already very smart" and asks of every paragraph whether it justifies its cost, which is the test we now use when a skill starts to grow.

Where we broke our own rules

Our own guide says a skill should keep client details out, start its description with "Use when", and be approved by a person before anyone uses it. Measured against that:

  • Three of our five name a client. The report skill has the client's contact and analytics property in it; the landing page skill has page and form IDs. It works because one person runs each one for one client. It also means they could not go into a shared library as they are, and that is a real limit: Anthropic's overview says custom skills in claude.ai are "Individual user only. Each team member must upload separately." Nobody else at the studio can run them.
  • None of Ali's three descriptions starts with "Use when", and one is written in Turkish. Anthropic's guide asks for descriptions in the third person, and its own skill-writing skill warns that "currently Claude has a tendency to "undertrigger" skills" and suggests making descriptions "a little bit "pushy"". We have not measured how often ours are picked up on their own.
  • We wrote them backwards. The guide says to "Create evaluations BEFORE writing extensive documentation", with at least three test scenarios and a run on Haiku, Sonnet and Opus. We did the job by hand first and wrote the skill from it, then fixed it each time a run went wrong. The skills are better for the real runs; we still have no baseline to say how much better.

What the research says

  • +16.6points on the average pass rate with curated skills, 87 tasks (SkillsBench)
  • 92 of 98public skills with no significant effect (SWE-Skills-Bench)
  • 56%of Vercel's eval cases where the skill was never used
  • 13.4%of 3,984 public skills with a critical security issue (Snyk)
SkillsBench v4 (14 June 2026), SWE-Skills-Bench v2 (27 October 2026), Vercel (27 January 2026), Snyk (5 February 2026); read 31 October 2026

The two benchmarks look like they disagree. SkillsBench (Li et al., version 4 of 14 June 2026) gave agents curated skills written for 87 tasks and saw the average pass rate go from 33.9% to 50.5%, with smaller, focused skills doing better than large bundles. SWE-Skills-Bench (Han et al., version 2 of 27 October 2026) took 98 public skills, ran 3,920 paired tests, and found 92 had no significant effect; the average moved from 76.6% to 76.9%. The paper says the harmful ones "anchor the agent on their own templates and override the task's explicit instructions".

Our reading, and it is only a reading: a skill helps when it carries something the model does not have. A public skill on how to write good React mostly repeats what the model knows. "WooCommerce is the sales source, not Analytics" is not in any model.

Vercel's own eval (Jude Gao, 27 January 2026) adds the other half: "In 56% of eval cases, the skill was never invoked." Told explicitly to use it, the agent passed 79% of their Next.js tasks against 53% without; a plain index in AGENTS.md passed all of them. Vercel's conclusion is that skills "work better for vertical, action-specific workflows that users explicitly trigger". All five of ours are started on purpose, by a person or by a task on the board, which may be why the triggering problem has not bitten us yet.

Public skills: read them like code

Two scans this year looked at what is published:

  • Snyk (ToxicSkills, 5 February 2026) scanned 3,984 skills from ClawHub and skills.sh: 13.4% had at least one critical security issue, and it found 76 malicious payloads, 91% of which also used prompt injection. Snyk sells security scanning, so read it as a vendor study.
  • Liu et al. (Agent Skills in the Wild, 15 January 2026) analysed 31,132 skills from two marketplaces: 26.1% had at least one vulnerability and 5.2% showed patterns that strongly suggest malicious intent. Skills that bundle scripts were 2.12 times as likely to have a problem as instructions alone.

Anthropic's advice is blunt: "Use Skills only from trusted sources: those you created yourself or obtained from Anthropic", and "Treat like installing software". None of our five bundles a script; the report skill shows code, but the generator it runs lives in the client's project, where we can see every change to it.

For platform work the safer start is the platform's own skills: WordPress publishes 18, written with GPT-5.2 Codex and "reviewed and edited by WordPress contributors"; Shopify and Webflow publish their own. Even then, read them. Vikas Singhal of InstaWP, a WordPress hosting company, cloned fifteen public skill repositories for his own roundup and kept seven: "Most public agent skill repos will not survive contact with a client site."

Where a skill should live

The same file works in many agents, but where you put it decides who can use it:

Who will use it?Where it lives
Only you, for one client's job

Your own skills in Claude or Claude Code

Our three single-client skills live here. Fast to write; nobody else can run them.

What goes in it: The client's exact steps and IDs

What stays out: Passwords, keys and login links

The whole team, any client

A shared library the agent reads

Our page QA and health check: the steps are shared, the facts come from each project.

What goes in it: The procedure and what to report

What stays out: Any client's details: name the file they are in

Code work in one repository

The repository's skills folder

Every agent that opens the repository finds it, and changes go through review like code.

What goes in it: Build, test and deploy steps

What stays out: Secrets; keep them in the host's settings

A platform's general know-how

The platform's own published skills

WordPress, Shopify and Webflow publish theirs. Read them before installing.

What goes in it: Nothing: you install it

What stays out: Anything you have not read

And where each tool looks for skills, from its own documentation:

ToolWhere it reads skills from
Claude Code~/.claude/skills for you, .claude/skills in a project
claude.aiA zip uploaded in Settings, Features; for that user only
OpenAI Codex.agents/skills in the repository, ~/.agents/skills for you
GitHub Copilot.github/skills, .claude/skills or .agents/skills in the repository
Cursor.agents/skills or .cursor/skills, and it reads .claude/skills too
VS Code.github/skills, .claude/skills or .agents/skills

How we run them on the board

The two team skills live in the Proofyard Library, which keeps the SKILL.md shape and hands skills to Claude over the connector: Claude lists them, reads the one whose description fits and follows it, and the instructions it gets say a skill never overrides the person's request, the board's rules or safety. A new skill, or a change to one, waits for a person to approve it. When Claude notices it has followed the same steps on several tasks it can draft one, and a person decides.

The facts about each client, the things that made Ali's three skills single-client, belong in the project's files instead, where our AI knowledge base keeps them; our shared AI knowledge base guide explains the split. The rule that every skill ends with a person deciding is the one in our guide to what an AI agent should ask before it acts, and our agent test shows how four models handled written rules across 40 client notes. Prices are on our pricing page.

Sources

FAQ

Questions people ask

What agent skills should a web agency write first?

The jobs you repeat where a mistake reaches a client: a monthly report, a page QA round, a launch, client replies with house rules. Write down what the model cannot know, such as which tool holds the true figures and what you never do for free, and leave out general advice it already has.

Do agent skills actually improve results?

It depends on the skill. SkillsBench found curated skills raised the average pass rate from 33.9% to 50.5% on 87 tasks; SWE-Skills-Bench found 92 of 98 public skills made no significant difference. Skills that carry knowledge specific to the task help; generic ones mostly do not.

Are public agent skills safe to install?

Not without reading them. Snyk found a critical security issue in 13.4% of 3,984 public skills, and Liu et al. found at least one vulnerability in 26.1% of 31,132. Anthropic advises using skills only from sources you trust and treating them like installing software.

Can a team share skills in claude.ai?

Not directly. Anthropic's documentation says custom skills in claude.ai are for the individual user, and each team member must upload them separately. Teams share skills through a repository folder, Claude Code plugins, the API workspace, or a board that hands skills to the agent.

Should client details go in a skill?

Only in a skill one person runs for one client, and never passwords or keys. For skills the team shares, keep the steps general and let the agent read the client's details from the project's files at run time.

Try it on your own work

Try it on your next brief.

Open a Proofyard workspace, give Claude a real brief and see what it prepares. Nothing reaches a client without your say.

  • 2 months free, no credit card
  • Clients and reviewers are free
  • 3,000 Claude credits a person each month