CommunityEscrita e Ediçãogithub.com

gener8v/gener8v.claude-skills.engineering

Coloca o trabalho no branch correto antes da primeira edição. Encontra o branch base, inicia um branch bem nomeado a partir da ponta remota atual e configura uma worktree por agente para trabalho paralelo. Use no início de qualquer alteração em um arquivo rastreado, como 'iniciar na issue 42', 'corrigir este typo', 'configurar branches para esses três tickets' ou antes de iniciar subagentes que editam código. Não é para abrir ou mesclar um PR (github-pr-merge) ou para reescritas de histórico e outros comandos git arriscados (git-safety).

O que é gener8v.claude-skills.engineering?

Esta skill do Claude automatiza a configuração inicial de branches para desenvolvimento seguindo boas práticas de engenharia de software. Ela garante que cada alteração comece em um branch dedicado, derivado da ponta remota do branch base, evitando commits diretos no branch base. A skill identifica o branch base correto consultando instruções do repositório (CLAUDE.md, CONTRIBUTING.md), o branch padrão remoto ou, em caso de ambiguidade (por exemplo, quando existe um branch `develop`), pergunta ao usuário. Para hotfixes, ela usa o branch padrão mesmo quando o base é um branch de integração. Além disso, suporta trabalho paralelo com múltiplos agentes, criando um branch de lote e worktrees separadas para cada agente, garantindo que não haja conflitos de arquivos. Inclui regras de nomenclatura de branches, commits pequenos e significativos, e push seguro com tratamento de erros. É parte de um conjunto de skills que inclui abertura de PRs (github-pr-merge) e comandos git seguros (git-safety).

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

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Git branching

Cada alteração vai no seu próprio branch. Isso inclui uma correção de uma linha e uma alteração sem issue. Não faça commit no branch base.

1. Encontre o branch base

Use a primeira fonte que der uma resposta:

  1. Instruções do repositório. Leia CLAUDE.md, CONTRIBUTING.md e documentos em .github/. Se eles nomearem um branch base ou de integração, use-o.
  2. Branch padrão remoto.
    git symbolic-ref --short refs/remotes/origin/HEAD   # imprime origin/<nome>
    gh repo view --json defaultBranchRef -q .defaultBranchRef.name
    
  3. Ambiguidade. Se o remoto também tiver develop ou development e nenhum documento disser qual é o base, pergunte ao usuário. Não adivinhe.

Quando um branch de integração (por exemplo develop) é o base, uma hotfix para uma versão lançada começa a partir do branch padrão. Use isso apenas quando o usuário chamar o trabalho de hotfix.

2. Verifique onde você está

git status --porcelain
git rev-parse --abbrev-ref HEAD
  • Se a árvore de trabalho tiver alterações que você não fez, pare. Pergunte ao usuário o que fazer com elas.
  • Se você já estiver em um branch para este mesmo trabalho, permaneça nele.
  • Se você estiver no branch base com suas próprias edições não commitadas, mova-as: git switch -c <nome> as mantém na árvore de trabalho.

3. Inicie o branch a partir da ponta remota

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

Começar de origin/<base> significa que um branch local desatualizado não causa problemas. Não execute git pull no branch base para "atualizar" primeiro. Não é necessário.

4. Nomeie o branch

Use a convenção do repositório se houver. Se não, use <tipo>/<ref>-<slug>:

ParteValores
tipofeat, fix, docs, chore, refactor, test, release, hotfix
refNúmero da issue (42), ticket do pipeline (ticket-007) ou nada
slugDuas a cinco palavras em minúsculo, unidas por hífens

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

5. Enquanto você trabalha

  • Faça commits em passos pequenos que façam sentido isoladamente. Escreva o assunto no imperativo, com 72 caracteres ou menos. Use o corpo para dizer o porquê.
  • Não adicione um trailer Co-Authored-By: Claude a nenhuma mensagem de commit. Esta é uma regra da gener8v.
  • Antes do primeiro push, você pode fazer rebase em origin/<base>. Depois que o branch for enviado, faça merge do base no branch. Um rebase de um branch já enviado reescreve o histórico, e engineering:git-safety controla isso.
  • Faça push com uma cadeia que pare ao primeiro erro:
    set -o pipefail
    git fetch origin && <comando de teste> 2>&1 | tail -n 40 && git push -u origin HEAD
    
    Sem set -o pipefail, | tail esconde o código de saída do comando anterior. Nunca pipe um comando git ou um comando de teste através de tail sem ele.

Trabalho paralelo

Para dois ou mais agentes que editam código ao mesmo tempo, leia resources/parallel-work.md antes de iniciar qualquer agente. Resumindo: um branch de lote a partir do base, uma worktree e um branch por agente a partir do branch de lote, e nenhum dois agentes nos mesmos arquivos.

Pronto quando

  • Você está em um branch com um nome claro, e ele começa no origin/<base> atual.
  • git status não mostra alterações que pertencem a outra pessoa.

Skills relacionadas

  • engineering:github-pr-merge: abra o PR quando o trabalho estiver completo.
  • engineering:git-safety: regras de aprovação para force-push, exclusão de branch e comandos similares.
  • engineering:github-issue-workflow: o ciclo de vida completo de uma issue ou ticket de pipeline. Esta skill é chamada primeiro.

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).

Habilidades Relacionadas