Pitch: Da task ao merge sem trocar de janela. O que aprendi construindo o fluxo em volta do Claude Code
Uso o Claude Code o dia inteiro no trabalho, e o agente nunca foi o que me atrasava. O que me atrasava era o resto. Abrir a task no Jira, copiar a descrição pro terminal, esperar, tentar entender o que o agente mexeu, revisar o diff em outra janela, commitar, abrir a PR no navegador e voltar no Jira pra mover o card e escrever o que foi feito.
Então construí um app pra fazer esse caminho num lugar só. Ele se chama Commitia, roda no Windows e no Linux e usa o Claude Code ou o Codex que você já tem logado, na sua assinatura. Não tem chave de API nem servidor meu no meio.
O fluxo ficou assim:
- A aba Stories mostra o quadro do Jira com as colunas reais do board. Arrastar um card muda o status lá.
- O play numa subtask abre uma conversa já com a tarefa. Se você ligou a automação, a story vai pra Em Progresso.
- Enquanto o agente trabalha, aparece cada comando que ele rodou e cada arquivo que leu ou editou. Se ele precisa de uma decisão, pergunta com opções clicáveis.
- No painel de commit eu vejo o diff por arquivo, peço uma revisão pra IA, gero a mensagem e commito.
- Abro a PR, reviso e faço o merge sem sair do app.
- A subtask recebe no Jira um comentário de entrega no formato que o time definiu e, com a automação ligada, vai pra Concluída.
Três decisões que esse fluxo exigiu, porque devem servir pra quem está ligando agente de código a ferramenta de empresa ou até mesmo para projetos pessoais.
Como o app sabe o que o agente fez
Num terminal, o que o agente faz passa como texto. Pra montar uma linha do tempo com "rodou npm test" e "editando src/auth.ts" e depois cruzar isso com o diff, eu precisava de eventos estruturados.
O Claude Code tem um modo não interativo que emite um JSON por linha, o stream-json. Cada chamada de ferramenta chega com nome e entrada, e o app desenha a linha do tempo a partir disso. O Codex tem algo parecido, o codex exec --json, só que com outro vocabulário. Em vez de manter duas telas, escrevi um tradutor que converte os eventos do Codex pro formato do Claude. Comando vira Bash, alteração de arquivo vira edição por arquivo. O resto do app nem sabe qual dos dois está rodando.
Aprendi duas coisas aqui. A linha do tempo mostra a intenção e o diff mostra o que ficou, então a revisão acontece no diff. E nem tudo precisa de IA. Além da revisão por IA, o painel de commit mostra um mapa de risco feito só com código. Ele marca segredo em linha adicionada, arquivo de teste apagado, migração e diff muito grande, e cada marcação diz o motivo. Preferi errar pra menos. Se o mapa acendesse em todo diff, ninguém ia olhar pra ele.
Automação de status que não mexe no card sem você pedir
A primeira versão da automação tentava adivinhar. Procurava uma transição com nome parecido com "Em Progresso" ou "Concluído" e movia o card. No beta isso deu errado rápido. Cards iam pra colunas que ninguém tinha escolhido, porque o workflow do time tinha nomes que batiam por acaso.
Hoje o padrão é não mover nada. A automação só age se você escolher a transição, e a escolha é por board, porque dois boards da mesma empresa costumam ter workflows diferentes. O app descobre o board pela chave da issue, já que CO-15 é do board CO. Sem transição escolhida, a issue fica onde está e só recebe o comentário.
Teve um detalhe que parecia bobo. A story fecha quando todas as subtasks estão concluídas, mas muito time aponta "concluir subtask" pra Em Revisão ou Pronto pra QA. No Jira esses status não ficam na categoria Done, então a story nunca fecharia. Por isso uma subtask conta como concluída se estiver na categoria Done ou exatamente no status que você configurou como destino.
Padrão de documentação que chega na IA
Essa era a parte que mais me incomodava. A IA escreve bem, mas cada conversa escreve de um jeito. O PO abre três subtasks e encontra três formatos.
Template no Jira ajuda quem escreve à mão. Agora quem escreve é o agente, então o padrão precisa chegar nele.
O app guarda gabaritos em Markdown por tipo. Story, task, critérios de aceite, entrega, bug, laudo de QA, PR e os tipos que o time criar. Eles ficam no repositório, em .claude/jira-templates/, ou num nível global. O do projeto vence o global, e o global vence o padrão de fábrica. O time pode exportar os presets e importar em outra máquina.
Cada gabarito entra num momento. Quando você pede pro agente criar ou editar uma issue, ele recebe os gabaritos de story, task e critérios. No fim de uma subtask, o comentário de entrega segue o gabarito de Entrega. No QA, o laudo segue o gabarito do time. No rascunho da PR, se o gabarito tiver uma seção de título, ela vira a regra do título.
Algumas regras valem pra todos. O comentário de entrega é lido por PO e QA, então a instrução de escrever sem jargão fica por cima de qualquer gabarito. No laudo de QA o app precisa ler uma linha com o resultado da suíte pra decidir se aprova, e o gabarito muda a forma do laudo sem poder tirar essa linha. E sem gabarito cadastrado tudo funciona como antes, então quem não configura nada não perde nada.
Um detalhe pra quem for mexer com isso. A API do Jira Cloud espera o comentário em ADF, um JSON próprio, e não em Markdown. Então tem um conversor de Markdown pra ADF no meio, com títulos, listas, código e os painéis de aviso que os gabaritos costumam usar.
O que mais tem
Um Workspace com vários agentes, em que um coordenador divide o objetivo em tarefas, cada agente trabalha no seu git worktree e um revisor aprova antes do merge. Revisão de PR com IA que compara o que a PR diz que faz com o que o diff faz. A mesma PR aberta pra vários destinos de uma vez. QA com Cypress em etapas, com o laudo indo pro Jira. Assistente por voz, Kanban local e avisos pelo Telegram.
Limites
Roda no Windows e no Linux. Mac ainda não. O instalador não tem assinatura digital, então o Windows mostra o aviso do SmartScreen. E é beta, então tem arestas.
O convite
Estou abrindo um beta fechado e gratuito, com poucas vagas. Quero conversar com cada pessoa e ver o app no fluxo real dela, principalmente em time que usa Jira e GitHub. Serve pra quem já usa o Claude Code, no Claude Pro ou Max, ou o Codex, no ChatGPT.
A lista de espera está em https://commitia.ai
Fica uma pergunta pra quem já usa agente de código no trabalho. O que a IA escreve no Jira do seu time segue algum padrão, ou cada um cola o que saiu?