Skill : Git Sync - Override roo-extensions
Override projet : Surcharge la skill globale
~/.claude/skills/git-sync/SKILL.md. Template generique :.claude/configs/skills/git-sync/SKILL.md
Synchronisation Git pour roo-extensions avec submodule mcps/internal et merges conservatifs (multi-machines).
Quand utiliser
- En debut de session pour recuperer les changements distants
- Pendant un tour de sync (Phase 2)
- Avant de commencer du travail pour etre a jour
- Apres reception d'un message RooSync signalant des commits
Workflow
Phase 0 : Grounding Sémantique (Bookend Début)
OBLIGATOIRE avant toute synchronisation.
codebase_search(query: "git sync submodule conflict merge resolution", workspace: "d:\\roo-extensions")
But : Identifier les patterns de résolution de conflits, les workflows git existants, et les fichiers de configuration submodule.
Etape 1 : Fetch et analyse
bash1git fetch origin 2git log HEAD..origin/main --oneline
- Compter les commits entrants
- Identifier les auteurs et les fichiers modifies
Etape 2 : Pull conservatif
bash1git pull --no-rebase origin main
TOUJOURS --no-rebase pour preserver l'historique et eviter les conflits en cascade.
Etape 3 : Resolution de conflits (si necessaire)
Si des conflits sont detectes :
- Lister fichiers en conflit (
git status) - Pour chaque fichier :
- Lire avec marqueurs
<<<<<<<,=======,>>>>>>> - Analyser les deux versions
- Resoudre (garder version recente/complete ou combiner)
- Editer pour supprimer les marqueurs
- Lire avec marqueurs
git addfichiers resolusgit commit(message merge)
Apres resolution : pusher immediatement pour debloquer les autres machines.
Etape 4 : Submodule update
bash1git submodule update --init --recursive
Si le submodule est en conflit ou divergent :
- Verifier modifications locales (
cd mcps/internal && git status) - Si modifs importantes :
git stashougit commit -m "wip" - Sinon :
git checkout -- .(abandon) - Retour repertoire principal
Etape 5 : Verification finale
bash1git status --short 2git log --oneline -3 3git submodule status
Rapport
## Git Sync Status
### Remote
- Commits entrants : X
- Auteurs : [liste]
### Merge
- Status : Success | Conflits resolus | Conflits non resolus
- Fichiers modifies : Y
- Conflits resolus : [liste si applicable]
### Submodule mcps/internal
- Commit : [hash]
- Status : Clean | Modified
### Etat actuel
- Branch : main @ [hash]
- Pret pour push : Oui | Non (raison)
Commandes de reference
Status complet
bash1git status --short && git submodule status
Derniers commits
bash1git log --oneline -10
Commits du submodule
bash1cd mcps/internal && git log --oneline -5
Preparation commit (sans commiter)
bash1git diff --stat 2git status
Regles
- TOUJOURS utiliser
--no-rebasepour preserver l'historique - JAMAIS de force push
- JAMAIS de
git checkoutougit pulldans le submodulemcps/internal/sans verification - En cas de conflit, resoudre proprement (ne jamais
git adda l'aveugle) - Les fichiers de config locaux (.claude/local/*) sont ignores par git
- NE PAS commiter sans instruction explicite de l'utilisateur
Phase 6 : Validation Sémantique (Bookend Fin)
OBLIGATOIRE après toute synchronisation réussie.
codebase_search(query: "git status submodule synced merged resolved", workspace: "d:\\roo-extensions")
But : Confirmer que l'état de synchronisation est cohérent avec l'index. Vérifier que les fichiers modifiés pendant le sync sont visibles dans les résultats.