AST Quality Gate — Verificación de Calidad Multi-Lenguaje

SkillDev tools

Use when verifying the quality of AI-generated code before merge.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the AST Quality Gate — Verificación de Calidad Multi-Lenguaje skill

What this skill tells your AI

The instructions your AI receives, as published by gonzalezpazmonica/pm-workspace in .claude/skills/ast-quality-gate/SKILL.md and read by ahel’s review.

Sistema de quality gates para verificar código generado por IA en los 16 language packs de pm-workspace. Detecta los 5 patrones de error más comunes en código LLM-generado y 7 criterios universales adicionales.

Cuándo usar

  • Post-implementación SDD: verificar código antes de PR
  • Pre-commit hook: bloquear patrones críticos
  • /ast-quality-gate {fichero-o-directorio} — bajo demanda
  • PostToolUse hook async tras Edit|Write en SDD sessions

Arquitectura de 3 Capas

Capa 1: Herramienta nativa del lenguaje (máxima precisión)
  → eslint/ruff/golangci-lint/cargo clippy/dotnet build/phpstan/...
  → Output: JSON nativo normalizado

Capa 2: Semgrep (cobertura universal de patrones LLM)
  → rules/llm-antipatterns.yaml (8+ lenguajes simultáneos)
  → Output: semgrep JSON normalizado

Capa 3: LSP Claude Code (semántica real-time)
  → 11 lenguajes (dic 2025)
  → tipo nulo, símbolo no resuelto, import no usado

12 Quality Gates

GatePatrónSeveridad
QG-01Async/concurrencia sin manejo de erroreserror
QG-02N+1 queries / acceso DB en looperror
QG-03Null/nil/None dereference sin checkerror
QG-04Magic numbers/strings sin nombrewarning
QG-05Exception handling vacío o excesivamente amplioerror
QG-06Complejidad ciclomática > 15warning
QG-07Función/método > 50 líneaswarning
QG-08Duplicación de código > 15%warning
QG-09Credenciales/secrets hardcodeadoserror
QG-10Logging excesivo en producciónwarning
QG-11Código muerto / imports no usadosinfo
QG-12Lógica nueva sin testserror

Pipeline de Ejecución

Paso 1: Detectar lenguaje

scripts/ast-quality-gate.sh detecta por extensión/fichero de proyecto (16 lenguajes).

Paso 2: Ejecutar herramienta nativa

Ver comandos por lenguaje en references/language-commands.md.

Paso 3: Ejecutar Semgrep (patrones LLM)

semgrep --config .opencode/skills/ast-quality-gate/references/semgrep-rules.yaml \
        --json --no-git-ignore "$TARGET"

Paso 4: Normalizar a JSON unificado

Ver references/unified-schema.md para el schema completo. Output en output/quality-gates/YYYYMMDD-HHMMSS-{lenguaje}.json

Paso 5: Calcular score y veredicto

score = 100 - (errores × 10) - (warnings × 3) - (infos × 1)  [min 0]
ScoreGradeVeredicto
90-100APASS: listo para PR
75-89BPASS_WITH_WARNINGS: PR con advisory
60-74CREVIEW: requiere revisión human
40-59DFAIL: corregir antes de PR
0-39FBLOCK: bloquear commit

Integración SDD

PostToolUse hook (async)

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "command": ".opencode/hooks/ast-quality-gate-hook.sh",
      "async": true
    }]
  }
}

Umbral de bloqueo

Gates QG-01, QG-03, QG-05, QG-09, QG-12 son bloqueantes (exit 1). Gates QG-02, QG-04, QG-06, QG-07, QG-08, QG-10, QG-11 son advisory.

Uso manual

bash scripts/ast-quality-gate.sh src/               # completo
bash scripts/ast-quality-gate.sh src/ --semgrep-only # solo Semgrep
bash scripts/ast-quality-gate.sh src/ --native-only  # solo nativo
bash scripts/ast-quality-gate.sh src/ --advisory     # sin bloqueo

Prerequisitos

  • semgrep ≥ 1.60.0 (pip install semgrep)
  • Herramienta nativa del lenguaje instalada (ver references/language-commands.md)
  • jq para normalización JSON

Esquemas y referencias

  • references/unified-schema.md — Schema JSON unificado y jq transformations
  • references/semgrep-rules.yaml — 20 reglas Semgrep por lenguaje
  • references/language-commands.md — Comandos CLI por lenguaje

Signals

GitHub stars
50
Forks
12
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages
  • K1binfo
    installs-packages (in references/language-commands.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
ast-quality-gate
Source
github.com/gonzalezpazmonica/pm-workspace