claude-git-hooks 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,18 +5,43 @@ Todos los cambios notables en este proyecto se documentarán en este archivo.
5
5
  El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.5.3] - 2025-09-12
9
+
10
+ ### Fixed
11
+
12
+ - 🔧 Comando `analyze-diff` ahora siempre compara con ramas origin
13
+ - Si se especifica rama: compara con `origin/rama-especificada`
14
+ - Si no se especifica: compara con `origin/rama-actual`
15
+ - Fallback automático a `origin/develop` y luego `origin/main` si no existe la rama origin
16
+
17
+ ### Changed
18
+
19
+ - 📝 Documentación mejorada con intro atractiva y características principales
20
+ - ⚠️ Aclaración importante sobre uso exclusivo en WSL/Ubuntu (no PowerShell/CMD)
21
+ - 🔗 Enlaces directos a configuración previa en sección de instalación
22
+
23
+ ## [1.5.2] - 2025-09-11
24
+
25
+ ### Changed
26
+
27
+ - 🈳 Traducidos todos los logs a inglés
28
+ - 📋 Aclaraciones de uso de analyze-diff en README
29
+
8
30
  ## [1.5.1] - 2025-09-11
9
31
 
10
32
  ### Added
33
+
11
34
  - 📋 Sección CHEATSHEET en README
12
35
 
13
36
  ### Fixed
37
+
14
38
  - 🔧 SKIP_ANALYSIS_BLOCK funciona correctamente
15
39
  - 📝 Estructura del proyecto en documentación
16
40
 
17
41
  ## [1.5.0] - 2025-09-10
18
42
 
19
43
  ### Added
44
+
20
45
  - 🔍 Nuevo comando `claude-hooks analyze-diff [base]` para análisis de diferencias entre ramas
21
46
  - Genera título de PR conciso (máx. 72 caracteres)
22
47
  - Crea descripción detallada del PR con markdown
@@ -27,15 +52,18 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
27
52
  - Guarda resultados en `.claude-pr-analysis.json`
28
53
 
29
54
  ### Changed
55
+
30
56
  - 🎯 Modo SonarQube ahora es el predeterminado (no hay selección interactiva)
31
57
  - ⚡ Eliminada lógica de selección de modo del pre-commit hook
32
58
  - 🗑️ Removidas referencias a guardado de preferencias `.claude-analysis-mode`
33
59
 
34
60
  ### Fixed
61
+
35
62
  - 🐛 Eliminado prompt interactivo incompatible con algunas consolas
36
63
  - 🔧 Pre-commit ahora va directo al análisis sin solicitar input del usuario
37
64
 
38
65
  ### Removed
66
+
39
67
  - 🗑️ Eliminada selección interactiva de modo de análisis
40
68
  - 🗑️ Removido comando `set-mode` (ya no es necesario)
41
69
  - 🗑️ Eliminada variable de entorno `CLAUDE_ANALYSIS_MODE`
@@ -43,6 +71,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
43
71
  ## [1.4.2] - 2025-09-08
44
72
 
45
73
  ### Added
74
+
46
75
  - 🚫 Comentario `// SKIP-ANALYSIS` para excluir código del análisis
47
76
  - Una línea: excluye la siguiente línea
48
77
  - Bloque: código entre dos comentarios `// SKIP_ANALYSIS_BLOCK` es excluido
@@ -51,31 +80,37 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
51
80
  - Inyección de dependencias con field injection es aceptable
52
81
 
53
82
  ### Changed
83
+
54
84
  - 📋 Actualizada documentación con casos de uso de commits clarificados
55
85
  - 🎯 Templates de prompts actualizados con reglas de Spring Framework
56
86
 
57
87
  ### Fixed
88
+
58
89
  - 🔧 Clarificado que `git commit --no-verify -m "auto"` genera mensaje automático sin análisis
59
90
 
60
91
  ## [1.4.1] - 2025-09-04
61
92
 
62
93
  ### Changed
94
+
63
95
  - 🚀 **BREAKING**: Eliminado modo estándar, ahora solo existe modo SonarQube
64
96
  - ⚡ Prompts optimizados para Claude: reducción de ~80% en tokens manteniendo eficacia
65
97
  - 🎯 Nuevo formato ultra-compacto de prompts usando notación concisa y directivas claras
