# Tarefas completas com agente (Claude Code)

Curso da DNACX (IA by DNACX). Mini curso de 45 minutos, nível operar, na prateleira "Operação".

- Você sai com: Uma tarefa de vários passos feita por um agente em uma pasta de teste, a lista do que ele mudou, os números conferidos e uma mudança desfeita
- Ferramentas: **Claude Code · plano pago (Pro ou Max)**. Testado no plano Max, versão 2.1.228; a página de ajuda da Anthropic inclui o Claude Code nos planos Pro e Max
- Testado: Testado em 27/10/2026 no Claude Code 2.1.228, plano Max, Windows, modo `claude -p`; documentação oficial lida inteira na mesma data.
- Reconferir até 25/01/2027
- Página: https://dnacx.online/ia/cursos/tarefas-completas-com-agente

## Antes de começar

Este curso parte do Claude Code já instalado e com login. Você precisa dele funcionando (`claude --version` mostra um número) e de uma **pasta de teste** com dois arquivos fictícios: uma planilha `.csv` pequena de vendas e um `notas.txt` com um objetivo e uma pendência.

**Prepare a rede de segurança antes de pedir qualquer coisa.** Dentro da pasta de teste, rode `git init` e faça um commit com os dois arquivos (`git add` com o nome de cada arquivo, depois `git commit -m base`). Sem isso, o git não tem como mostrar o que mudou nem desfazer.

## Aula 1 · Uma tarefa em vários passos (10 min)

Um agente faz mais de um passo por pedido: lê, calcula, escreve arquivos. Numere os passos no pedido e diga **onde** gravar. Os testes usaram o Claude Code em modo não interativo, com o comando `claude -p "<pedido>" --permission-mode acceptEdits` rodado dentro da pasta de teste. A criação dos arquivos e a alteração de `notas.txt` foram testadas nesse modo. A revisão da Aula 3 e o desfazer da Aula 4 foram testados com `--permission-mode default`, e cada passo diz o modo usado. A tela interativa de aprovação não foi testada. Pedido usado:

`Leia vendas_loja_modelo_out2026.csv e notas.txt. Faca em etapas: 1) escreva relatorio.md nesta pasta com 3 achados sobre as vendas e uma tabela de total por canal; 2) crie checklist.md nesta pasta com 4 proximos passos baseados nas notas. Use so os dados dos arquivos.`

**O que aconteceu no teste (27/10/2026, Windows, modo não interativo `claude -p`):**

- Com `--permission-mode default` e um pedido parecido (sem a expressão "nesta pasta"), o agente **não gravou na pasta**. Disse que a permissão de escrita foi negada, guardou os dois arquivos em um diretório de rascunho da própria sessão e avisou. Lição: no modo `default`, em sessão não interativa, a gravação é negada; confira com `ls` onde os arquivos foram parar. A documentação oficial confirma: em `claude -p`, as chamadas que precisam de aprovação são negadas, a menos que exista uma regra de permissão que as libere.
- Com `--permission-mode acceptEdits`, ele criou `relatorio.md` e `checklist.md` na pasta. A documentação oficial descreve o `acceptEdits` assim: ele cria e edita arquivos no diretório de trabalho sem perguntar.
- **O modo, sozinho, muda o resultado.** Num teste separado, com a mesma frase nos dois ("crie saudacao.md nesta pasta"), `default` negou a gravação e `acceptEdits` criou o arquivo.

## Aula 2 · Acompanhe e confira os números (10 min)

Abra o `relatorio.md` e confira contra a planilha. No teste, a planilha tinha 15 registros e o cálculo feito fora da IA (Python) deu R$ 6.791,20 e 36 unidades. O relatório trouxe os mesmos valores, inclusive o total por canal (Site R$ 2.620,70, Instagram R$ 2.399,70, WhatsApp R$ 1.770,80) e o ticket médio (R$ 354,16 no WhatsApp).

