Skm organize agent skills
Use when local skills for Codex and Claude Code are scattered across `~/.agents/skills`, `~/.claude/skills`, `~/.codex/skills`, or ad-hoc folders and you want to consolidate them into a single source of truth under `~/.skm` while keeping tool-specific symlink entrypoints.From its SKILL.md
npx -y skills add weiox/skm --skill skm-organize-agent-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Organize Agent Skills
Overview
Keep one source of truth for local skills, and treat every tool-specific skill directory as an entrypoint, not as the place you maintain content.
The target model is:
- Source of truth:
~/.skm Codexentrypoint:~/.agents/skillsClaude Codeentrypoint:~/.claude/skills
When to Use
Use this skill when you notice any of these symptoms:
- the same skill exists in more than one place
Codexcan see a skill butClaude Codecannot, or the reverse- you are migrating to a new machine and want GitHub-backed reuse
- personal skills and third-party skills are mixed together
- you want to reduce manual symlink sprawl or one-off local edits
Do not use this skill for project-specific instructions like repository AGENTS.md or CLAUDE.md.
Target Layout
Keep the repository layout minimal:
~/.skm/
├── personal/
│ └── <skill-name>/
│ └── SKILL.md
└── vendor/
└── <package>/
Apply these rules:
- your own reusable skills go in
~/.skm/personal/ - third-party skill packs go in
~/.skm/vendor/ ~/.agents/skillsand~/.claude/skillsshould contain symlinks only- do not treat
~/.codex/skills/.systemor runtime caches as part of your personal library
Workflow
1. Inventory everything first
Start with the bundled dry-run inventory:
bash ~/.skm/skills/skm-organize-agent-skills/scripts/skm-organize-agent-skills.sh
If you also want to inspect an ad-hoc folder of old skills, add one or more scan roots:
bash ~/.skm/skills/skm-organize-agent-skills/scripts/skm-organize-agent-skills.sh \
--scan-root ~/old-skills \
--scan-root ~/Downloads/skill-backups
The script classifies each discovered item into exactly one bucket:
- personal: you own the content and want to maintain it
- vendor: upstream package you want to track separately
- ignore: runtime files, tool internals, obsolete duplicates
2. Consolidate personal skills
Review the dry-run output first. When the plan looks correct, apply it explicitly:
bash ~/.skm/skills/skm-organize-agent-skills/scripts/skm-organize-agent-skills.sh \
--apply \
--scan-root ~/old-skills
In apply mode, the script:
- moves personal skills into
~/.skm/personal/<skill-name>/ - moves git-backed upstream packs into
~/.skm/vendor/<package>/ - runs
bootstrap.sh --force - runs
check.sh
3. Consolidate vendor skills
For third-party skill packs:
- prefer
git submoduleunder~/.skm/vendor/ - keep the upstream package intact instead of copying individual files by hand
- let
bootstrap.shexpose vendor skills to the agent entrypoints - treat a git-backed external repo as a vendor package, not as a personal skill
Example:
bash ~/.skm/skills/skm-organize-agent-skills/scripts/skm-organize-agent-skills.sh \
--scan-root ~/src/superpowers
4. Verify the entrypoints
After apply mode runs, confirm the generated entrypoints:
bash ~/.skm/scripts/check.sh
Also spot-check the symlinks:
find ~/.agents/skills -maxdepth 2 -type l | sort
find ~/.claude/skills -maxdepth 2 -type l | sort
Quick Decisions
Use this table when classifying a skill:
| Situation | Destination |
|---|---|
| You wrote it and will maintain it | ~/.skm/personal/<skill-name>/ |
| It comes from an upstream package | ~/.skm/vendor/<package>/ |
| It is tool-generated or runtime-only | Do not store in skm |
| It is repo-specific guidance | Keep it in the repo, not here |
Common Mistakes
- Editing
~/.agents/skillsor~/.claude/skillsas if they were source directories - Keeping duplicate copies of the same skill in multiple source locations
- Copying third-party packs manually instead of preserving an upstream boundary
- Treating
~/.codex/skills/.systemor chat history as versioned personal assets - Forgetting to rerun
bootstrap.shandcheck.shafter a reorganization
Completion Checklist
Before calling the reorganization done:
- every maintained skill lives under
~/.skm - personal skills exist only under
~/.skm/personal/ - vendor packs exist only under
~/.skm/vendor/ ~/.agents/skillsand~/.claude/skillsare regenerated symlink entrypointsbash ~/.skm/scripts/check.shpasses
What ships with it: 2 files
10.8 KB alongside SKILL.md, 2 of them executable
scripts/
- skm-organize-agent-skills.shruns6.9 KB
- test-skm-organize-agent-skills.shruns3.9 KB