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
In this repository37 other files it gives its agents.
- AGENTS.mdAGENTS.md
- asset-pipelineSkill
- build-imagesSkill
- build-initrdSkill
- citadelSkill
- dev-benchmarkSkill
- dev-bug-reviewSkill
- dev-cacheSkill
- dev-capsem-doctorSkill
- dev-capsemSkill
- dev-ciSkill
- dev-debuggingSkill
- dev-gateSkill
- dev-installationSkill
- dev-justSkill
- dev-mcpSkill
- dev-mitm-proxySkill
- dev-rust-patternsSkill
- dev-session-debugSkill
- dev-setupSkill
- dev-skillsSkill
- dev-sprintSkill
- dev-startSkill
- dev-testing-frontendSkill
- dev-testing-hypervisorSkill
- dev-testing-pythonSkill
- dev-testingSkill
- dev-testing-vmSkill
- frontend-designSkill
- ironbankSkill
- meta-find-skillsSkill
- meta-skill-creationSkill
- release-processSkill
- site-architectureSkill
- site-infraSkill
- site-marketingSkill
- use-capsemSkill
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
- Very specific: line 26
Every skill directory must contain a SKILL.md file.
- Very specific: line 27
Never put files directly in .claude/skills/ or .agents/skills/ -- those are symlinks to skills/.
- Very specific: line 60
Keep SKILL.md lean. If approaching 500 lines, split detail into references/ files and add clear pointers naming each one, for example: Read …
- Very specific: line 66
Write skills/<name>/SKILL.md with frontmatter + instructions
- Very specific: line 107
Avoid generic names like utils or helpers
≈ “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
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 symlinkRules:
- One skill per directory. The directory name is the skill identifier.
- Every skill directory must contain a
SKILL.mdfile. No other naming is discovered. - Never put files directly in
.claude/skills/or.agents/skills/-- those are symlinks toskills/. - 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-nameallowed-tools: Read, Grep, Bash-- restrict which tools the skill can usecontext: fork-- run in a subagent instead of main context
Progressive disclosure
Skills load in three tiers:
- Metadata (name + description) -- always in context (~100 words)
- SKILL.md body -- loaded when skill triggers (<500 lines ideal)
- 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
mkdir skills/<name>- Write
skills/<name>/SKILL.mdwith frontmatter + instructions - 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.mdRemoving 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 metaRules:
- 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
utilsorhelpers
Current categories:
meta-*-- skills about skills (find, create, organize)dev-*-- daily development (toolchain, testing, debugging, diagnostics)build-*-- building VM images and guest binariesrelease-*-- release process, CI, documentation sitefrontend-*-- frontend development (reserved)
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.

