Skip to content

/sonarqube

Levantar SonarQube con Docker, analizar el código y proponer mejoras. También: análisis estático, deuda técnica, code smells, cobertura, calidad automatizada.

From plugin
alfred-dev
10111 skills10 agents20 commands5 hooks
+1

Claude Code

$ npx -y skills add 686f6c61/alfred-dev --skill sonarqube --agent claude-code

SKILL.md

sonarqube.SKILL.md
name: sonarqube
description: "Levantar SonarQube con Docker, analizar el código y proponer mejoras. También: análisis estático, deuda técnica, code smells, cobertura, calidad automatizada."
disable-model-invocation: true

Análisis de calidad con SonarQube

Resumen

Este skill levanta una instancia de SonarQube con Docker, ejecuta un análisis del código del proyecto y traduce los resultados en propuestas de mejora accionables. SonarQube detecta bugs, vulnerabilidades, code smells y problemas de cobertura que las herramientas de linting no cubren.

No sustituye al qa-engineer ni al security-officer: complementa su trabajo con una segunda opinión automatizada basada en reglas estáticas probadas en millones de proyectos.

Proceso

Paso 1: preflight de Docker y permisos

Comprobar si Docker está disponible y si el daemon responde:

docker --version
docker info

Interpreta el resultado con estas reglas:

  • **Si `docker --version` falla**: Docker no está instalado. Explica al usuario que SonarQube lo necesita y que la instalación puede requerir permisos de administrador.
  • **Si `docker --version` funciona pero `docker info` falla**: Docker está instalado, pero el daemon no está disponible. Explica al usuario que hay que arrancar Docker Desktop o el servicio del sistema antes de continuar.

**No instales Docker, no abras Docker Desktop y no arranques el daemon sin aprobación explícita del usuario.** Si la orden viene desde `/alfred audit`, respeta la decisión tomada en su preflight. Si no existe una autorización previa, pídela ahora y espera respuesta.

Si el usuario autoriza la instalación, instala la última versión estable según la plataforma:

**macOS:**

brew install --cask docker
open -a Docker

**Linux (Ubuntu/Debian):**

curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo usermod -aG docker $USER

**Windows (PowerShell como administrador):**

winget install Docker.DockerDesktop

Si el usuario autoriza arrancar Docker cuando está instalado pero el daemon no responde, usa la estrategia mínima necesaria para la plataforma:

**macOS:**

open -a Docker

**Linux (systemd):**

sudo systemctl start docker

**Windows (PowerShell):**

Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe"

Después de instalar o arrancar Docker, verifica otra vez con `docker info`.

  • Si `docker info` responde correctamente, continúa.
  • Si el usuario rechaza la instalación o el arranque, o si el daemon sigue sin responder, **detén aquí la rama de SonarQube** y devuelve un resultado explícito: "SonarQube omitido por decisión del usuario o por falta de permisos". No intentes forzarlo por otras vías.

Paso 2: levantar SonarQube

Antes de levantar el contenedor:

  • Comprueba si ya existe `sonarqube-alfred`. Si existe de una ejecución anterior, elimínalo primero para evitar conflictos:
docker rm -f sonarqube-alfred 2>/dev/null || true
  • Comprueba si el puerto `9000` ya está en uso. Si lo está, detén la ejecución y pregunta al usuario si quiere liberar ese puerto o continuar sin SonarQube. No mates procesos por tu cuenta.
docker run -d --name sonarqube-alfred -p 9000:9000 sonarqube:community

Esperar a que SonarQube esté listo (puede tardar 1-2 minutos):

Usa este bucle exacto o uno equivalente. **No uses la variable `status` en scripts de shell**: en `zsh` es de solo lectura y romperá la espera. Si necesitas guardar el estado en una variable, usa `sonar_status`.

until curl -s http://localhost:9000/api/system/status | grep -q '"status":"UP"'; do sleep 5; done

Credenciales por defecto: admin/admin. Cambiar la contraseña en el primer acceso.

