Desenvolvimento de Software Apoiado por IA

Horário

Terça e Quinta, 20h. De 01/09/2026 a 22/12/2026.

Objetivo

Capacitar o aluno a construir e entregar sistemas de software reais usando agentes de IA como ferramenta de trabalho, sabendo especificar, dirigir, revisar, testar e responder pelo que a ferramenta produz.

Esta não é uma disciplina sobre como construir agentes. É sobre como construir software com eles. O agente é o instrumento; o produto é o sistema.

Ementa

Agentes de código: harness, laço de execução, ferramentas e capacidades. Engenharia de contexto e decomposição de tarefas. Skills e conhecimento procedural versionado. Specification-Driven Development (SDD, desenvolvimento guiado por especificação). Model Context Protocol. Loop engineering. Testes como contrato e revisão de código gerado. Evolução de código legado. Qualidade, segurança e custo do código gerado.

O que se espera

Todas as atividades são feitas em duplas: não individualmente, não em trio.

Ao fim do semestre, cada dupla entrega um sistema funcionando e publicado, em uma URL que qualquer pessoa consiga abrir no dia da apresentação. Desse critério decorre o resto:

  • Escopo pequeno e terminado vale mais do que escopo grande e inacabado.
  • Deploy (publicação em produção) desde cedo. O sistema vai ao ar no Portão 1, ainda incompleto, e evolui publicado. Quem deixa a publicação para o final costuma não publicar.
  • Você responde pelo que assina. O agente escreve o código, mas a decisão é sua, e você vai defendê-la oralmente.
  • Medir antes de opinar. Toda afirmação sobre o que a ferramenta melhorou vem com o número que a sustenta.

Não se espera que vocês implementem agentes do zero nem escrevam código melhor que o agente. Espera-se que saibam especificar, dirigir, revisar e entregar.

A Parte I, de 01/09 a 15/10, tem dez aulas e dois laboratórios. A Parte II, de 20/10 a 10/12, é o projeto. Revisão e teste vêm antes de o projeto começar, porque quem só aprende a gerar código, e não a julgar o código gerado, acumula dívida técnica sem perceber.

Ferramentas

Usaremos o Claude Code como referência nas aulas. Cada dupla pode adotar outra ferramenta no projeto (Cursor, GitHub Copilot, Codex, Gemini CLI), desde que documente o uso e saiba justificar a escolha. Quem tiver dificuldade de acesso pago deve falar comigo na primeira semana.

Cada dupla mantém um repositório público no GitHub com o código, o SPEC.md, o AGENTS.md, os testes e o diário de uso. A hospedagem é livre, desde que gratuita: Vercel, Render, Fly.io, Supabase ou GitHub Pages atendem. A stack é escolha da dupla.

Avaliação

  1. Atividades Práticas, AP1 e AP2 (15 pontos cada): 30 pontos
  2. Projeto de Disciplina: 50 pontos
  3. Diário de uso: 10 pontos
  4. Defesa Oral individual: 10 pontos

Atividades Práticas

  • AP1, do spec ao deploy. Entrega em 06/10. Escolher uma aplicação pequena, escrever o SPEC.md antes de qualquer código, conduzir o agente até funcionar e publicá-la. Entregar o repositório, a URL no ar e um relatório curto: o que o agente acertou de primeira, onde travou, o que vocês reescreveram à mão.
  • AP2, brownfield e revisão. Entrega em 15/10. Receber o repositório de outra dupla, adicionar uma funcionalidade com apoio do agente e entregar os testes que provam que nada quebrou, mais uma revisão crítica dizendo o que foi aceito, o que foi rejeitado e por quê. A nota vem do rigor da revisão, não do tamanho da funcionalidade.

Diário de uso

Em toda aula, cada dupla registra o que fez com o agente, em diario/AAAA-MM-DD.md, enviado por commit no dia. O histórico do git carimba a data de cada entrada, então dez registros escritos na véspera aparecem como dez registros escritos na véspera.

Cada entrada cabe em dez linhas:

# Aula 07 (06/10)
**Objetivo.** Adicionar filtro por data na listagem de eventos.
**Ferramenta.** Claude Code, ~40 min, 3 iterações.
**O que o agente entregou.** Filtro funcionando, mas consultando o banco a cada tecla.
**O que mudamos à mão.** Debounce de 300ms e um índice em `evento(data)`.
**O que aprendemos.** Ele não considera custo de consulta se a spec não menciona.

