Uso de IA no trabalho

Criar a primeira ferramenta com Claude Code: total mensal de um CSV de despesas

Praticamos o fluxo para criar uma primeira ferramenta pequena em Python usando o expenses.csv fictício e a nota de requisitos preparada anteriormente. A solicitação inclui um exemplo de entrada, a saída esperada e as restrições e, depois, executamos o summarize.py concluído na ferramenta Python do chat GPT, e não no Claude Code, para verificar o resultado.

Ver o sumário

Para quem éUsuários iniciantes que já instalaram o Claude Code, fizeram a primeira prática de leitura de arquivos e querem tentar gerar código pela primeira vez para um único arquivo pequeno

Preparação
  • Ter preparada a pasta de prática vibe-expenses e o expenses.csv fictício
  • Entender o fluxo de revisar as alterações antes de permitir que o Claude Code modifique arquivos
  • Ter Python instalado e conseguir executar o comando python no terminal
  • Usar apenas dados fictícios, não dados pessoais nem registros reais de pagamento

01Começar com uma única entrada e uma única saída

O objetivo da primeira prática não é criar um aplicativo de despesas cheio de recursos, mas um único arquivo summarize.py que leia expenses.csv e mostre apenas o total mensal de amount. Quando o escopo é pequeno, fica mais fácil para uma pessoa verificar diretamente se o resultado criado pela IA está correto. O arquivo de entrada é um CSV UTF-8 com as colunas date, category e amount. Assumimos que date usa o formato YYYY-MM-DD e amount é um inteiro.

ItemO que fica definido nesta práticaCritério de verificação
Arquivo de entradaexpenses.csvNão modificar o arquivo original
Colunas de entradadate, category, amountNão exigir outras colunas arbitrariamente
SaídaTotal mensal de amount2026-09 = 26600, 2026-10 = 9800
Escopo de implementaçãoUm único arquivo summarize.pyNão adicionar arquivos de configuração nem pacotes desnecessários
BibliotecasBiblioteca padrão do PythonNão instalar pacotes externos

O ponto importante nesta etapa é não fazer uma solicitação ampla como “crie um aplicativo de despesas”. Reduzimos a possibilidade de a IA expandir o trabalho por conta própria com recursos como interface, banco de dados, gráficos ou login e delegamos apenas uma tarefa cujo resultado pode ser comparado em uma única execução.

02Incluir na solicitação a entrada, a saída esperada e as restrições

Ao pedir o trabalho ao Claude Code, forneça tanto a estrutura do arquivo de entrada quanto a resposta esperada. Quando há uma saída esperada, fica claro o que o código deve acertar depois de ser escrito e o usuário pode comparar o resultado visualmente. Também convém incluir os limites que não devem ser ultrapassados, como “usar apenas a biblioteca padrão”, “não modificar o CSV original” e “escrever apenas summarize.py”.

Prompt
Crie summarize.py na pasta atual para ler expenses.csv e mostrar o total mensal de amount.

Entrada:
- CSV UTF-8
- Nomes das colunas: date, category, amount
- Formato de date: YYYY-MM-DD
- amount é um inteiro

Saída esperada:
2026-09 = 26600
2026-10 = 9800

Restrições:
- Usar apenas a biblioteca padrão do Python
- Não modificar expenses.csv
- O comando de execução é python summarize.py expenses.csv
- Primeiro explique os arquivos necessários e as alterações e, depois, escreva apenas summarize.py.

Este bloco de código não é uma resposta do Claude Code, mas a solicitação que o usuário digitaria. Como a própria solicitação já contém os valores corretos usados na verificação, depois não basta a saída parecer plausível: é possível verificar se os dois números coincidem exatamente.

03Verificar o que será criado antes de modificar arquivos

O Claude Code pode ler os arquivos necessários e solicitar aprovação antes de modificar arquivos ou executar comandos. Quando aparecer uma tela de aprovação, em vez de clicar em Yes imediatamente, verifique quais arquivos foram lidos, se summarize.py é o único arquivo que será criado e se expenses.csv não será alterado. Se ele tentar executar um comando desconhecido, você também pode pedir que explique a finalidade.

Prompt
Antes de modificar qualquer coisa, quero verificar.
1) Diga separadamente quais arquivos você vai ler e quais arquivos vai criar.
2) Confirme que não vai modificar expenses.csv.
3) Confirme que não vai instalar pacotes externos.
4) Diga em uma linha como comparar o resultado com a saída esperada depois da execução.

As respostas reais do Claude Code podem variar conforme o ambiente e o momento, por isso este artigo não inventa uma resposta específica como caso de sucesso. O que deve ser verificado não é o estilo da resposta, mas o escopo dos arquivos e dos comandos.

04Conferir o código final de referência e o comando de execução

