Alpha Version: You are viewing the ALPHA documentation. This is an experimental version and may contain breaking changes.
Skip to main content

Writing Portable Skills

SKILL.md Format​

Each skill lives in its own directory with a SKILL.md file and optional references/ subdirectory:

skills/my-skill/
├── SKILL.md
└── references/
├── topic-a.md
└── topic-b.md

Frontmatter (Required)​

---
name: my-skill-name
description: >-
One to three sentences describing what the skill does and when to use it.
This text is shown in the skills list and determines when the skill activates.
---
  • name: lowercase, hyphens, max 64 characters
  • description: max 1024 characters; used as the activation trigger

Body Structure​

## Purpose
What this skill enables and who it's for.

## When to Use
Decision matrix: when this skill activates vs alternatives.

## Reference Files
Table of references/ files with purpose descriptions.

## Key Rules
Numbered rules the AI must follow when this skill is active.

## Related Skills
Cross-references to complementary skills.

Writing for Portability​

Skills should work across AI assistants. Follow these rules:

  1. No tool-specific names — write "run this command" not "use the Bash tool"
  2. No tool-specific features — keep agents, hooks, and commands in the plugin layer
  3. Generic file operations — write "read this file" not "use the Read tool"
  4. Path references — use relative paths from the project root

Reference Files​

Reference files contain the detailed knowledge loaded when the skill activates:

  • Code templates — complete, compilable examples from the codebase
  • Pattern catalogs — lookup tables mapping concepts to components
  • Decision guides — flowcharts and criteria for architecture choices
  • Pitfall lists — known issues with workarounds

Keep reference files focused — one topic per file. The AI loads them into context, so smaller files mean more relevant context.

Activation Triggers​

The description field determines when the skill activates. Be specific:

# Good — specific triggers
description: >-
ReScript v12 language patterns. Use when writing .res/.resi files,
debugging compiler warnings, or working with sury-ppx serialization.

# Bad — too vague
description: >-
Helps with coding.