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
- Atividades Práticas, AP1 e AP2 (15 pontos cada): 30 pontos
- Projeto de Disciplina: 50 pontos
- Diário de uso: 10 pontos
- 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.mdantes 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.mdversionado, 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.mdversionado 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
- ANTHROPIC. Claude Code — documentação e Best practices for Claude Code. Apoio para a AP1 e o L2.
- GITHUB. Spec Kit.
- HOU, X. et al. (2024). Large Language Models for Software Engineering: A Systematic Literature Review. ACM TOSEM. (ponto de partida para os seminários)
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.