Na primeira execução, a resposta falada do agente disse "72,9%" para um valor que o cálculo dá como 72,97%. Diferença pequena, mas é o tipo de coisa que só aparece se você conferir. Faça o mesmo: some uma coluna na própria planilha e compare com o relatório antes de usar.

Leia também o checklist: cada passo deve vir de uma linha do `notas.txt` ou de um número do relatório. Passo sem origem nos arquivos é invenção do agente.

## Aula 3 · Revise o que mudou (10 min)

1. **Faça uma alteração em arquivo que já está no commit.** No teste, com `--permission-mode acceptEdits`, o pedido foi acrescentar a `notas.txt` a linha "Decisao: priorizar calca e jaqueta no WhatsApp em novembro." O `git diff` mostrou uma linha adicionada e nenhuma removida.
2. **Peça a revisão ao próprio agente, sem autorizar edição** (modo `default` no teste):

`Esta pasta e um repositorio git. Rode git status e git diff e me diga em linguagem simples o que mudou desde o ultimo commit. Nao altere nada.`

No teste, o agente rodou `git status` e `git diff` sem pedir permissão. Antes da alteração de `notas.txt`, ele listou corretamente os dois arquivos novos (`relatorio.md`, `checklist.md`). Depois da alteração, num pedido para listar arquivo por arquivo, acertou: `notas.txt` alterado (uma linha a mais, mostrada no diff) e dois arquivos novos. A conferência feita à parte, com `git status --short` e `git diff`, deu o mesmo resultado. Faça essa dupla conferência: o agente resume, o git prova.

Como ler: no `git status`, `M` é arquivo alterado e `??` é arquivo novo que o git ainda não conhece. No `git diff`, linha com `+` foi acrescentada e linha com `-` foi removida. O git pode avisar sobre fim de linha (LF e CRLF) no Windows; é aviso de formato, não mudança de conteúdo.

## Aula 4 · Aprove ou desfaça (10 min)

Antes de rodar o comando abaixo: `git checkout -- arquivo` descarta, sem volta, as alterações ainda não gravadas daquele arquivo. Use só na pasta de teste, com um arquivo fictício que você aceita perder.

Dois casos, com resultados diferentes:

1. **Arquivo que já estava no commit e foi alterado** (`notas.txt`). Peça, no modo `default` (o modo do teste): `Desfaca a alteracao feita em notas.txt, voltando ao ultimo commit (git checkout -- notas.txt). Nao apague nenhum outro arquivo.` No teste o arquivo voltou às duas linhas originais e os dois arquivos novos ficaram intactos. (Neste teste, o modo `default` barrou o primeiro comando, pelo PowerShell, duas vezes, e o agente **repetiu o pedido por outra ferramenta, o Bash, que passou**. Leia o que o agente tentou, e não só o que ele conseguiu. A documentação oficial só garante leituras livres nesse modo.)
2. **Arquivo novo que o git não conhece** (`checklist.md`). No teste, em modo `default`, apagar é definitivo: o agente avisou no teste que, por não estar no git, "não há como recuperá-lo pelo histórico". Se você quer poder desfazer arquivo novo, **faça `git add` e commit antes de seguir**, ou copie para outro lugar. No teste, o `Remove-Item` foi barrado duas vezes e o agente apagou com `rm` pelo Bash.

**Aprovar** é simples: o que você conferiu e quer manter, faça commit (`git add nome-do-arquivo` e `git commit -m "mensagem"`). A partir daí o arquivo tem ponto de retorno.

## Aula 5 · Os limites da pasta (5 min)

Peça ao agente algo fora da pasta de teste. No teste, ele não leu nem gravou:

- Leitura de um arquivo em outra pasta, nos modos `default` e `acceptEdits`: recusou. Disse que o arquivo está fora do diretório de trabalho e que o acesso não foi autorizado. Sugeriu rodar em sessão interativa e aprovar o pedido, adicionar a pasta com `/add-dir`, ou copiar o arquivo para dentro da pasta de trabalho. Não tentou contornar por outro caminho.
- Gravação em outra pasta com `acceptEdits`: bloqueada, nada foi criado.

