<!-- https://zerolog.ch/docs/skills · Docs / Chat -->
Reusable instructions

# Skills

Some workflows you end up explaining the same way every time. Write it down once as a skill, switch it on, and it is part of the chat from then on.

## The skill

A skill is a named set of instructions. ZeroLog ships a set of built-in skills, and you can add your own under **Settings, Skills** with a name, a description and the instructions. Your skills are visible to you only; built-in ones are read-only. To change one of yours, add it again under the same name.

## How it reaches the model

A **short skill** is placed in the instructions of every turn. A **long skill** is listed by name and description only, and the model reads the full text when your task touches it. Anonymous chats do not use skills.

## Where it applies

In the app you switch a skill on as a default under Settings, Skills.

### New chats

The skills you switched on are attached to every chat you create afterwards.

### Existing chats

They keep the skills they had when you created them.

## How a skill reaches the model

Mermaid source of the diagram on this page:

```mermaid
%% Skills: from a switch in Settings to the model's instructions. Facts from server/skills.js (skillPlan, SKILL_EINBETTEN_MAX, skill.lesen), server/routes/chats.js (default_skills at chat creation), web/apps/web/components/settings/skills-panel.tsx.
flowchart TB
  set["Settings, Skills:<br/>switch a skill on<br/>or add your own"]
  chat["New chat is created<br/>with these skills attached"]
  turn["Each turn"]
  short["Short skill:<br/>full text goes into<br/>the instructions"]:::hot
  long["Long skill: only name and<br/>description are listed"]
  read["Model reads the full text<br/>when your task needs it"]

  set --> chat --> turn
  turn --> short
  turn --> long --> read

  linkStyle 2 stroke:#8f7ac9
```
