claude-git-hooks 1.5.0 → 1.5.2
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 +59 -4
- package/README.md +163 -414
- package/bin/claude-hooks +339 -374
- package/package.json +1 -1
- package/templates/pre-commit +97 -103
- package/templates/prepare-commit-msg +32 -32
package/CHANGELOG.md
CHANGED
|
@@ -5,9 +5,28 @@ 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.2] - 2025-09-11
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- 🈳 Traducidos todos los logs a inglés
|
|
13
|
+
- 📋 Aclaraciones de uso de analyze-diff en README
|
|
14
|
+
|
|
15
|
+
## [1.5.1] - 2025-09-11
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- 📋 Sección CHEATSHEET en README
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- 🔧 SKIP_ANALYSIS_BLOCK funciona correctamente
|
|
24
|
+
- 📝 Estructura del proyecto en documentación
|
|
25
|
+
|
|
8
26
|
## [1.5.0] - 2025-09-10
|
|
9
27
|
|
|
10
28
|
### Added
|
|
29
|
+
|
|
11
30
|
- 🔍 Nuevo comando `claude-hooks analyze-diff [base]` para análisis de diferencias entre ramas
|
|
12
31
|
- Genera título de PR conciso (máx. 72 caracteres)
|
|
13
32
|
- Crea descripción detallada del PR con markdown
|
|
@@ -18,15 +37,18 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
18
37
|
- Guarda resultados en `.claude-pr-analysis.json`
|
|
19
38
|
|
|
20
39
|
### Changed
|
|
40
|
+
|
|
21
41
|
- 🎯 Modo SonarQube ahora es el predeterminado (no hay selección interactiva)
|
|
22
42
|
- ⚡ Eliminada lógica de selección de modo del pre-commit hook
|
|
23
43
|
- 🗑️ Removidas referencias a guardado de preferencias `.claude-analysis-mode`
|
|
24
44
|
|
|
25
45
|
### Fixed
|
|
46
|
+
|
|
26
47
|
- 🐛 Eliminado prompt interactivo incompatible con algunas consolas
|
|
27
48
|
- 🔧 Pre-commit ahora va directo al análisis sin solicitar input del usuario
|
|
28
49
|
|
|
29
50
|
### Removed
|
|
51
|
+
|
|
30
52
|
- 🗑️ Eliminada selección interactiva de modo de análisis
|
|
31
53
|
- 🗑️ Removido comando `set-mode` (ya no es necesario)
|
|
32
54
|
- 🗑️ Eliminada variable de entorno `CLAUDE_ANALYSIS_MODE`
|
|
@@ -34,39 +56,46 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
34
56
|
## [1.4.2] - 2025-09-08
|
|
35
57
|
|
|
36
58
|
### Added
|
|
59
|
+
|
|
37
60
|
- 🚫 Comentario `// SKIP-ANALYSIS` para excluir código del análisis
|
|
38
61
|
- Una línea: excluye la siguiente línea
|
|
39
|
-
- Bloque: código entre dos comentarios `//
|
|
62
|
+
- Bloque: código entre dos comentarios `// SKIP_ANALYSIS_BLOCK` es excluido
|
|
40
63
|
- 📝 Excepciones para Spring Framework en criterios de evaluación
|
|
41
64
|
- `@Autowired` no es considerado issue bloqueante (máximo severidad MAJOR)
|
|
42
65
|
- Inyección de dependencias con field injection es aceptable
|
|
43
66
|
|
|
44
67
|
### Changed
|
|
68
|
+
|
|
45
69
|
- 📋 Actualizada documentación con casos de uso de commits clarificados
|
|
46
70
|
- 🎯 Templates de prompts actualizados con reglas de Spring Framework
|
|
47
71
|
|
|
48
72
|
### Fixed
|
|
73
|
+
|
|
49
74
|
- 🔧 Clarificado que `git commit --no-verify -m "auto"` genera mensaje automático sin análisis
|
|
50
75
|
|
|
51
76
|
## [1.4.1] - 2025-09-04
|
|
52
77
|
|
|
53
78
|
### Changed
|
|
79
|
+
|
|
54
80
|
- 🚀 **BREAKING**: Eliminado modo estándar, ahora solo existe modo SonarQube
|
|
55
81
|
- ⚡ Prompts optimizados para Claude: reducción de ~80% en tokens manteniendo eficacia
|
|
56
82
|
- 🎯 Nuevo formato ultra-compacto de prompts usando notación concisa y directivas claras
|
|
57
83
|
- 📝 Templates simplificados: CLAUDE_ANALYSIS_PROMPT_SONAR.md, CLAUDE_PRE_COMMIT_SONAR.md, CLAUDE_RESOLUTION_PROMPT.md
|
|
58
84
|
|
|
59
85
|
### Fixed
|
|
86
|
+
|
|
60
87
|
- 🐛 Mejorada la lógica de escritura para mejor formación del prompt de resolución de problemas críticos
|
|
61
88
|
- 🔧 Corregido el formato del prompt AI-friendly para resolución de issues
|
|
62
89
|
|
|
63
90
|
### Removed
|
|
91
|
+
|
|
64
92
|
- 🗑️ Eliminados archivos del modo estándar: CLAUDE_PRE_COMMIT.md, CLAUDE_ANALYSIS_PROMPT.md
|
|
65
93
|
- 🗑️ Eliminada lógica de selección de modo (ahora siempre usa SonarQube)
|
|
66
94
|
|
|
67
95
|
## [1.4.0] - 2025-08-29
|
|
68
96
|
|
|
69
97
|
### Added
|
|
98
|
+
|
|
70
99
|
- 🎯 Prompts externalizados en archivos `.md` para facilitar personalización
|
|
71
100
|
- 🤖 Generación automática de prompt AI-friendly para resolución de problemas críticos
|
|
72
101
|
- 📝 Nuevos templates de prompts: `CLAUDE_ANALYSIS_PROMPT.md`, `CLAUDE_ANALYSIS_PROMPT_SONAR.md`, `CLAUDE_RESOLUTION_PROMPT.md`
|
|
@@ -76,16 +105,19 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
76
105
|
- 📖 Ejemplos detallados de respuestas JSON con blocking issues en README
|
|
77
106
|
|
|
78
107
|
### Changed
|
|
108
|
+
|
|
79
109
|
- 🏗️ Estandarización de `blockingIssues` a formato objeto (nunca strings)
|
|
80
110
|
- 📦 Separación de prompts del código para mayor mantenibilidad
|
|
81
111
|
- 🔧 Hook pre-commit simplificado sin fallbacks complejos
|
|
82
112
|
- 📁 Instalador actualizado para copiar todos los templates de prompts
|
|
83
113
|
|
|
84
114
|
### Fixed
|
|
115
|
+
|
|
85
116
|
- 🐛 Consistencia en el formato de respuesta JSON para ambos modos
|
|
86
117
|
- 🔧 Mejor manejo de errores cuando faltan archivos de configuración
|
|
87
118
|
|
|
88
119
|
### Technical
|
|
120
|
+
|
|
89
121
|
- 🏗️ Función `generate_resolution_prompt()` para crear prompts de resolución
|
|
90
122
|
- 📝 Templates de prompts con placeholders reemplazables
|
|
91
123
|
- 🎯 Estructura JSON estricta para blockingIssues con campos obligatorios
|
|
@@ -94,6 +126,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
94
126
|
## [1.3.0] - 2025-08-28
|
|
95
127
|
|
|
96
128
|
### Added
|
|
129
|
+
|
|
97
130
|
- 🚀 Nuevo comando `claude-hooks update` para actualizar a la última versión disponible
|
|
98
131
|
- 🔄 Verificación automática de versión antes de cada commit con prompt interactivo
|
|
99
132
|
- 📜 Script compartido `check-version.sh` para evitar duplicación de código
|
|
@@ -101,16 +134,19 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
101
134
|
- 📊 Mensajes informativos detallados durante el proceso de verificación y actualización
|
|
102
135
|
|
|
103
136
|
### Changed
|
|
137
|
+
|
|
104
138
|
- 🎯 El hook `pre-commit` ahora verifica automáticamente si hay actualizaciones disponibles
|
|
105
139
|
- 📦 La instalación ahora incluye el script `check-version.sh` en `.git/hooks/`
|
|
106
140
|
- 🔧 Mejorada la UX con mensajes claros sobre el estado de la versión
|
|
107
141
|
|
|
108
142
|
### Fixed
|
|
143
|
+
|
|
109
144
|
- 🐛 Corregido el parsing de versión desde NPM API (usaba endpoint incorrecto)
|
|
110
145
|
- 🔧 Mejorada la compatibilidad del prompt interactivo para consolas IntelliJ/WSL
|
|
111
146
|
- 📝 Múltiples métodos de fallback para leer input del usuario
|
|
112
147
|
|
|
113
148
|
### Technical
|
|
149
|
+
|
|
114
150
|
- 🏗️ Función `getLatestVersion()` ahora usa `dist-tags.latest` de NPM API
|
|
115
151
|
- 🔄 Función `checkVersionAndPromptUpdate()` reutilizable para verificación
|
|
116
152
|
- 📁 Script compartido para evitar duplicación de lógica de verificación
|
|
@@ -119,33 +155,39 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
119
155
|
## [1.2.4] - 2025-08-22
|
|
120
156
|
|
|
121
157
|
### Fixed
|
|
158
|
+
|
|
122
159
|
- 🐛 Corregido el análisis de SonarQube para mostrar correctamente el formato detallado
|
|
123
160
|
- 📊 Arreglado el parsing de JSON para buscar `QUALITY_GATE` en mayúsculas según las pautas
|
|
124
161
|
- 🔧 Actualizado el mapeo de campos JSON para coincidir con la estructura esperada
|
|
125
162
|
|
|
126
163
|
### Changed
|
|
164
|
+
|
|
127
165
|
- 📈 Añadidas métricas de coverage, duplications y complexity al formato SonarQube
|
|
128
166
|
- 📝 Actualizado el archivo de pautas SonarQube para incluir todas las métricas
|
|
129
167
|
|
|
130
168
|
## [1.2.3] - 2025-08-22
|
|
131
169
|
|
|
132
170
|
### Added
|
|
171
|
+
|
|
133
172
|
- 🚀 Actualización automática de `.gitignore` durante la instalación
|
|
134
173
|
- 📝 Claude Hooks ahora agrega automáticamente las entradas necesarias a `.gitignore`
|
|
135
174
|
- 🔍 El comando `status` ahora muestra el estado de las entradas en `.gitignore`
|
|
136
175
|
|
|
137
176
|
### Changed
|
|
177
|
+
|
|
138
178
|
- 🎯 Mejorado el proceso de instalación para ser más completo y automatizado
|
|
139
179
|
- 📊 El comando `status` ahora proporciona información más detallada sobre la configuración
|
|
140
180
|
|
|
141
181
|
## [1.2.2] - 2025-08-22
|
|
142
182
|
|
|
143
183
|
### Fixed
|
|
184
|
+
|
|
144
185
|
- 🐛 Corregido problema donde los archivos markdown de pautas no se instalaban correctamente desde npm
|
|
145
186
|
- 📁 Los archivos de pautas ahora se instalan en el directorio `.claude/` en lugar de la raíz del proyecto
|
|
146
187
|
- 🔧 Actualizado el hook pre-commit para buscar los archivos de pautas en la nueva ubicación `.claude/`
|
|
147
188
|
|
|
148
189
|
### Changed
|
|
190
|
+
|
|
149
191
|
- 📂 Los archivos `CLAUDE_PRE_COMMIT.md` y `CLAUDE_PRE_COMMIT_SONAR.md` ahora se almacenan en `.claude/`
|
|
150
192
|
- 🎯 Mejorada la organización del proyecto manteniendo los archivos de configuración separados del código fuente
|
|
151
193
|
- 📝 Actualizada la documentación para reflejar la nueva estructura de directorios
|
|
@@ -153,6 +195,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
153
195
|
## [1.2.1] - 2024-07-24
|
|
154
196
|
|
|
155
197
|
### Fixed
|
|
198
|
+
|
|
156
199
|
- 🐛 Corregido problema de bloqueo del spinner durante verificación de autenticación Claude
|
|
157
200
|
- 🎨 Arreglado sistema de entretenimiento para mostrar correctamente spinner, chistes y countdown
|
|
158
201
|
- 🔧 Solucionado problema de líneas duplicadas en consola después del segundo chiste
|
|
@@ -160,11 +203,13 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
160
203
|
- ⏱️ Aumentado timeout de verificación de autenticación a 2 minutos
|
|
161
204
|
|
|
162
205
|
### Changed
|
|
206
|
+
|
|
163
207
|
- 🔄 Reemplazado `execSync` por `spawn` en verificación de autenticación para evitar bloqueos
|
|
164
208
|
- 📍 Mejorado sistema de posicionamiento del cursor para renderizado consistente
|
|
165
209
|
- 🎯 Optimizada lógica de actualización del spinner para evitar race conditions
|
|
166
210
|
|
|
167
211
|
### Technical
|
|
212
|
+
|
|
168
213
|
- 🏗️ Uso de `spawn` con `stdio: 'ignore'` para mantener compatibilidad con comportamiento original
|
|
169
214
|
- 🎮 Sistema de reserva de espacio (3 líneas) para evitar problemas de renderizado
|
|
170
215
|
- 🧮 Contador de chistes cada 10 segundos real (sin drift de tiempo)
|
|
@@ -173,6 +218,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
173
218
|
## [1.2.0] - 2024-07-24
|
|
174
219
|
|
|
175
220
|
### Added
|
|
221
|
+
|
|
176
222
|
- ✨ Sistema de entretenimiento con spinner animado y chistes durante operaciones largas
|
|
177
223
|
- 🔐 Lectura segura y no-persistente de contraseña sudo para instalación automática
|
|
178
224
|
- 🛠️ Verificación completa de dependencias del sistema (jq, curl, herramientas Unix)
|
|
@@ -181,15 +227,18 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
181
227
|
- 🎭 Chistes rotativos cada 10 segundos durante verificación de autenticación Claude
|
|
182
228
|
|
|
183
229
|
### Enhanced
|
|
230
|
+
|
|
184
231
|
- 📦 Función `install` ahora incluye verificación e instalación completa de dependencias
|
|
185
232
|
- 🔍 Verificación de autenticación Claude con entretenimiento visual
|
|
186
233
|
- 💻 Detección inteligente de plataforma (Linux/macOS) para instalación de paquetes
|
|
187
234
|
|
|
188
235
|
### Removed
|
|
236
|
+
|
|
189
237
|
- 🗑️ Eliminados archivos `setup-wsl.sh` y `setup-wsl.js` (redundantes)
|
|
190
238
|
- 🧹 Simplificación de la arquitectura eliminando duplicación de código
|
|
191
239
|
|
|
192
240
|
### Technical
|
|
241
|
+
|
|
193
242
|
- 🔧 Añadido módulo `https` para obtener chistes de API externa
|
|
194
243
|
- 🎨 Clase `Entertainment` para manejo de spinner y chistes
|
|
195
244
|
- 🔐 Funciones `readPassword()` y `testSudoPassword()` para manejo seguro de credenciales
|
|
@@ -198,23 +247,27 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
198
247
|
## [1.1.0] - 2024-07-24
|
|
199
248
|
|
|
200
249
|
### Added
|
|
250
|
+
|
|
201
251
|
- 🎯 Comando `set-mode` para cambiar entre análisis estándar y SonarQube
|
|
202
252
|
- 📊 Modo SonarQube con métricas detalladas y quality gate
|
|
203
253
|
- 📈 Visualización del modo de análisis actual en comando `status`
|
|
204
254
|
- 🔧 Configuración persistente del modo de análisis en archivo `.claude-analysis-mode`
|
|
205
255
|
|
|
206
|
-
### Enhanced
|
|
256
|
+
### Enhanced
|
|
257
|
+
|
|
207
258
|
- 📋 Comando `status` ahora muestra modo de análisis y archivos de pautas
|
|
208
259
|
- 📚 Documentación mejorada con ejemplos de ambos modos
|
|
209
260
|
- 🎨 Mejor formateo de salida en comandos informativos
|
|
210
261
|
|
|
211
262
|
### Technical
|
|
263
|
+
|
|
212
264
|
- 📁 Detección automática de archivos de pautas (CLAUDE_PRE_COMMIT.md, CLAUDE_PRE_COMMIT_SONAR.md)
|
|
213
265
|
- 🏗️ Estructura preparada para múltiples modos de análisis
|
|
214
266
|
|
|
215
267
|
## [1.0.0] - 2024-07-24
|
|
216
268
|
|
|
217
269
|
### Added
|
|
270
|
+
|
|
218
271
|
- 🎉 Primera versión estable del paquete npm `claude-git-hooks`
|
|
219
272
|
- 📦 CLI global `claude-hooks` para gestión de hooks de Git
|
|
220
273
|
- 🪝 Instalación automática de hooks `pre-commit` y `prepare-commit-msg`
|
|
@@ -226,6 +279,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
226
279
|
- 🔄 Sistema de backup automático de hooks existentes
|
|
227
280
|
|
|
228
281
|
### Technical
|
|
282
|
+
|
|
229
283
|
- 🏗️ Arquitectura modular con funciones especializadas
|
|
230
284
|
- 🎨 Sistema de colores para output legible
|
|
231
285
|
- 🛡️ Validaciones de entorno (repositorio Git, dependencias)
|
|
@@ -234,9 +288,10 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
234
288
|
---
|
|
235
289
|
|
|
236
290
|
## Tipos de cambios
|
|
291
|
+
|
|
237
292
|
- `Added` - para nuevas funcionalidades
|
|
238
|
-
- `Changed` - para cambios en funcionalidades existentes
|
|
293
|
+
- `Changed` - para cambios en funcionalidades existentes
|
|
239
294
|
- `Deprecated` - para funcionalidades que serán removidas
|
|
240
295
|
- `Removed` - para funcionalidades removidas
|
|
241
296
|
- `Fixed` - para corrección de bugs
|
|
242
|
-
- `Security` - para vulnerabilidades corregidas
|
|
297
|
+
- `Security` - para vulnerabilidades corregidas
|