skill-authoring-general
Skill9 starsChanged 8 months agoMITView on GitHub
Create well-formatted Agent Skills following the agentskills.io specification. Use when writing, authoring, scaffolding, or reviewing a new skill, SKILL.md file, or skill directory structure.
In this repository3 other files it gives its agents.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Every skill is a directory named after the skill itself:
- Very specific: line 99
Keep SKILL.md under 500 lines (~5000 tokens)
- Distinctive: line 129
When making a change:
- Very specific: line 132
If the skill uses the optional metadata.version field in its SKILL.md frontmatter, ensure that is updated as well to match.
- Distinctive: line 136
Run the reference validator if available:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Authoring
This skill guides creation of valid, well-structured Agent Skills following the agentskills.io specification.
Directory Structure
Every skill is a directory named after the skill itself:
skill-name/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable scripts
├── references/ # Optional: supplementary documentation
└── assets/ # Optional: templates, static resourcesThe directory name must exactly match the name field in SKILL.md.
SKILL.md Format
SKILL.md must begin with YAML frontmatter, followed by Markdown instructions.
Required Fields
| Field | Rules |
name | 1–64 chars. Lowercase a-z, digits, hyphens only. No leading/trailing/consecutive hyphens. Must match directory name. |
description | 1–1024 chars. Describe what it does and when to use it. Include keywords agents use to identify the task. |
Optional Fields
| Field | Notes |
license | License name or path to bundled license file. |
compatibility | 1–500 chars. Only include if the skill has specific environment requirements (tools, network, OS, product). |
metadata | Arbitrary key-value map for extra properties (version, team, links, etc.). |
allowed-tools | Space-delimited pre-approved tools, e.g. Bash(git:*) Read. Experimental. |
Minimal Template
---
name: my-skill
description: Does X and Y. Use when the user asks about Z.
---
# My Skill
Instructions here.Full Template
---
name: my-skill
description: Extracts and transforms X. Use when working with X files or when the user mentions Y or Z.
license: MIT
compatibility: Requires python3 and internet access
metadata:
version: "1.0"
allowed-tools: Bash(python3:*) Read Write
---
# My Skill
Brief overview.
## Steps
1. Step one
2. Step two
## Examples
Input: ...
Output: ...
## Edge Cases
- Handle ...Writing Good Instructions
Body content (after frontmatter) has no format restrictions — write whatever helps agents perform the task.
Recommended sections:
- Step-by-step instructions
- Input/output examples
- Common edge cases and how to handle them
Size guidelines:
- Keep
SKILL.mdunder 500 lines (~5000 tokens) - Move detailed reference material to
references/files - Agents load
references/files on demand — keep them focused and small
Writing a Good description
The description is how agents decide whether to activate a skill. Make it specific:
- State what the skill does (actions, outputs)
- State when to use it (trigger phrases, task types)
- Include domain-specific keywords
Good:
description: 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:
description: Helps with PDFs.Versioning
Skill versions are tracked centrally in the repository's skills.json file. When you modify an existing skill or add a new one, you must update its version information using Semantic Versioning (SemVer):
- Patch (
x.x.Y): Minor fixes, typo corrections, or small clarifications that do not change how the skill is fundamentally used. - Minor (
x.Y.x): Adding new steps, examples, or optional capabilities in a backward-compatible manner. - Major (
Y.x.x): Breaking changes to instructions, changing the allowed tools, or fundamentally altering the skill's purpose.
When making a change:
- Locate the skill's entry in the
skillsarray insideskills.json(or add a new entry for new skills). - Bump the
versionfield according to the SemVer rules above (start at"1.0.0"for new skills). - If the skill uses the optional
metadata.versionfield in itsSKILL.mdfrontmatter, ensure that is updated as well to match.
Validation
Run the reference validator if available:
skills-ref validate ./my-skillCommon validation errors:
namecontains uppercase letters or spaces → use lowercase hyphens onlynamedoesn't match directory name → rename one to match the otherdescriptionis empty or too vague → expand with what/when language- Consecutive hyphens in
name(e.g.my--skill) → not allowed
Checklist Before Publishing
- Directory name matches
namefield exactly nameis lowercase with hyphens, no consecutive hyphensdescriptionexplains both what it does and when to trigger it- Body instructions are clear, actionable, and under 500 lines
- Large reference material is in
references/not inline - Scripts in
scripts/are self-contained with helpful error messages compatibilityfield included only if environment requirements exist- Version in
skills.jsonhas been updated following Semantic Versioning
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

