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

quality-gates-node

Quality gates determinísticos para aplicações e serviços Node.js, JavaScript e TypeScript. Use quando o usuário pedir "quality gate Node.js", ESLint ou tsc em Node.js, testes, cobertura, complexidade, SAST, SCA, build ou baseline para Node.js.

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

설치 방법 보기

포함된 파일(1)

  • SKILL.md9.6 KB

SKILL.md(원문)

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

Quality Gates para Node.js e TypeScript

Você projeta uma política de qualidade reproduzível para aplicações, serviços, CLIs e bibliotecas Node.js. O padrão é bloquear regressões no código alterado e reduzir a dívida existente por ratchet, sem ampliar a baseline automaticamente nem transformar indisponibilidade da infraestrutura em aprovação.

Levantamento obrigatório

Antes de recomendar um gate, registre:

  1. versões de Node.js, TypeScript, gerenciador de pacotes e ferramentas, fixadas no lockfile e no arquivo de versão do runtime ou na imagem por digest;
  2. comandos existentes, formato de módulos, targets, sistema operacional, arquitetura e variáveis não secretas que alteram build ou testes;
  3. caminhos de código novo e legado, pacotes do workspace, superfícies críticas, baseline e orçamento de feedback;
  4. configurações versionadas, conjuntos de regras, fixtures, seeds, relógio, locale, fuso e serviços efêmeros usados nas verificações;
  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 scripts do projeto, compatibilidade de runtime ou limites permanentes sem medição e aprovação.

Matriz de ferramentas e contratos

CategoriaVerificador preferencialEntradas determinísticasSaída e regra bloqueante
LintESLintlockfile, versões fixadas, configuração e regras locais versionadas, parser, caminhos e exclusões explícitosJSON; bloqueia erro novo e aumento da baseline por regra, caminho, linha e impressão digital normalizada
Type checkingtsc --noEmitNode.js, TypeScript, lockfile, tsconfig*, project references e declarações versionadoscódigo de saída e diagnósticos; bloqueia qualquer erro novo e aumento da baseline por código, arquivo e posição normalizada
Testesrunner existente, como Node.js test runner, Vitest ou Jestruntime, lockfile, configuração, seed, concorrência, relógio, locale, fuso, fixtures, mocks e serviços por imagem/digestcódigo de saída e JUnit; bloqueia teste falho, erro ou execução incompleta, distinguindo falha do produto de falha da infraestrutura
Coberturaprovider local do runner, com versão fixadamesmo conjunto de testes, provider, sourcemaps e inclusões/exclusões versionadosLCOV/JSON; bloqueia cobertura inferior a 80% das linhas alteradas ou queda global maior que 0,0 ponto percentual
ComplexidadeESLint complexity ou analisador local equivalenteversão, regras, parser, paths, exclusões e baseline versionadosJSON; bloqueia função nova ou alterada com complexidade ciclomática > 10 e qualquer aumento da baseline
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, em modo offline, sobre SBOM CycloneDXlockfile, gerador e SBOM versionados, versão/imagem do Trivy fixada 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 ausente, digest divergente ou DB ausente é falha de infraestrutura
Buildscript de build existente em ambiente limporuntime, lockfile, instalação imutável, bundler/compiler, targets, variáveis e configuração versionadoscódigo de saída e manifesto de artefatos; bloqueia falha, saída ausente ou mudança não aprovada no conjunto de artefatos esperado

Ferramentas equivalentes são aceitáveis somente quando preservam o contrato de entradas, saída analisável e condição de falha. O caminho bloqueante usa instalação imutável a partir do lockfile e apenas verifica: não atualiza lockfile, não aplica autofix, não regrava snapshots e não publica artefatos.

Política de bloqueio e ratchet