66
98
  - 📝 Templates simplificados: CLAUDE_ANALYSIS_PROMPT_SONAR.md, CLAUDE_PRE_COMMIT_SONAR.md, CLAUDE_RESOLUTION_PROMPT.md
67
99
 
68
100
  ### Fixed
101
+
69
102
  - 🐛 Mejorada la lógica de escritura para mejor formación del prompt de resolución de problemas críticos
70
103
  - 🔧 Corregido el formato del prompt AI-friendly para resolución de issues
71
104
 
72
105
  ### Removed
106
+
73
107
  - 🗑️ Eliminados archivos del modo estándar: CLAUDE_PRE_COMMIT.md, CLAUDE_ANALYSIS_PROMPT.md
74
108
  - 🗑️ Eliminada lógica de selección de modo (ahora siempre usa SonarQube)
75
109
 
76
110
  ## [1.4.0] - 2025-08-29
77
111
 
78
112
  ### Added
113
+
79
114
  - 🎯 Prompts externalizados en archivos `.md` para facilitar personalización
80
115
  - 🤖 Generación automática de prompt AI-friendly para resolución de problemas críticos
81
116
  - 📝 Nuevos templates de prompts: `CLAUDE_ANALYSIS_PROMPT.md`, `CLAUDE_ANALYSIS_PROMPT_SONAR.md`, `CLAUDE_RESOLUTION_PROMPT.md`
@@ -85,16 +120,19 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
85
120
  - 📖 Ejemplos detallados de respuestas JSON con blocking issues en README
86
121
 
87
122
  ### Changed
123
+
88
124
  - 🏗️ Estandarización de `blockingIssues` a formato objeto (nunca strings)
89
125
  - 📦 Separación de prompts del código para mayor mantenibilidad
90
126
  - 🔧 Hook pre-commit simplificado sin fallbacks complejos
91
127
  - 📁 Instalador actualizado para copiar todos los templates de prompts
92
128
 
93
129
  ### Fixed
130
+
94
131
  - 🐛 Consistencia en el formato de respuesta JSON para ambos modos
95
132
  - 🔧 Mejor manejo de errores cuando faltan archivos de configuración
96
133
 
97
134
  ### Technical
135
+
98
136
  - 🏗️ Función `generate_resolution_prompt()` para crear prompts de resolución
99
137
  - 📝 Templates de prompts con placeholders reemplazables
100
138
  - 🎯 Estructura JSON estricta para blockingIssues con campos obligatorios
@@ -103,6 +141,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
103
141
  ## [1.3.0] - 2025-08-28
104
142
 
105
143
  ### Added
144
+
106
145
  - 🚀 Nuevo comando `claude-hooks update` para actualizar a la última versión disponible
107
146
  - 🔄 Verificación automática de versión antes de cada commit con prompt interactivo
108
147
  - 📜 Script compartido `check-version.sh` para evitar duplicación de código
@@ -110,16 +149,19 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
110
149
  - 📊 Mensajes informativos detallados durante el proceso de verificación y actualización
111
150
 
112
151
  ### Changed
152
+
113
153
  - 🎯 El hook `pre-commit` ahora verifica automáticamente si hay actualizaciones disponibles
114
154
  - 📦 La instalación ahora incluye el script `check-version.sh` en `.git/hooks/`
115
155
  - 🔧 Mejorada la UX con mensajes claros sobre el estado de la versión
116
156
 
117
157
  ### Fixed
158
+
118
159
  - 🐛 Corregido el parsing de versión desde NPM API (usaba endpoint incorrecto)
119
160
  - 🔧 Mejorada la compatibilidad del prompt interactivo para consolas IntelliJ/WSL
120
161
  - 📝 Múltiples métodos de fallback para leer input del usuario
121
162
 
122
163
  ### Technical
164
+
123
165
  - 🏗️ Función `getLatestVersion()` ahora usa `dist-tags.latest` de NPM API
124
166
  - 🔄 Función `checkVersionAndPromptUpdate()` reutilizable para verificación
125
167
  - 📁 Script compartido para evitar duplicación de lógica de verificación
@@ -128,33 +170,39 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
128
170
  ## [1.2.4] - 2025-08-22
129
171
 
130
172
  ### Fixed
173
+
131
174
  - 🐛 Corregido el análisis de SonarQube para mostrar correctamente el formato detallado
