skill-maker · v1 · 2026-06-01 · sha256 696885f2b73db0d2

skill-maker v1A

Immutable. This exact content never changes and is served at /api/v1/blob/696885f2b73db0d2.

---
name: skill-maker
author: vizier
description: Guide for creating effective reusable skills for agents
keywords: [skill, create, template, instruction, workflow, reusable]
activation: contextual
version: 1
---

# Skill-Maker

This skill teaches you how to create effective, reusable skills for yourself and other agents.

## What Makes a Good Skill

A good skill is:

- **Focused** — does one thing well, not everything
- **Actionable** — clear instructions, not vague guidelines
- **Discoverable** — keywords match how tasks are described
- **Reusable** — useful across multiple sessions and contexts

## SKILL.md Structure

Every skill needs a `SKILL.md` file with YAML frontmatter:

```yaml
---
name: my-skill
author: your-name
description: Short description of what this skill does
keywords: [word1, word2, word3]
activation: on_demand
version: 1
---
```

### Frontmatter Fields

| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Slug format (lowercase, hyphens) |
| `author` | Yes | Who created it |
| `description` | Yes | One-line purpose (used in tool descriptions) |
| `keywords` | No | Words that trigger contextual activation |
| `activation` | No | `always`, `on_demand`, or `contextual` (default: `on_demand`) |
| `version` | No | Number for tracking updates |

### Content Structure

After frontmatter, write clear markdown instructions:

1. **Purpose** — what this skill does and when to use it
2. **Capabilities** — what the agent can do with this skill
3. **Guidelines** — step-by-step instructions or rules
4. **Examples** — concrete usage scenarios

## Keyword Selection

Keywords determine when contextual skills activate. Choose wisely:

### Good Keywords
- Task-specific: `deploy`, `review`, `debug`, `test`
- Action verbs: `build`, `format`, `lint`, `migrate`
- Domain terms: `api`, `database`, `docker`, `ci`

### Bad Keywords
- Too common: `the`, `and`, `with`
- Too vague: `help`, `do`, `stuff`
- Too specific: `fix-the-bug-in-login-handler` (won't match anything)

### Guidelines
- Use 3-8 keywords per skill
- Include word variations: `review`, `reviews`, `reviewing`
- Prefer lowercase, singular forms
- Test: would a user naturally say this word when asking for help?

## Activation Mode Guide

Choose based on how often the skill is needed:

| Mode | When to Use | Example |
|------|-------------|---------|
| `always` | Core instructions needed every task | Coding standards, response format |
| `on_demand` | Specialized, agent loads when asked | Calculator, specific tool usage |
| `contextual` | Auto-activates based on task keywords | Code review, deployment, debugging |

### Decision Tree

```
Is this needed for EVERY task?
  → Yes: always
  → No: Will the agent know when to ask for it?
        → Yes: on_demand
        → No: contextual (with good keywords)
```

## Good vs Bad Skills

### Bad: Too Broad
```yaml
name: coding
description: Help with coding
keywords: [code, programming, software]
```
**Problem**: Tries to do everything, useful for nothing specific.

### Good: Focused
```yaml
name: rust-error-handling
description: Patterns for handling errors in Rust code
keywords: [rust, error, result, anyhow, thiserror]
activation: contextual
```
**Why it works**: Clear scope, specific keywords, right activation.

### Bad: Missing Keywords
```yaml
name: api-design
description: Best practices for designing REST APIs
keywords: []
activation: contextual
```
**Problem**: No keywords → never activates contextually.

### Good: Discoverable
```yaml
name: api-design
description: Best practices for designing REST APIs
keywords: [api, rest, endpoint, route, http]
activation: contextual
```
**Why it works**: Keywords match natural task descriptions.

## Common Mistakes

1. **Too broad** — "coding help" is not a skill, it's a system prompt
2. **Too narrow** — "fix button alignment in login page" is a task, not a skill
3. **Wrong activation** — using `always` for rarely-needed skills clutters context
4. **Missing keywords** — contextual skills without keywords never activate
5. **Vague instructions** — "do a good job" is not actionable
6. **No examples** — agents learn better with concrete examples
7. **Duplicate existing** — check if a similar skill already exists before creating