Questions? hello@viberation.devGet supportBlogDocsChangelog
Get started
Fundamentals

Skills: teaching your tool your way of working

A skill is a folder of instructions your AI tool reads when it is relevant, and ignores when it is not. Not new abilities, which is what an MCP server gives you. New habits. This is the difference, how to install one, and why most people's first skill does nothing.

Ali Rizwan
4 min read2 views0 comments

You have explained the same thing to your AI tool four times this month. How your team writes commit messages. The shape of a component in this codebase. The checklist you go through before a release. A skill is where that explanation lives so you stop typing it.

Not the same thing as an MCP server

This is the distinction worth getting straight, because installing the wrong kind of thing is the usual first mistake. An MCP server gives your tool a new ability. It could not read your database; now it can. A skill gives your tool new instructions. It could always write a commit message; now it writes one the way your team does. If the thing you want is "reach something it cannot reach", you want a server. If it is "do the thing it already does, but properly", you want a skill.

Why your tool ignores it

The first line of a skill is a description of when to use it, and that line is doing almost all the work. Your tool reads the descriptions of every installed skill and picks one when the description matches what you asked for. It does not read the skills themselves until it has picked one. So a skill described as "helps with code" never fires, because nothing is specifically that. A skill described as "use when writing or reviewing a database migration" fires exactly when it should.

Install one

Skills come from GitHub repositories, and one repo often holds several. Here is a well-made set to start from, installed one skill at a time.

Install it in

bash

npx skills add https://github.com/anthropics/skills --skill frontend-design -a claude-code

What you should see

The skill's files written into .claude/skills. Run it with / and the skill's name.

That puts it in .claude/skills for this project, committed if you commit it. Add --global to put it in ~/.claude/skills for every project instead.

Note the two kinds of tab above. Anything that runs in a terminal reads skills from a folder, so the skills CLI can put them there for you. Claude.ai and ChatGPT take a ZIP through their own settings screen instead — no command exists that would change that, and a skill that depends on running scripts may not work in them at all.

Then write your own

Installed skills are the smaller half. The ones worth having are about your project, and nobody else can write those. The test for whether something should be a skill: have you explained it more than twice, and is it only relevant sometimes? Always-relevant things belong in your instructions file, which loads every session. Sometimes-relevant things belong in a skill, which does not.

Paste this into your AI tool

I keep explaining the same things to you in this project. Based on what you can see here and what I have corrected you on, suggest three skills worth writing, and for each one give the description line that decides when it fires.

Open it in your AI tool. Clicking copies the prompt, and ChatGPT and Grok open with it already filled in.

More tools

Code editors on your computer. Open app only works once it is installed, so use Get it first if you do not have it.

Want the full list? Browse all app builders and coding editors (IDEs).

The third prompt is the useful one once you have a few. A skill that never fires is not a skill, it is a file.

Comments

Sign in to join the discussion.

Nothing here yet. If something in this piece worked, or did not, say so.