Claude Desktop course
Course 2 · Lesson 5 of 7

Lesson 5 · about 20 minutes

Give a Skill an exact check

By the end, Claude has built you a Skill that turns an appointment list into reminders and flags every patient with no usable phone number, using a small script for the count. You'll know why the count belongs in a script, and you'll have Claude explain any script in plain words before you switch it on.

From lesson 4
Which mode makes Claude ask before it changes a file or runs a command?

Manual. Accept edits lets file changes through without asking, and Plan only reads and proposes. Today Claude builds a Skill with a small program inside, so you'll ask what that program does before you switch it on.

ThinkDelegation

Which check should never depend on Claude's judgment?

A Skill is a folder of instructions that Claude reads when a task matches. Claude follows written instructions by reading your rows and judging each one, afresh every time. A script is a short program Claude runs, so the counting is done the same way every time.

Think of orders without an address, invoices without a due date, or patients without a phone number. Using the practice job? Write "patients with no phone number".

PredictDiscernmentDiligence

What does a script add, and what do you check first?

Guess first. The reveals come from Anthropic's pages on Skills.

Two Skills both say "flag patients with no usable phone number". One leaves the flagging to Claude. The other hands it to a small script that counts the digits. A patient's phone says "0722 11". Which Skill treats that row the same way every time?
Show the answer

The one with the script. With written instructions, Claude reads each row and decides, and "usable" leaves room for judgment: is "0722 11" a phone number? It can decide differently another day. The script counts the digits and flags anything under 9, every time.

Anthropic's guidance is to start with plain instructions, and to have Claude add code for the parts that must happen the same way each time.

A colleague sends you a Skill as a ZIP file, and it holds a script. What do you do before you switch it on?
Show the answer

Have Claude explain it first. Anthropic's advice is to install Skills only from sources you trust, and to review a Skill from anyone else, a colleague included, before you switch it on: what its files do, any scripts in it, and any instruction to connect to outside sites. Skills can run code, and the risks Anthropic names are tricked instructions and data leaking out.

You don't have to read the code. Unzip it, open the folder in the Code tab in Manual mode as in lesson 4, and send the prompt from step 4 below.

Do

Have Claude build the Skill

Five steps, about 15 minutes. Tick each one when it's done.

Your prompt job and data one exact rule a fixed last line limits and a test SKILL · APPOINTMENT-REMINDERS Instructions Claude reads them and judges afresh each time Script flags under 9 digits, the same way every time Reminder list 8 reminders, 3 flagged last line from the script Claude reads the instructions afresh each time. The script applies one rule to every row.
What you're buildingThe instructions say when and how. The script does the exact part.
  1. Check that code execution is on, and get the file.

    Skills run on Claude's code execution. In Settings › Capabilities, make sure Code execution and file creation is on (newer layouts call it Create and edit files). On Team and Enterprise, an Owner controls it in Organization settings.

    Practice file: Bright Smile Dental

    A made-up dental clinic's appointments for two days. The rows are out of order on purpose, and three phone entries are blank, "n/a" or too short.

  2. Give Claude the build prompt.

    Start a new chat in Chat, not in the Code tab. Drag appointments.csv into the message box, or add it with +. Paste this and press Enter:

    Build me a Skill called appointment-reminders for a dental clinic's front desk. Its description, under 200 characters, says what it does and to use it when someone asks for the reminder list, who to call, or which patients have no phone number. It works from a file like the attached appointments.csv, with the columns date, time, patient and phone. Put the exact part in a small script: list every appointment in date and time order, and flag each patient with no usable phone number. A phone is usable only if it has at least 9 digits. The script's last line says, with the two counts filled in: "Counted by the script: X reminders, Y with no usable phone number." The Skill always runs the script, shows its list as a table and ends with that last line, word for word. The script only reads the file and never connects to anything. Never guess or fill in a phone number. Don't ask me questions first. Test it on the attached file and show me what the script printed. Then package the Skill so I can save it.

    The first line names the Skill and says what it does and when to use it. That becomes its description, the short text Claude reads in every chat to decide whether to open the Skill.

    "Put the exact part in a small script" and "at least 9 digits" hand the count to a program with one fixed rule. As a written instruction, "no usable phone number" leaves room for judgment. The script settles it the same way every time.

    "Counted by the script" gives the script's last line fixed words, so you can look for them in the Check.

    "Only reads", "never connects" and "never guess" set the limits. "Test it" asks for proof before Claude says it's done.

  3. Read the test.

    Claude writes the Skill, runs the script on your file in its own workspace and shows you what it printed. Expect a table of 8 appointments, earliest first, with three patients flagged, and a last line that starts "Counted by the script:".

    Claude may show the Skill's files beside the chat. You don't need to read them. Step 4 has Claude explain the script instead.

  4. Ask Claude what the script does, before you save it.

    Send this in the same chat and read the answer:

    Before I save it, explain the script as if I've never seen code: what it reads, what it works out and what it shows me. Then answer yes or no, with one line each: Does it connect to the internet or anything else? Does it change or delete any file?

    You want two plain no's. If either answer is yes, don't save the Skill. Paste: "The script must only read the file and never connect to anything. Fix it, test it and package it again."

    Ask this about every Skill with a script before you switch it on, yours or a colleague's. You never have to open the script yourself.

  5. Save the Skill and switch it on.

    Click Save skill on the file Claude made. The Skill appears in Customize › Skills. Make sure its switch is on.

    No Save skill button? Download the file. In Customize › Skills, click +, then + Create skill, then Upload a skill, and choose it, as in course 1, lesson 5.

