Petboost Logo
AI Guides

Build a Skill: Teach It a Job Once, Run It Forever

Claude Code skills turn a job you keep explaining into one file it follows every time. Build a complete, working weekly numbers skill you can copy and paste.

Frazer McLeodFrazer McLeod
27 September 202616 min read
3D clay illustration of a wooden rubber stamp pressing a row of five identical green ticks along a strip, with a blue folder standing behind it and a dog watching from the end of the row

Quick version

Claude Code skills turn a job you keep explaining into one plain text file named SKILL.md, in a folder named after the job. You write it in English, not code: what it needs before it starts, what it does in numbered steps, what it must never do, and how you check it.

The first Monday, you wrote the whole thing out. Where the export lives. Which statuses mean a dog was actually on the table. That a no-show is not revenue, and a completed groom with a blank price is a missing number, not a zero.

You got a decent report. Fair enough.

The second Monday you started typing it again. Same folder, same statuses, same sentence about the blank price. Halfway through you stopped. You were not asking for anything new, just re-explaining a job you explained perfectly well seven days earlier.

The direct answer. Claude Code skills are how you stop doing that. A skill is one plain text file named SKILL.md, in a folder named after the job, inside a folder called .claude/skills. You write it in English, not code: what it needs before it starts, what it does in numbered steps, what it must never do, and how you check it. Then you type /weekly-numbers, or say something that sounds like it, and the job comes back the same shape every time.

Two assumptions. You have Claude Code installed and signed in, and you have written the CLAUDE.md that holds your prices, your policies, and how you talk. That post closed on a promise: a job you ask for more than a fortnight running belongs in a skill of its own. This is that promise kept, with one complete file you can paste.


What a Claude Code skill actually is, in your terms

A skill is a written-down job. Anthropic calls it a self-contained set of instructions, and its advice on when to write one is the test you would reach yourself: write one when you notice you are re-pasting the same instructions into the chat.

It is not code. Nothing to compile, nothing that runs on its own, nothing that can break your computer by existing. It is a text file describing how a job gets done, in the order you would say it to a new starter.

The difference from your CLAUDE.md decides what goes where. CLAUDE.md loads at the start of every session and is always in the room, so it holds what is true all the time. A skill loads only when it is invoked, so an 11-step procedure costs you nothing on the days you do not need it. Long, pedantic instructions are expensive to keep in the room and free to keep in a drawer.


When a job deserves one

Two questions. Have you explained it twice? And would you explain it again next month? If both are yes, write the skill. The bar is low on purpose: writing one costs 20 minutes, and not writing one costs every Monday for the rest of the year.

Three conditions matter more than enthusiasm:

  • The same shape every time. Different numbers, same steps. Your weekly figures qualify. "Have a think about my pricing" does not, because there is no second time to be consistent with.
  • An input you can get hold of. An export you can download, a folder of photos, text you paste in. If the job needs live access to something, you have a wish rather than a skill.
  • An output you can check by hand. If you cannot verify one row with a calculator, do not build it, because you will not be able to tell a good run from a bad one.

Take Steph, a two-groomer salon in Sydney's Inner West. She is a worked example we follow through this series, and her numbers are the sort you would recognise rather than a real client's books. Her list came to four: the weekly figures, the overdue dogs, the no-shows, and the camera roll nobody has sorted. We are building the first one, because one skill you trust beats four you half-wrote.


Where the skill file goes, and which folder to choose

A skill is a folder with a SKILL.md inside it, and the folder is named after the job. Ours lives at .claude/skills/weekly-numbers/SKILL.md. There are two places that folder can sit, and the difference is who gets the skill.

Your home folder, for skills you want on everything you do. ~/.claude/skills/ on a Mac, or C:\Users\<your name>\.claude\skills\ on Windows. Skills here apply across every project on that machine, which is what a salon owner on her own laptop wants.

The folder you work in, for skills a team shares. A .claude/skills folder inside the project folder itself, which is how a team keeps its skills together and passes them around.

Two more folders before you start, because this skill reads and writes real files. Make Salon/exports for the CSV you download and Salon/reports for what it writes, both in your home folder. So ~/Salon/exports on a Mac, C:\Users\<your name>\Salon\exports on Windows.


Writing it, section by section

Five parts: two lines of settings, then four headed sections in plain English.

The two lines at the top

At the top of the file, between two rows of three hyphens, go the name, written the same way as the folder, and the description, in quotes.

---
name: weekly-numbers
description: "Turn an exported appointments CSV into a one page weekly summary for a pet business owner..."
---

Those are the only two you need. The description does far more work than it looks like it does, and it has its own section below.

What you need before you start

What has to be true before step one: the file, the folder it lives in, the date range it must cover, and the columns it needs to contain. Write the Windows path too if a second person might run it. This is the section that makes the skill fail in the first 10 seconds rather than the last, and fail by naming what is missing.

