Desenvolvimento de Software Apoiado por IA — 2026.4

Atividade Prática 1
Uma aplicação de verdade com SDD

👨‍🏫 Prof. Gustavo Pinto 🏛️ UFPA 📅 29 de setembro de 2026 🕐 20h

A atividade

Apresentação em 01/10. O último commit que conta é o de 01/10 às 18h.

Requisitos

Publicada

Abre com um clique, em uma URL pública, no dia da apresentação.

100 mil linhas

No mínimo, contadas com cloc. Dependências, locks, build e dados não contam.

SDD

SPEC.md, PLAN.md e TASKS.md versionados, escritos antes do código que implementam.

Registro completo

Todos os prompts, do primeiro ao último, com ferramenta, modelo, data e custo.

Uma aplicação no ar sem os prompts não será avaliada.

O repositório

Estrutura de pastas

.
├── README.md     # URL, dupla, stack, como rodar, ferramentas, modelos, saída do cloc
├── SPEC.md       # o quê e por quê
├── PLAN.md       # como: arquitetura, stack, modelo de dados
├── TASKS.md      # tarefas numeradas: T001, T002, ...
├── AGENTS.md     # instruções para o agente (ou CLAUDE.md)
├── src/          # organização interna livre
├── tests/
└── prompts/
    ├── LOG.md    # todos os prompts, em ordem
    ├── custo.md  # tokens e custo por sessão
    └── sessoes/  # exportações brutas das ferramentas

Quem usar o Spec Kit pode manter a estrutura dele em specs/.

Todo prompt conta

prompts/sessoes/: a fonte de verdade

Antes de cada commit, procure segredos na exportação: chaves de API, senhas, .env. Chave exposta precisa ser revogada, não apenas apagada.

prompts/LOG.md: o índice

### P042
- Data e hora: 2026-09-30 21:14
- Quem digitou: Maria
- Ferramenta e modelo: Claude Code 2.x, claude-sonnet-5-5
- Sessão: sessoes/2026-09-30-2105-claude.jsonl
- Tarefa: T017
- Prompt: implementa o carrinho seguindo a T017 do TASKS.md, sem mexer no checkout
- Resultado: funcionou, mas duplicou a validação de estoque. Refeito em P043.
- Commits: a1b2c3d

O LOG pode ser gerado por script a partir de sessoes/. Quem digitou e Resultado são preenchidos por vocês.

prompts/custo.md

Commits

T017: carrinho de compras

Agent: claude-code/claude-sonnet-5-5
Prompts: P042-P043

Contagem de linhas

Apenas arquivos versionados, sem documentação nem dados:

cloc . --vcs=git \
  --exclude-dir=node_modules,vendor,dist,build,prompts \
  --exclude-lang=Markdown,JSON,YAML,CSV,Text,SVG \
  --not-match-f='(lock|\.min\.)'

A saída vai no README.md, com as linhas de teste separadas das demais.

Apresentação em 01/10

Sem slides. O repositório e a aplicação bastam.

Checklist de entrega

Mãos à obra

Próxima: apresentação da AP1, em 01/10

📧 gpinto@ufpa.br