본문으로 건너뛰기
cccskills
무료GitHub에 공개

quality-gates-php

Quality gates determinísticos para PHP e Laravel. Use quando o usuário pedir "quality gate PHP", "quality gate Laravel", "PHPStan", "Larastan", "Pest", "PHPUnit", "PHPMD", "Composer Audit", cobertura PHP ou baseline PHP.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md9.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Quality Gates para PHP e Laravel

Você projeta uma política de qualidade reproduzível para aplicações PHP e Laravel. O padrão é bloquear regressões no código alterado e reduzir a dívida existente por ratchet, sem esconder a baseline nem ampliá-la automaticamente.

Levantamento obrigatório

Antes de recomendar um gate, registre:

  1. versões de PHP, framework, Composer e ferramentas, todas fixadas no lockfile ou na imagem;
  2. comandos existentes, extensões PHP, sistema operacional e serviços usados nos testes;
  3. caminhos de código novo e legado, criticidade, baseline atual e orçamento de feedback;
  4. configurações versionadas, conjuntos de regras, fixtures, seeds e variáveis não secretas;
  5. dono, saída esperada, condição de falha e procedimento de exceção de cada gate.

Se faltarem dados, proponha primeiro uma execução observacional. Não invente compatibilidade, comandos do projeto ou limites globais para substituir medições.

Matriz de ferramentas e contratos

CategoriaVerificador preferencialEntradas determinísticasSaída e regra bloqueante
Análise estáticaPHPStan; Larastan quando houver Laravelcomposer.lock, versão do PHP, extensões, phpstan.neon*, stubs e baseline versionadaSaída estruturada do analisador; bloqueia erro novo e aumento da contagem por identificador e caminho na baseline
TestesPest ou PHPUnitlockfile, phpunit.xml, seed, relógio/fuso fixados, fixtures e serviços efêmeros por imagem/digestcódigo de saída e relatório JUnit; bloqueia teste falho, erro ou execução incompleta, separando falha de infraestrutura
Coberturacobertura do Pest/PHPUnit via PCOV ou Xdebugmesmo conjunto de testes, driver e versão fixados; relatório Cobertura/HTML versionado como evidênciarelatório de cobertura; bloqueia valor inferior a 80% nas linhas alteradas; cobertura global existente não pode cair mais que 0,0 ponto percentual
SASTSemgrep ou equivalente localbinário fixado, regras locais versionadas, exclusões revisadas e escopo explícitoSARIF/JSON; bloqueia achado novo de severidade ERROR e aumento da baseline por regra, impressão digital e caminho
SCATrivy fixado por digest, em modo offline, sobre SBOM CycloneDX do Composercomposer.lock, Composer e gerador CycloneDX fixados, SBOM reproduzível e versionado, imagem/binário do Trivy fixado por digest, TRIVY_DB_CACHE_DIR fixado na configuração versionada para o diretório do artefato imutável da DB e TRIVY_DB_ARTIFACT_SHA256 com seu digest verificado antes do gatetrivy sbom --cache-dir "$TRIVY_DB_CACHE_DIR" --offline-scan --skip-db-update --format json <sbom>; bloqueia advisory novo high ou critical perante a DB e a baseline controladas; variável, DB ou SBOM ausente e digest divergente são falha de infraestrutura
ComplexidadePHPMDversão fixada, ruleset XML versionado, caminhos e exclusões explícitosXML/texto; bloqueia nova violação e aumento da baseline por regra e símbolo; para código novo, padrão inicial é complexidade ciclomática ≤ 10 por método
EstiloPHP-CS-Fixer ou PHP_CodeSniffer em modo de verificaçãoversão fixada e configuração versionadadiff ou saída estruturada; bloqueia arquivo alterado fora do padrão, sem reescrever código no gate
Laravelverificações de boot/configuração, rotas, container e migrations em banco efêmeroartisan, caches recriados no job, .env.testing sem segredo, fixtures e imagem do banco fixadascódigo de saída e logs; bloqueia falha de boot, resolução do container, cache de configuração/rotas ou migration do zero

Ferramentas equivalentes são aceitáveis somente quando preservam o mesmo contrato de entradas, saída analisável e condição de falha. Nunca execute correção automática no gate bloqueante.

Política de bloqueio e ratchet

Adote estes padrões iniciais, sujeitos a revisão após a fase observacional:

  • código novo: zero erro de análise estática, zero teste falho, zero achado SAST ERROR, zero advisory novo controlado e zero violação nova de complexidade ou estilo;
  • cobertura: pelo menos 80% das linhas alteradas e queda global máxima de 0,0 ponto percentual;
  • complexidade: métodos novos ou alterados com complexidade ciclomática ≤ 10;
  • dívida existente: baseline versionada por identificador estável, regra, símbolo/caminho e quantidade; qualquer aumento bloqueia;
  • ratchet: a cada ciclo aprovado, remova da baseline os itens corrigidos e reduza em pelo menos 10% a contagem da categoria priorizada; arredonde a meta para cima e nunca abaixo de 1 item enquanto houver dívida;
  • o CI pode validar ou reduzir a baseline, mas nunca adicionar novos problemas a ela. Toda mudança de patamar exige diff revisado, responsável e justificativa.

Se o analisador não oferecer identidade estável para comparar achados, mantenha-o observacional até existir normalização versionada. Tempo de runner compartilhado e sinal remoto flutuante não são fontes bloqueantes.

Verificações específicas de Laravel