Isso confere com a documentação oficial: no `acceptEdits`, a aprovação automática vale só para a pasta de trabalho e diretórios adicionais; edição fora ainda pede permissão.

**Liberar uma segunda pasta, testado:** com `--add-dir "C:\caminho\da\outra\pasta"` no comando, o agente leu um arquivo dessa pasta e devolveu o texto exato; sem a opção, o mesmo pedido foi recusado. Numa sessão interativa, o equivalente é o comando `/add-dir`, que a documentação oficial cita. Regra prática: abra o agente na pasta certa e libere outra pasta só se tiver certeza do motivo.

## Prática (junto com as aulas, 10 min no total)

1. Crie a pasta de teste com os dois arquivos e faça o commit `base`.
2. Rode a tarefa de vários passos com `claude -p "<pedido>" --permission-mode acceptEdits` (Aula 1).
3. Confira três números do relatório contra a sua própria soma (Aula 2).
4. Peça uma alteração em `notas.txt` com `--permission-mode acceptEdits` (Aula 3).
5. Peça a lista do que mudou, em modo `default`, e confirme com `git status` e `git diff` (Aula 3).
6. Desfaça com `git checkout -- notas.txt` (isso descarta as alterações do arquivo, então só na pasta de teste), pedindo ao agente em modo `default`, como no teste (Aula 4).
7. Peça uma leitura de arquivo fora da pasta e veja a recusa (Aula 5).
8. Anote: o que o agente fez que você não pediu?

## Checklist

- [ ] Fiz `git init` e um commit antes de pedir a tarefa.
- [ ] Conferi com `ls` onde os arquivos foram parar.
- [ ] Conferi ao menos três números do relatório contra a planilha.
- [ ] Pedi a lista do que mudou e confirmei com `git status` e `git diff`.
- [ ] Desfiz uma alteração e confirmei que o arquivo voltou ao original.
- [ ] Sei que arquivo novo, fora do git, não volta depois de apagado.
- [ ] Testei um pedido fora da pasta e vi a recusa.

## Como testamos

| Passo | Ambiente | Resultado |
| --- | --- | --- |
| Tarefa de vários passos, `default` | Windows, plano Max, `claude -p`, Claude Code 2.1.228 | Não gravou na pasta; guardou em diretório de rascunho da sessão |
| Tarefa de vários passos, `acceptEdits` | mesmo | `relatorio.md` e `checklist.md` criados; números batem com o cálculo em Python |
| Mesma frase, só o modo muda | mesmo, pasta nova | `default` negou, `acceptEdits` criou `saudacao.md` |
| Lista do que mudou com `git status` e `git diff` | mesmo | Correta, conferida com `git status` e `git diff` |
| Desfazer arquivo versionado | mesmo | `notas.txt` voltou ao commit; repetido em pasta nova, com o mesmo resultado em `default` |
| Apagar arquivo novo | mesmo | Apagado; sem recuperação pelo git (aviso do agente) |
| Pedido fora da pasta (ler e gravar) | mesmo | Recusado nos dois modos; nada lido nem criado |
| `--add-dir` | mesmo | Leitura de arquivo da pasta adicional devolveu o texto exato; sem a opção, recusa |
| Claude Code incluído nos planos Pro e Max | support.claude.com, "Use Claude Code with your Pro or Max plan" | Lida em 27/10/2026 |

## Fontes

- Anthropic, "Choose a permission mode": code.claude.com/docs/en/permission-modes (lida inteira em 27/10/2026).
- Anthropic, "Use Claude Code with your Pro or Max plan": support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan (lida em 27/10/2026).
- `claude --help` na máquina de teste, Claude Code 2.1.228 (27/10/2026).
- Testes da DNACX de 27/10/2026.
