Introdução

Olá, pessoal! Sou engenheira de software no Japão e também escrevo livros técnicos. Meu livro mais recente é sobre o Jujutsu, um sistema de controle de versão moderno e compatível com o Git, focado em criar um fluxo de trabalho eficiente ao lado de agentes de IA como Claude Code e Codex CLI.

Pitch: Meu livro sobre Jujutsu (jj) e Agentes de IA foi lançado em português!

Problemas com o Git

O Git não foi projetado para o ritmo dos agentes de IA. Quando os agentes de IA se tornaram parte da minha rotina de desenvolvimento, o ritmo mudou drasticamente. Eles geram, reescrevem e descartam centenas de linhas de código em questão de minutos. Isso levou a três problemas comuns:

  • Perda de trabalho: um git reset --hard executado pelo próprio agente ou um stash esquecido geravam perdas irreversíveis.
  • Histórico poluído: a velocidade dos commits criava um emaranhado difícil de revisar.
  • Medo de quebrar o histórico: comandos complexos do Git frequentemente causavam problemas quando aplicados sobre alterações geradas por IA.

Como o Jujutsu Resolvida esses Problemas

O Jujutsu funciona perfeitamente sobre um repositório Git existente, então a equipe não precisa mudar nada no servidor remoto (como o GitHub). O que muda é o modelo mental local:

  • Snapshot automático (Working-Copy-as-a-Commit): Não existe staging area solta. Qualquer comando jj cria um snapshot automático do seu diretório de trabalho. Nada do que o agente escreve fica de fora do histórico, mesmo que ele não faça um commit explícito.
  • Undo universal: Praticamente todas as operações no repositório (não só commits, mas rebase, abandon, fetch, etc.) ficam registradas no operation log. Um simples jj undo reverte a última ação, e jj op restore restaura o estado para qualquer ponto anterior. Se o agente fizer algo destrutivo, um único comando resolve.
  • Reescrever o histórico é uma operação normal: Editar um Change antigo (jj edit) faz o rebase automático de tudo o que vem depois. Além disso, conflitos não interrompem seu fluxo: eles são armazenados no próprio commit como dados (First-class Conflicts) e você pode resolvê-los quando quiser.
  • Change ID separado do Commit ID: O Commit Hash muda a cada alteração no histórico, mas o Change ID permanece estável. Isso permite dizer ao agente: "trabalhe no Change ID xyz", sem que a referência se perca no meio do caminho.

Como Usar o Jujutsu

Na prática, meu fluxo hoje consiste em deixar o agente trabalhar livremente em um Change e, depois, usar jj split, jj squash e jj absorb para organizar o resultado em commits limpos e revisáveis. Para tarefas paralelas, utilizo a funcionalidade de Workspaces (onde cada sessão do agente roda em um diretório isolado) e integro tudo ao final.

Didática

O livro é estruturado como um diálogo descontraído entre duas engenheiras (uma sênior e uma júnior que faz as perguntas que surgem na nossa cabeça durante a leitura, como: "Se o snapshot é automático, o histórico não vira uma bagunça?").

Configurações para Agentes

Liberamos gratuitamente os arquivos de configuração para ensinar seus agentes a usarem jj em https://juju-chu.com/pt/agent-config.

Conclusão

Este é o meu primeiro livro publicado em português. Se encontrarem alguma expressão que soe estranha ou tiverem qualquer dúvida sobre como o Jujutsu funciona na prática, fiquem à vontade para perguntar.

Referências

  • Site oficial: https://juju-chu.com/pt
  • Leanpub (PDF + EPUB sem DRM e atualizações gratuitas): https://leanpub.com/juju-chu-pt
  • Amazon Kindle e versão impressa: https://www.amazon.com.br/dp/B0HJCYRHWP
  • Configurações gratuitas para Agentes (Claude Code / Codex): https://juju-chu.
AgentesJujutsuLivroPitchSobre