quarkus-verification
Ajuda seu agente a verificar a qualidade de projetos Quarkus. Ele executa testes, análises de segurança e compilação para garantir que tudo esteja pronto antes de enviar para revisão ou implantação.
O que ela faz
Verifica se um projeto Quarkus está pronto para ser enviado ou implantado. Ele compila o código, analisa a qualidade, executa testes, verifica a segurança e testa a versão compilada para produção.
Quando usar
- ✓Antes de enviar alterações para revisão.
- ✓Após fazer grandes mudanças no código ou atualizar bibliotecas.
- ✓Antes de colocar o programa no ar (produção).
Exemplo do que pedir para a IA
“Verifique meu projeto Quarkus antes de enviar.”
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
O agente compila seu código, verifica se há erros de programação e segurança, executa todos os testes para garantir que tudo funciona e testa a versão final que será usada.
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 affaan-m/ECC --skill quarkus-verificationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/quarkus-verification/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.
Loop de Verificação do Quarkus
Execute antes de PRs, após grandes mudanças e pré-implantação.
Quando Ativar
- Antes de abrir um pull request para um serviço Quarkus
- Após refatoração importante ou atualizações de dependência
- Verificação pré-implantação para staging ou produção
- Executando o pipeline completo de build → lint → test → security scan → compilação nativa
- Validando se a cobertura de testes atende aos limites (80%+)
- Testando a compatibilidade da imagem nativa
Fase 1: Build
# Maven
mvn clean verify -DskipTests
# Gradle
./gradlew clean assemble -x test
Se o build falhar, pare e corrija os erros de compilação.
Fase 2: Análise Estática
Checkstyle, PMD, SpotBugs (Maven)
mvn checkstyle:check pmd:check spotbugs:check
SonarQube (se configurado)
mvn sonar:sonar \
-Dsonar.projectKey=my-quarkus-project \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=${SONAR_TOKEN}
Problemas Comuns a Resolver
- Importações ou variáveis não utilizadas
- Métodos complexos (alta complexidade ciclomática)
- Potenciais desreferenciamentos de ponteiro nulo
- Problemas de segurança sinalizados pelo SpotBugs
Fase 3: Testes + Cobertura
# Run all tests
mvn clean test
# Generate coverage report
mvn jacoco:report
# Enforce coverage threshold (80%)
mvn jacoco:check
# Or with Gradle
./gradlew test jacocoTestReport jacocoTestCoverageVerification
Categorias de Teste
Testes Unitários
Teste a lógica do serviço com dependências mockadas:
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock UserRepository userRepository;
@InjectMocks UserService userService;
@Test
void createUser_validInput_returnsUser() {
var dto = new CreateUserDto("Alice", "alice@example.com");
// Panache persist() is void — use doNothing + verify
doNothing().when(userRepository).persist(any(User.class));
User result = userService.create(dto);
assertThat(result.name).isEqualTo("Alice");
verify(userRepository).persist(any(User.class));
}
}
Testes de Integração
Teste com banco de dados real (Testcontainers):
@QuarkusTest
@QuarkusTestResource(PostgresTestResource.class)
class UserRepositoryIntegrationTest {
@Inject
UserRepository userRepository;
@Test
@Transactional
void findByEmail_existingUser_returnsUser() {
User user = new User();
user.name = "Alice";
user.email = "alice@example.com";
userRepository.persist(user);
Optional<User> found = userRepository.findByEmail("alice@example.com");
assertThat(found).isPresent();
assertThat(found.get().name).isEqualTo("Alice");
}
}
Testes de API
Teste endpoints REST com REST Assured:
@QuarkusTest
class UserResourceTest {
@Test
void createUser_validInput_returns201() {
given()
.contentType(ContentType.JSON)
.body("""
{"name": "Alice", "email": "alice@example.com"}
""")
.when().post("/api/users")
.then()
.statusCode(201)
.body("name", equalTo("Alice"));
}
@Test
void createUser_invalidEmail_returns400() {
given()
.contentType(ContentType.JSON)
.body("""
{"name": "Alice", "email": "invalid"}
""")
.when().post("/api/users")
.then()
.statusCode(400);
}
}
Relatório de Cobertura
Verifique target/site/jacoco/index.html para cobertura detalhada:
- Cobertura geral de linhas (meta: 80%+)
- Cobertura de branches (meta: 70%+)
- Identifique caminhos críticos não cobertos
Fase 4: Verificação de Segurança
Vulnerabilidades de Dependência (Maven)
mvn org.owasp:dependency-check-maven:check
Revise target/dependency-check-report.html para CVEs.
Auditoria de Segurança Quarkus
# Check vulnerable extensions
mvn quarkus:audit
# List all extensions
mvn quarkus:list-extensions
OWASP ZAP (Testes de Segurança de API)
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
-t http://localhost:8080/q/openapi \
-f openapi
Verificações Comuns de Segurança
- Todos os segredos em variáveis de ambiente (não no código)
- Validação de entrada em todos os endpoints
- Autenticação/autorização configurada
- CORS configurado corretamente
- Cabeçalhos de segurança definidos
- Senhas hasheadas com BCrypt
- Proteção contra injeção de SQL (consultas parametrizadas)
- Limitação de taxa em endpoints públicos
Fase 5: Compilação Nativa
Teste a compatibilidade da imagem nativa GraalVM:
# Construir executável nativo
mvn package -Dnative
# Ou com container
…
Perguntas frequentes
O que é Quarkus?
É um framework para criar aplicações Java mais rápidas e leves.
O que são 'testes de cobertura'?
É uma métrica que mostra qual porcentagem do seu código foi testada. O ideal é que seja alta, como 80% ou mais.
O que é 'compilação nativa'?
É um processo que transforma o código Java em um executável mais rápido e que consome menos recursos, parecido com programas feitos em outras linguagens.
Detalhes
Descrição original do autor
Verification loop for Quarkus projects: build, static analysis (Checkstyle, PMD, SpotBugs), tests with JaCoCo coverage, OWASP dependency and container security scans, GraalVM native compilation, health checks, and config validation. Use when verifying a Quarkus service before a PR, after major refactoring or dependency upgrades, or pre-deploy.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #109
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
template-skill
Este é um modelo genérico para novas habilidades. Ele precisa de uma descrição específica para ser útil.
anthropics/skills
shipping-and-launch
Prepara seu código para ser lançado em produção com segurança. Ajuda a garantir que tudo esteja pronto, monitorado e com um plano de volta.
addyosmani/agent-skills
using-agent-skills
Faz seu agente descobrir e usar outras habilidades. É útil para decidir qual ferramenta ou fluxo de trabalho usar para uma tarefa específica.
addyosmani/agent-skills