agentleFS
kibotukibotu/agent-skill-creation/.agents/skills/skill-creation/SKILL.md

skill-creation

Skill0 starsChanged 3 months agoMITView on GitHub

Writes, reviews and installs Agent Skills — the portable SKILL.md format that Claude Code, Codex, Cursor, OpenCode and other agents read. Use this skill when the user asks to create a skill, to write a SKILL.md, to fix a skill that does not trigger, to turn a repeated prompt or a CLAUDE.md section into a skill, or to install a skill for a given agent.

14 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 3 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    1 — Find the gap: Do the task once with no skill.

    line 39
  2. Very specific:

    2 — Name it: Use lowercase letters, digits and single hyphens.

    line 43
  3. Very specific:

    Prefer a gerund (processing-pdfs) or a noun phrase (pdf-processing).

    line 44
  4. Distinctive:

    4 — Draft the body: Write only what the agent does not already know.

    line 62
  5. Very specific:

    5 — Split, if the body is long: Keep SKILL.md under 500 lines.

    line 76
  6. Very specific:

    Start with SKILL.md alone.

    line 116
  7. Very specific:

    Put the folder in .agents/skills/<name>/.

    line 121
  8. Distinctive:

    Commit project skills. The agent then gets the same procedure as the team.

    line 136

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “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 creation

A skill is a folder that holds a SKILL.md file. The agent loads the name and the description of every skill at startup. It loads the body only when a task matches the description. Write for that order: the description wins the trigger, and the body does the work.

Write a skill only when it pays

SignalWrite a skill
You paste the same procedure again and againyes
The task has steps, an order, and a way to failyes
A tool needs house rules that its --help does not giveyes
It is one fact, or one settingno — put it in AGENTS.md or CLAUDE.md
It applies to one task, onceno — say it in the prompt

A skill costs context only when it triggers. A rule in AGENTS.md costs context in every session.

Workflow

Copy this checklist, and mark each step:

- [ ] 1 Find the gap
- [ ] 2 Name it
- [ ] 3 Write the description
- [ ] 4 Draft the body
- [ ] 5 Split, if the body is long
- [ ] 6 Test in a new session
- [ ] 7 Install it

1 — Find the gap. Do the task once with no skill. Write down what you had to supply: the commands, the flags, the order, the traps. That list is the skill. Do not write a skill for a problem you have not hit.

2 — Name it. Use lowercase letters, digits and single hyphens. Match the folder name exactly. Prefer a gerund (processing-pdfs) or a noun phrase (pdf-processing). Reject helper, utils and tools, because they say nothing. The words anthropic and claude are reserved.

3 — Write the description. This one line decides whether the skill ever runs. Give both parts: what the skill does, and when to use it. Write in the third person. Name the words the user will type, and the file types and commands they will touch. Add a negative clause when a neighbouring tool can steal the trigger.

# good
description: Extracts text and tables from PDF files, fills forms, and merges documents. Use when
  the task mentions PDFs, forms, or document extraction.
# poor — no trigger, wrong person
description: I can help you with documents.

Agents under-trigger, so make the description direct.

4 — Draft the body. Write only what the agent does not already know. Cut every sentence that explains a well-known format, library or concept. Keep the house rules, the exact commands, the output shapes, and the failure modes.

Set the freedom to match the risk:

RiskStyleExample
Many valid routesprose steps"Review structure, then check edge cases."
One preferred patterntemplate with parametersa function signature to adapt
One safe routethe exact commandpython scripts/migrate.py --verify --backup

Give one default, and one escape hatch. Do not list five libraries that all work.

5 — Split, if the body is long. Keep SKILL.md under 500 lines. Move detail into references/<topic>.md, and link it from SKILL.md with a relative path. Keep every reference one level deep, because an agent reads a chain of links only in part. Add a contents list to a reference file longer than 100 lines. Put runnable code in scripts/, and templates in assets/. Say which you want: run scripts/check.py, or read references/api.md.

6 — Test in a new session. The description is a hypothesis. Test it:

  • three real requests that must trigger the skill, in the words a user would use;
  • one nearby request that must not trigger it;
  • the whole procedure, done by an agent that has only the skill.

Watch where the agent stops, guesses, or reads the wrong file. Fix the skill, not the prompt.

7 — Install it. See the table below.

Frontmatter

---
name: my-skill              # required, matches the folder, max 64 characters
description: What it does, and when to use it.   # required, max 1024 characters
license: MIT                # optional
---

These six fields travel everywhere: name, description, license, compatibility, metadata, allowed-tools. Every other field is host-specific, and it can make packaging or upload fail. Use references/frontmatter.md for the full table and the host-specific fields.

Layout

my-skill/
├── SKILL.md            # required: the trigger and the procedure
├── references/         # optional: detail, read on demand
├── scripts/            # optional: code, run and not read
└── assets/             # optional: templates and data

Start with SKILL.md alone. Add a folder when the body gets too long, and not before. assets/SKILL.template.md in this skill holds a skeleton to copy.

Install

Put the folder in .agents/skills/<name>/. Codex, Cursor and OpenCode read that path. Claude Code reads .claude/skills/, so link it:

mkdir -p .claude/skills
ln -s ../../.agents/skills/my-skill .claude/skills/my-skill
AgentProject pathPersonal path
Codex.agents/skills/~/.agents/skills/
Cursor.agents/skills/, .cursor/skills/~/.agents/skills/, ~/.cursor/skills/
OpenCode.opencode/skills/, .agents/skills/, .claude/skills/~/.config/opencode/skills/, ~/.agents/skills/
Claude Code.claude/skills/~/.claude/skills/

Commit project skills. The agent then gets the same procedure as the team.

Review before you share

  • The description gives what and when, in the third person.
  • The name matches the folder, and holds no reserved word.
  • The body is under 500 lines, and every reference is one level deep.
  • Nothing in the body is common knowledge.
  • One term per idea, used the same way throughout.
  • No date-bound advice. Old behaviour goes in an "old patterns" section.
  • All paths use forward slashes.
  • Steps that can fail carry a check, and a way back.
  • Three trigger tests pass, and one near-miss stays quiet.

Common faults

SymptomCauseFix
The skill never triggersthe description names no trigger wordadd the user's words and the file types
The wrong skill triggerstwo descriptions overlapadd a negative clause to both
The agent skips a stepthe step reads as advicegive a command, and a check after it
The agent reads the wrong filethe links are nestedlink every file from SKILL.md
The body is ignoredthe body is long and generalcut what the agent knows already

More

  • references/frontmatter.md — every frontmatter field, and where each one is valid.
  • assets/SKILL.template.md — the skeleton to copy for a new skill.

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.