CommunityRédaction et éditiongithub.com

gener8v/gener8v.claude-skills.engineering

Place le travail sur la bonne branche avant la première modification. Trouve la branche de base, crée une branche bien nommée à partir de la pointe distante actuelle et configure un espace de travail par agent pour le travail parallèle. À utiliser au début de toute modification d'un fichier suivi, comme 'commencer sur l'issue 42', 'corriger cette faute de frappe', 'configurer les branches pour ces trois tickets', ou avant de lancer des sous-agents qui modifient du code. Pas pour ouvrir ou fusionner une PR (github-pr-merge) ni pour les réécritures d'historique et autres commandes git risquées (git-safety).

Qu'est-ce que gener8v.claude-skills.engineering ?

Cette compétence git garantit que toute modification de code est effectuée sur une branche dédiée, correctement nommée et basée sur la pointe distante actuelle. Elle identifie automatiquement la branche de base en consultant les instructions du dépôt (CLAUDE.md, CONTRIBUTING.md), la branche par défaut distante, ou en demandant à l'utilisateur en cas d'ambiguïté. Les correctifs (hotfix) pour une version publiée partent de la branche par défaut même si une branche d'intégration est la base. La compétence configure ensuite un espace de travail par agent pour permettre le travail parallèle sans conflit. Elle est conçue pour les agents comme Claude Code, Cursor ou Codex, et simplifie le flux de travail git en automatisant la création de branches, la récupération des mises à jour distantes et le nommage des branches selon une convention claire. Elle s'intègre avec engineering:github-pr-merge pour ouvrir une PR et engineering:git-safety pour les opérations risquées.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gener8v/gener8v.claude-skills.engineering/tree/HEAD/skills/git-branching

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Branchement git

Chaque modification va sur sa propre branche. Cela inclut une correction en une ligne et une modification sans ticket. Ne commitez pas sur la branche de base.

1. Trouver la branche de base

Utilisez la première source qui donne une réponse :

  1. Instructions du dépôt. Lisez CLAUDE.md, CONTRIBUTING.md et les documents dans .github/. S'ils nomment une branche de base ou d'intégration, utilisez-la.
  2. Branche par défaut distante.
    git symbolic-ref --short refs/remotes/origin/HEAD   # affiche origin/<nom>
    gh repo view --json defaultBranchRef -q .defaultBranchRef.name
    
  3. Ambiguïté. Si le dépôt distant a aussi develop ou development et qu'aucun document ne précise laquelle est la base, demandez à l'utilisateur. Ne devinez pas.

Lorsqu'une branche d'intégration (par exemple develop) est la base, un correctif (hotfix) pour une version publiée part de la branche par défaut à la place. N'utilisez cela que lorsque l'utilisateur qualifie le travail de correctif.

2. Vérifier où vous êtes

git status --porcelain
git rev-parse --abbrev-ref HEAD
  • Si l'arbre de travail contient des modifications que vous n'avez pas faites, arrêtez-vous. Demandez à l'utilisateur quoi en faire.
  • Si vous êtes déjà sur une branche pour ce même travail, restez dessus.
  • Si vous êtes sur la branche de base avec vos propres modifications non commitées, déplacez-les : git switch -c <nom> les conserve dans l'arbre de travail.

3. Créer la branche à partir de la pointe distante

git fetch origin --prune
git switch -c <nom> origin/<base>
git log -1 --oneline

Partir de origin/<base> garantit qu'une branche de base locale obsolète ne cause aucun problème. N'exécutez pas git pull sur la branche de base pour "rattraper" d'abord. Ce n'est pas nécessaire.

4. Nommer la branche

Utilisez la convention du dépôt si elle existe. Sinon, utilisez <type>/<ref>-<slug> :

PartieValeurs
typefeat, fix, docs, chore, refactor, test, release, hotfix
refNuméro de ticket (42), ticket de pipeline (ticket-007), ou rien
slugDeux à cinq mots en minuscules, reliés par des tirets