O diário alimenta o relatório de processo dos Portões 2 e 3 e dá base concreta para a Defesa Oral. Registros honestos sobre falhas valem mais nota do que registros que só relatam sucesso.

Projeto de Disciplina

Tema. Uma aplicação real, com usuário identificável que não seja a própria dupla, construída com apoio de agentes e publicada na internet. O campus oferece bastantes candidatos: matrícula, biblioteca, restaurante universitário, editais, horários, laboratórios.

Requisitos.

  • Publicada em URL pública a partir do Portão 1 e até o fim do semestre.
  • SPEC.md versionado, escrito antes do código, no formato spec, plan, tasks.
  • Testes automatizados em integração contínua (CI) desde o Portão 1. Se o produto tiver um componente de IA, acrescentar uma suíte de evals (avaliações automatizadas) para essa parte.
  • AGENTS.md versionado e diário de uso em dia.
  • Ao menos um marco desenvolvido sobre código legado, escolhido de uma lista de repositórios que eu divulgo no kickoff.

Portões.

  • Portão 1, em 27/10. SPEC.md, testes em CI e a aplicação publicada, ainda que mínima. Sem URL e sem CI, não passa. 10 pontos.
  • Portão 2, em 17/11. Funcionalidade completa em produção, marco em código legado concluído, relatório de revisão do código gerado e custo de uso medido. 15 pontos.
  • Portão 3, em 10/12. Demonstração ao vivo de 12 minutos na URL pública, relatório final e defesa das decisões técnicas e de processo. 25 pontos.

Defesa Oral

Em 01/12 e 03/12, cada aluno defende individualmente um trecho do código do próprio projeto, escolhido por mim na hora. As perguntas tratam de decisões: por que esta estrutura e não outra, o que acontece se esta entrada for nula, por que este teste existe.

Não se trata de decorar código. Trata-se do ponto central da disciplina: você é responsável pelo que assina, mesmo sem ter digitado.

Sobre o uso de agentes

Nesta disciplina o uso de agentes não é permitido, é obrigatório. É o objeto de estudo.

O que muda é o padrão de exigência. Se o agente sugere X, entenda por que X e não Y, e saiba defender a escolha. Se ele escreveu 800 linhas e você não sabe explicar 20 delas, essas 20 não deveriam ter entrado no repositório. Ocultar o uso é que configura desonestidade acadêmica, não usar.

E, na apresentação final: se você vier apenas para ler o que o agente escreveu, por favor, nem venha.

Atividades Assíncronas

Na semana de 08 a 11/09 estarei no CBSoft 2026, no IME-USP, e não haverá aula em 08/09 e 10/09. Entregas para 15/09: a leitura dirigida da Aula 1, com uma página explicando a contradição entre os três estudos, e as duas entradas de diário da semana.

Cronograma

Passível de alterações. Verificar o calendário acadêmico oficial da UFPA para feriados estaduais e municipais.

# Data Dia Conteúdo
1 01/09 Ter O que é um agente. Quem decide o quê: 70% do planejamento é humano, 80% da execução é do agente
2 03/09 Qui Agentes: memória, ferramentas e planejamento. O laço de execução, e uma primeira olhada em MCP
08/09 Ter CBSoft 2026, sem aula (atividade assíncrona)
10/09 Qui CBSoft 2026, sem aula (atividade assíncrona)
3 15/09 Ter Engenharia de contexto e decomposição de tarefas
4 17/09 Qui Skills: conhecimento procedural versionado, SKILL.md, divulgação progressiva
5 22/09 Ter Specification-Driven Development, e a evidência que contraria a promessa
6 24/09 Qui Model Context Protocol: dando ferramentas ao agente, e a superfície de risco que vem junto
7 29/09 Ter Loop engineering: agentes disparados por evento, critério de parada, ponto de escalação
8 01/10 Qui Testes como contrato e revisão de código gerado
9 06/10 Ter Código legado: exploração, mapeamento, refatoração incremental. Entrega AP1
10 08/10 Qui Qualidade, segurança e custo do código gerado. O que continua humano
P1 13/10 Ter Prática em sala: dirigindo o agente numa funcionalidade real, do pedido ao commit
P2 15/10 Qui Prática em sala: AGENTS.md, uma skill e um servidor MCP. Entrega AP2 (confirmar Dia do Professor)
KO 20/10 Ter Kickoff do Projeto: duplas, escolha do problema e lista de repositórios legados
22/10 Qui Oficina: SPEC.md, integração contínua e a primeira publicação
G1 27/10 Ter Portão 1: SPEC.md, testes em CI e aplicação no ar
29/10 Qui Clínica de código: revisão coletiva de PRs gerados por agente
S1 03/11 Ter Seminário crítico de artigos (primeira metade das duplas)
S2 05/11 Qui Seminário crítico de artigos (segunda metade)
10/11 Ter Acompanhamento dos projetos
12/11 Qui Acompanhamento dos projetos
G2 17/11 Ter Portão 2: sistema completo, marco em legado e relatório de revisão
19/11 Qui Acompanhamento dos projetos
24/11 Ter Clínica de segurança: auditoria cruzada do código gerado entre duplas
26/11 Qui Acompanhamento dos projetos
DO 01/12 Ter Defesa Oral individual, parte 1
DO 03/12 Qui Defesa Oral individual, parte 2
08/12 Ter Nossa Senhora da Conceição, sem aula (feriado municipal em Belém)
G3 10/12 Qui Portão 3, Demo Day: apresentações finais, 12 minutos por dupla
15/12 Ter Buffer
17/12 Qui Buffer
22/12 Ter Buffer, fechamento e notas