Paso 3: configurar el proyecto

  • Crear un proyecto en SonarQube (vía API o interfaz web).
  • Generar un token de autenticación para el análisis.
  • Crear o verificar el fichero `sonar-project.properties` en la raíz del proyecto:
sonar.projectKey=nombre-del-proyecto
sonar.sources=src
sonar.tests=tests
sonar.language=ts
sonar.sourceEncoding=UTF-8

Adaptar según el stack del proyecto (lenguaje, directorios de código y tests).

Paso 4: ejecutar el análisis

Para proyectos Node/TypeScript:

npx sonarqube-scanner

Para proyectos Python:

pip install pysonar-scanner && pysonar-scanner

Alternativa universal con Docker:

docker run --rm -v "$(pwd):/usr/src" sonarsource/sonar-scanner-cli

Paso 5: interpretar resultados

Acceder a http://localhost:9000 y revisar el dashboard del proyecto. Clasificar los hallazgos por:

  • **Bugs**: errores que pueden causar comportamiento incorrecto. Prioridad alta.
  • **Vulnerabilidades**: problemas de seguridad detectados por reglas OWASP/CWE. Notificar al security-officer.
  • **Code smells**: problemas de mantenibilidad. Priorizar los de mayor impacto.
  • **Cobertura**: porcentaje de código cubierto por tests. Identificar zonas sin cobertura críticas.

Paso 6: generar informe de mejoras

Crear un informe con:

  • Resumen ejecutivo: métricas principales (bugs, vulnerabilidades, cobertura, deuda técnica).
  • Top 10 hallazgos por impacto con la corrección propuesta.
  • Zonas de código con mayor densidad de problemas.
  • Comparación con el análisis anterior si existe.

Paso 7: limpiar

Cuando el análisis esté completo y los resultados revisados:

docker stop sonarqube-alfred && docker rm sonarqube-alfred

Si el análisis falla a mitad del proceso, intenta igualmente la limpieza final del contenedor temporal antes de salir.

Qué NO hacer

  • No dejar SonarQube corriendo indefinidamente. Es una herramienta de análisis puntual, no un servicio permanente.
  • No instalar Docker, arrancar el daemon ni abrir Docker Desktop sin permiso explícito del usuario.
  • No tratar todos los hallazgos como iguales. Priorizar por impacto real, no por cantidad.
  • No corregir hallazgos sin entender por qué SonarQube los marca.
Read more
@686f6c61
Ships withalfred-dev

Tu equipo de desarrolladores en un plugin. 10 agentes, 11 skills planas, 18 comandos /alfred-dev:*. Memoria persistente, quality gates con evidencia y MCP local.

10111 skills10 agents1 MCP
Get the whole plugin, auto-invoked

Stars on GitHub

Momentum

stars in total
101
Star history of 686f6c61/alfred-dev on GitHub, a chart by star-history.com

Other skills on alfred-dev.

compliance-check
Auto-invoked

compliance-check

Usar para verificar cumplimiento RGPD, NIS2 y CRA. También: verificar RGPD, cumplimiento normativo, NIS2, CRA, Cyber Resilience…

@686f6c61@686f6c61Install Skill
evaluate-dependency
Auto-invoked

evaluate-dependency

Usar antes de aceptar una dependencia nueva. También: auditar paquete, licencia, CVEs, transitivas, bundle, npm install, pip,…

@686f6c61@686f6c61Install Skill
incident-response
Auto-invoked

incident-response

Protocolo de respuesta ante incidentes en produccion: triaje, mitigacion, causa raiz y postmortem. Usar ante caidas, errores…

@686f6c61@686f6c61Install Skill
memory
Auto-invoked

memory

This skill should be used when the user asks to record a design decision, search past project decisions, inspect the Alfred…

@686f6c61@686f6c61Install Skill
sbom-generate
Auto-invoked

sbom-generate

Usar para generar Software Bill of Materials para cumplimiento del CRA. También: Software Bill of Materials, inventario de…

@686f6c61@686f6c61Install Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about sonarqube.

Which coding agents can use sonarqube?
sonarqube installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.