132
175
  - 📊 Arreglado el parsing de JSON para buscar `QUALITY_GATE` en mayúsculas según las pautas
133
176
  - 🔧 Actualizado el mapeo de campos JSON para coincidir con la estructura esperada
134
177
 
135
178
  ### Changed
179
+
136
180
  - 📈 Añadidas métricas de coverage, duplications y complexity al formato SonarQube
137
181
  - 📝 Actualizado el archivo de pautas SonarQube para incluir todas las métricas
138
182
 
139
183
  ## [1.2.3] - 2025-08-22
140
184
 
141
185
  ### Added
186
+
142
187
  - 🚀 Actualización automática de `.gitignore` durante la instalación
143
188
  - 📝 Claude Hooks ahora agrega automáticamente las entradas necesarias a `.gitignore`
144
189
  - 🔍 El comando `status` ahora muestra el estado de las entradas en `.gitignore`
145
190
 
146
191
  ### Changed
192
+
147
193
  - 🎯 Mejorado el proceso de instalación para ser más completo y automatizado
148
194
  - 📊 El comando `status` ahora proporciona información más detallada sobre la configuración
149
195
 
150
196
  ## [1.2.2] - 2025-08-22
151
197
 
152
198
  ### Fixed
199
+
153
200
  - 🐛 Corregido problema donde los archivos markdown de pautas no se instalaban correctamente desde npm
154
201
  - 📁 Los archivos de pautas ahora se instalan en el directorio `.claude/` en lugar de la raíz del proyecto
155
202
  - 🔧 Actualizado el hook pre-commit para buscar los archivos de pautas en la nueva ubicación `.claude/`
156
203
 
157
204
  ### Changed
205
+
158
206
  - 📂 Los archivos `CLAUDE_PRE_COMMIT.md` y `CLAUDE_PRE_COMMIT_SONAR.md` ahora se almacenan en `.claude/`
159
207
  - 🎯 Mejorada la organización del proyecto manteniendo los archivos de configuración separados del código fuente
160
208
  - 📝 Actualizada la documentación para reflejar la nueva estructura de directorios
@@ -162,6 +210,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
162
210
  ## [1.2.1] - 2024-07-24
163
211
 
164
212
  ### Fixed
213
+
165
214
  - 🐛 Corregido problema de bloqueo del spinner durante verificación de autenticación Claude
166
215
  - 🎨 Arreglado sistema de entretenimiento para mostrar correctamente spinner, chistes y countdown
167
216
  - 🔧 Solucionado problema de líneas duplicadas en consola después del segundo chiste
@@ -169,11 +218,13 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
169
218
  - ⏱️ Aumentado timeout de verificación de autenticación a 2 minutos
170
219
 
171
220
  ### Changed
221
+
172
222
  - 🔄 Reemplazado `execSync` por `spawn` en verificación de autenticación para evitar bloqueos
173
223
  - 📍 Mejorado sistema de posicionamiento del cursor para renderizado consistente
174
224
  - 🎯 Optimizada lógica de actualización del spinner para evitar race conditions
175
225
 
176
226
  ### Technical
227
+
177
228
  - 🏗️ Uso de `spawn` con `stdio: 'ignore'` para mantener compatibilidad con comportamiento original
178
229
  - 🎮 Sistema de reserva de espacio (3 líneas) para evitar problemas de renderizado
179
230
  - 🧮 Contador de chistes cada 10 segundos real (sin drift de tiempo)
@@ -182,6 +233,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
182
233
  ## [1.2.0] - 2024-07-24
183
234
 
184
235
  ### Added
236
+
185
237
  - ✨ Sistema de entretenimiento con spinner animado y chistes durante operaciones largas
186
238
  - 🔐 Lectura segura y no-persistente de contraseña sudo para instalación automática
187
239
  - 🛠️ Verificación completa de dependencias del sistema (jq, curl, herramientas Unix)
@@ -190,15 +242,18 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
190
242
  - 🎭 Chistes rotativos cada 10 segundos durante verificación de autenticación Claude
191
243
 
192
244
  ### Enhanced
245
+
193
246
  - 📦 Función `install` ahora incluye verificación e instalación completa de dependencias
194
247
  - 🔍 Verificación de autenticación Claude con entretenimiento visual
195
248
  - 💻 Detección inteligente de plataforma (Linux/macOS) para instalación de paquetes