What it does, in numbered steps

Numbered, one instruction each, in the order you would say them to Priya on her first Monday. Not "summarise the week". Instead: list the files, pick this one, print which one you picked, map these five columns, print the mapping.

Three habits separate a skill that works from one that quietly lies to you:

  • Print what you found before acting. Which file, how many rows, which column was read as the price. You cannot check a report whose inputs you never saw.
  • Ask rather than choose. Two columns that could both be the price is a question, not a coin toss.
  • Say what happens to the hole. Every real export has a blank price and a status nobody remembers creating. Decide in writing what becomes of those rows, or something plausible gets invented for them.

What it will never do

This is the section people leave out, and it is the one that makes a skill safe to point at your own business.

A prompt in a chat window produces text you can read and ignore. A skill is an instruction to something with your files open, working in whatever permission mode you happen to be in. The constraints are load-bearing, not decorative.

Three lines belong in nearly every skill you write. It never sends anything, because a draft you have not read is not a message. It never deletes or moves anything, because a copy that fails is an inconvenience and a move that fails is a lost file. It never invents a number, which here means a missing price stays missing and is reported as missing.

Then add the ones specific to the job: no tax treatment, and never a no-show counted as revenue.

Check this before you trust it

Every skill needs a check you can do by hand in under a minute, written into the file so it is still there in six months when you have forgotten how the thing works.

That is not politeness. A number you cannot verify is worse than doing the job by hand, because you will believe it, and it will sound confident while it is wrong. Keep the check small and specific: pick the busiest day, add up that day's completed prices on a calculator, and confirm it matches to the cent.


The whole file, ready to paste

Complete and working. Make a folder called weekly-numbers inside your skills folder, make a file inside it called SKILL.md, and paste this in.

Copy and paste

That is 97 lines, and not one of them is code. Every line is a sentence you could have said out loud, which is exactly why you are qualified to write these.


The description is what decides whether your skill ever runs

This is the part most people get wrong about Claude Code skills, and it is the difference between a skill you use and a file you forget you wrote.

Unless you tell it otherwise, Claude reads the descriptions of the skills you have installed at the start of a session, and picks one when your request matches. At that moment it has not read the rest of your file. The description is the entire basis on which your skill either fires or sits in its folder doing nothing.

So a vague description is a skill that never runs. "Handles weekly reporting" gives it nothing to match against. Write two things instead.

What it does and what it produces, in one sentence.

The words you would actually say. Read the end of the description in the file above: weekly numbers, how did last week go, what did we take last week, run my week, Monday numbers. Those are not keywords for a search engine. They are the ways you would ask for this job at 6:40am on a Monday, written down so the match happens without you having to remember a command.

There is one setting for the opposite case. Putting disable-model-invocation: true at the top stops a skill being chosen automatically, so it runs only when you type /weekly-numbers yourself. Worth having on anything you want to be deliberate about, and unnecessary on one that reads a file and writes a report.


Running it, and checking it before you trust it

Open Claude Code, type /weekly-numbers, and press enter. The folder name and the name line match in this file, so there is only one name to remember.

The first run tells you whether the file is any good. It should name the export it picked and how many rows it has, print the column mapping, and list every status with a count before it adds up a single dollar. If it goes straight to a total, your steps are too loose, and the fix is one more numbered line.

Unless you have moved to a looser setting, it asks before it writes the report. Read where the file is going, then say yes. Nothing here needs anything more relaxed than the setting you started in.

Then do the check. Busiest day, calculator, to the cent. Do that the first three times you run any skill, and after that whenever a number surprises you. When it matches, you have something better than a report: a number you know the provenance of.

One boundary worth naming. A skill reading a CSV on your own computer is a different act from pasting that CSV into a chat window, and the list of what must never go into a chat has not changed.


Write your own, or start from ours

The shape is the same for every job: what you need, what it does, what it will never do, how to check it. Change the numbered steps and you have a different skill. Your no-shows, your receipts, your intake notes.

If you would rather not start from a blank file, 12 of these written out in full come later in this series, and the one you have built is among them. Once a skill exists, the question is whether you should still be the one remembering to run it on a Monday, which is what makes it repeat itself.


What this actually reclaims for you

Say your Monday figures take 40 minutes: half an hour of adding up, and 10 more re-writing the instruction you wrote last week. With the skill it is one command, plus a minute with a calculator on the busiest day. Call it five minutes.

That is 35 minutes back, 48 times in a trading year, so roughly 28 hours. The 28 hours is not the best part. You wrote that job down once, and you are never going to explain it again.

Frazer McLeod

Frazer McLeod

CEO & Co-Founder

Frazer co-founded Hound Health Bondi and built Petboost to solve the problems he experienced running a pet business firsthand.

Ready to try?

See Petboost in action

Join many Australian pet businesses saving 20+ hours every week with intelligent automation.

1800 291 005