All-my-ai-needs skill-promotion-and-dedup
Promote imported skills into first-class categories while preventing duplicate-name discovery conflicts. Includes backup, verification, and rollback.
install
source · Clone the upstream repo
git clone https://github.com/codingSamss/all-my-ai-needs
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/codingSamss/all-my-ai-needs "$T" && mkdir -p ~/.claude/skills && cp -r "$T/platforms/hermes/skills/autonomous-ai-agents/skill-promotion-and-dedup" ~/.claude/skills/codingsamss-all-my-ai-needs-skill-promotion-and-dedup && rm -rf "$T"
manifest:
platforms/hermes/skills/autonomous-ai-agents/skill-promotion-and-dedup/SKILL.mdsource content
Skill Promotion and Dedup (Hermes)
Use this when users import many custom skills (e.g. under
~/.hermes/skills/imported-codex) and want better discoverability/reliability.
When to use
- User says imported skills are hard to trigger/find.
- Same skill names exist in multiple categories (imported + official), causing inconsistent selection.
- User wants to keep imported originals, but use promoted copies as active skills.
Core idea
- Promote imported skills to first-class categories (social-media, research, media, etc.).
- Keep imported originals as archive.
- Disable duplicate active entries in archive (avoid two
files with sameSKILL.md
).name:
Procedure
- Inventory and mapping
- Enumerate source skills under
.~/.hermes/skills/imported-codex/*/SKILL.md - Create an explicit mapping:
.skill_name -> target_category - Do not proceed with unmapped skills.
- Backup and promote
- Create backup root:
.~/.hermes/skill-promotions/<timestamp>/ - For each skill:
- If target exists, backup existing target first.
- Copy imported skill folder to target category path.
- Save a manifest:
with source/target/backups.promotion-manifest.json
- Configure defaults where needed
- If there are competing skills for same domain, clarify routing in descriptions.
- Example used successfully:
: default for read-only Twitter via browser login.bird-twitter
: official API / write actions.xitter
- Deduplicate active discovery
- In archive category (
), renameimported-codex
->SKILL.md
.SKILL.imported.md - Keep scripts/assets/references intact.
- Optionally add
stating this is archive-only.imported-codex/DESCRIPTION.md - Important: if duplicate active definitions remain,
may surface unstable/partial results (some promoted skills appear missing by category). Disable archiveskills_list
first, then re-check.SKILL.md
4b) Optional deletion mode (when user wants no archive)
- Create a one-file archive first (safety):
tar -czf ~/.hermes/skill-promotions/archive-before-delete/imported-codex-<ts>.tgz -C ~/.hermes/skills imported-codex
- Delete archive directory:
rm -rf ~/.hermes/skills/imported-codex
- Verify:
returns emptyskills_list(category='imported-codex')
- If user asks for zero backup retention, delete the tarball too.
- Verify
for all target categories.skills_list(category=...)
should be empty or non-active.skills_list(category='imported-codex')
resolves to promoted category path.skill_view(<key_skill>)- Smoke-check critical runtime tools (e.g.
).bird check --plain
- Rollback support
- Generate rollback script from manifest:
- Restore archive
fromSKILL.md
.SKILL.imported.md - Remove promoted target copies.
- Restore archive
- Store script under
.~/.hermes/skill-promotions/rollback-*.sh
Pitfalls
- Duplicate skill names across categories cause non-deterministic discoverability.
- Moving without backups risks losing custom local edits in existing targets.
- Forgetting to disable archive copies keeps the conflict alive.
Success criteria
- User’s common skills appear in expected first-class categories.
- Archive remains preserved and recoverable.
- No duplicate active definitions for same skill name.
- A documented rollback path exists.