196
249
 
197
250
  ### Removed
251
+
198
252
  - 🗑️ Eliminados archivos `setup-wsl.sh` y `setup-wsl.js` (redundantes)
199
253
  - 🧹 Simplificación de la arquitectura eliminando duplicación de código
200
254
 
201
255
  ### Technical
256
+
202
257
  - 🔧 Añadido módulo `https` para obtener chistes de API externa
203
258
  - 🎨 Clase `Entertainment` para manejo de spinner y chistes
204
259
  - 🔐 Funciones `readPassword()` y `testSudoPassword()` para manejo seguro de credenciales
@@ -207,23 +262,27 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
207
262
  ## [1.1.0] - 2024-07-24
208
263
 
209
264
  ### Added
265
+
210
266
  - 🎯 Comando `set-mode` para cambiar entre análisis estándar y SonarQube
211
267
  - 📊 Modo SonarQube con métricas detalladas y quality gate
212
268
  - 📈 Visualización del modo de análisis actual en comando `status`
213
269
  - 🔧 Configuración persistente del modo de análisis en archivo `.claude-analysis-mode`
214
270
 
215
- ### Enhanced
271
+ ### Enhanced
272
+
216
273
  - 📋 Comando `status` ahora muestra modo de análisis y archivos de pautas
217
274
  - 📚 Documentación mejorada con ejemplos de ambos modos
218
275
  - 🎨 Mejor formateo de salida en comandos informativos
219
276
 
220
277
  ### Technical
278
+
221
279
  - 📁 Detección automática de archivos de pautas (CLAUDE_PRE_COMMIT.md, CLAUDE_PRE_COMMIT_SONAR.md)
222
280
  - 🏗️ Estructura preparada para múltiples modos de análisis
223
281
 
224
282
  ## [1.0.0] - 2024-07-24
225
283
 
226
284
  ### Added
285
+
227
286
  - 🎉 Primera versión estable del paquete npm `claude-git-hooks`
228
287
  - 📦 CLI global `claude-hooks` para gestión de hooks de Git
229
288
  - 🪝 Instalación automática de hooks `pre-commit` y `prepare-commit-msg`
@@ -235,6 +294,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
235
294
  - 🔄 Sistema de backup automático de hooks existentes
236
295
 
237
296
  ### Technical
297
+
238
298
  - 🏗️ Arquitectura modular con funciones especializadas
239
299
  - 🎨 Sistema de colores para output legible
240
300
  - 🛡️ Validaciones de entorno (repositorio Git, dependencias)
@@ -243,9 +303,10 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
243
303
  ---
244
304
 
245
305
  ## Tipos de cambios
306
+
246
307
  - `Added` - para nuevas funcionalidades
247
- - `Changed` - para cambios en funcionalidades existentes
308
+ - `Changed` - para cambios en funcionalidades existentes
248
309
  - `Deprecated` - para funcionalidades que serán removidas
249
310
  - `Removed` - para funcionalidades removidas
250
311
  - `Fixed` - para corrección de bugs
251
- - `Security` - para vulnerabilidades corregidas
312
+ - `Security` - para vulnerabilidades corregidas
package/README.md CHANGED
@@ -1,10 +1,15 @@
1
1
  # Pre-commit Hook con Claude CLI
2
2
 
3
- Este directorio contiene un pre-commit hook que utiliza Claude CLI para revisar automáticamente el código antes de cada commit.
4
- Otras funciones de interés:
3
+ 🚀 **Transforma tu flujo de desarrollo con IA**: análisis de código instantáneo, mensajes de commit automáticos y generación de PRs perfectas. Claude revisa tu código antes de cada commit, detecta issues críticos al estilo SonarQube, y genera toda la documentación que necesitas. ¿Lo mejor? Se ejecuta localmente sin contaminar tu CI/CD.
5
4
 
6
- - Generación de mensaje de commit.
7
- - Generación de información de PR y tests de validación de PR - Utiliza análisis de diferencias entre contenido local y origin.
5
+ ## 🎯 Características principales
6
+
7
+ - 🔍 **Análisis de código pre-commit**: Detecta issues críticos antes de que lleguen al repo
8
+ - 💬 **Mensajes de commit automáticos**: Escribe "auto" y Claude genera el mensaje perfecto
9
+ - 📋 **Generación de PRs**: Título, descripción y tests sugeridos con un solo comando
10
+ - 🎨 **Modo SonarQube**: Métricas de calidad y Quality Gate integrados
11
+ - 🚫 **Skip inteligente**: Excluye código legacy con comentarios SKIP-ANALYSIS
12
+ - 🔄 **Auto-actualización**: Se mantiene actualizado automáticamente
8
13
 