Em projeto Laravel, avalie também:

  • boot da aplicação nos ambientes de teste suportados e resolução de bindings críticos;
  • criação dos caches de configuração e rotas em ambiente descartável, sem publicar os artefatos como configuração de produção;
  • migrations do zero e rollback/forward quando o projeto declarar essa compatibilidade, sempre em banco efêmero exclusivo;
  • testes de autorização para policies/gates e testes de arquitetura para limites entre camadas;
  • filas, eventos e scheduler com fakes ou serviços efêmeros e expectativas explícitas;
  • proibição de env() fora dos arquivos de configuração por regra estática versionada.

Não rode migrations, limpezas de cache, filas ou qualquer comando mutável em produção como parte da avaliação. Falha na criação do ambiente é falha de infraestrutura e deve ser distinguida de regressão do produto, sem converter ausência de teste em aprovação.

SCA reproduzível

Gere a SBOM CycloneDX de forma reproduzível a partir de composer.lock, com Composer e gerador fixados, e prepare fora do gate a vulnerability DB do Trivy como artefato imutável. Fixe a imagem ou o binário do Trivy por digest, configure TRIVY_DB_CACHE_DIR para o diretório extraído desse artefato e verifique seu conteúdo contra TRIVY_DB_ARTIFACT_SHA256 antes da análise. O gate bloqueante executa trivy sbom --cache-dir "$TRIVY_DB_CACHE_DIR" --offline-scan --skip-db-update --format json <sbom> sem consultar a rede. Variável, DB ou SBOM ausente e digest divergente são falha de infraestrutura: não aprovam o gate nem criam baseline.

O composer audit normal consulta advisories dos repositórios configurados. Por depender de estado de registry, ele é apenas informativo e nunca substitui o scanner offline bloqueante.

SonarQube opcional

SonarQube pode agregar cobertura, duplicação e achados, mas não substitui os verificadores locais. Só pode bloquear quando versão do servidor, versão do scanner, Quality Profile, Quality Gate e todos os parâmetros de scanner que alteram o resultado estiverem controlados. Caso contrário, publique o resultado apenas como informativo.

Aplicação por fases

Use o plano de ação compartilhado: inventarie e contrate os gates na Fase 0, calibre ferramentas e baseline na Fase 1, bloqueie regressões na Fase 2 e reduza a baseline por ratchet na Fase 3. Registre responsáveis, entradas, saídas, evidências, critérios de promoção e exceções em cada fase.

Entrega

Produza em português:

  • inventário por categoria, ferramenta escolhida, versão/configuração e justificativa;
  • tabela com comando proposto, entradas fixadas, saída, condição de bloqueio, tempo limite e dono;
  • baseline e identificadores usados para comparar regressões;
  • limiares adotados, passos do ratchet e critérios de promoção;
  • tratamento separado para falha do produto e falha da infraestrutura;
  • exceções com escopo, risco, aprovador, dono e validade;
  • comandos ou diffs de instalação/pipeline apresentados apenas como proposta pendente de aprovação.

Limites de autorização

  • Não instala nem atualiza dependências sem autorização explícita.
  • Não altera pipeline, configurações do projeto ou baselines sem autorização explícita.
  • Não executa mutações externas nem comandos contra produção.
  • Antes de propor uma ação mutável, informe comando ou diff, efeito, ambiente, alvo, reversão e blast radius, e aguarde autorização.
  • Não usa advisories remotos correntes, regras remotas flutuantes ou configuração SonarQube não controlada como fonte bloqueante.

Skills relacionadas

quality-gates · automation-engineer · devsecops · laravel-platform

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Accessibility auditing and remediation skill for Vue 3 + Reka UI. Use when reviewing components, verifying WCAG 2.1 AA, fixing ARIA issues, or validating keyboard navigation in Reka UI components.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

ai-infra

무료

Infraestrutura para IA — GPU, servidores MCP, gateway de LLM, pipeline de inferência, custo de token, cache semântico e observabilidade de modelo. Use quando o usuário disser "GPU", "MCP server", "LLM", "inferência", "modelo", "gateway de IA", "custo de token", "rate limit da API de IA", "self-host de modelo".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

alt-text

무료

Escreve texto alternativo e descrição de imagem para peças de rede social. Use quando o usuário disser "alt text", "texto alternativo", "descrição da imagem", "acessibilidade da peça", "descrever para leitor de tela", ou automaticamente antes de qualquer publicação. Obrigatório em todas as peças — em carrossel, um por slide.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

Organiza, compara e seleciona entre as variações geradas, e publica a grade de comparação como Artifact para aprovação do time. Use quando o usuário disser "qual dessas", "comparar as variações", "escolher a melhor", "mostrar as opções", "montar grade de aprovação", ou após qualquer lote de geração. Selecionar é trabalho, não detalhe.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

Aumenta resolução e qualidade de imagem via Freepik/Magnific, ou orienta o processo manual quando não há chave. Use quando o usuário disser "upscale", "melhorar a resolução", "a imagem está pixelada", "Magnific", "Freepik", "aumentar a imagem", "imagem pequena demais". Gasta crédito — exige confirmação.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

CI/CD e automação — GitHub Actions, Terraform, OpenTofu, Ansible, n8n. Use quando o usuário disser "pipeline", "CI/CD", "GitHub Actions", "workflow", "terraform", "ansible", "n8n", "automatizar", "deploy automático", "IaC".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

pwdev-solucoes/pwdev-claude-marketplace32026년 10월 15일 업데이트

pwdev-solucoes의 스킬 모두 보기

이 스킬의 문제 신고