Adote estes padrões iniciais e calibre-os na fase observacional:

  • código novo: zero erro de lint ou tipos, zero teste falho, zero achado SAST ERROR, zero advisory controlado novo high ou critical e zero violação nova de complexidade;
  • cobertura: pelo menos 80% das linhas alteradas e queda global máxima de 0,0 ponto percentual;
  • complexidade: funções novas ou alteradas com complexidade ciclomática ≤ 10;
  • build: execução limpa deve terminar com sucesso e produzir exatamente os artefatos declarados no manifesto versionado; diferenças exigem revisão explícita;
  • dívida existente: baseline versionada com identificador estável, regra, pacote/símbolo/caminho e quantidade; qualquer aumento bloqueia;
  • ratchet: a cada ciclo aprovado, remova itens corrigidos e reduza em pelo menos 10% a contagem da categoria priorizada; arredonde para cima e nunca abaixo de 1 item enquanto houver dívida.

O CI pode comparar ou reduzir a baseline, mas nunca adicionar novos problemas a ela. Mudanças de limiar, baseline, snapshot de advisories, manifesto ou exclusão exigem diff revisado, responsável, justificativa e evidência. Se um verificador não produzir identidade estável, mantenha-o observacional até existir normalização versionada.

Cuidados específicos de Node.js

  • Use apenas um lockfile coerente com o gerenciador e fixe a versão desse gerenciador; instalação que atualize resolução ou lockfile não é uma verificação determinística.
  • Gere a SBOM CycloneDX de forma reproduzível a partir do lockfile e prepare fora do gate a vulnerability DB do Trivy como artefato imutável por digest. Fixe TRIVY_DB_CACHE_DIR na configuração versionada para o diretório extraído desse artefato e verifique-o contra TRIVY_DB_ARTIFACT_SHA256 antes do gate. No caminho bloqueante, execute trivy sbom --cache-dir "$TRIVY_DB_CACHE_DIR" --offline-scan --skip-db-update --format json <sbom>; variável ausente, digest divergente, DB ou SBOM ausente é falha de infraestrutura, sem consultar a rede.
  • npm audit, pnpm audit e yarn npm audit consultam endpoints de registry: esses audits dos gerenciadores são apenas informativos e nunca substituem o scanner offline bloqueante.
  • Execute type checking para todos os projetos e packages declarados, inclusive project references; não confunda transpilar sem checagem com aprovação de tipos.
  • Teste os formatos de módulo, exports e versões de runtime realmente suportados. Rede, relógio, aleatoriedade, concorrência e serviços externos devem ser substituídos por entradas controladas ou ambientes efêmeros fixados.
  • Compare achados por package e caminho normalizado em monorepos. Cache só pode acelerar o gate; um cache ausente ou inválido deve recomputar o resultado, não alterar o veredito.
  • Separe falha para obter runtime, restaurar cache ou iniciar serviço da regressão do produto. Falha de infraestrutura não pode ser convertida em gate aprovado nem em baseline nova.
  • Não use tempo de runner compartilhado, telemetria remota ou regras hospedadas flutuantes como fonte bloqueante.

SonarQube opcional

SonarQube pode agregar cobertura, duplicação e achados, mas não substitui ESLint, TypeScript, testes, SAST ou SCA 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 sinal 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, versão/configuração e justificativa;
  • tabela com comando proposto, entradas fixadas, saída, bloqueio, tempo limite e dono;
  • baseline, identificadores de comparação, limiares e passos do ratchet;
  • matriz de runtime, formato de módulo e packages cobertos;
  • snapshot controlado de advisories e manifesto esperado do build;
  • tratamento separado para falha do produto e falha da infraestrutura;
  • exceções com escopo, risco, aprovador, dono e validade;
  • instalações ou diffs de pipeline apenas como propostas pendentes 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, snapshots, manifestos ou baselines sem autorização explícita.
  • Não publica pacotes ou artefatos, não executa mutações externas e não usa produção como alvo.
  • 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, audits de registry, regras remotas flutuantes ou configuração SonarQube não controlada como fonte bloqueante.

Skills relacionadas

quality-gates · quality-gates-vue · automation-engineer · devsecops

리뷰

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

댓글

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

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

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. 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의 스킬 모두 보기

이 스킬의 문제 신고