.cursor/skills/git-commit-pr/SKILL.md
Guide la création de commits bien formatés, push vers origin et création de Pull Requests documentées. Utilise ce skill lorsque l'utilisateur demande de commiter des changements, créer une PR, ou finaliser un travail. Suit les Conventional Commits et génère des descriptions de PR complètes.
npx skillsauth add SomtechSolutionMAxime/somtech-pack git-commit-prInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ce skill guide la création de commits bien formatés, le push vers origin et la création de Pull Requests bien documentées.
Utilisez ce skill lorsque :
Avant de commiter, toujours vérifier :
git status
git diff HEAD
git log --oneline -10
Règle d'or : Préférer ajouter des fichiers spécifiques plutôt que tout ajouter.
# Ajouter des fichiers spécifiques
git add src/components/Button.tsx
git add src/types/user.ts
# Ajouter un répertoire spécifique
git add .cursor/skills/new-skill/
# Ajouter tous les fichiers modifiés (vérifier d'abord avec git status)
git add .
# Peut inclure des fichiers sensibles (.env, credentials, etc.)
git add -A
.env, .env.local (variables d'environnement)credentials.json, secrets.yaml (credentials)*.key, *.pem (clés privées)node_modules/ (dépendances)Action : Si un fichier sensible est staged, le retirer :
git reset HEAD .env
Utiliser le format Conventional Commits :
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
| Type | Description | Exemple |
|------|-------------|---------|
| feat | Nouvelle fonctionnalité | feat(auth): add OAuth2 login |
| fix | Correction de bug | fix(api): handle null response |
| docs | Documentation seule | docs(readme): update installation steps |
| style | Formatage (pas de changement de code) | style(button): fix indentation |
| refactor | Refactoring (ni feat ni fix) | refactor(utils): simplify date parsing |
| perf | Amélioration de performance | perf(db): add index on user_id |
| test | Ajout/modification de tests | test(auth): add login integration tests |
| build | Système de build | build(deps): upgrade to React 19 |
| ci | CI/CD | ci(github): add test workflow |
| chore | Maintenance | chore(deps): update dependencies |
| revert | Revert d'un commit | revert: feat(auth): add OAuth2 |
Le scope précise la partie du code affectée :
(auth) : Authentification(api) : API(ui) : Interface utilisateur(db) : Base de données(skills) : Skills (pour ce repo)(docs) : Documentation✅ Bon :
feat(skills): add git-commit-pr skill
fix(widget): handle empty data array
docs(versioning): add CHANGELOG guidelines
❌ Mauvais :
Added new feature
Fix bug
Updated files
WIP
Le body explique le pourquoi et le contexte.
feat(skills): add git-commit-pr skill
This skill guides users through creating well-formatted commits,
pushing to origin, and creating documented Pull Requests.
It follows Conventional Commits and includes PR templates.
Quand ajouter un body :
Pour références et breaking changes :
feat(api): change user endpoint format
BREAKING CHANGE: User API now returns { data: User } instead of User directly
Refs: #123
Footers communs :
BREAKING CHANGE: — Changement incompatibleFixes #123 — Ferme l'issue #123Refs #123 — Référence l'issue #123Closes #123, #124 — Ferme plusieurs issuesPour les commits créés par Claude Code, toujours ajouter l'URL de session à la fin :
feat(skills): add git-commit-pr skill
Guide la création de commits formatés et PRs documentées.
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
Utiliser un HEREDOC pour les messages multi-lignes :
git commit -m "$(cat <<'EOF'
feat(skills): add git-commit-pr skill
This skill guides users through creating well-formatted commits,
pushing to origin, and creating documented Pull Requests.
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
EOF
)"
git branch --show-current
Première fois (nouvelle branche) :
git push -u origin nom-branche
Fois suivantes :
git push
En cas d'échec réseau, retry jusqu'à 4 fois avec backoff exponentiel :
# Tentative 1
git push -u origin branch-name || sleep 2
# Tentative 2
git push -u origin branch-name || sleep 4
# Tentative 3
git push -u origin branch-name || sleep 8
# Tentative 4 (finale)
git push -u origin branch-name
Avant de créer une PR, vous devez être authentifié avec GitHub.
gh auth status
Sortie attendue si authentifié :
github.com
✓ Logged in to github.com as username (/root/.config/gh/hosts.yml)
✓ Git operations for github.com configured to use https protocol.
✓ Token: *******************
Si non authentifié ou token invalide :
X Failed to log in to github.com
- The token in /root/.config/gh/hosts.yml is invalid.
Si vous n'êtes pas authentifié, lancez :
gh auth login -h github.com --web
Processus d'authentification :
La commande affiche un code à 6 caractères (format : XXXX-XXXX)
! First copy your one-time code: 523C-8D88
Open this URL to continue in your web browser: https://github.com/login/device
Ouvrez : https://github.com/login/device
Entrez le code affiché (ex: 523C-8D88)
Autorisez GitHub CLI dans votre navigateur
Attendez la confirmation dans le terminal :
✓ Authentication complete.
✓ Logged in as username
⏱️ Important : Le code expire après quelques minutes. Si vous tardez :
# Le processus échouera, relancez simplement :
gh auth logout -h github.com # Optionnel : nettoyer
gh auth login -h github.com --web
Problème : "HTTP 401: Bad credentials"
# Solution : Ré-authentifier
gh auth logout -h github.com
gh auth login -h github.com --web
Problème : "none of the git remotes configured"
# Solution : Spécifier le repo explicitement
gh pr create --repo owner/repo --head branch --base main --title "..." --body "..."
Problème : "HTTP 503: Service Unavailable"
# Solution : Attendre quelques secondes et réessayer
sleep 3
gh pr create --repo owner/repo --head branch --base main --title "..." --body "..."
Avant de créer la PR, analyser TOUS les commits depuis le point de divergence :
# Voir tous les commits de la branche
git log main..HEAD --oneline
# Voir tous les diffs depuis main
git diff main...HEAD
⚠️ Important : Ne pas se baser uniquement sur le dernier commit, mais sur TOUS les commits de la branche.
Utiliser le template suivant :
## Summary
[1-3 bullet points résumant les changements principaux]
## Changes
### Added
- [Liste des nouvelles fonctionnalités]
### Changed
- [Liste des modifications]
### Fixed
- [Liste des corrections]
### Removed (si applicable)
- [Liste des suppressions]
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (no functional changes)
## Testing
- [ ] [Test effectué 1]
- [ ] [Test effectué 2]
- [ ] All tests pass
- [ ] No console errors
## Screenshots (si applicable)
[Ajouter des screenshots pour les changements UI]
## Additional Notes
[Contexte supplémentaire, décisions architecturales, etc.]
[URL de session Claude]
gh pr create --title "feat(scope): description courte" --body "$(cat <<'EOF'
## Summary
- Ajout du skill git-commit-pr
- Templates pour PRs et commits
- Documentation complète du workflow
## Changes
### Added
- SKILL.md avec workflow complet Git
- Templates de PR dans references/
- Exemples de commits conventionnels
- Guide de retry sur échec réseau
## Type of Change
- [x] New feature (non-breaking change which adds functionality)
- [x] Documentation update
## Testing
- [x] Skill validé manuellement
- [x] Templates testés
- [x] Documentation revue
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
EOF
)"
# Spécifier le repo explicitement (recommandé si remote non reconnu)
gh pr create --repo owner/repo --head branch-name --base main --title "..." --body "..."
# Créer PR en draft
gh pr create --draft --title "..." --body "..."
# Spécifier la branche de base
gh pr create --base develop --title "..." --body "..."
# Assigner des reviewers
gh pr create --reviewer user1,user2 --title "..." --body "..."
# Ajouter des labels
gh pr create --label bug,urgent --title "..." --body "..."
⚠️ Important : Si vous utilisez un proxy Git local ou si gh ne reconnaît pas votre remote, utilisez toujours l'option --repo owner/repo --head branch-name --base main pour spécifier explicitement le repository.
Voici un workflow complet de bout en bout :
# 1. Vérifier l'état
git status
git diff HEAD
git log --oneline -10
# 2. Ajouter les fichiers spécifiques
git add .cursor/skills/git-commit-pr/
# 3. Commiter avec message formaté
git commit -m "$(cat <<'EOF'
feat(skills): add git-commit-pr skill
Guide complet pour créer des commits bien formatés,
pousser vers origin et créer des PRs documentées.
Inclut :
- Workflow Git complet
- Templates de PR
- Exemples Conventional Commits
- Gestion des retries réseau
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
EOF
)"
# 4. Pousser vers origin (avec retry si échec)
git push -u origin claude/git-commit-pr-skill || sleep 2 && \
git push -u origin claude/git-commit-pr-skill || sleep 4 && \
git push -u origin claude/git-commit-pr-skill || sleep 8 && \
git push -u origin claude/git-commit-pr-skill
# 5. Analyser les changements pour la PR
git log main..HEAD --oneline
git diff main...HEAD --stat
# 6. Créer la Pull Request
gh pr create --title "feat(skills): add git-commit-pr skill" --body "$(cat <<'EOF'
## Summary
- Nouveau skill pour gérer commits, push et création de PRs
- Suit Conventional Commits et bonnes pratiques Git
- Inclut templates et exemples réutilisables
## Changes
### Added
- SKILL.md avec workflow Git complet
- Templates de PR et exemples de commits
- Documentation retry réseau
- Guide Conventional Commits
## Type of Change
- [x] New feature (non-breaking change which adds functionality)
- [x] Documentation update
## Testing
- [x] Skill testé manuellement
- [x] Templates validés
- [x] Documentation complète
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
EOF
)"
git status, git diffgit add . sans vérificationgit push --force sur branche principale--no-verify sans raisonSi un hook pre-commit échoue :
--amend sauf si demandé)❌ Ne JAMAIS :
git commit --no-verify # Sauf demande explicite
git commit --amend # Après échec de hook (risque de perte)
Si un hook pre-push échoue :
Si la branche a plusieurs commits :
# Analyser TOUS les commits
git log main..HEAD --oneline
# La PR doit résumer TOUS les changements
git diff main...HEAD --stat
git commit -m "$(cat <<'EOF'
feat(api)!: change user endpoint response format
BREAKING CHANGE: The /api/users endpoint now returns
{ data: User[], meta: { total: number } } instead of User[].
Migration guide: Update all API calls to access response.data
https://claude.ai/code/session_01PgdZKtpoXwTQw8WZzWKTU8
EOF
)"
Note : Le ! après le scope indique un breaking change.
git revert <commit-hash>
# Message auto-généré :
# revert: feat(auth): add OAuth2 login
#
# This reverts commit abc123.
Voir les fichiers de référence :
references/PR_TEMPLATE.md — Template complet de PRreferences/COMMIT_EXAMPLES.md — Exemples de commitsreferences/GIT_WORKFLOW.md — Workflow Git détailléNote : Ce skill est générique et applicable à tout projet Git. Adaptez les scopes et conventions selon votre projet.
tools
Documentation de référence SomCraft — DMS Markdown-native avec AI, MCP server, et Studio. À consulter pour toute question sur l'architecture, les APIs, les concepts, ou l'exploitation d'une instance SomCraft. TRIGGERS : somcraft, dms, document management, workspace somcraft, studio somcraft, mcp somcraft, api somcraft
tools
Déployer une instance SomCraft pour un client existant (migrations Supabase + Fly.io + skills). Orchestre 7 phases : pré-flight, plan, migrations, seed, déploiement, smoke tests, installation des skills. TRIGGERS : deploy-somcraft, déployer somcraft, installer somcraft, somcraft client, setup somcraft, upgrade somcraft, status somcraft
tools
Génère l'intégralité de la configuration d'un silo SomTech : docker-compose, services Fly.io, constitutions d'agents, et templates d'environnement. Valide les métadonnées d'application avant génération. À utiliser après validation initiale du client et avant déploiement.
development
Exécute le déploiement complet d'une silo après sa génération : conteneurs Docker, environnement de développement Fly.io, branche Git, et configuration Netlify. Transforme les configs générées en infrastructure active avec URLs stables et builds automatisés.