9
14
  ## 📋 CHEATSHEET
10
15
 
@@ -14,10 +19,10 @@ Otras funciones de interés:
14
19
  # Commit rápido sin análisis + mensaje automático
15
20
  git commit --no-verify -m "auto"
16
21
 
17
- # Analizar diferencias con rama origin actual
22
+ # Analizar diferencias con origin de la rama actual
18
23
  claude-hooks analyze-diff
19
24
 
20
- # Analizar diferencias para PR (comparar con develop)
25
+ # Analizar diferencias para PR (comparar con origin/develop)
21
26
  claude-hooks analyze-diff develop
22
27
 
23
28
  # Reinstalar durante desarrollo (después de npm link)
@@ -26,8 +31,16 @@ claude-hooks install --force --skip-auth
26
31
 
27
32
  ### 📦 Instalación y Gestión
28
33
 
34
+ ⚠️ **IMPORTANTE**: Todo debe ejecutarse desde consola WSL/Ubuntu (no PowerShell ni CMD). Ver [Configuración Previa](#-configuración-previa-importante) antes de comenzar.
35
+
36
+ Se debe instalar el paquete globalmente, para luego gestionarlo localmente en cada repositorio.
37
+
29
38
  ```bash
30
- # Instalación inicial
39
+ # En consola WSL/Ubuntu - Instalar globalmente
40
+ npm install -g claude-git-hooks
41
+
42
+ # Luego en cada proyecto (también desde WSL/Ubuntu)
43
+ cd /tu/proyecto
31
44
  claude-hooks install
32
45
 
33
46
  # Actualizar a última versión
@@ -123,28 +136,7 @@ git commit -m "fix: resolver issues"
123
136
 
124
137
  ## 🔧 Configuración Previa Importante
125
138
 
126
- ### 1. Armonización de Line Endings (EOL) -- Automatizada
127
-
128
- Debido a que Claude CLI corre en WSL y el desarrollo puede hacerse en Windows, es crucial configurar correctamente los line endings para evitar que los archivos de hooks se corrompan:
129
-
130
- ```bash
131
- # IMPORTANTE: Usar la misma configuración en WSL y Windows
132
- # Recomendación: usar 'input' en ambos entornos
133
-
134
- # En WSL
135
- git config core.autocrlf input
136
-
137
- # En PowerShell/Windows
138
- git config core.autocrlf input
139
-
140
- # Verificar configuración actual
141
- git config --local core.autocrlf
142
- git config --global core.autocrlf
143
- ```
144
-
145
- **⚠️ ADVERTENCIA**: Si tienes `core.autocrlf = true` en local e `input` en global, esto puede causar que los archivos de los hooks se vacíen. Asegúrate de que ambas configuraciones sean consistentes.
146
-
147
- ### 2. Credenciales Git en WSL
139
+ ### Credenciales Git en WSL
148
140
 
149
141
  Debes configurar tus credenciales de git nuevamente en WSL:
150
142
 
@@ -264,7 +256,7 @@ Si no existe un `.gitignore`, se creará uno nuevo. Si ya existe, las entradas s
264
256
 
265
257
  ### Características adicionales
266
258
 
267
- - **Generación de información para Pull Requests**: `claude-hooks analyze-diffs {branch}` para comparar rama local con otra rama, propone nombre para rama actual, título y detalles para pull request, da tips para verificar trabajo. Este comando genera automáticamente:
259
+ - **Generación de información para Pull Requests**: `claude-hooks analyze-diff [branch]` para comparar rama local con rama origin, propone nombre para rama actual, título y detalles para pull request, da tips para verificar trabajo. Si se especifica branch, compara con origin/branch. Si no, compara con origin de la rama actual. Este comando genera automáticamente:
268
260
  - 📝 Título de PR conciso (máx. 72 caracteres)
269
261
  - 📄 Descripción detallada con markdown
270
262
  - 🌿 Nombre de rama sugerido (formato: tipo/descripcion)