Skill Sync

CLI per elencare, installare, aggiornare e PR-push skill Claude rispetto a un repo GitHub source-of-truth

di jdrhyne · jdrhyne/agent-skills

Promosso ★ 8.0/10

Skill Sync — CLI per elencare, installare, aggiornare e PR-push skill Claude rispetto a un repo GitHub source-of-truth

Cosa fa

Avvolge uno script bash (skill-sync) che tratta un repo GitHub come fonte canonica per le skill degli agenti: clona/pull-cache il repo, elenca le skill disponibili con le loro descrizioni frontmatter, ne installa una o tutte in una directory locale di skill e spinge le modifiche locali delle skill come branch + PR tramite la CLI gh. Si attiva quando si chiede di installare, aggiornare, elencare o spingere skill da/verso il repo condiviso. Nota che la destinazione di installazione predefinita è ~/clawd/skills (layout OpenClaw), non ~/.claude/skills — imposta CLAWD_SKILLS_DIR per puntarlo alla directory delle skill di Claude Code.

Rapporto di test

Clonato il repo in una HOME temporanea e eseguito il binario scripts/skill-sync. `list` ha clonato la cache, ha eseguito un pull ff-only e ha stampato tutte le 18 skill sotto skills/ con descrizioni parsate dal frontmatter di ogni SKILL.md; `install planner` ha copiato skills/planner/ in $CLAWD_SKILLS_DIR (exit 0), e l'installazione di un nome fittizio ha stampato "not found in repository" ed è uscito con 1 come codificato. Per l'OUTPUT ho confrontato l'installazione della skill con una baseline manuale (git clone + cp): il risultante planner/SKILL.md era byte-identico, quindi il vantaggio dell'artefatto è a livello di processo (cache del repo + pull ff-only, chmod +x sugli script, rilevamento update-vs-install, --all con self-skip e un flusso completo branch→PR push) più la tabella `list` parsata dal frontmatter che la baseline non produce. Non è stato possibile esercitare `push` (richiede gh + accesso in scrittura a un repo che non possiedo). Nessun problema di sicurezza; lo script usa solo variabili d'ambiente $HOME, nessun curl|sh o gestione di segreti, e SKILL.md avverte di non commettere segreti. Attrito principale: la destinazione predefinita è ~/clawd/skills, non ~/.claude/skills, quindi un utente di Claude Code deve impostare CLAWD_SKILLS_DIR.

Testato il: 2026-07-31 · Claude Code 2.x (agent harness)

Installazione

git clone --depth 1 https://github.com/jdrhyne/agent-skills.git /tmp/skill-sync-src
mkdir -p ~/.claude/skills
cp -R /tmp/skill-sync-src/clawdbot/skill-sync ~/.claude/skills/skill-sync
# The CLI lives at ~/.claude/skills/skill-sync/scripts/skill-sync (not on PATH by default).
# Run it directly or symlink onto PATH, e.g.:
#   ln -sf ~/.claude/skills/skill-sync/scripts/skill-sync /usr/local/bin/skill-sync
# Requirements: git (always), and the `gh` CLI + repo write access ONLY for `skill-sync push`.
# Default paths (override via env):
#   AGENT_SKILLS_REPO  repo clone cache   (default ~/.agent-skills-repo)
#   CLAWD_SKILLS_DIR   local install dir  (default ~/clawd/skills)  <-- set to ~/.claude/skills for Claude Code
# IMPORTANT: the script only lists/installs skills under the repo's skills/ dir,
# so it will NOT install skills from clawdbot/, codex/, or prompts/.

Comandi e prompt di esempio

  • /skill-syncCLI per elencare, installare, aggiornare e PR-push skill Claude rispetto a un repo GitHub source-of-truth

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Install the latest skills from the source repo
  • Push my local skill changes to GitHub
  • List which skills are out of sync