O summarize.py abaixo é um código final de referência que atende aos requisitos deste artigo. Ele lê cada linha com csv.DictReader, usa os primeiros 7 caracteres de date para obter YYYY-MM, converte amount em inteiro e soma por mês. Para fixar a ordem da saída, ordena as chaves dos meses. Este código não foi copiado de uma resposta real do Claude Code; ele foi escrito para reproduzir o resultado da prática do artigo e executado separadamente para verificação.

Prompt
import csv
import sys
from collections import defaultdict

def summarize_monthly(path):
    totals = defaultdict(int)

    with open(path, "r", encoding="utf-8", newline="") as f:
        reader = csv.DictReader(f)
        for row in reader:
            month = row["date"][:7]
            amount = int(row["amount"])
            totals[month] += amount

    return totals

def main():
    if len(sys.argv) != 2:
        raise SystemExit("Usage: python summarize.py expenses.csv")

    totals = summarize_monthly(sys.argv[1])
    for month in sorted(totals):
        print(f"{month} = {totals[month]}")

if __name__ == "__main__":
    main()

Como ele usa apenas a biblioteca padrão, não é necessário instalar pacotes adicionais. O comando de execução é o seguinte e, se no Windows estiver configurado py em vez de python, você pode usar `py summarize.py expenses.csv`.

Prompt
python summarize.py expenses.csv

05Comparar a saída da execução linha por linha com os valores esperados

Na ferramenta Python do chat GPT, o código acima e o expenses.csv fictício foram salvos como arquivos e `python summarize.py expenses.csv` foi executado de fato. A saída padrão coincidiu exatamente com as duas linhas abaixo. Essa verificação não foi realizada no Claude Code.

Prompt
2026-09 = 26600
2026-10 = 9800
MêsValor esperadoValor executadoResultado
2026-092660026600Coincide
2026-1098009800Coincide

Nesta etapa, confirmamos apenas que essas duas linhas coincidem. Não se deve extrapolar que o programa trate todos os CSVs com outros formatos, valores vazios ou números inválidos. O resultado coincide somente para os dados de teste e os requisitos atuais.

Também é possível verificar o total manualmente uma vez. Setembro é 12000 + 1450 + 8500 + 3200 + 1450 = 26600, e outubro tem um único registro de 9800, portanto o total é 9800. Em um exemplo pequeno, essa verificação cruzada entre a saída do programa e um valor de referência calculado por uma pessoa facilita localizar depois onde o resultado mudou quando novos recursos forem adicionados.

06Parar quando a resposta estiver correta, sem adicionar mais recursos

Uma expansão de escopo comum na primeira ferramenta é pensar “já que fizemos isso, vamos adicionar totais por categoria, gráficos e salvamento automático”. No entanto, a condição de conclusão deste artigo é que as duas linhas do total mensal estejam corretas. Se ela for atendida, é melhor preservar esse estado como ponto de referência e separar os próximos recursos em solicitações diferentes.

  • Verificar se nenhum arquivo inesperado foi criado além de summarize.py.
  • Verificar se o conteúdo de expenses.csv não foi alterado.
  • Verificar se não foi adicionada a instalação de pacotes externos.
  • Verificar se as duas linhas de saída coincidem exatamente com os valores esperados.
  • Separar os recursos adicionais como trabalho posterior, sem misturá-los a esta solicitação.

No próximo artigo, organizaremos as regras do projeto em CLAUDE.md para não repetir restrições longas em cada solicitação. Esse arquivo também não é uma configuração coercitiva, mas contexto do projeto que o Claude Code lê no início da sessão; por isso, o ponto principal é mantê-lo curto e específico.

O que conferir por conta própria

Na ferramenta Python do chat GPT, salvar summarize.py e o expenses.csv fictício com Python 3 e executar `python summarize.py expenses.csv` · Claude Code não foi executado de fato

  • Verificar se o código Python usa apenas csv, sys e collections.defaultdict da biblioteca padrão
  • Verificar se expenses.csv é aberto em modo somente leitura UTF-8 e se o arquivo original não é modificado
  • Verificar se o mês é obtido pelos primeiros 7 caracteres de date e se amount é convertido para int antes da soma
  • Verificar se o stdout da execução real coincide exatamente com as duas linhas `2026-09 = 26600` e `2026-10 = 9800`
  • Verificar se a solicitação inclui a entrada, a saída esperada, a restrição de biblioteca padrão e a proibição de modificar o original
  • Verificar se o texto não afirma incorretamente que a execução ou a verificação foram feitas no Claude Code
Limites da verificação

A verificação foi realizada apenas com o CSV fictício de 6 linhas deste artigo. Ela não inclui resultados de teste para entradas excepcionais, como valores vazios, datas inválidas ou amount não numérico, e a geração e a interface do Claude Code não foram testadas de fato.