agentleFS
GoogleKnown publishergoogle/capsem/skills/meta-organize-skills/SKILL.md

meta-organize-skills

Skill179 starsChanged 14 days agoApache-2.0View on GitHub

Conventions for the skills/ directory. Use when creating, reorganizing, or maintaining skill layout, symlinks, and discovery across agents.

  • Deletes or force-pushes

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    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. Very specific:

    Every skill directory must contain a SKILL.md file.

    line 26
  2. Very specific:

    Never put files directly in .claude/skills/ or .agents/skills/ -- those are symlinks to skills/.

    line 27
  3. Very specific:

    Keep SKILL.md lean. If approaching 500 lines, split detail into references/ files and add clear pointers naming each one, for example: Read …

    line 60
  4. Very specific:

    Write skills/<name>/SKILL.md with frontmatter + instructions

    line 66
  5. Very specific:

    Avoid generic names like utils or helpers

    line 107

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

Organize Skills

This project uses a shared skills/ directory at the repo root. Both Claude Code and Gemini CLI discover skills from it via symlinks -- one set of files, two consumers.

Directory structure

skills/                          Canonical location (checked into git)
  <skill-name>/
    SKILL.md                     Required -- the skill itself
    references/                  Optional -- large docs loaded on demand
    <skill-name>/scripts/        Optional -- executable helpers
    assets/                      Optional -- templates, icons, etc.

.claude/skills -> ../skills      Claude Code symlink
.agents/skills -> ../skills      Gemini CLI symlink

Rules:

  • One skill per directory. The directory name is the skill identifier.
  • Every skill directory must contain a SKILL.md file. No other naming is discovered.
  • Never put files directly in .claude/skills/ or .agents/skills/ -- those are symlinks to skills/.
  • Bundled resources (references, scripts, assets) go in subdirectories of the skill directory.

SKILL.md format

---
name: skill-name
description: When to trigger and what it does. Be specific and slightly pushy -- Claude undertriggers skills, so include concrete contexts. All "when to use" info goes in the description, not the body.
---

# Skill Title

Body: instructions the agent follows when the skill triggers.
Keep under 500 lines. For larger skills, use references/ for overflow.

Required frontmatter fields:

  • name -- skill identifier (matches directory name)
  • description -- triggering text. This is what Claude sees in its skill list to decide whether to load the skill. Include both what the skill does AND specific phrases/contexts that should trigger it.

Optional frontmatter:

  • user-invocable: true -- lets users invoke with /skill-name
  • allowed-tools: Read, Grep, Bash -- restrict which tools the skill can use
  • context: fork -- run in a subagent instead of main context

Progressive disclosure

Skills load in three tiers:

  1. Metadata (name + description) -- always in context (~100 words)
  2. SKILL.md body -- loaded when skill triggers (<500 lines ideal)
  3. Bundled resources -- loaded on demand from references/ (unlimited size)

Keep SKILL.md lean. If approaching 500 lines, split detail into references/ files and add clear pointers naming each one, for example: Read references/<topic>.md for the full configuration reference.

Adding a skill

  1. mkdir skills/<name>
  2. Write skills/<name>/SKILL.md with frontmatter + instructions
  3. It's immediately available to both CLIs (live reload, no restart)

For community skills from npx skills find or skills.sh:

curl -sL https://raw.githubusercontent.com/<owner>/<repo>/main/skills/<name>/SKILL.md \
  -o skills/<name>/SKILL.md

Removing a skill

rm -rf skills/<name> -- both CLIs stop seeing it immediately.

When to split vs. bundle

  • Split into separate skill directories when the skills have different trigger conditions. A debugging skill and a release skill should be separate -- they trigger on different user intents.
  • Bundle into one skill with references/ when the content is one domain with multiple sub-topics. A frontend skill that covers Svelte patterns, chart library, and CSS conventions is one skill with optional reference files.

Naming conventions

Skills are flat (one level under skills/). Nested subdirectories are NOT discovered by Claude Code or Gemini CLI. Use prefix-based grouping to organize related skills into logical categories:

skills/
  dev-testing/SKILL.md          dev category -- testing
  dev-debugging/SKILL.md        dev category -- debugging
  dev-diagnostics/SKILL.md      dev category -- in-VM diagnostics
  build-images/SKILL.md         build category -- capsem-builder
  build-initrd/SKILL.md         build category -- initrd repack
  release-process/SKILL.md      release category
  release-docs/SKILL.md         release category -- site docs
  find-skills/SKILL.md          meta (no prefix needed)
  skill-creation/SKILL.md       meta
  organize-skills/SKILL.md      meta

Rules:

  • Lowercase kebab-case: dev-testing, build-images
  • Prefix is the category, suffix is the topic: <category>-<topic>
  • Meta/standalone skills that don't belong to a category skip the prefix
  • Name after the action or domain: what the skill helps you do
  • Avoid generic names like utils or helpers

Current categories:

  • meta-* -- skills about skills (find, create, organize)
  • dev-* -- daily development (toolchain, testing, debugging, diagnostics)
  • build-* -- building VM images and guest binaries
  • release-* -- release process, CI, documentation site
  • frontend-* -- frontend development (reserved)

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.