Leituras

Uma leitura de referência por aula, marcada em negrito. As demais são complementares.

Aula 1, o que é um agente. Anthropic (2026), How Claude Code is used in practice, com cerca de 400 mil sessões. Complementares: METR, 2025 e Peng et al., 2023. Os três se contradizem, e explicar isso é a atividade da semana.

Aula 2, harness e capacidades. Vats e Golev (2026), The Scaffold Effect in Coding Agents: Harness Choice as a Hidden Variable, que mediu até 40 vezes de diferença em tokens por tarefa resolvida trocando só o harness, com a taxa de acerto variando de 0 a 8 pontos. Complementar: Harness Engineering for Agentic AI Coding Tools.

Aula 3, contexto. Anthropic, Effective context engineering for AI agents. Complementar: Barke, James e Polikarpova, Grounded Copilot, OOPSLA 2023.

Aula 4, skills. From Anatomy to Smells: An Empirical Study of SKILL.md, que analisou 238 skills reais e derivou uma taxonomia dos seus componentes. Complementares: Anthropic, Agent Skills, e Agent Skills in the Wild, que encontrou vulnerabilidade em 26,1% de 31 mil skills.

Aula 5, SDD. Hill (2026), Does Spec-Driven Development Reduce Defects?, que testou a promessa em 100.247 PRs e não encontrou a redução anunciada. Complementares: Spec Kit e Piskala, 2026.

Aula 6, MCP. Model Context Protocol at First Glance: Studying the Security and Maintainability of MCP Servers, sobre 1.899 servidores de código aberto. Complementar: MCP, Security Best Practices.

Aula 7, loop engineering. Lulla, Nersesyan, Mohsenimofidi, Treude e Baltes (2026), Loop Engineering: Building Blocks, Adoption, and Impact, que varreu 36.710 repositórios e encontrou loops autônomos operando em 217 deles, com quase nenhum versionando os arquivos de estado do loop.

Aula 8, testes e revisão. These Aren’t the Reviews You’re Looking For. Complementares: Are Coding Agents Generating Over-Mocked Tests?, MSR 2026, e Watanabe et al., On the Use of Agentic Coding, TOSEM.

Aula 9, código legado. Vilas Boas, Pinto, Monteiro, Carida e Ribeiro (2026), One Developer Is All You Need. Complementar: Articulate but Wrong.

Aula 10, qualidade e custo. Cloud Security Alliance (2026), Vibe Coding Security Debt. Complementares: Pearce et al., IEEE S&P 2022, e Hassan et al., Agentic Software Engineering.

Prática 2. Especificação AGENTS.md e Santos et al., Configuration Smells in AGENTS.md Files, que achou ao menos um problema em 91 de 100 repositórios.

Material de apoio

Entrega atrasada

Entregas após o prazo serão aceitas, mas os pontos referentes não serão contabilizados.

Política de plágio e uso de IA

O uso de ferramentas de IA é obrigatório nesta disciplina, mas deve ser documentado, não ocultado. Submeter trabalho gerado por agente sem registrar o processo, e sem ser capaz de defendê-lo oralmente, é considerado desonestidade acadêmica.

Duplas são encorajadas a discutir ideias entre si. Copiar solução ou parte de solução de outra dupla configura plágio, e nesse caso as duplas envolvidas não receberão os pontos da atividade.