Creating Agent Skills
Agent Skills are packaged capabilities that give Agents pre-built expertise. This guide walks through how to create a skill — from writing the SKILL.md file to packaging and publishing to the platform.
For the full format specification, see agentskills.io/specification.
Prerequisites
Before you begin, you'll need:
- A running server in Agent Studio
- Familiarity with how Agents use context and tools
- An understanding of how skills work
Skill directory structure
A skill is a directory containing, at minimum, a SKILL.md file:
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable code
├── references/ # Optional: additional documentation
├── assets/ # Optional: templates, schemas, resources
└── ... # Any additional files or directories
The SKILL.md file is the only required file. Everything else is optional.
Writing SKILL.md
The SKILL.md file must contain YAML frontmatter followed by Markdown content. The frontmatter defines metadata, and the Markdown body contains the instructions the Agent follows when the skill is activated.
Frontmatter fields
| Field | Required | Description |
|---|---|---|
name | Yes | Skill identifier. Max 64 chars, lowercase letters, numbers, and hyphens only. Must match the parent directory name. |
description | Yes | Max 1024 chars. Describes what the skill does and when to use it. |
license | No | License name or reference to a bundled license file. |
compatibility | No | Max 500 chars. Environment requirements (intended product, system packages, network access, etc.). |
metadata | No | Arbitrary key-value mapping for additional metadata. |
allowed-tools | No | Space-delimited list of pre-approved tools the skill may use. (Experimental) |
Minimal example
---
name: code-review
description: Reviews code changes for quality, security, and best practices. Use when the user asks for a code review or submits a pull request.
---
# Code Review
You are performing a code review. Follow these steps:
1. Identify the changes in the current branch compared to the base branch
2. Review each changed file for:
- Code quality and readability
- Potential bugs or edge cases
- Security vulnerabilities
- Adherence to project conventions
3. Provide a summary with:
- **Blockers** — Issues that must be fixed before merging
- **Suggestions** — Improvements that would be nice but aren't blocking
- **Highlights** — Things done well worth calling out
Example with optional fields
---
name: pdf-processing
description: Extract PDF text, fill forms, merge files. Use when handling PDFs.
license: Apache-2.0
compatibility: Requires Python 3.14+ and uv
metadata:
author: example-org
version: "1.0"
allowed-tools: Bash(python:*) Read
---
Name field rules
The name field must:
- Be 1–64 characters
- Contain only lowercase alphanumeric characters (
a-z,0-9) and hyphens (-) - Not start or end with a hyphen
- Not contain consecutive hyphens (
--) - Match the parent directory name
Writing effective descriptions
The description field is what Agents use to decide whether to activate the skill. Include specific keywords that help Agents identify relevant tasks.
Good: "Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction."
Poor: "Helps with PDFs."
Body content
The Markdown body after the frontmatter contains the skill's instructions. Write whatever helps Agents perform the task effectively.
Recommended sections:
- Step-by-step instructions
- Examples of inputs and outputs
- Common edge cases
Tips for effective instructions
- Be direct — Write instructions as clear, imperative statements. The Agent will follow them literally.
- Define the output format — If you want structured output (a checklist, a table, specific sections), show the format in the instructions.
- Include guardrails — Tell the Agent what not to do. If the skill should only read files and never modify them, say so explicitly.
- Use headings for structure — The Agent uses heading hierarchy to understand which instructions are primary vs. supplementary.
- Reference supporting files — If your skill includes templates or documentation in subdirectories, reference them by relative path. The Agent can read them at runtime.
- Keep it focused — A skill that tries to do everything will do nothing well. Prefer multiple small, focused skills over one large one.
- Keep it under 500 lines — Move detailed reference material to files in the
references/directory.
Optional directories
scripts/
Contains executable code that Agents can run. Scripts should:
- Be self-contained or clearly document dependencies
- Include helpful error messages
- Handle edge cases gracefully
Supported languages depend on the agent implementation. Common options include Python, Bash, and JavaScript.
references/
Contains additional documentation that Agents can read when needed. Keep individual reference files focused — Agents load these on demand, so smaller files mean less context usage.
Example files:
REFERENCE.md— Detailed technical referenceFORMS.md— Form templates or structured data formats- Domain-specific files (
finance.md,legal.md, etc.)
assets/
Contains static resources:
- Templates (document templates, configuration templates)
- Images (diagrams, examples)
- Data files (lookup tables, schemas)
Progressive disclosure
Skills should be structured for efficient use of context:
- Metadata (~100 tokens) — The
nameanddescriptionfields are loaded at startup for all skills - Instructions (< 5000 tokens recommended) — The full
SKILL.mdbody is loaded when the skill is activated - Resources (as needed) — Files in
scripts/,references/, orassets/are loaded only when required
Testing skills
Before publishing, test your skill locally on a server:
- Review the SKILL.md — Read through the frontmatter and instructions, verifying they are clear and complete
- Validate the structure — Ensure the
namematches the directory name and all referenced files exist - Simulate activation — Provide the skill's instructions to the Agent and verify the output matches your expectations
- Iterate — Refine the instructions based on the Agent's behavior. Common adjustments:
- Adding guardrails when the Agent does something unexpected
- Clarifying ambiguous instructions
- Adding examples for complex output formats
ℹ Tip
Start with a simple SKILL.md and add complexity gradually. It's easier to debug a minimal skill than a complex one.
Packaging and uploading
Once your skill is tested, package and upload it:
# From the parent directory containing your skill
tar -czf my-skill.tar.gz my-skill/
Then upload through the platform:
- Navigate to the Agent Skills page
- Click Add and select the appropriate scope (Organization, User, or Workspace)
- Upload the
.tar.gzor.zipfile - Review the extracted metadata and confirm
The skill is immediately available to attach to servers within its scope.
Versioning and updates
When updating a published skill, use the metadata field to track versions:
metadata:
version: "1.1.0"
Follow semantic versioning:
- Patch (1.0.0 → 1.0.1) — Bug fixes, minor instruction tweaks
- Minor (1.0.0 → 1.1.0) — New capabilities, additional scripts
- Major (1.0.0 → 2.0.0) — Breaking changes to behavior or output format
Upload the new package and servers will pick up the update automatically via the Rendered.ai Extension.
Best practices
- One skill, one job — Each skill should do one thing well. A "code-review" skill and a "deploy" skill are better than an "everything" skill.
- Write clear descriptions — The
descriptionfield is what Agents and users see. Make it specific enough to understand at a glance, and include keywords that help Agents match it to relevant tasks. - Keep instructions under 500 lines — Long instructions dilute the Agent's attention. Move detailed reference material to the
references/directory. - Include examples in assets — Rather than putting long examples directly in the instructions, store them in
assets/and reference them. This keepsSKILL.mdreadable. - Version your skills — Even for internal skills, versioning via
metadatahelps you track changes and coordinate rollouts.
Agent Skills vs. Rules
Agent Skills and Rules both influence Agent behavior, but they serve different purposes:
| Agent Skills | Rules | |
|---|---|---|
| Purpose | Packaged capabilities for specific tasks | Persistent context that shapes behavior |
| Activation | On-demand when the Agent determines the skill is relevant | Always active |
| Scope | Task-specific instructions and optional scripts/resources | Broad guidelines and constraints |
| Portability | Packaged and shareable across Organizations | Defined per Organization/Workspace/User |
| Use when | You want the Agent to perform a repeatable, well-defined task | You want to set ongoing standards, preferences, or project context |
A good rule of thumb: if you find yourself writing the same complex instructions repeatedly, package them as a skill. If you want behavior that should always apply, use a rule.

