agentleFS
ucdavisucdavis/ai-skills-registry/.github/skills/skill-authoring-general/SKILL.md

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.

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
  1. Distinctive:

    Every skill is a directory named after the skill itself:

    line 12
  2. Very specific:

    Keep SKILL.md under 500 lines (~5000 tokens)

    line 99
  3. Distinctive:

    When making a change:

    line 129
  4. Very specific:

    If the skill uses the optional metadata.version field in its SKILL.md frontmatter, ensure that is updated as well to match.

    line 132
  5. Distinctive:

    Run the reference validator if available:

    line 136

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 resources

The 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

FieldRules
name1–64 chars. Lowercase a-z, digits, hyphens only. No leading/trailing/consecutive hyphens. Must match directory name.
description1–1024 chars. Describe what it does and when to use it. Include keywords agents use to identify the task.

Optional Fields

FieldNotes
licenseLicense name or path to bundled license file.
compatibility1–500 chars. Only include if the skill has specific environment requirements (tools, network, OS, product).
metadataArbitrary key-value map for extra properties (version, team, links, etc.).
allowed-toolsSpace-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.md under 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:

  1. Locate the skill's entry in the skills array inside skills.json (or add a new entry for new skills).
  2. Bump the version field according to the SemVer rules above (start at "1.0.0" for new skills).
  3. If the skill uses the optional metadata.version field in its SKILL.md frontmatter, ensure that is updated as well to match.

Validation

Run the reference validator if available:

skills-ref validate ./my-skill

Common validation errors:

  • name contains uppercase letters or spaces → use lowercase hyphens only
  • name doesn't match directory name → rename one to match the other
  • description is 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 name field exactly
  • name is lowercase with hyphens, no consecutive hyphens
  • description explains 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
  • compatibility field included only if environment requirements exist
  • Version in skills.json has been updated following Semantic Versioning

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.