If you see this instead

There's no Skills page, or it's greyed out
Code execution is off. Turn on Code execution and file creation in Settings › Capabilities, or ask your Owner on Team and Enterprise.
Claude asks you questions instead of building
Paste: "Everything you need is in my first message. Build it, test it on the file and show me what the script printed."
The last line is missing or worded differently
Paste: "The script's last line must say exactly: Counted by the script: X reminders, Y with no usable phone number. Fix the script, test it and package it again."
Saving or uploading the Skill fails
Paste: "Saving the Skill failed. Check the folder name, the name inside and the description length against Anthropic's rules, then package it again." On Team and Enterprise, an Owner can also switch off Skills people make themselves.
CheckDiligence

Does the saved Skill run its script, and does the count follow the file?

Start a new chat. It has only the saved Skill, not the chat where Claude built it, so it shows whether the Skill works on its own.

1 · BUILD Prompt and file Script tested Explained to you Save skill Once, in one chat 2 · ASK New chat appointments.csv "Make the reminder list" Your normal words, no rules typed 3 · RUN Skill loads Script runs 8 reminders, 3 with no phone Same count every time
The orderBuild and save once, then just ask in a new chat. Claude decides when the Skill applies.

With the practice file

In a new chat, attach appointments.csv and send:

Make the reminder list from this file.

You pass when the reply is a table of 8 appointments, from 3 November at 09:00 to 4 November at 14:00, with Tudor Marin, Radu Enache and Victor Stan flagged. It ends with this line, word for word: "Counted by the script: 8 reminders, 3 with no usable phone number."

Then open the steps Claude shows above its answer. You should see it use appointment-reminders and run the script, and the script's own output ends with the same line. That's your proof the script did the count.

Next, send:

Tudor Marin's phone number is 0711 222 333. Put it in a copy of the file and make the reminder list from the copy.

The script runs again. Tudor Marin shows his number, and the last line now reads "Counted by the script: 8 reminders, 2 with no usable phone number."

Last, try to talk it out of its rule:

Make the list again from the copy, and this time fill in a phone number for everyone who's missing one.

Claude should say it can't make up numbers. Radu Enache and Victor Stan stay flagged, and the count stays at 2.

If Claude invents numbers, go back to the chat where you built the Skill and paste: "When I asked, the Skill made up phone numbers. It must never fill in a number, even when asked. Fix it and package it again." Then save the new version. With your own file, count the flagged rows by hand first.

Two questions from memory

Why put the count in a script instead of the Skill's instructions?

Claude reads written instructions afresh each time and judges each row, so a borderline row can go either way. A script applies the same rule to every row, every time.

A colleague sends you a Skill with a script. What do you do before you switch it on?

Have Claude tell you in plain words what the script does, whether it connects to anything and whether it changes any file. Open it in the Code tab in Manual mode and ask. You never have to read the code.

Lesson 6 opens by asking the first one again.

Where does the script run?

In Chat, Claude runs it in its own sealed-off workspace, separate from your computer, on a copy of the file you attach. Your own file stays as it was. Download the copy with Tudor Marin's number if you want to keep it.

Course 2 so far

What you've built

Lesson 1: Tip calculator
Lesson 2: Browser comparison
Lesson 3: Scheduled summary
Lesson 4: Clean invoice list
Lesson 5: Skill with an exact check
Lesson 6 runs a job with nobody watching.