api-breaking-change-detector
Detecta mudanças que quebram a comunicação entre APIs de C# e seus consumidores de JavaScript/TypeScript. Garante que o backend e o frontend permaneçam compatíveis, evitando erros.
O que ela faz
Este agente compara o código do seu "backend" (onde os dados são criados e gerenciados) com o código do seu "frontend" (a parte que o usuário vê e interage) para encontrar problemas antes que eles causem erros.
Quando usar
- ✓Quando você muda algo no seu "backend" e quer saber se isso vai quebrar o "frontend".
- ✓Quando você quer ter certeza de que o "frontend" e o "backend" estão "falando a mesma língua".
- ✓Antes de lançar uma nova versão do seu programa, para verificar se tudo ainda funciona junto.
Exemplo do que pedir para a IA
“Verifique se as mudanças nos meus controladores C# vão quebrar o frontend.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele analisa como os dados são enviados e recebidos no "backend" e procura por usos correspondentes no código do "frontend". Se encontrar diferenças, ele avisa.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill api-breaking-change-detectorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/api-breaking-change-detector/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Detector de Mudanças Quebradoras na API
Você está cruzando o contrato real de uma Web API em C# (controladores, DTOs, definições de rota) com seus consumidores em TypeScript/JavaScript para encontrar desvios de contrato — em ambas as direções — antes que cheguem à produção.
Quando usar isto
Acione quando o usuário pedir para:
- Verificar se uma mudança em DTO/controlador quebrará aplicações frontend ou cliente
- Verificar se o contrato da API do cliente e do backend ainda está sincronizado
- Auditar um endpoint específico, ou toda a superfície da API, em busca de mudanças quebradoras antes de um lançamento
Não use isto para:
- Gerar novo código de API a partir de uma especificação OpenAPI (veja
openapi-to-application-code) - Criar novos endpoints com documentação OpenAPI (veja
aspnet-minimal-api-openapi) - Comparar dois arquivos de especificação OpenAPI diretamente — esta habilidade lê código fonte, não especificações exportadas
Processo
Descobrir Políticas Globais de JSON e Nomenclatura:
- Verifique
Program.csouStartup.cspara opções de JSON ativas (por exemplo,JsonNamingPolicy.CamelCase,PropertyNamingPolicy, ou NewtonsoftCamelCasePropertyNamesContractResolver). - Use como padrão
camelCasepara mapeamento de campos em TypeScript/JavaScript se o camelCase global estiver configurado, a menos que seja substituído por um atributo explícito[JsonPropertyName("...")]na propriedade C#. - Ignore propriedades C# anotadas com
[JsonIgnore].
- Verifique
Identificar a superfície do contrato C#. Para cada ação de Controlador no escopo:
- Rota:
[Route("...")]base +[HttpGet("...")]/[HttpPost("...")]da ação. Normalize parâmetros de rota (por exemplo,{id:int}ou{id:guid}$\rightarrow${id}). - DTO de Requisição: Extraia nomes de propriedades, tipos e regras de requisito:
- Obrigatório se: anotado com
[Required],[BindRequired], tiver o modificadorrequireddo C# 11 (public required string X), ou for um tipo de valor não anulável (int,Guid,bool) sem um valor padrão. - Opcional se: anulável (
string?,int?), ou tiver um inicializador padrão.
- Obrigatório se: anotado com
- DTO de Resposta: Nomes de propriedades, tipos e nulidade.
- Códigos de Status Explícitos: atributos
[ProducesResponseType(statusCode)]e caminhos de retorno explícitos deStatusCode(...).
- Rota:
Encontrar o consumidor TypeScript/JavaScript correspondente (com Correspondência Normalizada de URL):
- Correspondência de cliente auto-gerado (alta confiança): procure por arquivos de cliente gerados (saída NSwag/OpenAPI Generator) e combine diretamente pelo nome do método/interface gerado.
- Correspondência de serviço/cliente escrito à mão (confiança média):
- Procure em arquivos TypeScript/JavaScript por chamadas de cliente HTTP (
fetch,axios, AngularHttpClient,ky, etc.) cujo padrão de URL normalizado corresponda à rota do controlador. - Normalize strings de template e concatenações (por exemplo,
${this.apiUrl}/users/${id}oubaseUrl + '/users/' + userId$\rightarrow$/users/{id}). - Combine rotas normalizadas com rotas C# independentemente da nomenclatura de variáveis em TypeScript/JS.
- Procure em arquivos TypeScript/JavaScript por chamadas de cliente HTTP (
- Nenhuma correspondência encontrada: relate como "consumidor de cliente não localizado" em vez de adivinhar — não presuma que um endpoint não está sendo usado apenas porque uma correspondência não foi encontrada estaticamente.
- Rotule cada descoberta com qual desses três métodos foi usado para localizá-la.
Comparar backend → frontend/cliente (quebra o cliente):
- Uma propriedade de DTO renomeada ou removida que a interface ou modelo de objeto TypeScript/JS ainda espera
- Um novo campo de requisição obrigatório que o cliente nunca envia
- Um código de status de resposta que o cliente não lida (por exemplo, o controlador agora retorna 409 Conflict, mas o manipulador de erros do cliente lida apenas com 400/500)
- O tipo de um campo de resposta mudou (por exemplo,
long$\rightarrow$string, ou não anulável $\rightarrow$ anulável) de uma forma que o tipo do cliente assume de maneira diferente
Comparar frontend/cliente → backend (código cliente obsoleto/morto vs. bugs silenciosos):
- Campo morto inofensivo: O cliente envia uma propriedade de payload que o backend ignora sem erro.
- Bug silenciosamente quebrado (Alta Severidade): A lógica do cliente lê uma propriedade de resposta que o backend não retorna mais (resultando em
undefinedem tempo de execução e potenciais falhas na aplicação).
Produzir o relatório (veja Formato de Saída). Esta habilidade não modifica o código.
Formato de Saída
- Escopo Auditado — Controladores, DTOs e arquivos TypeScript/JavaScript auditados, juntamente com as políticas de nomenclatura JSON detectadas (por exemplo,
camelCasehabilitado viaProgram.cs).
…
Perguntas frequentes
O que são 'breaking changes'?
São mudanças que quebram a comunicação entre o 'backend' e o 'frontend', fazendo com que o programa pare de funcionar corretamente.
O que é 'contrato' da API?
É o acordo sobre como o 'backend' e o 'frontend' vão trocar informações. Define quais dados são esperados e quais serão enviados.
Ele pode encontrar erros em qualquer tipo de 'frontend'?
Sim, ele procura por padrões de comunicação em várias linguagens e bibliotecas populares de 'frontend' como JavaScript e TypeScript.
Detalhes
Descrição original do autor
Cross-references C# Web API controllers/DTOs against their TypeScript/JavaScript consumers (React, Angular, Vue, Svelte, Node.js, or hand-written/auto-generated HTTP clients like Fetch, Axios, NSwag) to catch contract drift in both directions: backend changes that break client applications (renamed/removed JSON keys, new required parameters, status code shifts) and frontend code sending fields the
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #4994
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC