BookinglyTech News
Software

Jeff, la CLI de Go para revisión semántica de código en modo solo‑lectura

Jeff permite detectar problemas estructurales en el código usando reglas basadas en Jev, tanto en local como en pipelines de CI.

2 min de lecturaShow HN0 vistas

Jeff es una herramienta de línea de comandos escrita en Go que analiza tu código de forma estática y semántica. No modifica archivos; simplemente verifica que el proyecto cumpla con un conjunto de reglas definidas por Jev. Puedes ejecutarla en tu máquina o integrarla en un flujo CI para bloquear cambios que violen esas normas.

Uso básico

# Analiza los archivos del directorio actual o los que pases como argumentos
jeff check [--output-format text|json] [--no-cache] [PATH...]

El comando devuelve un código de salida que indica el resultado: 0 si todas las reglas pasan, 1 si se encontró una violación y 2 para errores de configuración o uso. El formato JSON facilita la ingestión de resultados por herramientas de CI.

Autenticación y configuración

Jeff necesita una credencial de Typesafe para acceder a reglas externas. Puedes almacenarla en el keyring del sistema con jeff auth login y eliminarla con jeff auth logout. Las variables de entorno TYPESAFE_API_KEY y TYPESAFE_BASE_URL permiten personalizar la fuente de reglas, útil para entornos de pruebas.

Reglas incluidas

El proyecto incluye más de veinte reglas, entre las que destacan:

  • GEN001 – Detecta archivos con responsabilidades mezcladas.
  • GEN004 – Señala baja cohesión entre conceptos o datos.
  • GEN008 – Identifica falta de validación de entradas externas.
  • GEN014 – Encuentra conocimiento de dominio duplicado.
  • GEN020 – Marca estructuras que dificultan pruebas unitarias.

Cada regla devuelve una descripción clara y, cuando corresponde, un mensaje de diagnóstico que ayuda a localizar el problema.

Integración CI

Al usar la opción --output-format json, Jeff produce una salida estructurada que los sistemas de CI pueden parsear para fallar el build automáticamente. El código de salida 1 indica que al menos una regla se ha violado sin errores internos, mientras que 2 señala problemas de configuración que deben resolverse antes de confiar en los resultados.

Para más detalles sobre la referencia de Jev, consulta la documentación oficial en el repositorio de Typesafe.


Jeff es interesante para equipos que buscan reforzar la calidad del código sin depender de análisis de cobertura o linters tradicionales. Su enfoque semántico complementa herramientas como golint o staticcheck, y al ser de solo lectura, no introduce riesgos de modificaciones automáticas. La adopción dependerá de la necesidad de reglas específicas y de la integración con los pipelines existentes.