Skills
A skill is a job you do the same way every time, written down once. Save the method, and everything that can act on your behalf uses it.
You work out how you want something done — how a lead gets qualified, what your weekly report looks like, the tone of your social posts. That wording is worth more than the one chat it was typed into, and normally it lives nowhere. Next week you retype it, slightly differently, and get a slightly different result.
A skill is that wording under a name.
Open Skills from the left sidebar (/user/ai-skills).
Writing one
Give it a name, a one-line description, and the instructions themselves. Write them as you would explain the job to a new colleague.
Name: Instagram post
Description: Turns a topic into a post in our house style
Instructions:
Write an Instagram post about the topic below.
- Three to four lines, no more
- First line must stop the scroll
- End with a question so people comment
- Five hashtags underneath
- Write in Roman Urdu
The description is not decoration. It is how the assistant decides whether to reach for this skill when you ask for something in passing.
Running one
Four places, one skill:
| Where | How |
|---|---|
| Skills page | The Try it box, while you are still editing the wording |
| Chat | "Run my Instagram post skill — topic: winter sale" |
| Automations | An automation can invoke it on every trigger |
| Workspace | It appears as a node on the canvas |
The instructions live in one place. Improve them once and all four improve.
Input
Whatever you pass in arrives below your instructions, fenced and labelled as data.
That is not a formatting detail. A skill invoked from an automation is carrying whatever a webhook or an email delivered, and text arriving from outside must never be able to rewrite the procedure it was handed to.
Tools
Leaving every tool unticked lets the skill use anything the assistant normally can.
Ticking a few restricts it to those. That sounds like a limitation and is actually the point: fewer available tools means fewer ways to do the job, which is what makes the result the same next week.
A skill that only writes — a post, a description, a summary — needs no tools at all. One that sends an email needs exactly gmail_reply_email and nothing else, so it can never wander off and post to Slack instead.
If a skill needs an app you have not connected, it will say so rather than failing quietly.
What a skill is not
Not a template. The model writes fresh every time, so two runs of the same skill differ a little. If you need identical text every time, you want a saved snippet, not a skill.
No memory. Every run starts from nothing. A skill does not know what it produced last time.
It does not learn. If the output keeps including something you did not ask for, that will not correct itself. Edit the instructions.
Vague in, vague out. "Write a good post" varies wildly. The example above barely varies at all. Specific rules are what buy you consistency.
When a skill is worth it
| Write a skill | Don't bother |
|---|---|
| The job comes up repeatedly | One-off |
| It must come out the same each time | Different every time |
| Colleagues should get the same result | Only you ever do it |
| You want to test the quality | You do not care if it drifts |
If a job only ever runs from one scheduled task, that schedule's own prompt is enough. Skills earn their place when the same method is needed in more than one place.
Testing a skill
Editing a prompt by feel is how a change that fixes one case quietly breaks two others. Evaluations is where you pin down what "working" means before you start changing things.
Open App