Exemples : fix/42-null-session-crash, feat/ticket-007-search-filters, docs/readme-install-steps.

5. Pendant le travail

  • Commitez en petites étapes qui ont chacune leur sens individuellement. Rédigez le sujet à l'impératif, 72 caractères ou moins. Utilisez le corps pour expliquer pourquoi.
  • N'ajoutez pas de ligne Co-Authored-By: Claude à aucun message de commit. C'est une règle de gener8v.
  • Avant le premier push, vous pouvez rebaser sur origin/<base>. Une fois la branche poussée, fusionnez la base dans la branche à la place. Un rebase d'une branche déjà poussée réécrit l'historique, et engineering:git-safety contrôle cela.
  • Poussez avec une chaîne qui s'arrête à la première erreur :
    set -o pipefail
    git fetch origin && <commande de test> 2>&1 | tail -n 40 && git push -u origin HEAD
    
    Sans set -o pipefail, | tail masque le code de sortie de la commande précédente. Ne passez jamais une commande git ou une commande de test dans tail sans cela.

Travail parallèle

Pour deux agents ou plus qui modifient du code en même temps, lisez resources/parallel-work.md avant de démarrer un agent. En résumé : une branche de lot depuis la base, un espace de travail et une branche par agent depuis la branche de lot, et aucun agent sur les mêmes fichiers.

Terminé quand

  • Vous êtes sur une branche avec un nom clair, et elle commence à origin/<base> actuelle.
  • git status n'affiche aucune modification appartenant à quelqu'un d'autre.

Compétences connexes

  • engineering:github-pr-merge : ouvrir la PR lorsque le travail est terminé.
  • engineering:git-safety : règles d'approbation pour les push forcés, la suppression de branches et les commandes similaires.
  • engineering:github-issue-workflow : le cycle de vie complet d'un ticket ou d'un ticket de pipeline. Il appelle cette compétence en premier.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

gener8v/gener8v.claude-skills.engineering

Find and run a project's test, lint, type-check, build and dev-server commands, read the results correctly, and seed a throwaway database when UI work needs realistic data. Never seeds the project's real or default database. Use before 'run the tests', 'lint this', 'does it build', 'start the app so I can see it', 'seed some demo data', and before you claim that a change works. Not for deployment or CI pipeline design; use the project's own deploy tooling for those.

gener8v/gener8v.claude-skills.engineering

Create or top up a project's documentation set: list what exists, let the user choose which document types to add, collect one shared fact sheet from the code, write the documents (in parallel when there are several), then check them against each other and against the code. Use when asked to 'bootstrap the docs', 'start the documentation', 'we have no README or ARCHITECTURE', or 'fill in the missing docs'. Not for the per-commit update of existing documents (documentation-sync), and not for gener8v pipeline documents (gener8v:brownfield and gener8v:planning make those).

gener8v/gener8v.claude-skills.engineering

Before a commit, find every document that describes what the change touched and update it in the same commit, or confirm in one line that no document needs a change. Catches stale text, missing documentation and facts kept in two places. Use before any commit or PR, and when asked 'are the docs up to date', 'update the docs for this change' or 'did I miss a README change'. Not for creating a documentation set or filling large gaps (documentation-bootstrap), and not for gener8v pipeline documents under .gener8v/, which the pipeline skills own.

gener8v/gener8v.claude-skills.engineering

Approval gate for git commands that destroy work or skip checks: force-push, --no-verify, signing bypass, reset --hard, clean -f, discarding uncommitted edits, branch or tag deletion, rewriting pushed commits and push --mirror. Each one needs the user's explicit approval at that moment; an earlier approval never carries over. Also covers a secrets check before a commit and what to do when a secret is already committed. Use before any of these commands, or when asked to 'force push', 'skip the hooks', 'throw away my changes' or 'delete that branch'. Not for normal branching (git-branching) or the PR flow (github-pr-merge).

Skills associés