O painel do projeto
Qualidade do código
Qualidade mostra se o código está bem escrito e sem excesso. Código de IA costuma funcionar e ainda assim acumular problemas que só aparecem depois: um erro engolido em silêncio, uma função que ninguém entende, três cópias do mesmo trecho, um pacote instalado para algo que a linguagem já faz.
A checagem nunca trava o agente: os achados vêm para o painel, e o agente recebe um resumo no início da sessão.
Duas camadas
| Camada | Quando | O que olha |
|---|---|---|
| Checagem sem IA | Sozinha: completa no início da sessão, e só nos arquivos editados no fim de cada resposta | Regras fixas sobre a estrutura do código. Roda no seu computador e envia só os achados. |
| Revisão com IA | Quando você pede: /faundr:quality | O agente lê o que mudou (ou o projeto todo, com --full) e acha o que regras fixas não enxergam. Só aponta, não muda nada. |
O que a checagem sem IA procura
| Tipo | Exemplos |
|---|---|
| Falha escondida | Erro capturado e ignorado, promessa sem tratamento de erro. |
| Tipo fraco | any, @ts-ignore e outros jeitos de desligar a checagem de tipos. |
| Complicado demais | Funções com caminhos demais (muitos if, laços e condições). |
| Código demais | Código sem uso, trechos repetidos, código comentado, pacotes que a linguagem já resolve. |
| Limpeza | Restos de depuração, TODO antigo. |
| Testes | Testes pulados ou marcados como "só este". |
| Instruções da IA | O CLAUDE.md cita um arquivo ou script que não existe mais. |
| Desempenho | Lista sem limite, consulta ao banco dentro de um laço, chave estrangeira sem índice. |
| Ferramenta do projeto | Os erros que o tsc e o ESLint do próprio projeto já apontam. |
Código sem uso, trechos repetidos, o ranking dos mais complexos e o tsc/ESLint só entram na checagem completa, a do início da sessão.
Em que linguagens
A checagem sem IA funciona sem instalar nada em JavaScript e TypeScript (com React Native, Vue, Angular, Svelte e Astro), Python, Flutter e Dart, PHP, Go, Java, Kotlin, C#, Rust, C, C++, Dockerfile, HTML e CSS. Ela lê o código por conta própria; o tsc e o ESLint só entram se o projeto já os tem. A tabela completa está em Linguagens suportadas.
O que a revisão com IA procura
Código demais (sempre com o substituto concreto), falhas escondidas, tipos que não protegem, complexidade, comentários que mentem, testes que não protegem nada e regras do CLAUDE.md desobedecidas. O agente só registra o achado quando tem confiança de 80 ou mais, com a prova no código. No fim, ele resume quanto dá para cortar ("−120 linhas, −2 pacotes possíveis") ou diz "Enxuto. Pode seguir."
O card de estado
No topo de todas as abas: quantos problemas estão abertos e quantos são altos, quando foi a última checagem, os contadores (Altos, Abertos, Novos em 7 dias, Corrigidos) e a linha da última revisão com IA, com uma nota de 0 a 4 por tema.
Também é aqui que fica o interruptor Lembrete para a IA não escrever código demais: 6 linhas que vão para o agente no início de cada sessão, lembrando-o de preferir o que a linguagem e o projeto já têm. Vem desligado.
Abas
| Aba | O que mostra |
|---|---|
| Problemas | Os achados Q-n, com filtro por tipo, por situação (Abertos, Corrigidos, Ignorados) e Só os novos: os que apareceram nos últimos 7 dias, depois da primeira checagem. |
| Por arquivo | Os problemas abertos agrupados por arquivo, o mais grave primeiro. |
| Mais complexos | Os 10 arquivos com mais caminhos possíveis, com a pior função de cada um. O detalhe tem um pedido pronto para a IA simplificar. |
| Código demais | O que dá para cortar, agrupado pela ação: pacotes para trocar ou remover, trechos repetidos, código sem uso, achados da revisão com IA e código comentado. Validação, tratamento de erro, segurança, acessibilidade e testes nunca entram no corte. |
| Atalhos | Os atalhos conscientes marcados no código (veja abaixo). |
| Por sessão | O tamanho de cada sessão: linhas de código e de teste somadas e removidas, arquivos e problemas novos. Avisa quando mais de 100 linhas mudaram sem nenhum teste junto. |
O detalhe de um achado explica O que é, Por que importa e Como resolver, com o arquivo, a linha e a regra. Os botões:
- Corrigir com a IA: copia
/faundr:quality-fix Q-n. O agente corrige sem mudar o que o app faz, pede o seu OK antes de mexer em vários arquivos ou remover pacotes, e só fecha quando a checagem não encontra mais o problema. - Ignorar, com o motivo: É de propósito, Alarme falso ou Deixar para depois (volta sozinho em 30 dias).
Achados de outras skills
Se você já usa uma skill de revisão de código que não é do Faundr, dá para conectá-la ao painel com /faundr:skills. Toda vez que ela roda, no fim da resposta o agente registra o que ela achou:
- cada problema vira um Q-n aqui, com a etiqueta via /nome, e conta no Lançamento e no Impacto como os outros;
- quando ela roda de novo e o problema sumiu, ele fecha sozinho;
- cada skill só fecha os próprios achados, e só nos arquivos que olhou.
Veja como conectar em Workflows.
Atalhos conscientes
Às vezes vale fazer o simples agora e melhorar depois. Para isso não virar dívida esquecida, marque o atalho no código:
// faundr: busca só pelo nome, melhorar quando passar de 1.000 produtos
O formato é // faundr: <o limite do atalho>, <quando melhorar>. A aba Atalhos lista todos, com o arquivo, quem escreveu e há quanto tempo. Os que não dizem quando melhorar aparecem primeiro.
Regras da casa
Uma regra da casa é algo que o time não quer ver no código, como "nada de fetch direto nas telas". Ela vira um arquivo em .faundr-regras/, que vai para o git com o resto do projeto, e a checagem passa a apontar onde aparece:
!faundr quality-rule "Sem fetch nas telas" --pattern "\bfetch\(" --files "src/components/**" --message "Use o cliente de src/lib/api.ts"As regras da Memória com padrão proibido funcionam do mesmo jeito. Veja Memória.
Pular um trecho
Na linha de cima de um trecho que quebra uma regra de propósito:
// faundr-ignore <regra>: <motivo>
Para o arquivo inteiro, use faundr-ignore-file <regra>.
Comandos
A Qualidade do código mostra se o código está bem escrito e sem excesso: erro engolido em silêncio, tipos fracos (any, @ts-ignore), funções complicadas demais, código comentado, pacotes que a linguagem já resolve, testes pulados, instruções da IA (CLAUDE.md) que citam arquivo ou script que não existe, código que ninguém usa, trechos repetidos e os erros do tsc e do ESLint que o próprio projeto já tem. A checagem roda no seu computador, sem IA, e para o painel vão só os achados. Use estes comandos no seu agente de IA, na pasta ligada ao projeto.
A checagem roda sozinha quando o agente abre e depois de cada resposta em que ele mexeu em arquivos (só nos arquivos editados). Código sem uso, trechos repetidos, o ranking dos mais complexos e o tsc/ESLint só entram na checagem completa (no início da sessão). No fim de cada resposta o Faundr também mede o tamanho da mudança da sessão (linhas de código e de teste). Atalhos conscientes ficam marcados no código com // faundr: <limite>, <quando melhorar>. Ela nunca trava o agente: os achados vêm para cá e ele recebe um resumo no início da sessão.
/faundr:quality [--full | --files <arquivos>]Revisão de qualidade com IA: a IA lê o que mudou (ou o projeto inteiro, com --full) e registra o que a checagem automática não enxerga, como o que dá para cortar e pelo quê, erro escondido, tipos que não protegem, nomes confusos e regras do CLAUDE.md desobedecidas. Só entra achado com confiança de 80 ou mais, cada um com a prova no código. Ela só aponta e não muda nada.
ex.: /faundr:quality --full
/faundr:quality-fix [Q-<n> | --all]Corrige um problema sem mudar o que o app faz (ou os altos abertos, um de cada vez, sem argumento; com --all, todos os abertos sem parar). Pede o seu OK antes de mexer em vários arquivos, apagar arquivo ou remover pacote (no --all, deixa esses para o fim numa lista), e só fecha quando a checagem não encontra mais o problema.
ex.: /faundr:quality-fix Q-3
/faundr:quality-scanRoda a checagem completa agora e resume o que encontrou, por tipo.
!faundr quality-rule "<nome>" --pattern "<expressão>" --message "<por quê e o que usar>" [--files "src/**"] [--severity alta|media|baixa]Cria uma regra da casa: algo que o time não quer ver no código (ex.: fetch direto nas telas, uma biblioteca proibida). Vira um arquivo em .faundr-regras/ que vai para o git, e a checagem passa a apontar onde aparece.
ex.: !faundr quality-rule "Sem fetch nas telas" --pattern "\bfetch\(" --files "src/components/**" --message "Use o cliente de src/lib/api.ts"
!faundr quality-ladder on|offLiga ou desliga o lembrete para a IA não escrever código demais (6 linhas no início de cada sessão). Também dá para ligar aqui no painel, no card de estado.
ex.: !faundr quality-ladder on
!faundr quality-show [Q-<n>]Lista os problemas abertos, ou mostra um com o que é, por que importa e como resolver.
ex.: !faundr quality-show Q-3
!faundr quality-resolve Q-<n>Refaz a checagem e só fecha o problema se ele sumiu de verdade. A IA roda isso depois de corrigir.
ex.: !faundr quality-resolve Q-3
!faundr quality-ignore Q-<n> --reason <motivo> --note "<por quê>"Tira da lista com motivo: falso-alarme, de-proposito, ou depois (volta sozinho em 30 dias). Também dá para fazer pelo botão Ignorar aqui no painel. No código, um comentário faundr-ignore <regra>: motivo vale para a linha seguinte.
ex.: !faundr quality-ignore Q-3 --reason de-proposito --note "apagar o temporário é opcional"
!faundr quality-reopen Q-<n>Reabre um problema ignorado.
ex.: !faundr quality-reopen Q-3