Arquiteto de Software
CODEMAP e contratos de API.
O Software Architect é a persona que desenha o esqueleto do programa e o contrato de API. Em um SDLC AI-native, o Software Architect opera uma pilha de primitivas validadas que produz artefatos legíveis por máquina para humanos e agentes.
Resumo executivo
O Software Architect traduz requisitos aprovados em um esqueleto coerente de programa, fronteiras de módulo e contratos de API que o Developer e o QA Engineer podem executar sem ambiguidade. Em um SDLC AI-native, o Software Architect opera dentro da fase de Design com um conjunto fixo de primitivas: um agente de design de contrato de API, quatro slash prompts, instruções escopadas, hooks validados por schema e uma lista curada de MCPs validados. As saídas primárias são CODEMAP.md, arquivos de contrato de API, registros de design review e scans de domain-driven design.
Papel e responsabilidades
Pense no Software Architect como um arquiteto desenhando o chão de fábrica. Eles não operam as máquinas, mas decidem onde as máquinas ficam, como o material flui entre elas e qual interface cada máquina expõe à sua vizinha. Em um SDLC AI-native, o CODEMAP.md é a planta baixa, os contratos de API são as interfaces entre máquinas, e o Software Architect é responsável pelo fato de que o fluxo de hoje continua funcionando no próximo trimestre.
Responsabilidades primárias:
- Escrever e manter o
CODEMAP.mdcomo o esqueleto canônico do programa para humanos e agentes - Desenhar e governar contratos de API sob
docs/contracts/em formato OpenAPI, AsyncAPI ou GraphQL SDL - Rodar design reviews com o Enterprise Architect, Technical Lead e Developer em gates definidos
- Rodar scans de domain-driven design para detectar fronteiras vazadas e violações de agregado
- Operar o agente API Contract Designer e os prompts
/codemap,/contract,/design-review,/ddd-scan - Manter disciplina de compatibilidade retroativa e versionar contratos explicitamente
- Alinhar designs com os princípios do
CONSTITUTION.mde ADRs do Enterprise Architect
Jobs to be done
- Como Software Architect, eu quero que o
CODEMAP.mdse regenere a cada mudança de API pública, para que o esqueleto nunca fique defasado. - Como Software Architect, eu quero que contratos de API sejam a fonte da verdade, para que implementação e testes derivem de um único documento.
- Como Software Architect, eu quero que design reviews sejam estruturadas e registradas, para que consequências sobrevivam à reunião.
- Como Software Architect, eu quero que DDD scans detectem fronteiras vazadas, para que violações de agregado sejam pegas no design, não em produção.
- Como Software Architect, eu quero que mudanças de contrato bloqueiem o merge em uma violação de breaking change, para que consumidores sejam protegidos pelo gate.
- Como Software Architect, eu quero que todo contrato aponte para os IDs de requisito que satisfaz, para que a rastreabilidade esteja intacta.
Dores antes da era AI-native
- Diagramas no lugar de artefatos. Caixas e setas em um deck de slides não podem ser consumidas por um agente ou gerador de testes. A implementação deriva do desenho.
- Contratos escritos após o fato. Implementações embarcam primeiro, contratos são reversamente engenheirados, e consumidores são surpreendidos.
- CODEMAP como um README que ninguém atualiza. Uma vez defasado, agentes alucinam estrutura de módulo e humanos param de ler.
- Disciplina de DDD apenas de cabeça. Fronteiras de agregado são lembradas, não enforçadas. Vazamentos aparecem sob carga.
- Breaking changes descobertas por consumidores. Sem um gate, um PR menor quebra parceiros em produção.
Fluxo diário AI-native
O Software Architect opera um loop fixo todo dia. O loop usa primitivas do GitHub Copilot dentro do Visual Studio Code e Claude Code no terminal, além de um pequeno catálogo de MCPs validados para contexto externo.
Setup da manhã
- Abra o repositório no Visual Studio Code. GitHub Copilot Chat carrega o
AGENTS.mde as instruções escopadas de arquitetura. - Puxe o último
maine revise propostas noturnas de design e PRs de contrato. - Rode
/codemappara confirmar que o esqueleto está em sincronia com a árvore atual do código fonte. - Revise o dashboard de DDD scan gerado pelo workflow agendado do GitHub Actions do
/ddd-scan.
Execução no meio do dia
- Escrita de contrato. Invoque
/contractem cada nova ou alterada superfície de API. O agente API Contract Designer produz um arquivo OpenAPI, AsyncAPI ou GraphQL SDL e o vincula aos IDs de requisito. - Manutenção do CODEMAP. Invoque
/codemapapós qualquer mudança estrutural. O agente reescreve o mapa de módulos, a lista de superfície pública e as anotações de fluxo de dados. - Design review. Invoque
/design-reviewem propostas taggeadas com impacto arquitetural. O agente prepara a pauta a partir do diff e registra decisões contra o catálogo de ADR. - DDD scan. Invoque
/ddd-scanem módulos que tiveram fronteiras alteradas na última semana. O agente usagrepeglobpara detectar chamadas entre agregados e value objects vazados.
Revisão no fim da tarde
- Rode as verificações de compatibilidade de contrato no GitHub Actions. Bloqueie o merge em qualquer breaking change sem um ADR de major-version vinculado e uma nota de migração.
- Abra um pull request com as mudanças em contratos e
CODEMAP.md. GitHub Copilot Code Review comenta sobre consistência e risco de breaking change. - Publique o digest diário de design no canal do Teams da engenharia via Microsoft 365 Agents SDK, resumindo novos contratos, contratos superados e debates de design abertos.
- Atualize os links de rastreabilidade de contratos para IDs de requisito e artefatos implantados via a telemetria do Azure MCP Server.
Primitivas recomendadas
Agente
| Agente | Arquivo | Propósito |
|---|---|---|
api-contract-designer | .github/agents/api-contract-designer.agent.md | Escrever CODEMAP.md, contratos de API, rodar design reviews e DDD scans |
O API Contract Designer usa claude-sonnet-4-6 por padrão. Ferramentas: read, edit, search, grep, glob. Sem acesso a bash no modo default. Extended thinking é habilitado apenas para /ddd-scan, onde a correlação entre módulos se beneficia de raciocínio mais profundo.
Slash prompts
| Comando | Arquivo | Propósito |
|---|---|---|
/codemap | .github/prompts/codemap.prompt.md | Regenerar o CODEMAP.md com mapa de módulos, superfície pública e fluxo de dados |
/contract | .github/prompts/contract.prompt.md | Escrever ou revisar um contrato de API vinculado a IDs de requisito |
/design-review | .github/prompts/design-review.prompt.md | Preparar e registrar um design review estruturado |
/ddd-scan | .github/prompts/ddd-scan.prompt.md | Detectar fronteiras vazadas e violações de agregado |
Instruções escopadas
applyTo com escopo reduz o custo em tokens em aproximadamente 68 por cento comparado a instruções globais.
Escopo (applyTo) | Arquivo | Propósito |
|---|---|---|
CODEMAP.md | .github/instructions/codemap.instructions.md | Schema do mapa de módulos, anotação de superfície pública, sintaxe de fluxo de dados |
docs/contracts/**/*.yaml,docs/contracts/**/*.graphql | .github/instructions/contracts.instructions.md | Convenções OpenAPI, AsyncAPI, GraphQL SDL e regras de compatibilidade |
docs/design/**/*.md | .github/instructions/design.instructions.md | Template de proposta de design, pauta de review, registro de decisão |
Hooks
Hooks custam zero tokens de LLM. São a camada de governança mais forte para arquitetura.
pre-commit: rejeitar qualquer mudança de contrato sem um ID de requisito vinculado e uma classificação de compatibilidade (safe,additive,breaking)post-commit: regenerar oCODEMAP.mdem qualquer mudança de superfície públicapre-merge: rodar o DDD scan e a verificação de compatibilidade de contrato; bloquear o merge em achados não resolvidos
MCPs validados
| MCP | Propósito | Dono |
|---|---|---|
| GitHub MCP Server | Ler PRs, resultados do CodeQL e runs do Actions relevantes a mudanças de contrato | GitHub (oficial) |
| Azure MCP Server | Consultar Application Insights para vincular contratos a formas de tráfego observadas em produção | Microsoft (oficial) |
| Microsoft Learn Docs MCP | Ancorar designs de contrato na documentação de referência de API do Azure e Microsoft 365 | Microsoft (oficial) |
| Azure DevOps MCP Server | Ler work items de arquitetura no Azure Boards quando o time usa Azure DevOps | Microsoft (oficial) |
| Microsoft 365 Agents SDK MCP | Publicar digests de design e ingerir decisões de design review do Teams | Microsoft (oficial) |
Exemplos reais
Exemplo 1: novo contrato para uma integração com parceiro
Entrada: Um cluster de requisitos para uma nova integração de webhook com parceiro, aprovado pelo Requirements Engineer.
Invocação: /contract seguido de /design-review.
Saída esperada:
- Um
docs/contracts/partner-webhook/openapi.yamlcom endpoints, schemas e links para IDs de requisito. - Um
docs/contracts/partner-webhook/asyncapi.yamlse o contrato incluir formas de evento. - Um registro de design review em
docs/design/reviews/2026-q3-partner-webhook.mdcom decisões e um link de superado-por se o novo contrato substituir um mais antigo. - Um pull request com classificação de compatibilidade de contrato
additivee comentários do Copilot Code Review sobre higiene de schema.
Exemplo 2: DDD scan após uma refatoração de módulo
Entrada: Um developer refatorou o módulo orders em três submódulos.
Invocação: /ddd-scan com escopo em src/orders/**.
Saída esperada:
- Um relatório de scan em
docs/design/scans/2026-06-orders-ddd.mdidentificando quatro chamadas entre agregados e dois value objects vazados. - Quatro issues do GitHub registradas via o GitHub MCP com plano de remediação e um engenheiro dono.
- Uma atualização do
CODEMAP.mdque anota os novos submódulos e sinaliza os vazamentos remanescentes.
Anti-padrões
- Contrato escrito como apêndice. Se a implementação aterrissa primeiro, contratos são reversamente engenheirados. Mitigação: o hook de
pre-commitbloqueia PRs de implementação cuja superfície pública não esteja coberta emdocs/contracts/. - CODEMAP deriva. Um mapa defasado quebra o raciocínio do agente. Mitigação: o hook de
post-commito regenera em qualquer mudança de superfície pública. - Breaking changes silenciosas. Um rename de campo enviado como
safequebra consumidores. Mitigação: o linter de contrato enforça a classificação de compatibilidade e a forma do diff. - DDD de memória. Fronteiras de agregado esquecidas sob pressão de deadline vazam para persistência. Mitigação: execuções agendadas do
/ddd-scane o hook depre-merge. - Design reviews sem registros. Decisões evaporam, relitigadas no próximo trimestre. Mitigação:
/design-reviewvincula toda decisão a uma entrada de ADR.
KPIs e métricas de impacto
| KPI | Linha base | Meta | Medição |
|---|---|---|---|
| Frescor do CODEMAP, detecção de drift | 4 semanas | < 24 horas | Saída do hook de post-commit |
| Contratos com IDs de requisito vinculados | 35 por cento | 100 por cento | Linter de contrato no GitHub Actions |
| Breaking changes sinalizadas antes do merge | 55 por cento | 100 por cento | Saída do hook de pre-merge |
| Achados de DDD scan remediados no SLA | 40 por cento | > 90 por cento | Auditoria de fechamento de issue |
| Tempo de ciclo de design review | 2 semanas | < 5 dias | Timestamps de PR no GitHub |
| Disciplina de versionamento de contrato | 50 por cento | 100 por cento | Auditoria de rename de arquivo versionado |
Maturidade em quatro níveis
| Nível | Nome | Marcadores |
|---|---|---|
| L1 | Manual | Diagramas em slides, contratos em wikis, CODEMAP ausente |
| L2 | Assistido | Copilot usado para polir diagramas e prosa, contratos reversamente engenheirados |
| L3 | Aumentado | Agente API Contract Designer, quatro slash prompts, instruções escopadas, GitHub e Azure MCPs, CODEMAP auto-regenerado |
| L4 | Autônomo | Kit completo de primitivas, hooks enforçados, DDD scans agendados, digests de design automatizados, gates de compatibilidade em todos os contratos |
Integração com outras personas
- Do Enterprise Architect: princípios do
CONSTITUTION.mde ADRs que restringem o design de contrato - Do Requirements Engineer: IDs de requisito atômicos que ancoram cláusulas de contrato
- Para o Technical Lead:
CODEMAP.mde contratos como linha base para primitivas de time e instruções escopadas - Para o Developer: contratos de API como fonte para o
IMPLEMENTATION_PLAN.mde os testes derivados deles - Para o QA Engineer: contratos como fonte direta para contract tests e fuzzing de schema
- Para o Platform Architect: superfície de contrato que serviços de plataforma devem suportar
- Para o Tech Writer: contratos como fonte para documentação de desenvolvedor e entradas de changelog
Glossário
- CODEMAP: documento gerado que descreve o esqueleto do programa para humanos e agentes, mantido atualizado por hooks.
- Contrato de API: descrição legível por máquina de uma interface em forma OpenAPI, AsyncAPI ou GraphQL SDL.
- Classificação de compatibilidade: rótulo aplicado a toda mudança de contrato como
safe,additiveoubreaking. - Design review: sessão estruturada e registrada que aprova ou adia propostas de design com participantes nomeados.
- DDD scan: varredura automatizada que detecta chamadas entre agregados e value objects vazados.
- Agregado: um cluster de objetos de domínio com uma única raiz e fronteira transacional, conforme domain-driven design.
Referências
- Documentação do GitHub Copilot — modo agent, prompts e instruções
- Orientação de Azure API Design — guia canônico da Microsoft sobre qualidade de contrato de API
- Azure Well-Architected Framework — pilares de confiabilidade e excelência operacional para alinhamento arquitetural
- Documentação do CodeQL — análise estática que sustenta a detecção de breaking change
- Documentação do GitHub Actions — automação para scans de contrato e DDD em todo PR