When should a Claude Skill use code versus just a SKILL.md?

Here are some thoughts after a week of using Claude Skills.

JasonJ in the SDT Slack says:

I’d tl;dr Claude CLI skills as “low/no/english code MCPs'”. Seems helpful in the way that local utility scripts are today.

That is a good way of putting it.

I haven’t done heavy experimenting, but I think there’s a distinction between:

(1) The Skill has no code, except maybe code fragments.

Most of it is just a SKILL.md file with a spec, almost narrative of what to do.

In this mode, the new thing is being able to mess around on the command line, even execute those code snippets.

(2) The Skill has code

And then you can, of course, put code and executables in your skill and tell it to run it.

With my limited experience, this putting in your coding is needed a lot less than you would think. It’s better to let go of the steering wheel and let Claude “drive.”

When to put code in a Claude Skill

I don’t know how you would test that, but my intuition is that coding is good for a dice roller, like this one that I use.

You get more control and more consistency. Claude might choose how to roll differently each time - though it has been pretty consistent in my experiences it writes a python script each time.

The next step would be to see if providing code in the Skill was faster than letting Claude drive. I would think so since Claude has to write code each time, e.g., for the dice roller. But who knows, maybe the runtimes are different between the two cases (no code in the Skill versus code in the Skill).

That would lead to another principle: if you want to optimize (for speed, resource usage) and/or ensure consistency, you write your own code in a Skill.

An example

For example, while it was easier to not write code for this card drawer and let Claude drive, I bet it would be much faster if I wrote the code to pick a random file (an image of a card) from a directory and show it. Claude does add in some excellent OCR’ing of the card, but you could code/orchestrate that on the CLI too.

More files, but still not code

Of note, you can include whatever other files you want in your Claude Skill, in whatever directory structure you want. So when I say “only SKILL.md,” I mean “and using whatever other files you want to put on there.” I found out that you can only have 200 files in a Skill zip. I haven’t tested this, but I think you can get around that by putting a zip file in the zip file, and telling Claude to unzip that file first thing.

I wish I could code still

Here, there is a ray of light for humans. If I was even a halfway decent programmer (for me, meaning remembering how to program - I used to be great, if I do say so myself :>), I could write that card drawer super fast myself. More importantly, I could make revs of it faster. As it is, with my shitty programming skills, I can not really make small changes to the code any AI generates, so I’m locked into the AIs to do even the smallest changes for me.


I can’t figure out if they’re called “Claude Agent(ic) Skills” or just “Claude Skills.” No matter what, everyone just says the second.

And, what an excellent three way pun “drawer” is for something you use in a creative act that’s a stored up pile of stuff, eh?