Construir e publicarClaude Code and other supported coding agents

Jesse Vincent (obra) / using-git-worktrees

Seu agente de código deveria trabalhar num git worktree separado?

Para trabalho de funcionalidade, quase sempre. E quase toda esta skill trata de não criar um que você já tem.

O que vale lembrar

  1. Ela carrega no começo de um trabalho de funcionalidade que precisa de isolamento, ou antes de um plano ser executado, e avisa quando isso acontece.
  2. Detectar vem antes de criar. Ela compara git-dir com git-common-dir, se protege de submódulos e nunca cria um segundo worktree dentro daquele em que já está.
  3. Uma ferramenta nativa, que a skill descreve com nomes como EnterWorktree ou uma opção --worktree, tem prioridade sobre git worktree add, que deixaria um estado que o ambiente não enxerga.
  4. Uma base de testes falhando é relatada em vez de ignorada, para que falhas posteriores não se confundam com as que já existiam.

01O que muda na prática

Um agente que edita sua cópia principal deixa duas saídas ruins quando algo dá errado: separar as mudanças dele das suas ou jogar tudo fora. Um worktree dá ao agente diretório e branch próprios sobre o mesmo repositório, e uma tentativa fracassada passa a custar apagar uma pasta.

Quase toda a skill existe para evitar isolamento duplicado. Alguns ambientes já rodam cada agente num worktree que eles mesmos gerenciam, e um agente que roda git worktree add por cima disso produz o que a skill chama de estado fantasma, um espaço de trabalho que o ambiente não vê nem consegue limpar. O passo 0 verifica primeiro, o passo 1 prefere a ferramenta nativa e o git fica por último.

  • Diretório: a preferência que você declarou, depois uma pasta .worktrees ou worktrees já existente e, por fim, uma .worktrees nova na raiz do projeto.
  • Preparação: npm install, cargo build, pip install, poetry install ou go mod download, conforme os arquivos presentes.
  • Base: o comando de testes do projeto, com as falhas relatadas antes de qualquer trabalho.

02Onde decepciona

A preparação é uma consulta fixa por nome de arquivo. Um pyproject.toml dispara poetry install, o que está errado para projetos geridos com outra ferramenta, e um repositório com vários manifestos na raiz recebe todos os comandos que coincidirem. Em estruturas fora do comum, conte com ter de corrigir.

Num caso ela também mexe no seu repositório por conta própria: se o diretório de worktrees não estiver ignorado, ela o adiciona ao .gitignore e faz commit. É o padrão seguro para o repositório e, mesmo assim, um commit que você não escreveu, então crie a entrada você mesmo se o histórico importa.

Instalação e primeira execução

  1. No Claude Code, instale o superpowers com /plugin install superpowers@claude-plugins-official. A coleção é MIT, e esta skill é um único SKILL.md que precisa do git e das ferramentas do seu próprio projeto.
  2. Se você espera que ela use a alternativa com git, coloque .worktrees/ no .gitignore antes. Senão, a skill adiciona a entrada e faz commit dessa mudança na sua cópia atual.
  3. Leia o relatório da base de testes antes de deixar o trabalho seguir. Se os testes falharem antes de qualquer mudança, a skill para e pergunta, e é aí que você decide.

Perguntas que as pessoas realmente fazem

O que é um git worktree?
Um segundo diretório de trabalho ligado ao mesmo repositório, com a própria branch, para que duas frentes de trabalho não dividam arquivos no disco.
Ela cria um worktree sem perguntar?
Não. Numa cópia normal ela pergunta antes, a menos que suas instruções já declarem uma preferência, e se você recusar ela trabalha ali mesmo.
Quais skills do superpowers dependem dela?
executing-plans e subagent-driven-development chamam essa skill para criar um espaço de trabalho, ou conferir o existente, antes de começar.

Fontes

  1. obra/superpowers no GitHubrepository
  2. obra/superpowers, pasta da skill using-git-worktreesdocumentation
  3. README do obra/superpowers, instalação e fluxo de trabalhodocumentation
  4. Licença do obra/superpowers (MIT)license

Versões legíveis por máquina desta página