Build your own skill

Your skills live in ~/.slo/user_skills/. Each one is a folder with a SKILL.md inside. If it has the same name as a built-in skill, yours replaces it. Otherwise it's added alongside.

The quickest way to make one is to ask Slo.

Ask Slo to write it

Describe what the skill should teach:

"Create a user skill for writing GraphQL resolvers our way: one resolver per file, cursor pagination, errors as union types."

"Make a user skill that adds structured logging to every new service."

"Create a user skill from how the payments service handles retries. Read the code and write down the pattern."

Slo uses its create-user-skill skill to write the file and saves it to ~/.slo/user_skills/<name>/SKILL.md.

What's in a skill

~/.slo/user_skills/
└── graphql-resolvers/
    └── SKILL.md

A SKILL.md starts with a short header, then plain markdown guidance:

---
name: graphql-resolvers
description: How we write GraphQL resolvers. One per file, cursor pagination, union errors.
when_to_use: Use when adding or changing a GraphQL resolver.
group: user
kind: skill
---

# GraphQL resolvers

## Rules
- One resolver per file under `graph/resolvers/`.
...

The description is what Slo reads when deciding whether a skill fits a task, so make it specific. A skill without a description is skipped.

Replacing a built-in skill

Give yours the same name as the built-in:

"Create a user skill called named-arguments-and-type-hints with our stricter rules."

From the next session on, Slo uses yours and logs that it did. Ask "what skills do you have for type hints?" to check.

Changing a skill later

It's a markdown file, so edit it in any editor. Changes apply from the next session. Or ask:

"Update my graphql-resolvers skill to also cover subscriptions."

Want to share skills with your team? Keep them in a repository and point SLO_USER_SKILLS_DIR at your checkout.