← ClaudeAtlas

sync-from-githublisted

Sync one vault (or the whole fleet) straight from the GitHub skeleton — plugins, themes, snippets, root docs — with the exact same guards as `--sync-plugins` (credential-leak refusal, BRAT anti-downgrade, per-theme clones) plus hardened archive extraction (path-traversal abort, links never materialized, size/entry caps). For machines that have neither the dev repo nor a local `.template`. Lot 3 of the template-distribution roadmap. EN triggers: "sync my vault from GitHub", "update the vault template from GitHub", "pull the latest skeleton", "sync the fleet from the repo". FR triggers : "synchronise depuis GitHub", "mets à jour le template depuis GitHub", "récupère le dernier skeleton", "synchronise la flotte depuis le repo". Example / Exemple: EN: "sync all my vaults from the GitHub template" FR: "synchronise tous mes vaults depuis GitHub"
tboome33/obsidian-mcp-router · ★ 1 · AI & Automation · score 74
Install: claude install-skill tboome33/obsidian-mcp-router
# sync-from-github Le troisième canal du tableau de distribution : une machine qui a le router (et donc ses scripts) mais **ni le repo de dev, ni de `.template` local** peut obtenir et maintenir la config de vault idéale en tirant l'archive GitHub. Rien ne se pousse d'une machine à l'autre — chaque machine **tire**. ## Argument parsing from $ARGUMENTS - un ou plusieurs chemins de vault → cibles explicites - `--all` / « tous les vaults » → toute la flotte du `portRegistry` - `--ref <branche|tag>` → version précise du template (défaut : `main`) - `--force` → re-clone les plugins en préservant chaque `data.json` local - vide → **picker** : lister les vaults configurés (`list_vaults` si le router est joignable, sinon le `portRegistry` du config.json) et demander « tous, ou lesquels ? » ## Procédure 1. **Cibles.** Sans cible explicite, présenter la liste des vaults configurés et faire choisir (tous / sous-ensemble). Ne jamais choisir à la place de l'utilisateur. 2. **Lancer le CLI** depuis le repo du router : `node scripts/setup-vault.mjs --sync-from-github <vault…>|--all [--ref <ref>] [--force]` 3. **Lire la sortie par vault** et restituer fidèlement les 4 catégories : - `Synced` — plugins nouvellement installés (ajoutés à `community-plugins.json`) - `Refreshed` — re-clonés sous `--force` (data.json locaux préservés) - `Kept … NEWER` — la garde anti-downgrade a protégé une version BRAT plus récente côté vault : **normal, ne pas « corriger »** - `Refused first-